Skip to main content

Super simple keyvalue store for python, backed by sqlite.

Project description

KeyValueSqlite

Super easy drop in replacement for python dictionary, which stores it's key-value to an sqlite database.

API

from keyvalue_sqlite import KeyValueSqlite

DB_PATH = '/path/to/db.sqlite'

db = KeyValueSqlite(DB_PATH, 'table-name')
# Now use standard dictionary operators
db.set_default('0', '1')
actual_value = db.get('0')
assert '1' == actual_value
db.set_default('0', '2')
assert '1' == db.get('0')

New in 1.0.4: atomic integers.

from keyvalue_sqlite import KeyValueSqlite

DB_PATH = '/path/to/db.sqlite'

db = KeyValueSqlite(DB_PATH, 'table-name')
# Now use standard dictionary operators
db.set_default('atomic_var', '1')
db.atomic_add('atomic_var', '2')
val = db.get('atomic_var')
assert '3' == actual_value

This datastructure is not going to win any performance races, but it is super simple to use with just a few lines of code. This is a great option for one of those small web apps which doesn't have enough load to justify mysql or postgres, or a file that will be used by multiple processes, or to store a file that can't be corrupted during a power failure.

When fetching large amounts of data try to use get_many() or dict_range().

Links

Versions

  • 1.0.6: Allow setting default timeout in the constructor
  • 1.0.5: Makes table name optional.
  • 1.0.4: Adds atomic_add to allow atomic int operations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

keyvalue_sqlite-1.0.6.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

keyvalue_sqlite-1.0.6-py2.py3-none-any.whl (6.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keyvalue_sqlite-1.0.6.tar.gz.

File metadata

  • Download URL: keyvalue_sqlite-1.0.6.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for keyvalue_sqlite-1.0.6.tar.gz
Algorithm Hash digest
SHA256 28830745cb4708800638f5d7147f85b4aa234db70baf3a5ba22d0edeaad0bae2
MD5 af0d00112c5d8df330d1ab4df7f25971
BLAKE2b-256 4da989b585fed90ae4e0a2dc0e61a0e26fbede12780241d13920ed707f77f2dc

See more details on using hashes here.

File details

Details for the file keyvalue_sqlite-1.0.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for keyvalue_sqlite-1.0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 438d441e06cb126423f440091e4c7f6f11440c04ae82021bb0c7208c8979127d
MD5 4e9305e63b2d60b5b50a75bc7a837ec3
BLAKE2b-256 e1d2d57faa39361ccf26191e7d794b3940523bbd0720d677dd1e80996b051454

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page