プロローグ
私の仕事では、時々、このツールまたはそのツールの動作を変更したいという要望があります:使いやすくする、APIをより透明にするなど。これは、Redisをストレージとして使用するプロジェクトを継承したときに起こりました。 間違いなく、PythonにはRedisとの便利な作業のための十分なライブラリがありますが、これはキーと値のストレージであることを思い出し、通常のPython辞書(dict) 。
代わりに
>>> redis_obj.exist(key)
使用する
>>> key in redis_obj
習慣的な割り当てでオブジェクトを保存します。
>>> redis_obj['Planets'] = ['Mercury', 'Venus', 'Earth', 'Mars']
そして独裁者が生まれました。 独裁者は、Redisインターフェイスをユーザーから隠すことで、dictクラスのメソッドを模倣します。
設置
インストールは非常に簡単です。多くのPythonライブラリのように、Pypiで利用可能です
$ pip install dictator
MITは、GitHubのストレージに使用するソースコードをライセンスしました。
使用する
Dictatorの使用は非常に簡単ですが、オブジェクトの初期化はまだ辞書とは異なります(接続先を知る必要があります)。
>>> dc = Dictator(host='localhost', port=6379, db=0)
さらに、作成したオブジェクトを通常の方法で操作できます。
.set(key, value)
>>> dc.set('Planets', ['Mercury', 'Venus', 'Earth']) >>> dc['Stars'] = ['Sun']
.get(key)
>>> dc['Stars'] ['Sun'] >>> dc.get('Planets') ['Mercury', 'Venus', 'Earth']
キーで何も見つからない場合に値を設定できます
>>> dc.get('Comets', 'No data') 'No data'
.update(other=None, **kwargs)
>>> dc.update({'Stars': ['Sun', 'Vega']}) >>> dc.update(Stars=['Sun'])
.pop(key, default=None)
>>> dc.pop('Stars') ['Sun'] >>> dc.pop('Comets')
.delete(key)
>>> dc.delete('Comets')
または
>>> del dc['Comets']
.keys()
および.values()
>>> dc.keys() ['Planets', 'Stars'] >>> dc.values() [['Mercury', 'Venus', 'Earth']]
.items()
>>> dc.iterms() [('Planets', ['Mercury', 'Venus', 'Earth'])]
そしてもちろんジェネレータオブジェクトを使用した反復:
.iterkeys()
.itervalues()
.iteritems()
それだけではありません:)
エピローグ
このプロジェクトはまだ初期段階にあり、慎重に文書化され、装飾されています。
フォーク、プルリクエスト、その他の問題は大歓迎です!
Github: 独裁者
ご清聴ありがとうございました!