five.intid

Sagteware kiekie:
five.intid
Sagteware besonderhede:
Weergawe: 1.0.3
Upload datum: 14 Apr 15
Ontwikkelaar: Whit Morriss
Lisensie: Gratis
Populariteit: 12

Rating: 2.0/5 (Total Votes: 2)

five.intid is 'n Python pakket maak dit moontlik zope.intid & nbsp te gebruik; (en gevolglik ander pakkette wat staatmaak op dit soos zope.keyreference) in 'n Zope2 omgewing.
Gebruik
Eerstens, laat maak seker dat die OVS nut bied die koppelvlak:
>>> Van Products.Five.tests.testing.simplecontent invoer (
... Manage_addSimpleContent)
>>> Van zope.intid.interfaces invoer IIntIds
>>> Van five.intid invoer webwerf
>>> Invoer five.intid.tests as toetse
>>> Van zope.interface.verify invoer verifyObject
>>> Van zope.component invoer getAllUtilitiesRegisteredFor
>>> Van zope.site.hooks invoer setSite
>>> Tests.setUp (self.app)
Inhoud bygevoeg voordat die program sal nie geregistreer word (tot uitdruklik genoem te). Ons sal 'n paar opgestel nou vir later
& Nbsp; >>> manage_addSimpleContent (self.folder, 'mycont1', "My Inhoud")
& Nbsp; >>> content1 = self.folder.mycont1
five.intid.site het gerief funksies vir die byvoeg, kry en die verwydering van 'n IntId nut: add_intid, get_intid, del_intid.
Jy kan die installering van die nut in 'n spesifieke plek:
>>> Site.add_intids (self.folder)
>>> Folder_intids = site.get_intids (self.folder)
>>> VerifyObject (IIntIds, folder_intids)
True
Jy kan jou vertel add_intids die terrein wortel te vind, en daar installeer. Dit sal oral beskikbaar wees:
>>> Site.add_intids (self.folder, findroot = True)
>>> Root_intids = site.get_intids (self.app)
>>> Root_intids
<... IntIds ...>
>>> Folder_intids is root_intids
Valse
En ten slotte, doen 'n verwyder:
>>> Site.del_intids (self.folder, findroot = True)
>>> Site.get_intids (self.app)
Stapelspoor (mees onlangse oproep laaste):
...
ComponentLookupError: (, '')
Voordat ons kyk na intid gebeure, moet ons die traversal haak te stel. Sodra ons dit gedoen het, wanneer ons vra vir alle geregistreerde Intids, ons sal die nut van die toets van die gids kry:
>>> SetSite (self.folder)
>>> Tal (getAllUtilitiesRegisteredFor (IIntIds))
(<... IntIds ...>,)
Wanneer ons inhoud, sal gebeurtenis afgedank word keyreference te voeg vir genoemde oogmerke die nuts (tans, ons inhoud en die nut geregistreer):
>>> Manage_addSimpleContent (self.folder, 'mycont2', "My Inhoud")
>>> Content2 = self.folder.mycont2
>>> Intid = site.get_intids (self.folder)
>>> Len (intid.items ()) == 1
True
Pre-bestaande inhoud sal 'n keyerror samel indien geslaag om die intid nut:
>>> Intid.getId (content1)
Stapelspoor (mees onlangse oproep laaste):
...
KeyError:
Ons kan die keyreferences noem, en kry die voorwerpe terug:
>>> Intid.items () [0] [1] ()

ons kan 'n voorwerp se intid kry van die nut soos so:
>>> Ob_id = intid.getId (content2)
en kry 'n voorwerp terug soos hierdie:
>>> Intid.getObject (ob_id)

hierdie voorwerpe is verkryging toegedraai op herwinning:
>>> Van Verkryging invoer IAcquirer
>>> IAcquirer.providedBy (intid.getObject (ob_id))
True
Ons kan selfs 'n toegedraaide voorwerp in 'n toegedraai voorwerp deur die oplossing van dit van dit is intid, ook die intid nut moet werk, selfs as dit is toegedraaide:
>>> Van Verkryging invoer aq_base
>>> Opgelos = intid.getObject (intid.getId (aq_base (content2)))
>>> IAcquirer.providedBy (opgelos)
True
>>> Toegedraaide = aq_base (intid)
>>> Unwrapped.getObject (ob_id) == opgelos
True
>>> Unwrapped.getId (content2) == ob_id
True
Wanneer 'n voorwerp bygevoeg of verwyder word, intekenaars voeg dit by die intid nut, en vuur 'n gebeurtenis is afgedank (zope.intid.interfaces.IIntIdAddedEvent, zope.intid.interfaces.IIntIdRemovedEvent onderskeidelik).
five.intid haak toe hierdie gebeure te redispatch as voorwerp gebeure. Die toetse haak 'n eenvoudige intekenaar te verifieer dat die intid voorwerp gebeure gevuur (hierdie gebeure is nuttig vir catalogish take).
& Nbsp; >>> tests.NOTIFIED [0]
& Nbsp; ' <... IntIdAddedEvent voorwerp te ... "
Registreer en ontregistreer voorwerpe nie hierdie gebeure die brand:
>>> Tests.NOTIFIED [0] = "Geen verandering"
>>> Uid = intid.register (content1)
>>> Intid.getObject (uid)

>>> Tests.NOTIFIED [0]
'Geen verandering'
>>> Intid.unregister (content1)
>>> Intid.getObject (uid)
Stapelspoor (mees onlangse oproep laaste):
...
KeyError: ...
>>> Tests.NOTIFIED [0]
'Geen verandering'
Hernoeming 'n voorwerp moet nie breek die herverpakkingscentra van die voorwerp:
& Nbsp; >>> self.setRoles (['Bestuurder])
& Nbsp; >>> folder.mycont2.meta_type = 'Folder' # Ons moet 'n metatype te beweeg
& Nbsp; >>> folder.manage_renameObject ('mycont2', 'mycont_new')
& Nbsp; >>> verskuif = intid.getObject (ob_id)
& Nbsp; >>> verskuif
& Nbsp;
Dit moet ook nie beweeg:
& Nbsp; >>> van OFS.Folder invoer manage_addFolder
& Nbsp; >>> manage_addFolder (self.folder, 'Map2', "lêergids 2")
& Nbsp; >>> cut = folder.manage_cutObjects (['mycont_new'])
& Nbsp; >>> ignoreer = folder.folder2.manage_pasteObjects (cut)
& Nbsp; >>> verskuif = intid.getObject (ob_id)
& Nbsp; >>> verskuif
& Nbsp;
& Nbsp; >>> moved.aq_parent
& Nbsp;
Kom ons beweeg dit terug:
& Nbsp; >>> cut = folder.folder2.manage_cutObjects (['mycont_new'])
& Nbsp; >>> ignoreer = folder.manage_pasteObjects (cut)
& Nbsp; >>> folder.manage_renameObject ('mycont_new', 'mycont2')
Ons kan 'n voorwerp te skep sonder die verkryging, sodat ons kan in staat wees om intid te voeg:
& Nbsp; >>> van five.intid.tests invoer DemoPersistent
& Nbsp; >>> Demo1 = DemoPersistent ()
& Nbsp; >>> Demo1 .__ parent__ = self.app
& Nbsp; >>> van zope.event invoer in kennis stel
& Nbsp; >>> van zope.lifecycleevent invoer ObjectAddedEvent
& Nbsp; >>> in kennis stel (ObjectAddedEvent (Demo1))
& Nbsp; >>> nowrappid = intid.getId (Demo1)
& Nbsp; >>> Demo1 == intid.getObject (nowrappid)
& Nbsp; True
Dit is 'n goeie tyd om 'n blik op keyreferences, die kern deel van hierdie stelsel te neem

Wat is nuut in hierdie release:.

  • Maak seker dat die IConnection adapter werk vir toegedraaide aanhoudende voorwerpe. [Davisagli]

Wat is nuut in die weergawe 1.0.2:

  • Slegs ignoreer 'tydelik' voorwerpe in die ObjectAddedEvent gebeurtenis hanteerder. [MJ]

Wat is nuut in die weergawe 1.0.1:

  • Ignoreer 'tydelik' voorwerpe (in die Plone portal_factory instrument). [MJ]

Wat is nuut in weergawe 1.0:

  • Verwyder laaste zope.app afhanklikheid. [Hannosch]
  • Verwyder intid leser uitsig. [Hannosch]
  • moderniseer kode, meesters te Zope 2.13. [Hannosch]

Vereistes :

  • Python

Ander sagteware ontwikkelaar Whit Morriss

CheesePrism
CheesePrism

20 Feb 15

Kommentaar te five.intid

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!