Fiddle: A Python-first configuration library

0.3.0 · active · verified Sun Apr 12

Fiddle is a Python-first configuration library designed particularly for machine learning applications. It enables deep configurability of parameters in a program, allowing configurations to be expressed in readable and maintainable Python code. It aims to reduce boilerplate and provides good error messages. The library is currently at version 0.3.0 and is actively developed by Google.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to define configurations for Python callables using `fdl.Config` and `fdl.Partial`, and then build them using `fdl.build()`. `fdl.Config` directly builds the callable with the specified arguments, while `fdl.Partial` returns a `functools.partial` object that can be called later.

import fiddle as fdl

def create_greeting(prefix: str, name: str = "World", punctuation: str = "!"):
    return f"{prefix} {name}{punctuation}"

# Create a Fiddle configuration for the function
cfg = fdl.Config(create_greeting, prefix="Hello", name="Fiddle")

# Build the configured function to get the result
result = fdl.build(cfg)
print(f"Original Fiddle build: {result}")

# Modify the configuration
cfg.punctuation = "!!"
result_modified = fdl.build(cfg)
print(f"Modified Fiddle build: {result_modified}")

# Demonstrate fdl.Partial, which returns a functools.partial object
partial_cfg = fdl.Partial(create_greeting, prefix="Hi")
partial_func = fdl.build(partial_cfg) # This returns a functools.partial object
result_partial = partial_func(name="Python") # Call the partial function
print(f"Partial Fiddle build: {result_partial}")

view raw JSON →