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

@Module(
    module_name="ExampleModule",
    instances=[
        RegisterModuleType(implementation={"Provider": {"log": "Mensagem de log atualizada!"}})
    ]
)
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.1.tar.gz (6.5 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.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_module_injector-0.1.1.tar.gz
  • Upload date:
  • Size: 6.5 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.1.tar.gz
Algorithm Hash digest
SHA256 d0b03409402c804c8d10123dd63143882910f2cb82388bbd3b29eb476089118f
MD5 a769493dafccde1cb383e9ab6167ae40
BLAKE2b-256 804cdeda0ac373d389cc3a85e0bae2bfb6adc2349542225280aef7ec58437b78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for py_module_injector-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d7c45a4195d855a059175d1682e5e22002bcc1f7d8b35f552e303f701e42cbc
MD5 b9dff7fa3df6514c211f8fd25719efaa
BLAKE2b-256 e427a948f3b7e3df7963caf7b2f4f7c034b791ba627ab64cde7be295b8c6f234

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