Подразумеваемые неймспейсы или неявные пакеты.
Этот функционал добавлен в Python 3.3
Что он означает?
Ранее, до 3.3 пакетами считались лишь директории, в которых есть файл __init__.py.
Этот файл одновременно являлся свидетельством того, что директория это Python-пакет, и служил "телом" этого пакета. То есть местом, где можно написать код, как это делается внутри модуля. Этот код исполняется в момент импорта пакета, так что его принято называть "код инициализации пакета".
Начиная с версии 3.3 Любая директория считается пакетом и Python будет пытаться использовать любую директорию для импорта.
Конечно, не любую в файловой системе, а только те что находятся в sys.path.
Это значит, что теперь __init__.py нужно делать только если:
🔸 вам требуется создать код инициализации пакета
🔸 нужна совместимость со старыми версиями Python
На мой взгляд это немного упрощает разработку, делает её чище, но с другой стороны убивает некоторую однозначность происходящего.
Например, я создал репозиторий со своей библиотекой и рядом положил код примеров или тестов.
repo_name/
my_library/
__init__.py
main.py
examples/
exam1.py
exam2.py
В этом репозитории пакетом является только my_library, остальные директории это не пакеты, это просто дополнительный код в файлах. Директория examples не добавлена в sys.path, в ней нет рабочих модулей. Но если она лежит рядом с my_library, то Python вполне сможет импортнуть из неё модули, так как посчитает что examples это валидный пакет.
Конечно, пример несколько надуманный. Никто не будет добавлять корень репозитория в sys.path. Но, я думаю, суть ясна. Иногда директория это просто директория а не пакет!
#basic#pep
DisableGoogleAnalytics
https://gitlab.com/adrian.m.miller/disablegoogleanalytics
Attempts To Disable Common Google Analytics And Ads Receivers In All Affected Packages
What it does/How it works:
On 1st run after rebooting after install the module is assuming you want it to disable the listed analytics and ad receivers, so it will:
Wait till boot is completed
Then sleep for 2 minutes
Then test that cpu usage is under 30% before running
It will then disable the analytics and ad receivers as listed below, and log its progress to /sdcard/fixgoogleanalytics.log
Common Analytics And Ad Recievers:
com.google.android.gms.analytics.AnalyticsJobServicecom.google.android.gms.analytics.CampaignTrackingServicecom.google.android.gms.measurement.AppMeasurementServicecom.google.android.gms.measurement.AppMeasurementJobServicecom.google.android.gms.analytics.AnalyticsReceivercom.google.android.gms.analytics.CampaignTrackingReceivercom.google.android.gms.measurement.AppMeasurementInstallReferrerReceivercom.google.android.gms.measurement.AppMeasurementReceivercom.google.android.gms.measurement.AppMeasurementContentProvidercom.crashlytics.android.CrashlyticsInitProvidercom.google.android.gms.ads.AdActivitycom.google.firebase.iid.FirebaseInstanceIdService
Once complete the service.sh script will delete itself
Once that happens any further interaction is purely via the included dga script as a binary in /system/(x)bin
dga takes 2 arguments, disable or enable, though i doubt too many will be looking to enable analytics and ad receivers, unless the disabling has unwanted effects on their system, which is high time to include the usual disclaimer that you run this at your own risk and not even dga enable is garaunteed to undo the changes
Module Installation:
Download from Releases
Install the module via #Magisk app/Fox Magisk Module Manager/MRepo
Reboot
Usage:
After first run optmization has completed, any further interaction is purely via the included dga script as a binary
in /system/(x)bin:
dga takes 2 arguments, disable or enable, though i doubt too many will be looking to enable
analytics and ad receivers, unless the disabling has unwanted effects on their system, which
is high time to include the usual disclaimer that you run this at your own risk and not even
dga enable is garaunteed to undo the changes
Uninstall Note: Uninstalling the module will not reverse the changes, if your intention is to uninstall the module and re-enable the
analytics and ad receivers, please run dga enable first
Magisk 19.3
- [MagiskHide] Значительно улучшена реализация монитора процессов, теперь это не должно вызывать 100% сбои ЦП
- [MagiskInit] Ожидание подготовки разделов к раннему монтированию, чтобы исправить бутлупы на некоторых устройствах
- [MagiskInit] Поддержка файловой системы EROFS, используемой в EMUI 9.1
- [MagiskSU] Правильно реализована изоляция пространства имён монтирования
- [MagiskBoot] Правильный расчет контрольной суммы для заголовка v2
#magisk
#Magisk fork by TheHitMan7 keeping the removed "Magisk Hide" functionality
Repository:
https://github.com/TheHitMan7/Magisk
Files:
https://github.com/TheHitMan7/Magisk-Files
Or
https://t.me/magiskcustom
Discussion:
https://t.me/custommagisk
Remember that Google corporation bought Magisk developer and extorted him to remove that functionality:
https://t.me/NoGoolag/5202
https://t.me/NoGoolag/5229
https://t.me/NoGoolag/7628
https://t.me/NoGoolag/7712