dm.zope.schema

Screenshot Software:
dm.zope.schema
Szczegóły programowe:
Wersja: 2.0
Filmu: 14 Apr 15
Wywoływacz: Dieter Maurer
Licencja: Wolny
Popularność: 3

Rating: nan/5 (Total Votes: 0)

dm.zope.schema zawiera rozszerzenia dla zope.schema.
Moduły
zweryfikować
Towarzysz zope.interface.verify dla części schematu interfejsów.
Zawiera on verify_schema funkcji (iface, obj, context = Brak, check_declaration = True), który sprawdza, czy spełnia on OBJ część schematu interfejsu Iface. Pola schematu potrzebujesz, aby związany z kontekstu, zanim zostaną zatwierdzone. Kontekst określa ten kontekst i domyślnie obj. check_declaration sprawdza, obj deklaruje privide iface.
schemat
Główną treść jest wstawek klasy SchemaConfigured. Obsługuje konfigurację według części schematu interfejsów realizowanych przez SchemaConfigured klasy pochodnej. Jeśli chcesz kontrolować, z których interfejsy Schemat pochodzi, można użyć atrybutu klasy SC_SCHEMAS: jego wartość powinna być Brak (wywodzą schemat automatycznie z zaimplementowanych interfejsów), pojedynczy interfejs lub krotka interfejsów. Biorąc wyraźny kontrolę nad interfejsów służących do określenia schematu jest szczególnie ważne w przypadku Zope 2 schematu skonfigurowanych klas treści (jak ich klasa bazowa OFS.SimpleItem.SimpleItem wprowadza ogromną liczbę interfejsów, których pola prawdopodobnie nie chcą w swoim schemacie).
Klasa wstawek SchemaConfiguredEvolution zapewnia wsparcie dla rozwoju schematu dla (ZODB) trwałych obiektów. Jego __setstate__ dodaje brakujące atrybuty do obiektu tak, że można dodać nowe pola do schematu i jeszcze znaleźć wszystkie odpowiednich atrybutów poszczególnych obiektów, nawet gdy te zostały utworzone przed rozszerzeniem. Uwaga: Aby SchemaConfiguredEvolution były skuteczne, musi przyjść wcześnie w celu rezolucji metoda (MRO) (przed persistent.Persistent). Dlatego jest to oddzielne klasy, a jego funkcja nie zawarte w samej SchemaConfigured (nie może być dobre powody, aby nie SchemaConfigured późnym MRO). Jako alternatywę do stosowania SchemaConfiguredEvolution, można użyć wartości domyślne zdefiniowane na poziomie klasy nowych dziedzinach.
Od czasu do czasu, funkcje schemaitems i schemadict może być przydatne. Wyodrębnić ich część schematu specyfikacji interfejsu lub interfejsu jako odpowiednio listy id, par polowych lub słownika,.
Obiekt pole jest zamiennikiem zope.schema.Object. Ten ostatni nie ma informacji w terenie w błędu walidacji (https://bugs.launchpad.net/zope.schema/+bug/620324), który sprawia, identyfikację dotkniętych obszarach niepotrzebnie trudnych. Od czasu do czasu, ktoś chce stłumić czek, że zatwierdzone obiekt wyraźnie deklaruje zapewnia interfejs. Obiekt ma dodatkową check_declaration własności do kontroli to (domyślnie jest to prawda).
PropertyManager
Moduł ten realizuje schemat oparty OFS.PropertyManager.PropertyManager podklasy. Atrybut opisujący te _properties Nie właściwości utrzymuje się na klasy lub jej instancji, ale pochodzące z określonych (odpowiednio wdrożone) schematów. Na razie, właściwości nie może być rozszerzony na poziomie oparciu instancji (inne niż świadczenia z innego schematu).
zope.schema wykorzystuje unicode do reprezentowania tekstu. PropertyManager można w zasadzie właściwości wsparcie dla Unicode. Jednak ze względu na błąd / słabości, strona zarządzanie nieruchomościami obsługuje je poprawnie tylko wtedy, gdy management_page_charset nie jest zdefiniowana lub ma wartość UTF-8 (zwróć uwagę na wielkie litery pisowni!). Używamy właściwości Unicode domyślnie chyba management_page_charset.upper () daje wartość inną niż UTF-8. Oferujemy także klasy WorkaroundSpelling_management_page_charset do wstawionej obejścia głupi upór Zope w sprawie pisowni wielkimi literami na management_page_charset.
W tej chwili obsługiwane są następujące typy pól: Tekst, TextLine, bajty, BytesLine`, Bool, Int, Float oraz listy z typu wartości z TextLine lub BytesLine. Inne rodzaje podniesie NotImplementedError.
Moduł został wdrożony wykorzystać dm.zope.generate. Alternatywą byłaby realizacja obiektów wytwarzania energii elektrycznej w oparciu o "zope.formlib" i wykorzystania tzw form add. W zależności od doświadczenia, mogę przejść do tej alternatywy.
forma
Moduł definiuje domyślną zmienił (SchemaConfiguredEditForm) i wyświetlacz (SchemaConfiguredDisplayForm) formularze dm.zope.schema.schema.SchemaConfigured.
To zależy od zope.formlib.
widget
Zapewnia wyświetlania i edycji widżety dla pól timedelta, przyzwoite widget wyświetlacz polach Password (domyślne hasła w postaci zwykłego tekstu wyświetla) oraz wejście dla widget Hasło, które nie zmuszają Cię do dostarczania wartości hasło przy każdym edycji formularza.
To zależy od zope.app.form w starszych wersjach Zope i zope.formlib w nowszych.
z2
Schemat ten Podpakiet łączy związane i Zope 2 funkcjonalność. W nowszych wersjach Zope, to zależy od five.formlib.
forma
Moduł definiuje domyślną zmienił (SchemaConfiguredEditForm) i wyświetlacz (SchemaConfiguredDisplayForm) formularze do dm.zope.schema.schema.SchemaConfigured do stosowania w Zope 2.
To zależy od zope.formlib.
konstruktor
Moduł ten zawiera klasy formularz Dodaj SchemaConfiguredAddForm i add_form_factory fabrycznego dla pokolenia formie dodatku (o nazwie "Konstruktor" przez Zope 2) dla klas dm.zope.schema.schema.SchemaConfigured podstawie. Generowane formularz Dodaj jest zwykle stosowany w ramach parametru konstruktorów do RegisterClass.
add_form_factory ma parametry:
& Nbsp; Opis Domyślna nazwa
& Nbsp; class_ klasy do generowania formularza
& Nbsp; tytuł Tworzenie instancji class_ pokazano tytuł w formie
& Nbsp; Opis klasy _.__ doc__ dokumentację przedstawioną w formie
& Nbsp; form_class klasy formularza SchemaConfiguredAddForm do wykorzystania
add_form_factory generuje formularz zope.formlib z polami określonymi przez realizowanych schematami dm.zope.schema.schema.SchemaConfigured klasy class_.
Moduł ten jest podobny do dm.zope.generate.constructor. Jednak, to działa na SchemaConfigured klas opartych a drugi obsługuje klas PropertyManager oparte.
szablon
Zapewnia widok strony szablonu form_template zdolny do przeglądania i edycji Zope 2 schematu skonfigurowane obiekty treści w ramach standardowego interfejsu ZMI.
Przykłady
Konfiguracja: To definiuje dwa schematy S1 i S2, interfejsów I i klasy C wynikające z SchemaConfigured realizacji schematów i interfejs.
>>> Z zope.interface importu Interface narzędzi, providedBy
>>> Z zope.schema importu Int
>>>
>>> Z importu dm.zope.schema.schema SchemaConfigured
>>> Z dm.zope.schema.verify importu verify_schema
>>>
>>> Klasa S1 (interfejs): i1 = Int (default = 0)
...
>>> Klasy S2 (interfejs): i2 = Int (domyślnie = 1)
...
>>> Klasy I (interfejs):
... Def metoda (): karnet
...
>>> Klasa C (SchemaConfigured):
... narzędzia (S1, S2, I)
... Def sposób (self): karnet
...
Przypadki C mają atrybuty odpowiadające pól schematu. Jeżeli nie podano żadnych argumentów do konstruktora, dostać się w polu Domyślny jako wartości. Świadczone (słowo kluczowe!) Argumenty zastępują domyślne.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (i1 = 5)
>>> C.i1
5
Konstruktor odrzuca argumenty słów kluczowych nie zdefiniowane w schemacie, aby szybko wykryć błędy ortograficzne. Jednak ta utrudnia korzystanie z Super w hierarchii klasy dla metody __init__. Być może przyszłe wersje będą stanowić środki do kontrolowania tej kontroli.
>>> C = C (x = 5)
Traceback (najnowsze połączenie ostatni):
& Nbsp; ...
Błąd typu: Hasło schematu bez argumentów: x
Jeśli wartości pól są odpowiednie instancje C dostarczyć schematów (zweryfikowane w verify_schema). W przeciwnym razie, verify_schema zgłosi wyjątek. Przykład ten pokazuje także podstawową stosowanie verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Brak
>>> Verify_schema (S1, c)
Traceback (najnowsze połączenie ostatni):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType [("i1" RequiredMissing ())]
Możemy stworzyć zmienił (lub wyświetlacz) formularz dla naszych obiektów. Pola formularza są automatycznie tworzone dla naszych pól schematu. Klasy postaci ma metody customize_fields można zastąpić, aby zapewnić dodatkowe pola i / lub widżety.
Podobną funkcjonalność jest dostępna dla Zope 2 w podpakiety Z2.
>>> Z zope.publisher.browser importu TestRequest
>>> Z dm.zope.schema.form importu SchemaConfiguredEditForm
>>>
>>> Formularz = SchemaConfiguredEditForm (c, TestRequest ())
>>> Lista ([f .__ name__ for f in form.form_fields])
['I1 "," i2 "]

Co nowego w tym wydaniu:

  • Wsparcie Formularz
  • Zope 2 Wsparcie Konstruktor

Wymagania :

  • Python

Inne programy z deweloperem Dieter Maurer

dm.zdoc
dm.zdoc

14 Apr 15

Komentarze do dm.zope.schema

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!