Skip to main content

A simple YAML-based cache for Python

Project description

yamlsync

Yaml Sync is a very lightweight YAML-based cache for when you want to preserve the state of something on disk in a human readable way.

Installation

To install Yaml Sync, simply run:

pip install yaml-sync

Example usage

Here's a quick example of how to use Yaml Sync:

from yaml_sync import YamlCache

# Create a cache that reads and writes to the specified file
cache = YamlCache('cache.yaml', mode='rw')

# Save a key to the cache and write to disk
cache['hello'] = 'world'

# Check if a key is in the cache
assert 'hello' in cache

# Retrieve a key from the cache
variable = cache['hello']

# Save a list to the cache
cache['list_example'] = [1, 2, 3]

The resulting yaml will be:

hello: world
list_example:
  0: 1
  1: 2
  2: 3

You can pass number_lists=True at init to save any lists as a numbered dictionary. Since the goal of Yaml Sync is a human-readable file, the numbering may be desired in some cases.

If a value is None, that key is not returned for key in cache. e.g.

cache['empty_key'] = None
assert 'empty_key' in cache
# AssertionError

Finally, you can specify a preferred order to the keys, to control what is shown first in the yaml.

cache = YamlCache('cache.yaml', order=['b', 'a'])

cache['a'] = 'hello'
cache['b'] = 'world'
with open('cache.yaml') as f:
    print(f.read())
b: world
a: hello

License

This project is licensed 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

yaml-sync-0.2.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

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

yaml_sync-0.2-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file yaml-sync-0.2.tar.gz.

File metadata

  • Download URL: yaml-sync-0.2.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for yaml-sync-0.2.tar.gz
Algorithm Hash digest
SHA256 aea580a6a72ef325daa62695a3d1d67d0634725e2030af21d2e9ed8b4480703f
MD5 e0acd61fcc9983b7b0c3d2d71ffec0a0
BLAKE2b-256 6cb108abf8bca13d103103a3db3bddf420fe5e90503583a0b1597c17e5931f34

See more details on using hashes here.

File details

Details for the file yaml_sync-0.2-py3-none-any.whl.

File metadata

  • Download URL: yaml_sync-0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for yaml_sync-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1515455d9194d97145f74297cd8f202fa94845b6d3db16d37afc2e7527056cde
MD5 abf62109f4f9e54e3e86bbb3e00f1dce
BLAKE2b-256 26ee9dfd24a17510811c6a7e87335b27027b71ea5d50a1eb6a6ef57642c61178

See more details on using hashes here.

Supported by

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