dm.zope.schema

Tela Software:
dm.zope.schema
Detalhes de Software:
Versão: 2.0
Data de upload: 14 Apr 15
Revelador: Dieter Maurer
Licença: Livre
Popularidade: 11

Rating: nan/5 (Total Votes: 0)

dm.zope.schema contém extensões para zope.schema.
Módulos
verificar
Um companheiro para zope.interface.verify para a parte de esquema de interfaces.
Ele contém o verify_schema função (iface, obj, context = None, check_declaration = True), que verifica que satisfaz obj a parte do esquema de interface de iface. Campos do esquema precisa se vinculado a um contexto para que possam ser validados. contexto especifica neste contexto e padrões de obj. check_declaration cheques que obj declara privide iface.
esquema
O conteúdo principal é a classe mixin SchemaConfigured. Ele suporta configuração de acordo com a parte do esquema das interfaces implementadas pela classe derivada SchemaConfigured. Se você quiser controlar a partir do qual a interface que o esquema é derivada, você pode usar o atributo de classe SC_SCHEMAS: seu valor deve ser None (derivar esquema automaticamente a partir das interfaces implementadas), de uma única interface ou uma tupla de interfaces. Tomando o controle explícito sobre as interfaces utilizadas para determinar o esquema é especialmente importante para Zope 2 esquema classes de conteúdo configurados (como seu OFS.SimpleItem.SimpleItem classe base implementa um grande número de interfaces cujos campos você provavelmente não quer em seu esquema).
O SchemaConfiguredEvolution classe mixin fornece suporte para a evolução do esquema para (ZODB) objetos persistentes. Sua __setstate__ acrescenta faltando atributos para o objeto, que você pode adicionar novos campos para o seu esquema e ainda encontrar todos os atributos correspondentes nos respectivos objetos, mesmo quando aqueles tenham sido criados antes da extensão. Nota: para que SchemaConfiguredEvolution para ser eficaz, ela deve vir no início da ordem de resolução método (MRO) (antes persistent.Persistent). É por isso que é uma classe separada e sua característica não incluída no próprio SchemaConfigured (pode haver boas razões para ter SchemaConfigured tarde da MRO). Como uma alternativa ao uso de SchemaConfiguredEvolution, é possível utilizar os valores por defeito definidos ao nível da classe de novos campos.
Ocasionalmente, funções schemaitems e schemadict pode ser útil. Eles extrair a parte do esquema de uma interface ou interface de especificação como uma lista de id, pares de campo ou um dicionário, respectivamente.
O objeto do campo é um substituto para zope.schema.Object. Este último não tem informações de campo em erros de validação (https://bugs.launchpad.net/zope.schema/+bug/620324) que torna a identificação dos campos afetados desnecessariamente difíceis. Ocasionalmente, quer para suprimir a verificação de que um objecto validado declara explicitamente para fornecer a interface. Objeto tem o check_declaration propriedade adicional para controlar esta (o padrão é True).
PropertyManager
Este módulo implementa um esquema baseado OFS.PropertyManager.PropertyManager subclasse. Os _properties atributo descrevendo as propriedades não é mantido sobre a classe ou as suas instâncias, mas derivada das previstas (respectivamente) implementados esquemas. Para o momento, as propriedades não pode ser estendido em um nível baseado instância (que não pela prestação de um outro esquema).
zope.schema usa unicode para representar texto. PropertyManager pode em propriedades suporte a Unicode princípio. No entanto, devido a um bug / fraqueza, a página de gerenciamento de propriedade manipula-los corretamente só, quando management_page_charset não está definido ou tem valor UTF-8 (note o caso ortografia superior!). Nós usamos propriedades Unicode por padrão, a menos que management_page_charset.upper () retorna um valor diferente de UTF-8. Nós também fornecemos um WorkaroundSpelling_management_page_charset classe mixin para contornar insistência estúpida do Zope em caso ortografia superior para management_page_charset.
Para o momento, os seguintes tipos de campo são suportados: Texto, TextLine, Bytes, BytesLine`, Bool, int, float e Lista com um tipo de valor de TextLine ou BytesLine. Outros tipos elevará NotImplementedError.
O módulo foi implementado para alavancar dm.zope.generate. Uma alternativa seria a implantação das instalações de geração com base na "zope.formlib" eo uso das chamadas formas add. Dependendo da experiência, posso mudar para essa alternativa.
formato
O módulo define edição padrão (SchemaConfiguredEditForm) e display (SchemaConfiguredDisplayForm) os formulários para dm.zope.schema.schema.SchemaConfigured.
Depende zope.formlib.
Widget
Fornece mostrar e editar os widgets para campos timedelta, um widget decente exposição para campos de senha (o padrão exibe senhas em texto puro) e um widget de entrada para a senha que não forçá-lo a fornecer o valor da senha sempre que você editar a forma.
Depende zope.app.form em versões mais antigas do Zope e sobre zope.formlib em mais novos.
z2
Este subpackage combina esquema relacionado e Zope 2 funcionalidade. Nas versões mais recentes do Zope, depende five.formlib.
formato
O módulo define edição padrão (SchemaConfiguredEditForm) e display (SchemaConfiguredDisplayForm) formas para dm.zope.schema.schema.SchemaConfigured para uso em Zope 2.
Depende zope.formlib.
construtor
Este módulo contém uma SchemaConfiguredAddForm classe formulário de adição e uma add_form_factory fábrica para a geração de um formulário de adição (chamado de "construtor" de Zope 2) para classes com base dm.zope.schema.schema.SchemaConfigured. O formulário de adição gerado é normalmente usado como parte do parâmetro construtores para registerClass.
add_form_factory tem os parâmetros:
& Nbsp; A inscrição nome padrão
& Nbsp; class_ a classe para gerar o formulário para
& Nbsp; título Criar instância de class_ o título mostrado na forma
& Nbsp; classe descrição _.__ doc__ a documentação mostrado na forma
& Nbsp; form_class classe de formulário SchemaConfiguredAddForm para ser usado
add_form_factory gera um formulário zope.formlib com campos definidos pelos esquemas implementados de dm.zope.schema.schema.SchemaConfigured classe class_.
Este módulo é semelhante à dm.zope.generate.constructor. No entanto, ele funciona para classes com base SchemaConfigured enquanto o último suporta classes com base PropertyManager.
modelo
Fornece o modelo form_template visualização da página capaz de visualizar e editar Zope 2 esquema configurado objetos de conteúdo dentro da interface ZMI padrão.
Exemplos
Setup: Define dois esquemas S1 e S2, uma interface I e uma classe C decorrente SchemaConfigured implementação dos esquemas e da interface.
>>> From zope.interface interface de importação, implementos, providedBy
>>> From zope.schema importação Int
>>>
>>> From importação dm.zope.schema.schema SchemaConfigured
>>> From dm.zope.schema.verify verify_schema importação
>>>
>>> Classe S1 (Interface): i1 = Int (default = 0)
...
>>> Classe S2 (Interface): i2 = Int (default = 1)
...
>>> Classe I (Interface):
... Def método (): passe
...
>>> Classe C (SchemaConfigured):
... implementos (S1, S2, I)
Método ... def (self): passe
...
Instâncias C têm atributos correspondentes aos campos do esquema. Se não houver argumentos para o construtor, que recebem o campo padrão como valor. Fornecido (palavra-chave!) Argumentos substituir os padrões.
C >>> = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (i1 = 5)
>>> C.i1
5
O construtor rejeita argumentos não definidas no esquema, a fim de detectar rapidamente erros de ortografia. No entanto, isso dificulta o uso de super-na hierarquia de classes para o método __init__. Talvez, as versões futuras irá fornecer um meio de controlar essa verificação.
C >>> = C (x = 5)
Traceback (most recent call last):
& Nbsp; ...
TypeError: argumento não palavra-chave do esquema: x
Se os valores do campo são adequadas, instâncias C fornecer os esquemas (conforme verificado pelo verify_schema). Caso contrário, verify_schema irá lançar uma exceção. Este exemplo demonstra também o uso elementar de verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = None
>>> Verify_schema (S1, c)
Traceback (most recent call last):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Podemos criar uma edição (ou display) forma para os nossos objetos. Os campos do formulário são criados automaticamente para os nossos campos do esquema. As classes de formulário tem um método customize_fields você pode substituir a fornecer campos e / ou widgets customizados.
Funcionalidade semelhante está disponível para Zope 2 na subpackage Z2.
>>> From zope.publisher.browser importação TestRequest
>>> From dm.zope.schema.form importação SchemaConfiguredEditForm
>>>
>>> Form = SchemaConfiguredEditForm (c, TestRequest ())
>>> Lista ([f .__ name__ para f em form.form_fields])
['I1', 'i2']

O que é novo nesta versão:

  • apoio formulário
  • Zope 2 apoio construtor

Requisitos :

  • Python

Outro software de desenvolvedor Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Comentário para dm.zope.schema

Comentários não encontrado
Adicionar comentário
Ligue imagens!