zope.principalannotation

Szoftver screenshot:
zope.principalannotation
Szoftver adatai:
Változat: 4.0.0 Alpha 2
Feltöltés dátuma: 14 Apr 15
Engedély: Ingyenes
Népszerűség: 5

Rating: 5.0/5 (Total Votes: 1)

zope.principalannotation egy Python modul, amely megvalósítja kommentárokat zope.security megbízók. & Nbsp; Hogy világos, a fő az, az objektum, amely zope.security.interfaces.IPrincipal felület és megjegyzések az a tárgy, amely zope. annotation.interfaces.IAnnotations.
A probléma az, hogy megbízóink dinamikus, nem-perzisztens objektumok menet közben létrehozott minden biztonsági részvétel (kérésre, vagy valami), így közös jegyzet technikák, mint a AttributeAnnotations nem lehet alkalmazni rájuk.
Ez a csomag tartós tárolását fő kommentárokat, tárolására kommentárokat meg a tőke ID, valamint egy adaptert IPrincipal a IAnnotations.
PrincipalAnnotationUtility
A lényege ez a csomag a PrincipalAnnotationUtility osztály, amely tárolja a kommentárokat megbízók és lehetővé teszi, hogy őket könnyen.
Ez biztosítja a IPrincipalAnnotationUtility interface:
>>> From zope.principalannotation.interfaces importálni IPrincipalAnnotationUtility
>>> From zope.principalannotation.utility import PrincipalAnnotationUtility
>>> From zope.interface.verify import verifyObject
>>> Util = PrincipalAnnotationUtility ()
>>> VerifyObject (IPrincipalAnnotationUtility, util)
Igaz
Ez biztosítja a három módszer: getAnnotations, getAnnotationsById és hasAnnotations. Hozzunk létre egy tesztelési tőke és nézd meg ezeket a módszereket:
>>> From zope.security.testing import Principal
>>> Nadako = Principal ("nadako)
>>> Nadako.id
"Nadako"
Megnézhetjük, ha a megbízó az esetleges megjegyzéseket. Persze, ez jelenleg nem rendelkezik:
>>> Util.hasAnnotations (nadako)
Hamis
Mi lehet kapni IAnnotations objektumot elsődleges tárgya maga:
>>> Util.getAnnotations (nadako)

Vagy használja elsődleges id:
>>> Util.getAnnotationsById (nadako.id)

Menjünk az IAnnotations célja a mi fő, és játszani vele:
>>> Annots = util.getAnnotations (nadako)
>>> From zope.interface.verify import verifyObject
>>> From zope.annotation.interfaces import IAnnotations
>>> VerifyObject (IAnnotations, annots)
Igaz
Nézzük a IAnnotation szerződést:
>>> Bool (annots)
Hamis
>>> Annots ['not.here']
Traceback (legutolsó hívás utolsó):
...
KeyError: "not.here"
>>> Annots.get ("not.here") None
Igaz
>>> Annots.get ("not.here", 42)
42
Megjegyezzük, hogy a IAnnotations tárgy lesz tárolva a közüzemi csak amikor elindultunk egy kulcsot is. Ez egy egyszerű optimalizálási amely lehetővé teszi számunkra, hogy nem tárol semmilyen adatot, ha minden megteszünk azért, hogy bejelöli a presense a magyarázat. A hasAnnotations fog visszaadni True tárolása után a kulcsot a kommentárokat:
>>> Util.hasAnnotations (nadako)
Hamis
>>> Annots ['its.here'] = 'valami info "
>>> Util.hasAnnotations (nadako)
Igaz
Azt is törölje a meglévő kulcsot:
>>> Del annots ['its.here']
De nem tudjuk törölni a legfontosabb, hogy a (nem több) existant:
>>> Del annots ['its.here']
Traceback (legutolsó hívás utolsó):
...
KeyError: "its.here"
Több magyarázat közművek
Képzeld el, hogy az alkalmazás is van gyökere helyszínen objektumot a komponens registry (aka site manager), és hogy objektumnak van egy aloldal objektum saját komponenst registry, és ez az összetevő rendszerleíró gyökere összes registry, mint az alap.
Ebben az esetben szeretnénk a IAnnotations kifogásolják, hogy legyen elérhető letölteni megjegyzések a magasabb szintű segédprogramok.
Nézzük regisztrálja a közüzemi a gyökér oldalon, és hozzon létre egy aloldal saját IPrincipalAnnotationUtility:
>>> Gyökér ['util'] = util
>>> Rootsm = root.getSiteManager ()
>>> Rootsm.registerUtility (util, IPrincipalAnnotationUtility)
>>> From zope.site.folder import Folder
>>> From zope.site.site import LocalSiteManager
>>> Aloldalt = Folder ()
>>> Gyökér ['aloldalt'] = alwebhely
>>> Subsm = LocalSiteManager (alwebhely)
>>> Subsm .__ bases__ = (rootsm,)
>>> Subsite.setSiteManager (subsm)
>>> Util2 = PrincipalAnnotationUtility ()
>>> Aloldalt ['util2'] = util2
>>> Subsm.registerUtility (util2, IPrincipalAnnotationUtility)
Most hozzunk létre egy kulcsot a IAnnotations, amennyiben a root segédprogram:
>>> Annots = util.getAnnotations (nadako)
>>> Annots ['root.number'] = 42
A aloldalt segédprogram kéne a megjegyzés sikeresen:
>>> Annots2 = util2.getAnnotations (nadako)
>>> Bool (annots2)
Igaz
>>> Annots2 ['root.number']
42
Ha megvan a kulcs mind magasabb szintű feliratozással és alacsonyabb szintű is, az alacsonyabb szintű prioritást fog élvezni, de magasabb szinten vannak, nem lehet törölni vagy felülbírálja:
>>> Annots ['another.number'] = 1
>>> Annots2 ['another.number'] = 42
>>> Annots ['another.number']
1
>>> Annots2 ['another.number']
42
Ha mi törölje a kulcsot alacsonyabb szintű, akkor nem lehet törölni a magasabb szintű segédprogram:
>>> Del annots2 ['another.number']
>>> Annots ['another.number']
1
>>> Annots2 ['another.number']
1
IPrincipal -> IAnnotations adapter
Természetesen a legtöbb jó tulajdonsága, hogy mi egyszerűen alkalmazkodni a legfőbb célja, hogy IAnnotations és kap e magyarázó jegyzetek szokásos módon dokumentálni zope.annotation csomagot.
& Nbsp; >>> annots = IAnnotations (nadako)
& Nbsp; >>> annots
& Nbsp;
& Nbsp; >>> annots ['root.number']
& Nbsp; 42
Alapértelmezésben a IAnnotation illesztő az aktuális webhely segédprogram:
>>> IAnnotations (nadako) van util.getAnnotations (nadako)
Igaz
>>> From zope.site.hooks import setSite
>>> SetSite (alwebhely)
>>> IAnnotations (nadako) van util2.getAnnotations (nadako)
Igaz
Howerver, fel tudjuk használni a bináris multi-adaptert IAnnotations kell megadnia a környezeti objektum, ahonnan letölti a kommentárok segédprogram:
>>> From zope.component import getMultiAdapter
>>> Annots = getMultiAdapter ((nadako, gyökér), IAnnotations)
>>> Annots van util.getAnnotations (nadako)
Igaz
>>> Annots = getMultiAdapter ((nadako, alwebhely), IAnnotations)
>>> Annots van util2.getAnnotations (nadako)
Igaz

Mi az új ebben a kiadásban:

  • Korrigált Trove osztályozók.

Mi az új verzióban 3.6.1:

  • Javítva egy teszt hiba beágyazott helyi site manager beállítása .
  • Az eltávolított függőség zope.container.

követelmények :

  • Python

Más szoftver fejlesztő Zope Corporation and Contributors

zope.html
zope.html

14 Apr 15

cipher.session
cipher.session

20 Feb 15

cipher.background
cipher.background

20 Feb 15

zope.tales
zope.tales

14 Apr 15

Hozzászólások a zope.principalannotation

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!