dolmen.relations

Programinė įranga Screenshot:
dolmen.relations
Programinė detalės:
Versija: 0.5
Įkėlimo datą: 11 May 15
Kūrėjas: Souheil Chelfouh
Licencija: Nemokamai
Populiarumas: 18

Rating: 1.5/5 (Total Votes: 2)

dolmen.relations yra plonas sluoksnis virš zc.relation, leidžiantis paprastą ir nesudėtingą įgyvendinimą standalone santykius tarp objektų.
Pradžia
Siekiant įrodyti, pakuotės funkcijomis, pirmiausia įsteigė sveikas aplinką:
>>> Iš zope importo komponento
>>> Iš zope.container.btree importo BTreeContainer
>>> Cm = component.getGlobalSiteManager ()
>>> Bandos = getRootFolder () ['bandos'] = BTreeContainer ()
Ryšiai katalogas
dolmen.relations suteikia komponentas vadinamas RelationCatalog, kad yra atsakingas už registruojant santykius ir rasti juos:
>>> Iš dolmen.relations importuoti RelationCatalog, ICatalog
>>> Sm.registerUtility (RelationCatalog (), ICatalog)
Ryšiai konteineris "
Norėdami išsaugoti santykius ir sukelia reikalingus renginius, dolmen.relations suteikia btree pakuotę:
>>> Iš dolmen.relations importo RelationsContainer
>>> santykių = bandos ['_ santykiai'] = RelationsContainer ()
turinys
Dabar mums reikia šiek tiek turinio pradėti. Testai modulis apibūdina mamutas nuolat objektą, kad mes ketiname naudoti čia:
>>> Iš dolmen.relations.tests importuoti mamutas
>>> Manfred = bandos ['Manfred'] = Mamutas ()
>>> Gunther = bandos ['Gunther'] = Mamutas ()
Norėdami būti tikri, kad mūsų daiktai bus išliko ir bus suteikta int ID, mes įsipareigojame:
>>> Importo sandoris
>>> Transaction.commit ()
Santykiai
Siūlomos dolmen.relations santykiai yra iš "A į B" tipo. Jie leidžia jums susieti šaltinio objektą su tikslinės objektą. Atliekant bandymus tikslais, mes ketiname sukurti du mamuto objektus, kurie bus naudojami kaip šaltinį ir tikslą:
>>> Iš dolmen.relations importo vertes, bet
>>> Iš zope.intid.interfaces importo IIntIds
>>> IDS = component.getUtility (IIntIds)
>>> Rcatalog = component.getUtility (ICatalog)
>>> Gunther_id = ids.getId (Gunther)
>>> Manfred_id = ids.getId (Manfred)
Paprasta santykis
Pirmasis ir Paprasčiausia Santykių tipas yra RelationValue. Šis santykis yra sukurtas šaltinio id ir tikslinės ID:
>>> Santykiai ["paprastas"] = values.RelationValue (gunther_id, manfred_id)
Galite užklausą suteikiant tikslinį ir / ar šaltinio identifikatorius santykius:
>>> rado = sąrašas (rcatalog.findRelations ({'target_id ": manfred_id}))
>>> Nerasta
[]
Santykis turi atributus, skirtus spręsti šaltinio arba tikslinę:
>>> Santykis = found.pop ()
>>> Santykis

>>> Relation.source

>>> Relation.target

Tagged santykis
Antrojo tipo atžvilgiu yra TaggedRelationValue. Jis leidžia mums pridėti prie šaltinio tikslinės pora, iš žymių kaip Unicode stygos, sąraše:
>>> santykiai ["tagged"] = values.TaggedRelationValue (
... gunther_id, manfred_id, žodžius = [u'grok "u'dolmen '])
Ryšys vis dar gali būti atgautas su pagrindinio užklausą:
>>> rado = sąrašas (rcatalog.findRelations ({'target_id ": manfred_id}))
>>> Nerasta
[, ]
Ji taip pat gali, dabar užklausti naudojant tegus vertę:
>>> rado = sąrašas (rcatalog.findRelations ({"tag": bet koks (GROK)}))
>>> Nerasta
[]
>>> rado = sąrašas (rcatalog.findRelations ({"tag": bet koks ("Drupal")}))
>>> Nerasta
[]
"Išsami santykis
Trečiojo tipo atžvilgiu yra StatefulRelationValue. Ji priduria, prie šaltinio tikslas pora, valstybinės informacijos kaip Unikodo simbolius:
>>> santykiai ["Išsami"] = values.StatefulRelationValue (
... Gunther_id, manfred_id, valstybė = u "privatus")
Ryšys vis dar gali būti atgautas su pagrindinio užklausą:
>>> rado = sąrašas (rcatalog.findRelations ({'target_id ": manfred_id}))
>>> Nerasta
[, , ]
Ji taip pat gali, dabar užklausti naudojant valstybės eilutę:
>>> rado = sąrašas (rcatalog.findRelations ({"valstybė": bet koks (privačios)}))
>>> Nerasta
[]
>>> rado = sąrašas (rcatalog.findRelations ({"valstybė": bet koks ("visuomenė")}))
>>> Nerasta
[]
Renginiai
Kai objektas yra ištrinamas, santykiai, naudojant jį kaip šaltinio arba tikslinę išbraukiami taip pat:
>>> Del bandos ['Manfred']
>>> Spausdinti sąrašas (banda ['_ santykiai']. klavišus ())
[]
>>> rado = sąrašas (rcatalog.findRelations ({'target_id ": manfred_id}))
>>> Nerasta
[]

Kas naujo , šioje laidoje:

  • Sugavimo klaidą iš intids kai ID, buvo pašalinti. Grįžti Nieko šiuo atveju.

Reikalavimai

  • Python,

Kita programinė įranga kūrėjas Souheil Chelfouh

Komentarai dolmen.relations

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