Skip to main content

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

py_module_injector-0.1.2.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_module_injector-0.1.2-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file py_module_injector-0.1.2.tar.gz.

File metadata

  • Download URL: py_module_injector-0.1.2.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

Hashes for py_module_injector-0.1.2.tar.gz
Algorithm Hash digest
SHA256 34f381aac6f26facccd3a7c00d1de29fbb864afc3d5d3a2a6000aa21e2543579
MD5 23665412064ab90109157e6c91e52ecf
BLAKE2b-256 64ddb1b80c84b38fc811635595686dcbfc77105748e34b7fb3e9b0afb47932a2

See more details on using hashes here.

File details

Details for the file py_module_injector-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for py_module_injector-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 989d39fa0aedbaa25dd3b992fd7b6f7f307d099b19ecae0edd2598072e92c147
MD5 e00fc05508a42614c8f5e5d6911effea
BLAKE2b-256 21817383aecdf31ab819e8049d18d50ea6cdc5596099b2d831efa3a6f1d413b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page