five.intid

Programinė įranga Screenshot:
five.intid
Programinė detalės:
Versija: 1.0.3
Įkėlimo datą: 14 Apr 15
Kūrėjas: Whit Morriss
Licencija: Nemokamai
Populiarumas: 12

Rating: 2.0/5 (Total Votes: 2)

five.intid yra Python paketas leidžia naudoti zope.intid & nbsp; (o kartu ir kiti paketai, ja remtis, pavyzdžiui, zope.keyreference) į tam Zope2 aplinkoje.
Naudojimas
Pirma, leiskite įsitikinkite OFS įrankis suteikia sąsają:
>>> Iš Products.Five.tests.testing.simplecontent importo (
... Manage_addSimpleContent)
>>> Iš zope.intid.interfaces importo IIntIds
>>> Iš five.intid importo svetainėje
>>> import five.intid.tests kaip bandymų
>>> Iš zope.interface.verify importo verifyObject
>>> Iš zope.component importo getAllUtilitiesRegisteredFor
>>> Iš zope.site.hooks importo setSite
>>> Tests.setUp (self.app)
Turinio pridėtų prieš naudingumas nebus užregistruotas (iki aiškiai paragino). Mes nustatyti kai dabar ir vėliau
& Nbsp; >>> manage_addSimpleContent (self.folder "mycont1", "Mano turinys")
& Nbsp; >>> content1 = self.folder.mycont1
five.intid.site turi patogias funkcijas pridėti, gauti ir pašalinant IntId naudingumas: add_intid, get_intid, del_intid.
Jūs galite įdiegti į konkrečią vietą naudingumas:
>>> site.add_intids (self.folder)
>>> Folder_intids = site.get_intids (self.folder)
>>> VerifyObject (IIntIds, folder_intids)
Tiesa
Galite pasakyti add_intids rasti svetainės šaknis, ir įdiegti ten. Tai bus galima visur:
>>> Site.add_intids (self.folder, findroot = True)
>>> Root_intids = site.get_intids (self.app)
>>> root_intids
<... IntIds ...>
>>> Folder_intids yra root_intids
Netikras
Ir, pagaliau, padaryti Pašalinti:
>>> Site.del_intids (self.folder, findroot = True)
>>> site.get_intids (self.app)
Traceback (naujausia skambutis paskutinis):
...
ComponentLookupError: ( ")
Prieš mes pažvelgsime intid įvykius, turime nustatyti Sankryþos kablys. Kai mes padarėme tai, kai mes prašome visų registruotų Intids, gausime iš bandymo aplanką Utility:
>>> SetSite (self.folder)
>>> Kortežas (getAllUtilitiesRegisteredFor (IIntIds))
(<... IntIds ...>)
Kai mes pridėti turinį, renginys bus atleistas pridėti keyreference minėtiems objektai komunalinių (šiuo metu, mūsų turinys ir naudingumo yra registruoti):
>>> Manage_addSimpleContent (self.folder "mycont2", "Mano turinys")
>>> Content2 = self.folder.mycont2
>>> Intid = site.get_intids (self.folder)
>>> len (intid.items ()) == 1
Tiesa
Pasirengimo esamas turinys bus pakelti keyerror jei perduota intid naudingumo:
>>> Intid.getId (content1)
Traceback (naujausia skambutis paskutinis):
...
KeyError:
Mes galime skambinti keyreferences ir gauti daiktus atgal:
>>> intid.items () [0] [1] ()

mes galime gauti objekto intid iš panašiai kaip naudingumas:
>>> Ob_id = intid.getId (content2)
ir gauti daiktą atgal, kaip tai:
>>> Intid.getObject (ob_id)

šie objektai yra aquisition įvyniojami paieška:
>>> Iš įsigijimas importo IAcquirer
>>> IAcquirer.providedBy (intid.getObject (ob_id))
Tiesa
Mes netgi galite paversti savo nesupakuotoms objektą į suvynioti objektas, sprendžiant iš tai intid, taip pat intid įrankis turėtų dirbti, net jei ji yra išpakuotas:
>>> Iš įsigijimas importo aq_base
>>> Išspręsta = intid.getObject (intid.getId (aq_base (content2)))
>>> IAcquirer.providedBy (išspręsta)
Tiesa
>>> Nesupakuotas = aq_base (intid)
>>> Unwrapped.getObject (ob_id) == išspręsta
Tiesa
>>> Unwrapped.getId (content2) == ob_id
Tiesa
Kai objektas yra pridėti ar pašalinti, pridėti abonentai ją intid naudingumo ir ugnies renginys atleistas (zope.intid.interfaces.IIntIdAddedEvent, zope.intid.interfaces.IIntIdRemovedEvent atitinkamai).
five.intid kabliai šiuos renginius išsiunčiamos kaip objektas renginiuose. Bandymai Pajungti paprastą abonentą kad patikrintų, ar intid objektas renginiai atleistas (šie įvykiai yra naudinga catalogish užduotis).
& Nbsp; >>> tests.NOTIFIED [0]
& Nbsp; " <... IntIdAddedEvent objektas ne ..."
Registravimasis ir išregistravimo objektus nesuveikia šiuos įvykius:
>>> Tests.NOTIFIED [0] = "Nėra pokyčius"
>>> Uid = intid.register (content1)
>>> Intid.getObject (uid)

>>> Tests.NOTIFIED [0]
'Jokių pokyčių'
>>> Intid.unregister (content1)
>>> Intid.getObject (uid)
Traceback (naujausia skambutis paskutinis):
...
KeyError: ...
>>> Tests.NOTIFIED [0]
'Jokių pokyčių'
Pervadinimas objektą neturėtų pažeisti objekto pervyniojimo:
& Nbsp; >>> self.setRoles (['direktorius'])
& Nbsp; >>> folder.mycont2.meta_type = "Aplankas" # Mums reikia metatype judėti
& Nbsp; >>> folder.manage_renameObject (mycont2 "," mycont_new)
& Nbsp; >>> persikėlė = intid.getObject (ob_id)
& Nbsp; >>> persikėlė
& Nbsp;
Taip pat turėtų ją juda:
& Nbsp; >>> iš OFS.Folder importo manage_addFolder
& Nbsp; >>> manage_addFolder (self.folder "folder2", "aplanke 2)
& Nbsp; >>> cut = folder.manage_cutObjects (['mycont_new'])
& Nbsp; >>> ignoruoti = folder.folder2.manage_pasteObjects (supjaustyti)
& Nbsp; >>> persikėlė = intid.getObject (ob_id)
& Nbsp; >>> persikėlė
& Nbsp;
& Nbsp; >>> moved.aq_parent
& Nbsp;
Pereikime jį atgal:
& Nbsp; >>> cut = folder.folder2.manage_cutObjects (['mycont_new'])
& Nbsp; >>> ignoruoti = folder.manage_pasteObjects (supjaustyti)
& Nbsp; >>> folder.manage_renameObject (mycont_new "," mycont2)
Mes galime sukurti objektą be įsigijimo, todėl mes galime galės pridėti intid jai:
& Nbsp; >>> iš five.intid.tests importuoti DemoPersistent
& Nbsp; >>> demo1 = DemoPersistent ()
& Nbsp; >>> demo1 .__ parent__ = self.app
& Nbsp; >>> iš zope.event importo pranešti
& Nbsp; >>> iš zope.lifecycleevent importo ObjectAddedEvent
& Nbsp; >>> pranešti (ObjectAddedEvent (demo1))
& Nbsp; >>> nowrappid = intid.getId (demo1)
& Nbsp; >>> demo1 == intid.getObject (nowrappid)
& Nbsp; Tiesa
Tai geras laikas pažvelgti keyreferences išvaizdą, didžiąją dalį šios sistemos

Kas naujo , šioje laidoje:.

  • Įsitikinkite IConnection adapteris veikia neįvyniotų patvarių daiktų. [Davisagli]

Kas naujo versijos 1.0.2:

  • Tik ignoruoti "laikinas" objektų ObjectAddedEvent atveju prižiūrėtojas. [MJ]

Kas naujo versijos 1.0.1:

  • Ignoruok "laikinas" objektus (į Plone portal_factory priemonė). [MJ]

Kas naujo , 1.0 versijoje:

  • Pašalinti paskutinį zope.app priklausomybę. [Hannosch]
  • Pašalinti intid naršyklės nuomonę. [Hannosch]
  • Modernizuoti kodą, adept su Zope 2.13. [Hannosch]

Reikalavimai :

  • Python

Kita programinė įranga kūrėjas Whit Morriss

CheesePrism
CheesePrism

20 Feb 15

Komentarai five.intid

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!