spytula

A Python library that provides a simple and convenient way to build JSON and YAML data structures using a builder pattern.


Keywords
JSON, YAML, DSL, data, python
License
MIT
Install
pip install spytula==0.0.3

Documentation

👩‍🍳 Spytula

Spytula is a Python library that provides a simple and convenient way to build JSON and YAML data structures using a builder pattern.

Installation

Use pip to install the Spytula library:

pip install spytula

Usage

Import the SpytulaBuilder class from the spytula.builder module:

from spytula.builder import SpytulaBuilder

# Create an instance of SpytulaBuilder
builder = SpytulaBuilder()

# Add attributes to the JSON structure
builder.attribute('name', 'Ramen')
builder.attribute('origin', 'Japan')

# Create a list of ingredients
for builder.each('ingredients') as add_ingredient:    
    for ingredient in ['Noodles', 'Pork', 'Eggs', 'Miso']:
        with add_ingredient() as ingredient_builder:
            ingredient_builder.attribute('name', ingredient)

# Add optional attributes conditionally
builder.when('spiciness', 'Medium', True)
builder.when('extra_toppings', ['Green Onions', 'Nori', 'Bamboo Shoots'], True)

# Configure the key to use camelcase
builder.key_format(camelize={'uppercase_first_letter': False})

# Convert the JSON structure to JSON-formatted string
json_output = builder.to_json(indent=4)

# Print the JSON output
print(json_output)

This will output:

{
    "name": "Ramen",
    "origin": "Japan",
    "ingredients": [
        { "name": "Noodles" },
        { "name": "Pork" },
        { "name": "Eggs" },
        { "name": "Miso" }
    ],
    "spiciness": "Medium",
    "extraToppings": [
        "Green Onions",
        "Nori",
        "Bamboo Shoots"
    ]
}

In this example, we create a SpytulaBuilder instance and add attributes like name and origin to represent Ramen. We use the nodes() context manager to create a list of ingredients and add them to the JSON structure. Optional attributes like spiciness and toppings are added conditionally using the when() method. Finally, we convert the JSON structure to a JSON-formatted string using to_json() with an indentation of 4 spaces.

Documentation

Refer for the documentation for more details.