Módulo google.appengine.api.validation

Resumo

Ferramentas de validação para estruturas de objeto genéricas.

Esta biblioteca é usada para definir classes com atributos restritos. Os atributos são definidos na classe que os contém usando validadores. Embora os validadores possam ser definidos por qualquer cliente dessa biblioteca, vários validadores padrão são fornecidos aqui.

Os validadores podem ser qualquer item que possa ser chamado e que utilize um único parâmetro para verificação do novo valor antes de ser atribuído ao atributo. Os validadores podem modificar um valor recebido. Dessa maneira, isso é apropriado para a definição do atributo. Por exemplo, usar int como validador fará o cast de uma string formatada corretamente para um número ou, do contrário, vai gerar uma exceção. Porém, isso não é recomendado. A maneira correta de usar um validador que garante que o tipo correto é usar o validador Type.

Essa biblioteca de validação se destina principalmente ao uso com o construtor de objetos YAML. Consulte yaml_object.py.

Índice

google.appengine.api.validation.AsValidator(validator)source

Encapsule diversos tipos como instâncias de um validador.

Usado para permitir a abreviação de tipos de validador comuns. Ele converte os tipos a seguir nos validadores a seguir.

strings -> Regex type -> Type collection -> Options Validator -> Its self!

Parâmetros

validator: objeto para encapsular um validador.

Retorna

Instância do validador que encapsula o valor fornecido.

Gera

AttributeDefinitionError: se o validador não for um dos tipos descritos acima.

exception google.appengine.api.validation.AttributeDefinitionErrorsource

Bases: google.appengine.api.validation.Error

Ocorreu um erro na definição dos atributos de classe.

class google.appengine.api.validation.Deprecated(preferred, validator, default=None)source

Bases: google.appengine.api.validation.Normalized

Um campo obsoleto.

A ser usado com Preferred. Funciona apenas como um campo em Validated.

Ambos os campos funcionarão no acesso ao valor. Trata-se de um erro definir os campos obsoletos e preferenciais correspondentes.

Get(value, key, obj)source
GetWarnings(value, key, obj)source
ValidateEntirely(value, key, obj)source
exception google.appengine.api.validation.Errorsource

Bases: exceptions.Exception

Classe base de todos os erros de pacote.

class google.appengine.api.validation.Exec(default=None)source

Bases: google.appengine.api.validation.Type

Force o valor para acomodar requisitos CMD/ENTRYPOINT do Docker.

Valida se o valor é uma string e tenta modificar a string (se necessário). Dessa maneira, o comando representado se tornará PID 1 dentro do contêiner do Docker. Consulte a documentação do Docker sobre "docker kill" para mais informações: https://docs.docker.com/engine/reference/commandline/kill/

Se o comando já começar com exec ou estiver aparentemente em "exec form" (começa com [), nenhuma ação adicional será necessária. Do contrário, prefixe o comando com exec. Dessa maneira, ele se tornará PID 1 na execução.

Validate(value, key)source

Valide de acordo com o comportamento pai e force a inicialização com exec.

exception google.appengine.api.validation.MissingAttribute(message, cause=None)source

Bases: google.appengine.api.validation.ValidationError

Gerado quando um atributo obrigatório está ausente do objeto.

class google.appengine.api.validation.Normalized(default=None)source

Bases: google.appengine.api.validation.Validator

Normaliza um campo na pesquisa, mas serializa com o valor original.

Só funciona com campos em Validated.

Get(value, key, obj)source

Retorna o valor normalizado. As subclasses precisam ser modificadas.

class google.appengine.api.validation.Optional(validator, default=None)source

Bases: google.appengine.api.validation.Validator

Definição de atributos opcionais.

Os valores opcionais são atributos que podem ser definidos como None ou deixados não definidos. Todos os valores em uma classe Validated básica são definidos como None na inicialização. Deixar de atribuir a valores não opcionais resultará em um erro de validação durante a chamada de CheckInitialized.

ToValue(value)source

Converta "value" em uma coleção simplificada ou tipo básico.

Validate(value, key)source

Como opção, exija um valor.

Os validadores normais não aceitam None. Isso não aceitará nenhum em nome do validador contido.

Parâmetros
  • value: valor a ser validado como opcional

  • key: nome do campo que está sendo validado

Retorna

Nenhum, caso o valor seja None, outros resultados da validação contida.

class google.appengine.api.validation.Options(*options, **kw)source

Bases: google.appengine.api.validation.Validator

Campo limite com base em valores predeterminados.

As opções são usadas para garantir que um conjunto enumerado de valores seja o único permitido para atribuição. É possível definir aliases que mapeiam vários valores de string para um único original. Um exemplo de uso:

class ZooAnimal(validated.Class):
ATTRIBUTES = {

‘name’: str, ‘kind’: Options(‘platypus’, # No aliases

(‘rhinoceros’, [‘rhino’]), # One alias (‘canine’, (‘dog’, ‘puppy’)), # Two aliases )

Validate(value, key)source

Opções de Validate.

Retorna

Valor original do alias fornecido.

Gera

ValidationError: quando o valor não é um dos valores predefinidos.

class google.appengine.api.validation.Preferred(deprecated, validator, default=None)source

Bases: google.appengine.api.validation.Normalized

Um campo não obsoleto quando há um obsoleto.

A ser usado com Deprecated. Funciona apenas como um campo em Validated.

Ambos os campos funcionarão no acesso ao valor. Trata-se de um erro definir os campos obsoletos e preferenciais correspondentes.

Get(value, key, obj)source
ValidateEntirely(value, key, obj)source
class google.appengine.api.validation.Range(minimum, maximum, range_type=int, default=None)source

Bases: google.appengine.api.validation.Validator

Valida se números estão dentro do intervalo correto.

Teoricamente, essa classe pode ser emulada usando-se Options. No entanto, as mensagens de erro geradas com base nessa classe não serão muito inteligíveis. Essa classe faz basicamente a mesma coisa, mas conhece o intervalo inteiro pretendido.

Além disso, essa classe de intervalo dá suporte a flutuantes e outros tipos que implementam a ordinalidade.

O intervalo é inclusivo, o que significa que três é considerado no intervalo em Range(1,3).

Validate(value, key)source

Valide se o valor está dentro do intervalo.

Valide o tipo de intervalo e verifica o intervalo.

Parâmetros
  • value: valor a ser validado

  • key: nome do campo que está sendo validado

Gera
  • ValidationError: quando o valor está fora do intervalo. ValidationError quando o valor

  • não é do mesmo tipo de intervalo.

class google.appengine.api.validation.Regex(regex, string_type=unicode, default=None)source

Bases: google.appengine.api.validation.Validator

Validador de expressão regular.

O validador de expressão regular sempre converte valor em string. As correspondências precisam ser exatas. As correspondências parciais não serão validadas. Por exemplo:

class ClassDescr(Validated):
ATTRIBUTES = { ‘name’: Regex(r’[a-zA-Z_][a-zA-Z_0-9]*’),

‘parent’: Type(type), }

Como alternativa, qualquer atributo definido como uma string é automaticamente interpretado como sendo do tipo Regex. Também é possível especificar strings regex unicode. Essa abordagem é um pouco menos eficiente, mas não costuma ser significativa, a menos que se analisem grandes volumes de dados:

class ClassDescr(Validated):
ATTRIBUTES = { ‘name’: r’[a-zA-Z_][a-zA-Z_0-9]*’,

‘parent’: Type(type), }

# Isto vai gerar um ValidationError exception. my_class(name=’AName with space’, parent=AnotherClass)

Validate(value, key)source

Faz a validação de uma string em relação a uma expressão regular.

Parâmetros
  • value: string de acordo com a expressão regular

  • key: nome do campo que está sendo validado

Gera

ValidationError: quando o valor não corresponde à expressão regular ou quando o valor não corresponde ao tipo de string fornecido.

class google.appengine.api.validation.RegexStr(string_type=unicode, default=None)source

Bases: google.appengine.api.validation.Validator

Valida se uma string pode ser compilada como um regex sem erros.

Use esse validador quando o valor de um campo precisa ser um regex. Isso significa que o valor precisa ser uma string que pode ser compilada por re.compile(). O atributo acabará sendo um objeto re compilado.

ToValue(value)source

Retorna o padrão RE para esse validador.

Validate(value, key)source

Valida se a string é compilada como uma expressão regular.

Como a expressão regular pode ter sido expressada como uma string multilinha, essa função também remove novas linhas do valor.

Parâmetros
  • value: string a ser compilada como uma expressão regular

  • key: nome do campo que está sendo validado

Gera
  • ValueError quando o valor não é compilado como uma expressão regular. TypeError

  • quando o valor não corresponde ao tipo de string fornecido.

class google.appengine.api.validation.Repeated(constructor, default=None)source

Bases: google.appengine.api.validation.Validator

Validador de campo repetido.

Indica que o atributo precisa ser um valor repetido, ou seja, uma sequência. Isso adiciona validação apenas a Type(list) porque retém informações sobre o que pode ser armazenado na lista pelo uso do campo construtor.

Validate(value, key)source

Faça uma validação da sequência.

O valor precisa ser uma lista, e todos os elementos precisam ser do tipo "construtor".

Parâmetros
  • value: valor a ser validado

  • key: nome do campo que está sendo validado

Gera

ValidationError: se o valor for None, e não uma lista, ou um dos elementos for do tipo errado.

class google.appengine.api.validation.TimeValuesource

Bases: google.appengine.api.validation.Validator

Valida valores de tempo com unidades, como 1h ou 3.5d.

Validate(value, key)source

Valide um valor de tempo.

Parâmetros
  • value: valor a ser validado

  • key: nome do campo que está sendo validado

Gera

ValidationError: caso o valor não seja um valor de hora com o formato esperado.

class google.appengine.api.validation.Type(expected_type, convert=True, default=None)source

Bases: google.appengine.api.validation.Validator

Verifica se a propriedade é do tipo esperado.

Como opção, você poderá converter valor se não for do tipo esperado.

É possível especificar um campo obrigatório de um tipo específico de maneira abreviada simplesmente fornecendo o tipo. Esse método é um pouco menos eficiente do que fornecer um tipo explícito, mas não é significativo, a menos que seja analisado um grande volume de informações:

class Person(Validated):
ATTRIBUTES = {‘name’: unicode,

‘age’: int, }

No entanto, na maioria dos casos, é melhor usar as constantes de tipo:

class Person(Validated):
ATTRIBUTES = {‘name’: TypeUnicode,

‘age’: TypeInt, }

GetWarnings(value, key, obj)source
Validate(value, key)source

Valide se o valor tem o tipo correto.

Parâmetros
  • value: valor a ser validado

  • key: nome do campo que está sendo validado

Retorna

Valor se o valor for do tipo correto. O valor será convertido no tipo correto se Validator estiver configurado para isso.

Gera
  • MissingAttribute: se o valor for None e o tipo esperado não for NoneType.

  • ValidationError: se o valor não for do tipo certo e o validador estiver configurado para não converter ou não puder converter.

class google.appengine.api.validation.Validated(**attributes)source

Bases: google.appengine.api.validation.ValidatedBase

Classe base para classes que exigem validação.

Uma classe que pretende usar campos validados precisa se subclassificar com base nessa classe. Cada classe precisa definir uma variável de classe "ATTRIBUTES" que precisa ser um mapa do nome do atributo para o validador. Por exemplo:

class Story(Validated):
ATTRIBUTES = {‘title’: Type(str),

‘authors’: Repeated(Type(str)), ‘isbn’: Optional(Type(str)), ‘pages’: Type(int), }

Os atributos não listados em ATTRIBUTES funcionam normalmente e não são validados na atribuição.

ATTRIBUTES = None
CheckInitialized()source

Verifica se todos os campos obrigatórios foram inicializados.

Como uma instância de Validated é iniciada em um estado não inicializado, às vezes é necessário verificar se ela foi totalmente inicializada. O principal problema que isso resolve é como validar se uma instância tem todos os campos obrigatórios definidos. Por padrão, as classes Validator não permitem None, mas todos os atributos são inicializados como None quando instanciados.

Gera
  • Exceção relevante para o tipo de validação. O tipo da exceção

  • é determinado pelo validador. Normalmente, ele será ValueError ou

  • TypeError.

Get(key)source

Recebe um único valor na instância Validated.

Esse método só pode ser usado para recuperar atributos validados.

Parâmetros

key: o nome dos atributos

Gera

ValidationError quando nenhum atributo validado existe na classe.

GetUnnormalized(key)source

Recebe um único valor na instância Validated, sem normalização.

classmethod GetValidator(key)source

Receba com segurança a definição de atributo subjacente como um Validator.

Parâmetros

key: nome do atributo a ser recebido.

Retorna

Validador associado à chave ou valor de atributo encapsulado em um validador.

Gera

ValidationError: se nenhum atributo assim existir.

GetWarnings()source
Set(key, value)source

Defina um único valor na instância Validated.

Esse método só pode ser usado para atribuir atributos validados.

Parâmetros
  • key: o nome dos atributos

  • value: o valor a ser definido

Gera

ValidationError quando nenhum atributo validado existe na classe.

ToDict()source

Converte objeto Validated em um dicionário.

Transfere de maneira recursiva todos os elementos e converte tudo em coleções simplificadas.

Retorna

Um dict de todos os atributos definidos nessa classe ATTRIBUTES mapeada para o valor. Essa estrutura é recursiva nesses objetos Validated referenciados por esse objeto e em listas também convertidas em dicts.

class google.appengine.api.validation.ValidatedBasesource

Bases: object

Classe base de todos os objetos validados.

CheckInitialized()source

Verifica se todos os campos obrigatórios foram inicializados.

Essa função será chamada depois que todos os atributos tiverem sido verificados para atestar todas as restrições de nível superior, por exemplo, analisando se todos os atributos obrigatórios estão presentes.

As subclasses precisam substituir essa função e geram uma exceção para quaisquer erros.

classmethod GetValidator(key)source

Receba com segurança o Validator correspondente à chave fornecida.

Essa função precisa ser substituída por subclasses

Parâmetros

key: o atributo ou o item para receber um validador.

Retorna

Validador associado à chave ou ao atributo.

Gera

ValidationError: caso a chave solicitada seja incorreta.

GetWarnings()source

Retorne todos os avisos recebidos com os campos associados deles.

Retorna

Uma lista de tuplas de (dotted_field, warning), ambas as strings.

Set(key, value)source

Defina um único valor na instância Validated.

Esse método precisa ser substituído por subclasses.

Esse método só pode ser usado para designar atributos/itens validados.

Parâmetros
  • key: o nome dos atributos

  • value: o valor a ser definido

Gera

ValidationError: quando nenhum atributo validado existe na classe.

SetMultiple(attributes)source

Defina vários valores na instância Validated.

Todos os atributos serão validados antes de serem definidos.

Parâmetros

attributes: um dict de atributos/itens a serem definidos.

Gera

ValidationError: quando nenhum atributo validado existe na classe.

ToDict()source

Converta o objeto ValidatedBase em um dicionário.

Transfere de maneira recursiva todos os elementos e converte tudo em coleções simplificadas.

As subclasses precisam substituir esse método.

Retorna

Um dicionário que mapeia todos os atributos para valores simples ou coleções.

ToYAML()source

Imprima o objeto validado como YAML simplificado.

Retorna

Objeto como uma string YAML simplificada compatível com a análise que usa o SafeLoader.

class google.appengine.api.validation.ValidatedDict(**kwds)source

Bases: google.appengine.api.validation.ValidatedBase, dict

Classe base para dicionários validados.

Você pode controlar as chaves e os valores permitidos no dicionário definindo KEY_VALIDATOR e VALUE_VALIDATOR como subclasses de Validator (ou coisas que podem ser interpretadas como validadores. Consulte AsValidator.).

Por exemplo, se quisesse que apenas chaves em maiúsculas fossem mapeadas para inteiros, você poderia fazer:

class CapitalizedIntegerDict(ValidatedDict):

KEY_VALIDATOR = Regex(‘[A-Z].*’) VALUE_VALIDATOR = int # isso é interpretado como Type(int)

O seguinte código resultaria em um erro:

my_dict = CapitalizedIntegerDict() my_dict[‘lowercase’] = 5 # Gera uma exceção de validação

Você pode aninhar livremente Validated e ValidatedDict dentro um do outro:

class MasterObject(Validated):

ATTRIBUTES = {‘paramdict’: CapitalizedIntegerDict}

Pode ser usado para analisar o seguinte yaml:
paramdict:

ArbitraryKey: 323 AnotherArbitraryKey: 9931

classmethod GetValidator(key)source

Verifique a chave em busca de validade e retorne um validador de valor correspondente.

Parâmetros

key: a chave que corresponderá ao validador que estamos retornando.

GetWarnings()source
KEY_VALIDATOR = None
Set(key, value)source

Defina um único valor na instância Validated.

Esse método verifica se uma determinada chave e um determinado valor são válidos e, caso positivo, coloca o item nesse dicionário.

Parâmetros
  • key: o nome dos atributos

  • value: o valor a ser definido

Gera

ValidationError: quando nenhum atributo validado existe na classe.

ToDict()source

Converta o objeto ValidatedBase em um dicionário.

Transfere de maneira recursiva todos os elementos e converte tudo em coleções simplificadas.

As subclasses precisam substituir esse método.

Retorna

Um dicionário que mapeia todos os atributos para valores simples ou coleções.

VALUE_VALIDATOR = None
setdefault(key, value=None)source

Intercepte setdefaultss para garantir que todos os pares chave/valor sejam válidos.

Consulte a documentação de setdefault sobre dict para detalhes de uso.

Gera
  • ValidationError: se a chave especificada for incorreta ou o

  • valor for inválido.

update(other, **kwds)source

Intercepte atualizações para garantir que todos os pares chave/valor sejam válidos.

Consulte a documentação de atualização sobre dict para detalhes de uso.

Gera

ValidationError: caso alguma das chaves especificadas seja incorreta ou os valores sejam inválidos.

exception google.appengine.api.validation.ValidationError(message, cause=None)source

Bases: google.appengine.api.validation.Error

Classe base para gerar exceções durante a validação.

class google.appengine.api.validation.Validator(default=None)source

Bases: object

Classe base do validador.

É possível usar qualquer item que possa ser chamado como um validador, mas essa classe engloba o caso em que um validador específico precisa manter um estado ou uma configuração em especial.

Para implementar a subclasse Validator, substitua o método de validação.

Essa classe tem permissão para alterar o valor final definido como o atributo, caso haja uma maneira razoável de realizar a conversão.

GetWarnings(value, key, obj)source

Retorne todos os avisos neste atributo.

Valida o valor vendo coisas que não sejam problemas fatais.

Parâmetros
  • value: valor a ser validado

  • key: nome do campo que está sendo validado

  • obj: o objeto a ser validado

Retorna

Uma lista de tuplas (context, warning) em que:
  • context é o campo (ou caminho de campo pontilhado, caso seja um subcampo);

  • warning é o texto de aviso de string.

ToValue(value)source

Converta "value" em uma coleção simplificada ou tipo básico.

As subclasses de Validator precisam modificar esse método quando a representação despejada de "value" não seja simplesmente <type>(value) (por exemplo, um regex).

Parâmetros

value: um objeto do mesmo tipo que foi retornado de Validate().

Retorna

Uma instância de um tipo interno (por exemplo, int, str, dict etc.). Por padrão, ele retorna "valor" não modificado.

Validate(value, key='???')source

Valide esse campo. Modifique para personalizar o comportamento da subclasse.

Parâmetros
  • value: valor a ser validado

  • key: nome do campo que está sendo validado

Retorna

Valor, caso o valor seja válido, ou uma representação válida de valor.

ValidateEntirely(value, key, obj)source

Valide esse campo em relação a outros. Modifique para personalizar em subclasses.

Por padrão, chama Validate(value, key). Como ValidateEntirely usa todo o objeto em que o campo relevante está definido, os validadores que usam ValidateEntirely só podem funcionar em subclasses específicas de ValidatedBase, como Validated ou ValidatedDict.

Parâmetros
  • value: valor a ser validado

  • key: nome do campo que está sendo validado

  • obj: o objeto a ser validado

Retorna

Valor, caso o valor seja válido, ou uma representação válida de valor.

expected_type

alias de object

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2