Injetar

injeção de dependência rápida do python
Baixe Agora

Injetar Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • MIT/X Consortium Lic...
  • Preço:
  • FREE
  • Nome do editor:
  • Ivan Korobkov
  • Site do editor:
  • http://code.google.com/u/Ivan.Korobkov/

Injetar Tag


Injetar Descrição

Injeção de dependência rápida do python Injetar é uma biblioteca de injeção de dependência rápida de python. Ele usa decoradores e descritores para referência a dependências externas e escopos (inspirados na gueza) para especificar como reutilizar objetos. Dependências podem ser referenciadas por tipos e anotações opcionais. Nenhuma configuração é necessária, mas a configuração avançada em código é possível. A maioria das outras ferramentas de injeção de dependência do Python, como PyContainer ou Python Spring, são portas de outros idiomas (Java). Portanto, eles são baseados em formas de injeção de dependência específicas para idiomas digitadas estaticamente, descritas por Martin Fowler.python não é Java. Técnicas de padrões e programação, que parecem adequadas e utilizáveis em uma língua, podem ser desajeitadas em outra. Injetar foi criado para fornecer uma maneira _pythonic_ way de injeção de dependência, utilizando funcionalidade específica de Python. A terminologia usada em injeção foi intencionalmente semelhante à Guice, no entanto, a arquitetura interna é diferente.Exemplo: Importe injetado@Inject.appscopeeclass config (objeto): PassClass A (Object): PassClass B (Object): PassClass C (Object): config = inject.attr ('config', config) a = injecject.attr ('A', A) @ inject.param ('B', B): def __init __ (self, b): self.b = bc = C () Aqui estão algumas características principais de "injetar": · Rápido, apenas 2-3 vezes mais lento que a instanciação direta. · Maneira normal de objetos instanciantes, classe (* args, ** kwargs). · Injetando argumentos em funções e métodos. · Referenciando dependências por tipos e anotações opcionais. · Encadernação a chamadas, casos e métodos não ligados (veja invóleadores). · Solicitar middleware do escopo para aplicações WSGI e Django (requer Python2,5 +). · Nenhuma configuração necessária. Configuração flexível avançada possível: · Injector.bind (Classe, To = Class2) · Injector.bind (banco de dados, anotação = 'usuário', to = usersDatabase, escopo = appscope) · Injector.bind ('app_started_at', to = datetime.now ()) · Injector.bind ('some_var', to = class.unbound_method) Dois métodos de injeção, descritor e decoração: Classe My (Object): · Attr = inject.attr ('Attr', Class2) @ inject.param ('param', classe2): def myfunc (param): · passar Suporte para a herança passando injetar.Super como o valor padrão do Kwarg: Classe My (Object): · @ Inject.param ('param1', classe1) def __init __ (auto, param1): · Self.Param1 = param1 classe my2 (meu): · @ Inject.param ('param2', classe2) def __init __ (auto, param2, param1 = injetar.Super): · Super (My2, Auto) .__ Init __ (param1 = param1) · Self.Param2 = param2 Invóleas para chamar métodos não ligados (Cool para os ouvintes): Classe My (Object): def get_data (auto): · passar · Crie um invocador, que chama um método não ligado. · Invoker = inject.invoker (my.get_data) · Data = invocer () · Encadecer diretamente a um método não ligado. · @ Inject.param ('Data', my.get_data) def func (dados): · passar · Injeções parciais, quando apenas alguns argumentos são injetados. · @ Inject.param ('logger', logger) Def mylog (msg, logger): · passar · Mylog ('minha mensagem') · Escopos: Aplicação (Singleton), solicitação, Noscópio. Controlador de classe (objeto): · Session = inject.attr ('sessão', sessão, escopo = reqscope) · Ou em configuração · Injector.bind (sessão, to = sessão, escopo = reqscope) · Ou definir o escopo padrão · @Reqscope. sessão de classe (objeto): · passar · · @Appscope. DatabaseEpool da classe (objeto): · passar · Fácil integração em projetos existentes. Requisitos: · Pitão


Injetar Software Relacionado

Oaipmhscraper.

Grabs e Metadados de Sincronização de um alvo OAIPMH e armazena localmente em uma estrutura de pareamento ...

265

Download

Squawk.

ferramenta de consulta SQL e biblioteca para arquivos estáticos ...

154

Download