В Python есть странный зверь — namespace packages. По идее, они решают проблему разделения одного пакета на несколько директорий. На практике же это сплошная путаница и боль.
Почему так: 🚩 У нас есть два способа делать одно и то же: explicit (через __init__.py + костыли) и implicit (PEP 420, без __init__.py). 🚩 Zen of Python говорит: “There should be one– and preferably only one –obvious way to do it”, но тут явно нарушено. 🚩 Новички легко создают случайные namespace пакеты, просто забыв __init__.py. 🚩 Явные пакеты оказываются несовместимыми между собой, implicit — хрупкие и медленные.
⚡️ Сценарий:
Представьте, вы в условном Gooble и хотите, чтобы все пакеты начинались с gooble.*.
Красиво, пока кто-то не решит, что gooble/__init__.py не нужен. Или наоборот, случайно добавит его. И всё — сломалось.
Вывод (и личный совет): ✅ Всегда кладите __init__.py в каждую директорию. ✅ Избегайте осознанных namespace packages — они слишком ненадёжные.
В Python есть странный зверь — namespace packages. По идее, они решают проблему разделения одного пакета на несколько директорий. На практике же это сплошная путаница и боль.
Почему так: 🚩 У нас есть два способа делать одно и то же: explicit (через __init__.py + костыли) и implicit (PEP 420, без __init__.py). 🚩 Zen of Python говорит: “There should be one– and preferably only one –obvious way to do it”, но тут явно нарушено. 🚩 Новички легко создают случайные namespace пакеты, просто забыв __init__.py. 🚩 Явные пакеты оказываются несовместимыми между собой, implicit — хрупкие и медленные.
⚡️ Сценарий:
Представьте, вы в условном Gooble и хотите, чтобы все пакеты начинались с gooble.*.
Красиво, пока кто-то не решит, что gooble/__init__.py не нужен. Или наоборот, случайно добавит его. И всё — сломалось.
Вывод (и личный совет): ✅ Всегда кладите __init__.py в каждую директорию. ✅ Избегайте осознанных namespace packages — они слишком ненадёжные.
Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” Unlimited number of subscribers per channel Add up to 50 administrators 2How to set up a Telegram channel? (A step-by-step tutorial) With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings.
from us