Skip to content

tchoedak/PyKeyVal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyKeyVal

Heavily inspired by keyv

CircleCI

PyKeyVal is a key-value store that you can pack in a bag and take with you.

Installation

To install PyKeyVal, simply:

pip install pykeyval

or from source:

python setup.py install

Getting Started

>>> import pykeyval
>>> kv = pykeyval.PyKeyVal(url='sqlite:///opt/myapp/db.sqlite')
>>> kv.set('key', 'val')
True
>>> kv.get('key')
'val'

API

get(key)

Returns the value set for key key.

set(key, val)

Sets the key key to a value val. Returns True.

delete(key)

Deletes the key key. Returns True if the key existed.

clear()

Deletes all keys in the current name and namespace. Returns True.

Storage Backends

PyKeyVal supports the following backends:

Database Interface Required Arguments Options
Memory DictKeyVal
File FileKeyVal name path
Redis RedisKeyVal url, name namespace
Snowflake SnowKeyVal url, name namespace
SQLite SQLiteKeyVal url, name namespace
PostgreSQL Coming soon
MySQL Coming soon

Namespaces

PyKeyVal allows you to setup namespaces for database backends to prevent key collisions.

Serializers

PyKeyVal uses python's builtin json library to perform data serialization across multiple backends for data consistency.

You can hook up your own serializer by passing in a serializer class that implements serialize and deserialize:

class PickleSerializer:
    def serialize(data):
        pickle.dumps(data)
    def deserialize(data):
        pickle.loads(data)

kv = PyKeyVal(serializer=PickleSerializer)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages