Nesta live vamos conversar sobre como o sistema de imports do python funciona.
Vamos conversar sobre as diferentes formas de importação, sobre o que o python reconhece como módulo e como ele faz a associação de nomes no namespace.
Falaremos sobre o módulo sys, sobre a importlib e sobre a instrução __import__. Além de loaders, finders e specs!
-------------------
O canal é mantido por uma iniciativa de 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: 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/359
----
## Referências
### PEPs
- PEP 302: https://peps.python.org/pep-0302/
- PEP 382: https://peps.python.org/pep-0382/
- PEP 420: https://peps.python.org/pep-0420/
### Documentação
- Builtins: https://docs.python.org/3/library/builtins.html
- Glossário: https://docs.python.org/pt-br/3/glossary.html
- Sistema de importação: https://docs.python.org/pt-br/3/reference/import.html
- Módulo sys: https://docs.python.org/3/library/sys.html
- sys path: https://docs.python.org/pt-br/3/library/sys_path_init.html#sys-path-init
- importlib: https://docs.python.org/3/library/importlib.html
### Código fonte:
- LOAD_NAME: https://github.com/python/cpython/blob/d25954dff5409c8926d2a4053d3e892462f8b8b5/Python/generated_cases.c.h#L4575
- Import bootstrap: https://github.com/python/cpython/blob/3.6/Lib/importlib/_bootstrap.py#L504
### Issues
- Documentação import: https://github.com/python/cpython/issues/79362
### Blogs
- https://tenthousandmeters.com/blog/python-behind-the-scenes-11-how-the-python-import-system-works/