Pyrantライブラリのゼロファーストバージョンが静かに、そして
いつの間にかリリースされました 。 Pythonic Tyrant。
Pyrantは、Tokyo CabinetのネットワークインターフェイスであるTokyo Tyrantの完全なPythonハーネスです。
Tokyo Cabinetは、最新の軽量で柔軟性のある超二重データウェアハウス(
DBM )です。 最も単純なキー/値と「テーブル」、またはむしろドキュメント指向の両方を含む、いくつかのタイプのデータベースをサポートします。 後者は、東京をCouchDB、MongoDBなどの素晴らしい製品と同等のものにしますが、TC / TTははるかに単純で簡単で、したがって高速です。 さらに、文字列と数値を区別して、非常に複雑なデータクエリ(
演算子の
リストを参照)をサポートします。 また、東京キャビネットでは、Luaで拡張機能を作成できます。
また、
PyModels ! はい、Pyrant + PyModelsはDjango ORMと非常によく似ています。 数百回だけ簡単に:)
Pyrantの使用例:
$ ttserver test.tct&
$ python
>>>ピラントをインポート
>>> t = pyrant.Tyrant()
>>> t.query
[]
>>> t ['guido'] = {'name': 'Guido'、 'age':53}
>>> t ['larry'] = {'name': 'Larry'、 'age':55}
>>> t.query.filter(age__gt = 53)
[(u'guido '、{u'name':u'Guido '、u'age':u'53 '})]
>>> t.query.filter(name__matches = '^。+ ry $')
[(u'larry '、{u'name':u'Larry '、u'age':u'55 '})]
>>> guys = t.query.filter(name = 'Guido')| t.query.filter(name = 'Larry')
>>> guys.columns( 'age')
[{u'age ':u'53'}、{u'age ':u'55'}]
ここでは、数字が文字列として格納されていることがわかります(ただし、数字で選択して並べ替えることができます)。 前述のPyModelsライブラリを使用すると、必要に応じて着信値と発信値を自動的に処理できます。また、選択結果をモデルインスタンスでラップするため、最終的にすべてが可能な限り便利になります。
>>> storage = Storage()#Pyrantを使用
>>>クラスPerson(モデル):
... name =プロパティ()
...年齢=数()
... def __unicode __(自己):
... self.nameを返します
>>> q = Person.query(ストレージ).filter(name__contains = 'G')
>>> guido = q [0]
>>> guido
<パーソン・グイド>
>>> guido.age
53
_________
注:
* Pyrant + PyModelsは確かにDjango ORMの代替品ですが、特効薬はありません。 一緒に暮らしましょう。 すべてのタイプのデータベース、団結。 =)
UPD:モデルの名前がPyModelsに変更され、トピックが調整されました。