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.3.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.3-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

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

Hashes for py_module_injector-0.1.3.tar.gz
Algorithm Hash digest
SHA256 bc0a870ad0a3879951a250e8aa0f2069607dd599c7cb1a774184654098a4384b
MD5 788951290d2282aaa71fb194613e07c0
BLAKE2b-256 3f90b316dde81ef5150af14c9cf50b359aa47d0919302c70bf4789480c841e4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_module_injector-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bce7ad74f2b0e2d533dc0de23b18163455e97f3214963db890442e812fced6cd
MD5 d41780144ee9d55b4a750f5d5506200c
BLAKE2b-256 2b60302078d45f704465214c8c5652feb81b6e84f3ea9e4be6f127e9c1f2a0af

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