Souper

Szoftver screenshot:
Souper
Szoftver adatai:
Változat: 1.0.1
Feltöltés dátuma: 20 Feb 15
Engedély: Ingyenes
Népszerűség: 4

Rating: nan/5 (Total Votes: 0)

Souper egy Python eszköz programozók. A hotel egy integrált tároló összekötözték indexek katalógusban. A rekordok a tárolás általános. Lehetőség van tárol semmilyen adatot a rekord, ha az állandó pickable a ZODB.
Souper használható használható bármilyen python alkalmazást a ZODB, mint a Piramis vagy Plone.
A Souper
Biztosítva a Kereskedő
Leves felnézett alkalmazkodva souper.interfaces.IStorageLocator bizonyos kontextusban. Souper nem nyújt alapértelmezett lokátor. Tehát először az egyik kell biztosítani. Tegyük fel, hogy összefüggésben van néhány állandó dict-szerű például:
>>> From zope.interface import kivitelezője
>>> From zope.interface import Interface
>>> From zope.component import provideAdapter
>>> From souper.interfaces importálni IStorageLocator
>>> From souper.soup import SoupData
>>>implementer (IStorageLocator)
... Class StorageLocator (tárgy):
...
... Def __init __ (self, összefüggésben):
... Self.context = összefüggésben
...
... Def tároló (self, soup_name):
... Ha soup_name nem self.context:
... Self.context [soup_name] = SoupData ()
... Cserébe self.context [soup_name]
>>> ProvideAdapter (StorageLocator, alkalmazkodik = [Interface])
Tehát van lokátor létre levesek név szerint menet közben. Most egyszerűen beszerezhet egy levest név szerint:
>>> From souper.soup import get_soup
>>> Leves = get_soup ("mysoup", összefüggésben)
>>> Leves

Biztosítva a katalógus Factory
Az igényeitől függően a katalógus és a indexek eltérhet a use-case a use-case. A katalógus gyári felelős, hogy hozzon létre egy katalógust a levest. A gyár egy elemzi segédprogram végrehajtási souper.interfaces.ICatalogFactory. A név a segédprogram kell a ugyanaz, mint a leves is.
Itt repoze.catalog használják, és hagyja, hogy az indexek hozzáférni az adatokhoz a rekordok kulcs a NodeAttributeIndexer használják. Különleges esetekben az egyik lehet írni a saját indexers, de az alapértelmezett rendben van a legtöbb időt:
>>> From souper.interfaces importálni ICatalogFactory
>>> From souper.soup import NodeAttributeIndexer
>>> From zope.component import provideUtility
>>> From repoze.catalog.catalog import Katalógus
>>> From repoze.catalog.indexes.field import CatalogFieldIndex
>>> From repoze.catalog.indexes.text import CatalogTextIndex
>>> From repoze.catalog.indexes.keyword import CatalogKeywordIndex
>>>implementer (ICatalogFactory)
... Class MySoupCatalogFactory (tárgy):
...
... Def __call __ (self, context = None):
... Katalógusa = Katalógus ()
... Userindexer = NodeAttributeIndexer ("felhasználó")
... Katalógusa [u'user '] = CatalogFieldIndex (userindexer)
... Textindexer = NodeAttributeIndexer ("szöveg")
... Katalógusa [u'text '] = CatalogTextIndex (textindexer)
... Keywordindexer = NodeAttributeIndexer ("kulcsszavak")
... Katalógusa [u'keywords '] = CatalogKeywordIndex (keywordindexer)
... Cserébe katalógusa
>>> ProvideUtility (MySoupCatalogFactory (), name = "mysoup")
A katalógus gyári használják leves-belső csak egy kivételével érdemes ellenőrizni, hogy helyesen működik:
>>> Catalogfactory = getUtility (ICatalogFactory, name = 'mysoup)
>>> Catalogfactory

>>> Katalógusa = catalogfactory ()
>>> Rendezve (catalog.items ())
[(U'keywords ", ),
(U'text ", ),
(U'user ", )]
Hozzátéve bejegyzések
A fent említettek szerint a souper.soup.Record az egyetlen típusú adatokat adunk a levest. A rekord attribútumokat tartalmazó adatok:
>>> From souper.soup import get_soup
>>> From souper.soup import Record
>>> Leves = get_soup ("mysoup", összefüggésben)
>>> Rekordot = Record ()
>>> Record.attrs ['user'] = 'user1 "
>>> Record.attrs ['text'] = u'foo bar BAZ "
>>> Record.attrs ["kulcsszavak"] = [u'1 ", u'2", u "& uuml; ']
>>> Record_id = soup.add (rekord)
Egy iratot tartalmaz egyéb nyilvántartásokat. De az index őket az egyik kellene egy egyéni indexer, így usally conatined rekordok értékes későbbi kijelző, nem keresés:
>>> Rekord ['subrecord'] = Record ()
>>> Rekord ['homeaddress']. Attrs ['zip'] = '6020'
>>> Rekord ['homeaddress']. Attrs ['város'] = 'Innsbruck "
>>> Rekord ['homeaddress']. Attrs ["ország"] = "Ausztria"
Hozzáférési adatok
Nélkül is query rekord lehet túlzás azonosító:
>>> From souper.soup import get_soup
>>> Leves = get_soup ("mysoup", összefüggésben)
>>> Rekordot = soup.get (record_id)
Minden nyilvántartások segítségével érhető kihasználva a tartályt BTree:
>>> Soup.data.keys () [0] == record_id
Igaz
Query adatok
Hogyan lehet lekérdezni a repoze katalógus dokumentált is. A rendezés ugyanúgy működik is. Lekérdezések jutnak el a levesek query módszer (mely aztán repoze katalógus). Egy generátort ad vissza:
>>> From repoze.catalog.query import Eq
>>> [R r a soup.query (EQ ("felhasználó", "user1"))]
[]
>>> [R r a soup.query (EQ ("felhasználó", "nonexists))]
[]
Hogy is kap a méret az eredmény meg átadni a with_size = Igaz, hogy a lekérdezés. Az első elem által visszaküldött generátor méretét:
>>> [R r a soup.query (EQ ("felhasználó", "user1"), with_size-True)]
[1, ]
Optimalizálása kezelése nagy eredményhalmazoknak egyik nem sikerült beolvasni a rekordot, de a generátor visszatérő könnyű tárgyakat. Records hívjuk le a hívást:
>>> Lusta = [l l soup.lazy (EQ ('name', 'name'))]
>>> Lusta
[,
>>> Lusta [0] ()

Itt a méret halad, mint első érték a geneartor is, ha with_size = true telt.
Törlés rekord
Eltávolítani a rekordot a levest python del használják, mint az egyik tenne bármilyen dict:
>>> Del leves [record_id]
Újraindexelésé
Miután a nyilvántartások adatai megváltoztak szüksége van egy újraindexelés:
>>> Record.attrs ['user'] = 'user1 "
>>> Soup.reindex (rekordok = [Record])
Néha az egyik érdemes reindex összes adatot. Aztán újraindexelésé kell meghívni paraméterek nélkül. Ez eltarthat egy darabig:
>>> Soup.reindex ()
Újjáépíteni katalógusa
Usally váltás utáni katalógusa gyári készült - azaz mintegy index adtunk - a újjáépíteni a katalógusban i szükség. Ez helyettesíti az aktuális katalógust egy újra létre a katalógusban gyár és reindexes összes adatot. Ez eltarthat, amíg:
>>> Soup.rebuild ()
Reset (vagy törölje) a levesbe
Hogy távolítsa el az összes adatot a levest és üres, és újjáépíteni a katalógusban hívást egyértelmű. Figyelem: minden adat elvész!
>>> Soup.clear ()
Telepítési megjegyzések
Ahhoz, hogy használni SOUPER node.ext.zodb van szükség. Mivel ez a béta-ben megjelent nem volt kiadás (akaratod hamarosan). Kérjük, ellenőrizze pypi, ha ott van, ellenkező esetben kérjük hozd node.ext.zodb a GitHub.

Mi az új ebben a kiadásban:

  • PEP-8. [Rnix, 2012/10/16]
  • Python 2.7 támogatása. [Rnix, 2012/10/16]
  • Fix dokumentációt.

követelmények :

  • Python

Más szoftver fejlesztő BlueDynamics Alliance

bdajax
bdajax

14 Apr 15

yafowil.plone
yafowil.plone

14 Apr 15

vdexcsv
vdexcsv

11 May 15

Hozzászólások a Souper

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