Nessa live, vamos conversar sobre o sistema de módulos do Python: suas características, funcionamento e algumas façanhas interessantes que ele permite.
Vamos passar por nomes padrão, nomes *dunder*, formas de customização de acesso, pacotes regulares, pacotes de namespace (PEP 420) e outras partes importantes desse mecanismo que o Python usa para organizar e carregar código.
Se você já ouviu falar em `__getattr__`, `__all__`, ou ficou confuso sobre o que acontece por trás de um simples `import`, essa live vai te ajudar a entender tudo isso com calma e em detalhes.
---
O canal é mantido por financiamento coletivo:
- Apoia-se: https://apoia.se/livedepython
- PicPay: @dunossauro
- Chave Pix:
[email protected]
Meus contatos e redes: http://dunossauro.com/
---
- Código e slides da live: https://github.com/dunossauro/live-de-python
- Telegram da live: https://t.me/livepython
- Temas das próximas lives: https://github.com/dunossauro/live-de-python/issues/568
- Lista de lives anteriores: https://github.com/dunossauro/live-de-python/blob/main/codigo/README.md
---
### Referências:
PEPs:
- PEP 8 – https://peps.python.org/pep-0008/#module-level-dunder-names
- PEP 562 – https://peps.python.org/pep-0562/
- PEP 420 – https://peps.python.org/pep-0420/
Links citados:
- Módulos – https://docs.python.org/pt-br/3.13/tutorial/modules.html
- Pacotes – https://docs.python.org/pt-br/3.13/tutorial/modules.html#packages
- Every dunder method – https://www.pythonmorsels.com/every-dunder-method/
- Discuss – https://discuss.python.org/t/module-level-getattr-and-from-imports/32236/7
- flat vs src: https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/
Versionamento dinâmico:
- Packaging – https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#version
- Setuptools – https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#dynamic-metadata
- Hatch – https://hatch.pypa.io/1.12/version/#configuration
Lives citadas:
- Escopos e namespaces:
https://youtu.be/nWmPEgTwGMM
- Sistema de imports:
https://youtu.be/a5R5dvim6TQ
- Pyproject:
https://youtu.be/6p1HKaHrk0Y