Skip to main content

Async, exception-free key-value store ABC. Implementations over SQLAlchemy, the filesystem, Redis, Azure Blob, and more.

Project description

KV

Async, exception-free key-value store ABC. Implementations over SQLAlchemy, the filesystem, Redis, Azure Blob, and more.

pip install python-kv

Usage

from kv import KV

kv = KV.of('sql+sqlite:///path/to/db.sqlite') # easiest way to switch backends: connection strings

await kv.insert('key', 'value') # Left[DBError] | Right[None]
await kv.read('key') # Left[ReadError] | Right['value']
await kv.delete('key') # Left[DBError] | Right[None]
[k async for k in kv.keys()] # list[Left[ReadError] | Right[T]]
[it async for it in kv.items()] # list[Left[ReadError] | Right[tuple[str, T]]]
await kv.clear() # Left[DBError] | Right[None]
# and a few more

Serialization & Validation

from dataclasses import dataclass

@dataclass
class MySerializableType:
  a: int
  b: str

kv = KV.of('sql+sqlite://...', MySerializableType)
await kv.insert('key', MySerializableType(1, '2')) # Left[InvalidData] | Right[None]
# etc.

CLI

kv serve 'file://data' --token "shhhhh" --port 8080 --type dict
kv serve 'sql+postgresql+psycop2g://...' --port 8081 --type str
kv copy -i 'file://data' -o 'sql+sqlite:///path/to/db.sqlite' -v
kv copy -i 'https://my.com/data' -o 'sql+sqlite:///path/to/db.sqlite'
kv test CONN_STR # runs some basic tests

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

python_kv-0.2.6.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

python_kv-0.2.6-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file python_kv-0.2.6.tar.gz.

File metadata

  • Download URL: python_kv-0.2.6.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for python_kv-0.2.6.tar.gz
Algorithm Hash digest
SHA256 b72ee1406b64fe7f2e2757d83a55a046ac8cab1a50f3a6fb1fad46cfa560ee34
MD5 97f811a487ce57201f472cb94cc9f86b
BLAKE2b-256 e91535fdac1e623e5eeedd4aea36112545bb99dc8f1dd3bf09e8c9b0d4214202

See more details on using hashes here.

File details

Details for the file python_kv-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: python_kv-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for python_kv-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2c5f2f3a463aee28b438d12f605c4d10b28fcd28d096d55060975678169994b2
MD5 3924631eebb39b2afff9328597723a37
BLAKE2b-256 f4a7fa7c7778a4f4f143ef712817fc65785fc56aa48d05a504626d05d33ec86a

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