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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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