Módulo google.appengine.api.lib_config

Resumo

Um mecanismo para configuração de biblioteca.

Sempre que o código da biblioteca do App Engine precisar de um valor configurável pelo usuário, ele deverá usar o seguinte protocolo:

  1. Escolha um prefixo exclusivo para o módulo da biblioteca, por exemplo: mylib.

  2. Chame lib_config.register(prefix, mapping) com esse prefixo como o primeiro argumento e um sufixo de mapeamento dict para as funções padrão como o segundo.

  3. A função register() retorna um identificador de configuração exclusivo para este prefixo. O objeto gerenciador de configuração tem atributos que correspondem a cada um dos sufixos fornecidos no mapeamento. Chame essas funções para acessar o valor de configuração do usuário. Se o usuário não configurou uma função, a função padrão do mapeamento será chamada.

  4. Documente o nome da função e a assinatura e semântica dela.

Os usuários que querem fornecer valores de configuração devem criar um módulo chamado appengine_config.py no diretório de nível superior do aplicativo e definir funções conforme documentado por vários componentes da biblioteca do App Engine nesse módulo. Para alterar a configuração, edite o arquivo e reimplante o aplicativo. Ao usar o SDK, nenhuma reimplementação é necessária. O servidor de desenvolvimento selecionará as alterações na próxima vez que manipular uma solicitação.

Bibliotecas de terceiros também podem usar esse mecanismo. Para uso casual, chamar o método register() com um prefixo exclusivo é aceitável. Para bibliotecas mais complexas, no entanto, você deve instanciar uma nova instância LibConfigRegistry que usa um nome de módulo diferente.

Exemplo do arquivo appengine_config.py:

from somewhere import MyMiddleWareClass

def mylib_add_middleware(app):
  app = MyMiddleWareClass(app)
  return app

Exemplo de uso da biblioteca:

from google.appengine.api import lib_config

config_handle = lib_config.register(
    'mylib',
    {'add_middleware': lambda app: app})

def add_middleware(app):
  return config_handle.add_middleware(app)

Conteúdo

class google.appengine.api.lib_config.LibConfigRegistry(modname)source

Bases: object

Um registro contendo valores de configuração da biblioteca.

initialize(import_func=function)source

Tenta importar o módulo de configuração, se ainda não foi importado.

Essa função sempre define self._module para um valor que não é None. O módulo importado (se foi importado com êxito) ou uma instância fictícia de object() (se um ImportError foi gerado) é usado. Outras exceções não são capturadas.

Quando uma instância fictícia é usada, ela também é colocada em sys.modules. Esse uso nos permite detectar quando sys.modules foi alterado (como faz o dev_appserver.py ao detectar mudanças no código-fonte) e tenta a __import__ novamente nesse caso, enquanto o ignora (para melhorar a velocidade) se nada tiver mudado.

Parâmetros

import_func: usado para injeção de dependência.

register(prefix, mapping)source

Registra um conjunto de nomes de configuração.

Parâmetros
  • prefix: um prefixo compartilhado para os nomes de configuração que estão sendo registrados. Se o prefixo não terminar em _, esse caractere será anexado.

  • mapping: um dicionário que mapeia strings de sufixo para os valores padrão.

Retorna

Uma instância de ConfigHandle.

Você pode registrar novamente o mesmo prefixo: os mapeamentos são mesclados e, para sufixos duplicados, o registro mais recente é usado.

reset()source

Descarta o módulo de configuração importado.

Se o módulo de configuração não tiver sido importado, nenhuma operação ocorre e a próxima operação será realizada.

class google.appengine.api.lib_config.ConfigHandle(prefix, registry)source

Bases: object

Um conjunto de configurações para um único módulo ou pacote de biblioteca.

Os atributos públicos de instâncias dessa classe são valores de configuração. Os atributos são calculados dinamicamente (em __getattr__()) e armazenados em cache como atributos de instância regulares.

google.appengine.api.lib_config.register(prefix, mapping)source

Registre um conjunto de configurações com o módulo de configuração padrão.

Parâmetros
  • prefix: um prefixo compartilhado para os nomes de configuração que estão sendo registrados. Se o prefixo não terminar em _, esse caractere será anexado.

  • mapping: um dicionário que mapeia strings de sufixo para os valores padrão.

Retorna

Uma instância de ConfigHandle.

google.appengine.api.lib_config.main()source

Despeja a configuração usando um gerenciador de solicitações no estilo CGI.

Coloque isso no seu arquivo app.yaml para ativar. Você pode escolher qualquer URL:

- url: /lib_config
  script: $PYTHON_LIB/google/appengine/api/lib_config.py
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2