Rickled

Starting

Rickle is a lightweight tool for loading and writing very small Python objects to YAML or JSON representations. This is especially useful for creating YAML config files and serialising them as Python objects. Works great in interactive Python environments like notebooks.

To install:

pip install rickled

Create a YAML file, call it “config.yaml”:

BASIC:
 text: test
 dictionary:
   one: 1
   two: 2
 number: 2
 list:
   - one
   - two
   - four
   - name: John
     age: 20
 USERNAME:
   type: env
   load: USERNAME
 callable_lambda:
   type: lambda
   load: "lambda: print('hell world!')"
 datenow:
   type: lambda
   import:
     - "from datetime import datetime as dd"
   load: "lambda: print(dd.utcnow().strftime('%Y-%m-%d'))"
 test_function:
   type: function
   name: test_function
   args:
     x: 7
     y: null
     s: hello world
     any:
       - 1
       - hello
   import:
     - "math"
   load: >
     def test(x, y, s, any):
       print(math.e)
       iii = 111
       print(iii)
       print(x,s)
       if y:
         print(type(y))
       else:
         print(y)
       for i in any:
         print(i)

Then import the tools:

>> from rickled import Rickle

>> config = Rickle('./config.yaml', deep=True, load_lambda=True)

>> config.BASIC.dictionary
{'one' : 1, 'two' : 2}

>> config.BASIC.callable_lambda()
hell world!

About

Rickle is quick to use tool mainly meant to easily encapsulate config YAML files in other Zipfian Science tools.

Changes and history

See Changelog for version history.

Version 1.0.1 (2023-10-03):

  • Added the ability to load a Rickle from URL at init.

  • Added the -b flag to serve CLI tool to open host on browser.

  • Bug fix in infer_read_file_type when reading unknown file suffix.

  • Renamed the -i flag to -a in serve CLI tool.

Contributors

  • Fabian Sperrle