Souper

Software screenshot:
Souper
Software ətraflı:
Version: 1.0.1
Tarixi Upload: 20 Feb 15
Geliştirici: BlueDynamics Alliance
Lisenziya: Pulsuz
Məşhurluq: 4

Rating: nan/5 (Total Votes: 0)

Souper proqramçılar üçün Python vasitədir. Bu kataloq göstəricilər ilə birlikdə bağlı bir vahid saxlama təklif edir. saxlama qeydlər ümumidir. Bu ZODB israrlı pickable olduqda rekord heç bir məlumat saxlamaq mümkündür.
Souper belə Piramida və ya Plone kimi ZODB, istifadə edərək hər hansı python proqram istifadə istifadə edilə bilər.
Souper istifadə
Bir Locator təmin
Şorbalar bəzi kontekstində souper.interfaces.IStorageLocator uyğunlaşma təmin edərək baxdı olunur. Souper hər hansı bir default axtarış təmin etmir. Belə ki, ilk bir təmin etmək lazımdır. Kontekstində bəzi davamlı dict kimi instansiya kəsb edək:
>>> Zope.interface idxal icraçısı olan
>>> Zope.interface idxal Interfeys
>>> Zope.component idxal provideAdapter dən
>>> Souper.interfaces IStorageLocator idxal olan
>>> Souper.soup idxal SoupData dən
>>>implementer (IStorageLocator)
... Class StorageLocator (obyektin):
...
... Def __init __ (self kontekstində):
... Self.context = kontekstində
...
... Def storage (özünü, soup_name):
... Soup_name deyil self.context əgər:
... Self.context [soup_name] = SoupData ()
... Qaytarılması self.context [soup_name]
>>> ProvideAdapter (StorageLocator, adapts = [Interface])
Beləliklə, biz axtarış Tez adı ilə şorba yaradılması var. Adı ilə bir şorbası əldə etmək üçün asan:
>>> Souper.soup idxal get_soup dən
>>> Şorbası = get_soup (mysoup, kontekstində)
>>> Şorbası
<0x ... at souper.soup.Soup object>
Bir Kataloq Factory təmin
Sizin ehtiyacları kataloq və onun göstəriciləri asılı olaraq istifadə-hal üçün istifadə halda fərqli görünə bilər. catalog zavod bir şorba üçün bir kataloq yaratmaq üçün məsuliyyət daşıyır. Zavod souper.interfaces.ICatalogFactory həyata keçirən adlı yardım edir. şorba kimi eyni üçün kommunal adı var.
Burada repoze.catalog istifadə olunur və indekslər NodeAttributeIndexer istifadə əsas tərəfindən qeydlər haqqında məlumat daxil imkan. Xüsusi hallarda bir öz xüsusi indexers yaza bilər, lakin default bir çox vaxt gözəl:
>>> Souper.interfaces ICatalogFactory idxal olan
>>> Souper.soup idxal NodeAttributeIndexer dən
>>> Zope.component idxal provideUtility dən
>>> Repoze.catalog.catalog idxal Kataloğu'ndan
>>> Repoze.catalog.indexes.field idxal CatalogFieldIndex dən
>>> Repoze.catalog.indexes.text idxal CatalogTextIndex dən
>>> Repoze.catalog.indexes.keyword idxal CatalogKeywordIndex dən
>>>implementer (ICatalogFactory)
... Class MySoupCatalogFactory (obyektin):
...
... Def __call __ (özünü, kontekstində = None):
... Kataloqu = Catalog ()
... Userindexer = NodeAttributeIndexer (istifadəçi)
... Kataloqu [u'user '] = CatalogFieldIndex (userindexer)
... Textindexer = NodeAttributeIndexer ('text)
... Kataloqu [u'text '] = CatalogTextIndex (textindexer)
... Keywordindexer = NodeAttributeIndexer (açar sözlər)
... Kataloqu [u'keywords '] = CatalogKeywordIndex (keywordindexer)
... Geri kataloqu
>>> ProvideUtility (MySoupCatalogFactory (), name = "mysoup")
catalog zavod şorbası-daxili istifadə olunur, lakin bu gözəl işləri bir kontrol edə bilərsiniz:
>>> Catalogfactory = getUtility (ICatalogFactory, name = 'mysoup)
>>> Catalogfactory
<0x ... at MySoupCatalogFactory object>
>>> Kataloqu = catalogfactory ()
>>> Sıralanır (catalog.items ())
[(<0x ... at repoze.catalog.indexes.keyword.CatalogKeywordIndex object> u'keywords "),
(<0x ... at repoze.catalog.indexes.text.CatalogTextIndex object> u'text "),
(U'user ')]
Qeydlər əlavə
Souper.soup.Record Yuxarıda qeyd edildiyi kimi şorbası əlavə məlumatların bir və yalnız növüdür. A rekord data ehtiva atributları var:
>>> Souper.soup idxal get_soup dən
>>> Souper.soup idxal Record
>>> Şorbası = get_soup (mysoup, kontekstində)
>>> Rekord = Record ()
>>> Record.attrs ['istifadəçi'] = 'user1 "
>>> Record.attrs ['text'] = u'foo bar baz "
>>> Record.attrs ['açar sözlər'] = [u'1, u'2 "u & uuml; ']
>>> Record_id = soup.add (rekord)
May rekord digər qeydlər var. Amma index onlara bir, belə ki, adətən conatined qeydlər deyil axtarış üçün, sonra keçirmək üçün qiymətlidir xüsusi indexer lazımdır:
>>> Rekord ['subrecord'] = Record ()
>>> Rekord ['homeaddress']. Attrs ['zip'] = '6020'
>>> Rekord ['homeaddress']. Attrs ['şəhər'] = 'Innsbruck'
>>> Rekord ['homeaddress']. Attrs ['ölkə'] = 'Avstriya'
Access data
Hətta bir rekord id tərəfindən əldə edilə bilər hər hansı bir sorğu olmadan:
>>> Souper.soup idxal get_soup dən
>>> Şorbası = get_soup (mysoup, kontekstində)
>>> Rekord = soup.get (record_id)
Bütün qeydlər konteyner BTREE istifadə edərək əldə edilə bilər:
>>> Soup.data.keys () [0] == record_id
Doğru
Sorğu data
Necə repoze kataloq sorğu yaxşı rəsmiləşdirilir. Çeşidləmə də eyni işləyir. Sorğu (sonra repoze kataloq istifadə edən) şorba sorğu metodu qəbul olunur. Bu generator qaytarır:
>>> Repoze.catalog.query idxal Cih dən
>>> [Soup.query olan r r (Cih (istifadəçi ',' user1))]
[]
>>> [Soup.query olan r r (Cih (istifadəçi ',' nonexists))]
[]
Də nəticə dəsti ölçüsü almaq üçün sorğu True bir with_size = keçir. generator geri ilk maddə ölçüsü:
>>> [Soup.query olan r r (Cih (istifadəçi ',' user1), with_size-True)]
[1, ]
Böyük nəticə user optimize üçün bir qeyd, lakin yüngül obyektləri dönən generator almaq bilər edir. Records zəng alındı ​​olunur:
>>> Tənbəl = [soup.lazy olan l l (Cih ('adı', 'adı'))]
>>> Tənbəl
[<... At souper.soup.LazyRecord object>,
>>> Tənbəl [0] ()
<... At Record obyekt 'Yox'>
With_size qəbul edilir True = Burada ölçüsü çox Geneartor ilk dəyəri kimi qəbul edilir.
Rekord sil
Del hər hansı bir dict edəcəyini kimi istifadə olunur şorbası python bir rekord aradan qaldırılması üçün:
>>> Del şorbası [record_id]
Yeniden endeksle
Bir qeydlər data dəyişib sonra bir yeniden endeksle lazımdır:
>>> Record.attrs ['istifadəçi'] = 'user1 "
>>> Soup.reindex (qeydlər = [rekord])
Bəzən bir bütün məlumatları yeniden endeksle edə bilərsiniz. Sonra parametrləri olmadan adlandırmaq edib yeniden endeksle. Bu bir müddət bilər:
>>> Soup.reindex ()
Kataloq bərpa
Catalog zavodunun bir dəyişiklik edildi adətən sonra - yəni bir index əlavə edilib - a i lazım kataloq bərpa. Bu kataloq zavod tərəfindən yaradılan yeni bir cari kataloq əvəz və bütün məlumatları reindexes. Bu müddət bilər:
>>> Soup.rebuild ()
Şorbası Reset (və ya sil)
Şorba və boş bütün verileri aradan qaldırılması və aydın kataloq zəng yenidən. Diqqət: bütün məlumatlar olunur!
>>> Soup.clear ()
Quraşdırma Qeydlər
Souper node.ext.zodb istifadə etmək üçün tələb olunur. Bu beta heç bir azad var idi azad edildiyi kimi (tezliklə həyata keçiriləcək). Bu olarsa başqa github olan node.ext.zodb almaq edin pypi edin

Bu azad Yeni nədir.

  • PEP-8. [Rnix, 2012-10-16]
  • Python 2.7 dəstək. [Rnix, 2012-10-16]
  • Fix sənədlər.

tələblər

  • Python

Geliştirici digər proqram BlueDynamics Alliance

bdajax
bdajax

14 Apr 15

cone.ugm
cone.ugm

20 Feb 15

Şərh Souper

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!