Souper

Software screenshot:
Souper
Rincian Software:
Versi: 1.0.1
Tanggal Upload: 20 Feb 15
Lisensi: Gratis
Popularitas: 4

Rating: nan/5 (Total Votes: 0)

Souper adalah alat Python untuk programmer. Ini menawarkan penyimpanan terpadu diikat dengan indeks dalam katalog. Catatan dalam penyimpanan yang generik. Hal ini dimungkinkan untuk menyimpan data pada catatan jika pickable terus-menerus di ZODB.
Souper dapat digunakan digunakan dalam aplikasi python menggunakan ZODB, seperti Pyramid atau Plone.
Menggunakan Souper
Menyediakan Locator sebuah
Makanan yang mendongak dengan mengadaptasi souper.interfaces.IStorageLocator beberapa konteks. Souper tidak menyediakan locator default. Jadi yang pertama harus disediakan. Mari kita asumsikan konteks beberapa gigih dict seperti misalnya:
>>> Dari zope.interface impor pelaksana
>>> Dari zope.interface impor Antarmuka
>>> Dari zope.component impor provideAdapter
>>> Dari souper.interfaces impor IStorageLocator
>>> Dari souper.soup SoupData impor
>>>implementer (IStorageLocator)
... Kelas StorageLocator (object):
...
... Def __init __ (self, konteks):
... Self.context = konteks
...
... Def penyimpanan (self, soup_name):
... Jika soup_name tidak self.context:
... Self.context [soup_name] = SoupData ()
... Kembali self.context [soup_name]
>>> ProvideAdapter (StorageLocator, menyesuaikan = [Antarmuka])
Jadi kita memiliki locator membuat sup dengan nama dengan cepat. Sekarang mudah untuk mendapatkan sup dengan nama:
>>> Dari souper.soup impor get_soup
>>> Sup = get_soup ('mysoup', konteks)
>>> Sup

Menyediakan Katalog Pabrik
Tergantung pada kebutuhan Anda katalog dan indeks yang mungkin terlihat berbeda dari penggunaan-kasus untuk menggunakan kasus. Pabrik Katalog bertanggung jawab untuk membuat katalog untuk sup. Pabrik adalah utilitas bernama menerapkan souper.interfaces.ICatalogFactory. Nama utilitas harus yang sama seperti sup miliki.
Berikut repoze.catalog digunakan dan membiarkan indeks mengakses data pada catatan dengan kunci NodeAttributeIndexer digunakan. Untuk kasus-kasus khusus yang dapat menulis pengindeks kustom, tapi yang standar baik-baik saja sebagian besar waktu:
>>> Dari souper.interfaces impor ICatalogFactory
>>> Dari souper.soup impor NodeAttributeIndexer
>>> Dari zope.component impor provideUtility
>>> Dari repoze.catalog.catalog impor Katalog
>>> Dari repoze.catalog.indexes.field impor CatalogFieldIndex
>>> Dari repoze.catalog.indexes.text impor CatalogTextIndex
>>> Dari repoze.catalog.indexes.keyword impor CatalogKeywordIndex
>>>implementer (ICatalogFactory)
... Kelas MySoupCatalogFactory (object):
...
... Def __call __ (self, context = None):
... Katalog = Katalog ()
... Userindexer = NodeAttributeIndexer ('user')
... Katalog [u'user '] = CatalogFieldIndex (userindexer)
... Textindexer = NodeAttributeIndexer ('text')
... Katalog [u'text '] = CatalogTextIndex (textindexer)
... Keywordindexer = NodeAttributeIndexer ('kata kunci')
... Katalog [u'keywords '] = CatalogKeywordIndex (keywordindexer)
... Katalog kembali
>>> ProvideUtility (MySoupCatalogFactory (), name = "mysoup")
Pabrik Katalog digunakan sup-internal saja tapi mungkin ingin memeriksa apakah bekerja dengan baik:
>>> Catalogfactory = getUtility (ICatalogFactory, nama = 'mysoup')
>>> Catalogfactory

>>> Katalog = catalogfactory ()
>>> Diurutkan (catalog.items ())
[(U'keywords ', ),
(U'text ', ),
(U'user ', )]
Menambahkan catatan
Seperti disebutkan di atas souper.soup.Record adalah satu-satunya jenis data yang ditambahkan ke dalam sup. A record memiliki atribut yang berisi data:
>>> Dari souper.soup impor get_soup
>>> Dari souper.soup impor Rekam
>>> Sup = get_soup ('mysoup', konteks)
>>> Record = Record ()
>>> Record.attrs ['user'] = 'user1'
>>> Record.attrs ['text'] = u'foo bar baz '
>>> Record.attrs ['kata kunci'] = [u'1 ', u'2', u '& uuml;']
>>> Record_id = soup.add (record)
Sebuah catatan mungkin berisi catatan lainnya. Tetapi untuk indeks mereka satu akan membutuhkan pengindeks kustom, catatan sehingga anada kan conatined berharga untuk ditampilkan nanti, bukan untuk mencari:
>>> Record ['subrecord'] = Record ()
>>> Record ['homeAddress']. Attrs ['zip'] = '6020'
>>> Record ['homeAddress']. Attrs ['kota'] = 'Innsbruck'
>>> Record ['homeAddress']. Attrs ['negara'] = 'Austria'
Akses data
Bahkan tanpa permintaan catatan dapat diambil dengan id:
>>> Dari souper.soup impor get_soup
>>> Sup = get_soup ('mysoup', konteks)
>>> Record = soup.get (record_id)
Semua catatan dapat diakses menggunakan memanfaatkan btree kontainer:
>>> Soup.data.keys () [0] == record_id
Benar
Data Query
Bagaimana query katalog repoze didokumentasikan dengan baik. Sorting bekerja sama juga. Query dikirimkan ke sup metode query (yang menggunakan kemudian katalog repoze). Ia mengembalikan generator:
>>> Dari repoze.catalog.query impor Persamaan
>>> [R untuk r di soup.query (Persamaan ('user', 'user1'))]
[]
>>> [R untuk r di soup.query (Persamaan ('user', 'nonexists'))]
[]
Untuk juga mendapatkan ukuran hasil set lulus with_size = Sesuai dengan permintaan. Item pertama dikembalikan oleh generator adalah ukuran:
>>> [R untuk r di soup.query (Persamaan ('user', 'user1'), with_size-Benar)]
[1, ]
Untuk mengoptimalkan penanganan hasil besar set satu mungkin tidak untuk mengambil catatan tapi generator kembali benda-benda ringan. Catatan yang diambil pada panggilan:
>>> Malas = [l untuk l di soup.lazy (Persamaan ('nama', 'nama'))]
>>> Malas
[,
>>> Malas [0] ()

Berikut ukuran dilewatkan sebagai nilai pertama dari geneartor juga jika with_size = Benar dilewatkan.
Menghapus catatan
Untuk menghapus catatan dari python sup del digunakan seperti orang akan lakukan pada dict setiap:
>>> Del sup [record_id]
Isi nama baru kotak
Setelah data catatan berubah perlu Isi nama baru kotak a:
>>> Record.attrs ['user'] = 'user1'
>>> Soup.reindex (catatan = [catatan])
Kadang-kadang mungkin ingin Reindex semua data. Kemudian Reindex telah dipanggil tanpa parameter. Mungkin diperlukan beberapa saat:
>>> Soup.reindex ()
Rebuild katalog
Biasanya hal setelah perubahan pabrik katalog dibuat - yaitu beberapa indeks ditambahkan - membangun kembali dari katalog yang saya butuhkan. Ia menggantikan katalog saat ini dengan yang baru yang diciptakan oleh pabrik katalog dan reindexes semua data. Mungkin diperlukan beberapa saat:
>>> Soup.rebuild ()
Ulang (atau menghapus) sup
Untuk menghapus semua data dari sup dan kosong dan membangun kembali panggilan katalog jelas. Perhatian: semua data hilang!
>>> Soup.clear ()
Catatan Instalasi
Untuk menggunakan node.ext.zodb souper diperlukan. Beta ini dirilis tidak ada rilis (akan dilakukan segera). Silakan periksa pypi jika ada, jika tidak silahkan mengambil node.ext.zodb dari github

Apa yang baru dalam rilis ini:.

  • PEP-8. [Rnix, 2012/10/16]
  • Python 2.7 Dukungan. [Rnix, 2012/10/16]
  • dokumentasi Fix
  • .

Persyaratan :

  • Python

Perangkat lunak lain dari pengembang BlueDynamics Alliance

cone.ugm
cone.ugm

20 Feb 15

lineage.registry
lineage.registry

14 Apr 15

vdexcsv
vdexcsv

11 May 15

Komentar untuk Souper

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!