Uma biblioteca de modularização em python
Project description
python-module
Uma biblioteca de modularização em Python que fornece funcionalidades para injeção de dependências e registro de módulos, facilitando a criação de sistemas modulares e extensíveis.
Instalação
Para instalar a biblioteca, execute o seguinte comando no terminal:
pip install .
Uso
Injeção de Dependências A biblioteca oferece suporte à injeção de dependências, permitindo que você registre e injete automaticamente as dependências necessárias em classes e métodos.
Exemplo de uso da injeção de dependências em uma classe:
from python_module import Inject
@Inject
class ServiceBase:
def __init__(self, provider: Provider):
self.provider = provider
def get_log(self):
return self.provider.get_log()
Registro de Módulos
Com o decorador @Module, você pode registrar módulos e suas dependências no injetor de dependências. Esse registro permite que você defina quais implementações ou fábricas serão utilizadas em diferentes partes do seu aplicativo.
Exemplo de uso do decorador Module:
from python_module import Module
from python_module.typing import RegisterModuleType
@Module(
module_name="ExampleModule",
instances=[
RegisterModuleType(
implementation=Provider, # Deve ser uma referência à classe, não uma string
factory=lambda: Provider(log="Provider Injetado")
)
]
)
class ExampleModule:
def run(self):
service = Service()
return service.process()
if __name__ == '__main__':
example_module = ExampleModule()
print(example_module.run())
Testes
Para rodar os testes da biblioteca, execute o seguinte comando:
python -m unittest discover -s tests
Isso irá descobrir e rodar todos os testes na pasta tests.
Contribuição
Sinta-se à vontade para contribuir com melhorias, correções de bugs ou novas funcionalidades! Para isso, basta fazer um fork do repositório, criar uma nova branch e enviar um pull request
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_module_injector-0.1.3.tar.gz.
File metadata
- Download URL: py_module_injector-0.1.3.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc0a870ad0a3879951a250e8aa0f2069607dd599c7cb1a774184654098a4384b
|
|
| MD5 |
788951290d2282aaa71fb194613e07c0
|
|
| BLAKE2b-256 |
3f90b316dde81ef5150af14c9cf50b359aa47d0919302c70bf4789480c841e4b
|
File details
Details for the file py_module_injector-0.1.3-py3-none-any.whl.
File metadata
- Download URL: py_module_injector-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bce7ad74f2b0e2d533dc0de23b18163455e97f3214963db890442e812fced6cd
|
|
| MD5 |
d41780144ee9d55b4a750f5d5506200c
|
|
| BLAKE2b-256 |
2b60302078d45f704465214c8c5652feb81b6e84f3ea9e4be6f127e9c1f2a0af
|