PYPROGLIB Telegram 7104
🔥 Python 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 — они слишком ненадёжные.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2



tgoop.com/pyproglib/7104
Create:
Last Update:

🔥 Python 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 — они слишком ненадёжные.

🐸 Библиотека питониста

#буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tgoop.com/pyproglib/7104

View MORE
Open in Telegram


Telegram News

Date: |

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


Telegram Библиотека питониста | Python, Django, Flask
FROM American