Подразумеваемые неймспейсы или неявные пакеты.
Этот функционал добавлен в 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
A wallet linked to Joseph Lubin (@ethereumJoseph), Co-Founder of @ethereum and Founder of @Consensys, supplied 15,000 $ETH ($31.43M) to #MakerDAO and borrowed $4.1M $DAI.
In total, the wallet holds 137,908 $ETH ($287.29M) and has borrowed $107.77M $DAI.
https://intel.arkm.com/explorer/address/0xABED497D0CCB6916C95Dd98aD4402fEBf5f52FE7
https://x.com/OnchainLens/status/2019298159550427171
Follow @onchainlens for more onchain updates
Wallet 0xa58 (linked to Rune Christensen, #MakerDAO cofounder) has sold 2,235 $MKR for 4.542M $DAI at $2,032 on average in the past 2 days.
Currently, the wallet still holds 2,430 $MKR ($4.92M), and may keep selling.
The $MKR price has been down ~3.39% (2D), since the first sale.
Want to monitor the wallet, follow @spotonchain and turn on your 🔔 at https://platform.spotonchain.ai/en/profile?address=0xa5890ccd2359dc38f649158abdc24b62602dec68
🚨 A super early $MKR holder has sold after over 7 years!
- This holder bought 451.5 old $MKR in 2017 when the price was around $23 (the inception of $MKR)
- This holder just sold 251.5 $MKR ($408K) for 172.5 $ETH ~5 hours ago at $1,624 (x70)
#MakerDAO is down 24% since the rebrand to #Sky, partly due to market conditions and the criticism over its "freeze function".
👉 More Details: platform.spotonchain.ai/signal-details/super-early-holder-sold-the-first-25153-mkr-408k-after-over-7-years-168917
The $SHIB price soared over 50% (24H). What happened on-chain in the past 3 days leading to the pump?
1. Smart trader 0x37d withdrew 75.91B $SHIB (currently $1.51M) from #Binance 2 days ago before the pump, now making $614K (+69%).
👉 Address: 0x37dffd32ea5b23813a263f725759632c120e0ac7
2. #MakerDAO founder @RuneKek bought 7.41B $SHIB with 100K $USDC, allegedly for the first time 13 hours ago, now making $47.1K (+47.1%).
👉 Entity: Rune Christensen (MakerDAO founder)
3. Wallet 0x02e related to #Upbit has accumulated 2.13T $SHIB (now $42.3M) in the past 24 hours.
• Currently, the wallet is the 7th largest-holding wallet of $SHIB with 12.45T $SHIB ($247M).
👉 Address: 0x02e2201576fbbefb52812f2ee7f08eb4774b481e
Don’t forget to follow @spotonchain and turn on your alerts for more updates on $SHIB.
The $MKR price is surging for the second time, as affected by the #Endgame Launch announcement from #MakerDAO.
Whale 0xcf9 spent 1.94M $USDT to buy 702.8 $MKR at ~$2,763 around 30 mins ago.
👉 Address: 0xcf9bfaf7e7ed48d85f2487b8fed07852a5e93ad1
Moreover, the founder of MakerDAO, Rune Christensen (@RuneKek), also spent $4.57M to buy 1,967 $MKR at ~$2,324 in the past 7 days, now making $1.02M (+22.3%).
👉 Entity: Rune Christensen (MakerDAO founder)
Follow @spotonchain and turn on your 🔔 at the above addresses for more updates!
🗣 Новый день, новый Governance Voting в котором я принимаю участие, прокачивая свои DAO скиллы и неся свободу и децентрализацию в наш бренный #Web3 мир. Этот 2023 год можно точно назвать #bullrun для всех децентрализованных protocol governance и #DAO. Вся интеллектуальная активность в сети, аирдропы и пользователи сейчас здесь.
База: большие протоколы/блокчейны управляются сообществом владельцев токенов и их делегатами. Делегат - это пользователь (кошелек) у которого может и не быть токенов протокола, но он получил делегацию "голосов" от других участников и может теперь представлять их интересы при голосовании за предложения (чем-то похоже на депутата от народа).
Процесс #DAO следующий:
- активный участник делает детальное предложение и выносит его на обсуждение. Место: форум проекта.
- после обсуждения проекта, предложение выносится на голосование оффчейн (без проведения транзакции, а только с помощью отправки подписи). Место: snapshot.org
- после принятие предложения на snapshot оно переносится уже на onchain голосование и после исполняется. Место: tally.xyz
Основные задачи управления ДАО - это обновление протокола (экономические параметры), перенос протокола на новую сеть (лицензионные параметры), управление казначейством (распределение нажитого имущества или токенов проекта в целях поощрения сообщества протокола). В частных случаях это еще и координация управления операционной, юридической и политической активностью протокола.
Список #DAO в которых я не последний человек принимаю участие:
- Uniswap $UNI - Forum / Snapshot [treasury - $1.5B]
- Arbitrum $ARB - Forum / Snapshot [treasury - $2.8B]
- Optimism $OP - Forum / Snapshot [treasury - $1.5B]
- Frax $FXS - Forum / Snapshot [mcap - $1.4B]
Далее в моем списке: #Lido, #AAVE, #Straknet, #MakerDAO
… [ч1] продолжение в следующем посте 🟢