Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Key to Multivalue Storage - kms

kms - a tiny side project tuned into a library.

JSON storage wrapper and editor. Created with love by Boss_1s.

Once upon a time, this was just a small project to solve a problem: the over-steep learning curve for scratchattach's database functionality. Now, I have decided to make it a library, something with humble beginnings with big hopes in its future.

This is, after all, the greatest piece of a CPython progam I have made. ;)


Badges

Download

CPython Package Beta Nightly

Status

Release Tests

Quality gate

Info & Docs

Changelog PyPI - Version Documentation License Contributing Security


Installation

Install with pip:

pip install -U key-multivalue-storage

Or, download the latest version of the .whl file in the releases page

You can also choose to download the development environment alongside the package:

pip install -U key-multivalue-storage[dev]

The development package includes Pylint and Griffe for testing and finding breaking changes. You can see the tests in the test folder.

See more about tests here.

Usage

  • Create a Storage object to wrap the data to be stored:
>>> from key_multivalue_storage import Storage
>>> my_db = Storage("my_top_level_key", mysubkey="myvalue", myothersk="anotherval")
  • To store the object, use Storage.store().
>>> my_db.store("database.json")
Data stored successfully in 'database.json'.
  • You can change certain global variables for each Storage instance.
>>> Storage.indent = 4 # indent size of JSON files
>>> Storage.encode = True # Whether to encode stored values
  • Load the data back into a Storage object:
>>> import key_multivalue_storage as kms
>>> loaded_db = kms.Load.by_key("database.json", "my_top_level_key") # You can also use Storage.Load.by_key()
>>> loaded_db = my_db
True
  • You can also cast a Storage object into a dictionary!
>>> dict_db = dict(my_db)
>>> dict_db
{"my_top_level_key":{"mysubkey":"myvalue","myothersk":"anotherval"}}

There's a lot more to this library that what meets the eye.

See the full documentation here!

Contribute

Roadmap

Report a Bug

Have a GREAT day/night! :)

Download files

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

Source Distribution

key_multivalue_storage-1.3.2.20260826b2.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file key_multivalue_storage-1.3.2.20260826b2.tar.gz.

File metadata

File hashes

Hashes for key_multivalue_storage-1.3.2.20260826b2.tar.gz
Algorithm Hash digest
SHA256 e686c66b612600b5906bd3b79ccc45a49cda3997be671d54d0cc46969b8b0061
MD5 e7cd2866ed33f0218bbad5c9914b8c47
BLAKE2b-256 7c1f465ec0bf0d45606c2581b234d2b1d5f5349fce15c78d5702398b72a769b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for key_multivalue_storage-1.3.2.20260826b2.tar.gz:

Publisher: release.yml on Boss-1s/key_multivalue_storage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file key_multivalue_storage-1.3.2.20260826b2-py3-none-any.whl.

File metadata

File hashes

Hashes for key_multivalue_storage-1.3.2.20260826b2-py3-none-any.whl
Algorithm Hash digest
SHA256 97473e8f6ffab42c1eb292da7cf5aeb28677e9d536f6d5c0d5cf0a8702875b28
MD5 a4f5d7b008f231e9185ccce3a58092f0
BLAKE2b-256 bd072d537f56710a31b6a9aa4d03b51d39f6bb599dcb081198daffcf6b6cc0fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for key_multivalue_storage-1.3.2.20260826b2-py3-none-any.whl:

Publisher: release.yml on Boss-1s/key_multivalue_storage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.3.2.20260826b2 This release

2 files

1.3.1.20260812

2 files

1.3.0.20260731

2 files

1.3.0.20260730

2 files

1.2.5.20260912

2 files

1.2.5.20260724

2 files

1.2.3.20260523

2 files

1.2.2.20260515

2 files

1.2.0.20260104

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page