Skip to main content

Yet another PickleDB (thread-safe!)

Project description

Yet another PickleDB (thread-safe!)

FeaturesUsageInstallationLicense


ya-pickledb (Yet Another PickleDB) is a an open-source key-value store for Python using the msgpack module. It is heavily inspired by pickledb, but also provides new features (like thread-safety using safer).

The new feature additions are inspired by elara; but since it cannot serialize complex data structure to filesystem I decided to take the best of both worlds and create a new package.

⚡ Features

  • Manipulate different data structures (strings, lists, dictionaries and so on)
  • Fast and flexible
  • Thread-safe!
  • Choose between manual and auto commits
  • Cache simple data structures

📚 Usage

import ya_pickledb

db = ya_pickledb.load('kvstore.db', True)

db.set('foo', 'bar')
value = db.get('foo')

print(value)

This is the full list of all functions available to the user:

  • commit(): manually save the data to file storage.
  • set(key, value, max_age=None): set the value of a key.
  • get(key): get the value of a key.
  • getall(): get a list of all keys.
  • exists(key): get wheter a key exists or not.
  • rem(key): remove a key.
  • totalkeys(): get a total number of keys inside the db.
  • lcreate(key): create a list.
  • lpush(key, value): add a value to a list.
  • lgetall(key): return all values in a list.
  • lget(key, value, pos): return the value in a specific position of a list.
  • lremlist(key): remove a list.
  • lremvalue(key, value): remove a value from a list.
  • lpop(key, pos): remove ne value in a list.
  • llen(key): return the length of a list.
  • lexists(key, value): determine if a value exists in a list.
  • hcreate(key): create a dict.
  • hset(key, dict_key, value): add a key-value pair to a dict.
  • hget(key, dict_key): get the value for a key in a dict.
  • hgetall(key): get all the key-value pairs from a dict.
  • hrem(key): remove a dict.
  • hpop(key, dict_key): remove one key-value pair fro a dict.
  • hkeys(key): get all the keys for a dict.
  • hvals(key): get all the values for a dict.
  • hexists(key, dict_key): determine if a key exists in a dict.

All the functions should return None if something goes wrong (e.g. the key accessed is missing). Errors are raised when the input type is wrong (e.g. setting a bool as key).

🚀 Installation

Run the following command to install the latest version:

pip install ya_pickledb

🪪 License

ya_pickledb is made with 🖤 by the thelicato and released under the MIT LICENSE.

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

ya_pickledb-0.2.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

ya_pickledb-0.2.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file ya_pickledb-0.2.0.tar.gz.

File metadata

  • Download URL: ya_pickledb-0.2.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1018-azure

File hashes

Hashes for ya_pickledb-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9d819a701bc7adeac59060c836dac2850b2c26bbcae2ceee5646e39021557345
MD5 2af0efa23fd0898e6485417f824d9631
BLAKE2b-256 572b3cc01d8a211c00af870bc959537ece9603bee84d2449c03be8876ff3a6dc

See more details on using hashes here.

File details

Details for the file ya_pickledb-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ya_pickledb-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1018-azure

File hashes

Hashes for ya_pickledb-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a811f45bcde45ef02ffcbf133f472f6e463728eb5c0a5401c11b8e8feea5e292
MD5 4c18fa1d1eece40ef35897b3a1c05d0e
BLAKE2b-256 ba501f5348356d1de779f535d21329883a964b74b61484bab0be39a6a5b4810b

See more details on using hashes here.

Supported by

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