Souper

نرم افزار تصویر:
Souper
جزئیات نرم افزار:
نسخه: 1.0.1
ها تاریخ: 20 Feb 15
توسعه دهنده: BlueDynamics Alliance
پروانه: رایگان
محبوبیت: 4

Rating: nan/5 (Total Votes: 0)

در Souper یک ابزار پایتون برای برنامه نویسان است. این ارائه می دهد ذخیره سازی یکپارچه همراه با شاخص در کاتولوگ گره خورده است. سوابق در ذخیره سازی عمومی می باشد. ممکن است که به ذخیره هر گونه اطلاعات در یک رکورد اگر آن را pickable مداوم در ZODB است.
Souper می تواند مورد استفاده قرار گیرد در هر برنامه پایتون با استفاده از ZODB، مانند هرم و یا پلون استفاده می شود.
با استفاده از Souper
ارائه یاب
سوپ ها توسط تطبیق souper.interfaces.IStorageLocator به برخی از زمینه نگاه کرد. Souper هیچ یاب به طور پیش فرض ارائه نمی دهد. بنابراین یکی از اولین نیاز به فراهم شود. فرض زمینه برخی به عنوان مثال مانند DICT ماندگار است:
>>> از zope.interface واردات مجری
>>> از رابط واردات zope.interface
>>> از zope.component provideAdapter واردات
>>> از souper.interfaces وارد IStorageLocator
>>> از souper.soup SoupData واردات
>>>implementer (IStorageLocator)
... StorageLocator کلاس (شی):
...
... دف __init __ (خود، زمینه):
... self.context = زمینه
...
... دف ذخیره سازی (خود، soup_name):
... اگر soup_name در self.context:
... self.context [soup_name] = SoupData ()
... self.context بازگشت [soup_name]
>>> provideAdapter (StorageLocator، سازگار = [رابط])
بنابراین ما باید یاب ایجاد سوپ نام در پرواز. در حال حاضر آسان آن برای به دست آوردن یک سوپ نام:
>>> از souper.soup واردات get_soup
>>> سوپ = get_soup ('mysoup'، زمینه)
>>> سوپ
<شی souper.soup.Soup در 0x ...>
ارائه کارخانه کاتالوگ
بسته به نیازهای شما کاتالوگ و شاخص های آن ممکن است متفاوت از مصرف مورد استفاده مورد. کارخانه کاتولوگ مسئول برای ایجاد یک فروشگاه برای سوپ است. کارخانه ابزار به نام پیاده سازی souper.interfaces.ICatalogFactory است. نام ابزار به همان سوپ را داشته باشد.
در اینجا repoze.catalog استفاده شده است و به شما اجازه شاخص دسترسی به داده ها در پرونده های کلیدی NodeAttributeIndexer استفاده شده است. برای موارد خاص ممکن است فهرستی سفارشی خود را ارسال، اما یکی به طور پیش فرض در اکثر اوقات خوب است:
>>> از souper.interfaces وارد ICatalogFactory
>>> از souper.soup واردات NodeAttributeIndexer
>>> از zope.component provideUtility واردات
>>> از repoze.catalog.catalog واردات کاتالوگ
>>> از repoze.catalog.indexes.field واردات CatalogFieldIndex
>>> از repoze.catalog.indexes.text CatalogTextIndex واردات
>>> از repoze.catalog.indexes.keyword CatalogKeywordIndex واردات
>>>implementer (ICatalogFactory)
... MySoupCatalogFactory کلاس (شی):
...
... دف __call __ (خود، زمینه = هیچ):
... کاتولوگ = کاتالوگ ()
... userindexer = NodeAttributeIndexer ('کاربر')
... کاتولوگ [u'user '] = CatalogFieldIndex (userindexer)
... textindexer = NodeAttributeIndexer ('متن')
... کاتولوگ [u'text '] = CatalogTextIndex (textindexer)
... keywordindexer = NodeAttributeIndexer ('کلمات کلیدی')
... کاتولوگ [u'keywords '] = CatalogKeywordIndex (keywordindexer)
... کاتولوگ بازگشت
>>> provideUtility (MySoupCatalogFactory ()، نام = "mysoup")
کارخانه کاتولوگ فقط سوپ-داخلی استفاده می شود اما یک ممکن است بخواهید برای بررسی اگر آن را خوب کار می کند:
>>> catalogfactory = getUtility (ICatalogFactory، نام = 'mysoup')
>>> catalogfactory
<شی MySoupCatalogFactory در 0x ...>
>>> کاتولوگ = catalogfactory ()
>>> مرتب شده اند (catalog.items ())
[(u'keywords '، <شی repoze.catalog.indexes.keyword.CatalogKeywordIndex در 0x ...>)،
(u'text '، <شی repoze.catalog.indexes.text.CatalogTextIndex در 0x ...>)،
(u'user '، )]
اضافه کردن رکورد
همانطور که در بالا ذکر شد souper.soup.Record نوع یک و تنها از اطلاعات اضافه شده به سوپ است. رکورد دارای ویژگی های حاوی داده:
>>> از souper.soup واردات get_soup
>>> از souper.soup واردات ضبط
>>> سوپ = get_soup ('mysoup'، زمینه)
>>> ثبت = ضبط ()
>>> record.attrs ['کاربر'] = 'user1 "
>>> record.attrs [متن '] = u'foo نوار باز'
>>> record.attrs ['کلمات کلیدی'] = [u'1 '، u'2'، U 'و uuml؛']
>>> record_id = soup.add (رکورد)
رکورد ممکن است شامل سوابق دیگر. اما به شاخص آنها را یک به یک نمایه ساز سفارشی نیاز، پرونده تا usally conatined ارزشمند برای نمایش بعد هستند، نه برای جستجو:
>>> ثبت ['subrecord'] = ضبط ()
>>> ثبت ['homeaddress']. attrs ['فایل های فشرده'] = '6020'
>>> ثبت ['homeaddress']. attrs ['شهر'] = 'اینسبروک'
>>> ثبت ['homeaddress']. attrs ['کشور'] = 'اتریش
دسترسی به داده ها
حتی بدون هیچ پرس و جو یک رکورد را می توان با شناسه برداشته:
>>> از souper.soup واردات get_soup
>>> سوپ = get_soup ('mysoup'، زمینه)
>>> ثبت = soup.get (record_id)
همه سوابق را می توان با استفاده از استفاده از BTree ظرف دیده:
>>> soup.data.keys () [0] == record_id
درست
اطلاعات پرس و جو
چگونه به پرس و جو کاتولوگ repoze به خوبی مستند شده است. مرتب سازی همان کار بیش از حد. نمایش داده شد به سوپ روش پرس و جو گذشت (که با استفاده از آن به بعد کاتولوگ repoze). این تابع یک ژنراتور:
>>> از repoze.catalog.query واردات معادله
>>> [R برای تحقیق در soup.query (معادله ('کاربر'، 'user1'))]
[<شی ضبط 'هیچ' در ...>]
>>> [R برای تحقیق در soup.query (معادله ('کاربر'، 'nonexists'))]
[]
به همچنین اندازه در نتیجه مجموعه ای عبور with_size = واقعی به پرس و جو. گزینه اول بازگردانده شده توسط ژنراتور اندازه است:
>>> [R برای تحقیق در soup.query (معادله ('کاربر'، 'user1')، with_size-واقعی)]
[1، <ضبط شی 'هیچ' در ...>]
به منظور بهینه سازی مدیریت نتیجه بزرگ مجموعه یک ممکن است به واکشی رکورد اما یک ژنراتور بازگشت اشیاء سبک وزن نیست. سوابق در تماس برداشته:
>>> تنبل = [L برای L در soup.lazy (معادله ('نام'، 'نام'))]
>>> تنبل
[<شی souper.soup.LazyRecord در ...>،
>>> تنبل [0] ()
<ضبط شی 'هیچ' در ...>
در اینجا به اندازه است به عنوان ارزش برای اولین بار از geneartor هم گذشته اگر with_size = واقعی به تصویب می رسد.
حذف یک رکورد
برای حذف یک رکورد از پایتون سوپ دل است مانند یک مورد استفاده را بر روی هر DICT را انجام دهید:
>>> دل سوپ [record_id]
Reindex
پس از یک داده پرونده تغییر آن نیاز به یک reindex:
>>> record.attrs ['کاربر'] = 'user1 "
>>> soup.reindex (سوابق = [ثبت])
گاهی اوقات ممکن است می خواهم به reindex همه داده ها. سپس reindex تا به بدون پارامتر نامیده می شود. ممکن است مدتی طول بکشد:
>>> soup.reindex ()
بازسازی کاتولوگ
Usally بعد از یک تغییر از کاتولوگ کارخانه ساخته شده بود - یعنی برخی از شاخص اضافه شد - بازسازی از فروشگاه من مورد نیاز است. این جایگزین کاتولوگ فعلی با یکی از جدید ایجاد شده توسط کارخانه کاتولوگ و reindexes همه داده ها. ممکن است مدتی طول بکشد:
>>> soup.rebuild ()
تنظیم مجدد (یا روشن) سوپ
برای حذف تمام داده ها از سوپ و خالی و بازسازی کاتولوگ تماس روشن است. توجه: تمام اطلاعات از دست داده است!
>>> soup.clear ()
یادداشت نصب و راه اندازی
به منظور استفاده از node.ext.zodb souper مورد نیاز است. از آنجا که این بتا منتشر شد هیچ آزادی وجود دارد (به زودی انجام می شود). لطفا pypi بررسی کنید که آیا آن وجود دارد، در غیر این صورت لطفا node.ext.zodb واکشی از گیتهاب

چه جدید در این نسخه است:.

PEP-8. [rnix، 2012/10/16]
پایتون 2.7 پشتیبانی. [rnix، 2012/10/16]
رفع اسناد.

مورد نیاز:

پایتون

نرم افزار های دیگر از توسعه دهنده BlueDynamics Alliance

bdajax
bdajax

14 Apr 15

cone.ugm
cone.ugm

20 Feb 15

نظرات به Souper

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!