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.9.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

python_kv-0.2.9-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: python_kv-0.2.9.tar.gz
  • Upload date:
  • Size: 19.0 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.9.tar.gz
Algorithm Hash digest
SHA256 430988cd56a3a90857674f3d83eae27b3d314054cb0a1d675b43d75388b9167a
MD5 ab172a9fb32739e7d4a7e5dca2b3a172
BLAKE2b-256 f6b62d41ec740da94f9cd325e0fea091d5e163efb5ae2820a748ee1e553ee2e2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_kv-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 28.6 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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 0b429a1e942412bace4793b3ace97d3f3b269e70bce8145a240191b969d4e608
MD5 eb5f0b511a81bbc820e7cad5b8688f21
BLAKE2b-256 44863af633a6c8b7d63d4604f398a785c97967d385eca0d8be618d59f48090b7

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