Tools for pickling Python objects in a completely different way
Project description
rickle - Smart Python tools for working with YAML
██████╗ ██╗ ██████╗██╗ ██╗██╗ ███████╗
██╔══██╗██║██╔════╝██║ ██╔╝██║ ██╔════╝
██████╔╝██║██║ █████╔╝ ██║ █████╗
██╔══██╗██║██║ ██╔═██╗ ██║ ██╔══╝
██║ ██║██║╚██████╗██║ ██╗███████╗███████╗
╚═╝ ╚═╝╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚══════╝
by Zipfian Science
rickle
is a versatile Python library and command-line tool that offers a wide range of functionalities for working with YAML and JSON data. Here's a brief summary of its key features:
-
Serialization:
rickle
allows you to easily serialize Python objects to YAML format. This is particularly useful for converting Python data structures into a human-readable and easily shareable format. -
Schema Validation: It provides the capability to validate YAML and JSON data against predefined schemas. This ensures that your data adheres to a specific structure or format, helping to maintain data consistency.
-
Schema Generation: You can generate schema definitions from existing YAML (or JSON) files. This is helpful when you want to formalize the structure of your data or for documentation purposes.
-
Conversion between YAML and JSON:
rickle
offers seamless conversion between YAML and JSON formats. This facilitates data interchange between systems that use different serialization formats. -
Simple Web Server: One unique feature of
rickle
is its ability to create a basic web server from a YAML file. This means you can define endpoints, routes, and data sources purely by writing it as a YAML file, making it easy to prototype web services without extensive coding, or to create mock REST APIs.
In summary, rickle
is a powerful utility for working with YAML and JSON data in Python.
It simplifies tasks like serialization, schema validation, schema generation, format conversion,
and even enables quick web server prototyping using YAML configuration files.
This tool is valuable for developers and data engineers working
with structured data in a flexible and efficient manner.
For documentation, see docs.
Source on GitHub.
Install
$ pip install rickled
And use
from rickled import Rickle
Using an example YAML file:
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 use Rickle:
>> from rickled import Rickle
>> config = Rickle('./config.yaml', deep=True, load_lambda=True)
>> config.BASIC.callable_lambda()
'hell world!'
Release
See the version history in changelog.
- Date: 2024-05-05
- Version: 1.1.3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rickled-1.1.3.tar.gz
.
File metadata
- Download URL: rickled-1.1.3.tar.gz
- Upload date:
- Size: 33.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab6c8c4c720a0fdd52e24b51e5d508d65c37bc8d22eb49381dc5d071a91e9cea |
|
MD5 | 60a9607951c5ca192823f464d13e53b8 |
|
BLAKE2b-256 | 343e59113ea29c884df302343fdfad99e054ab38ee3045395b6f7abe90f65a9e |