fiddle
Fiddle: A Python-first configuration library
Decision gist · record as of 2026-08-14
Yes, if you're building machine learning systems or other applications that need deep, readable parameter configuration. The low install friction, active maintenance, permissive license, and zero known vulnerabilities make it a safe choice. The Alpha status is worth noting—expect the API to evolve—but the library is backed by Google and in active use. Install it if configuration-as-code in Python appeals to your workflow; skip it if you prefer external config files or simpler parameter passing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later.
- Low install friction with a pure Python wheel and four lightweight runtime dependencies.
- Actively maintained with recent commits; last release was in April 2024 and the repository remains active.
License · maintenance · safety
Apache 2.0 (permissive) — Licensed under Apache 2.0 (permissive), so you can use, modify, and distribute Fiddle freely in both open-source and commercial projects without restriction.
last release 2024-04-09 (857 days) · last repo commit 2026-07-21 · 386 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,562,090 downloads/mo, #3,759 on PyPI
Alternatives
Verify before relying
pip install fiddle
import fiddle as fdl
# Define a configuration object
config = fdl.Config(some_function)
config.param_name = value- Whether Fiddle's configuration objects integrate with popular ML frameworks (TensorFlow, PyTorch, JAX) or if integration is manual.
- Performance characteristics when managing very large configuration hierarchies.
- Whether the library supports runtime validation or type checking of configured parameters.
What it is and what it does
Fiddle is a configuration library designed to let you express program parameters as Python code rather than external config files or dictionaries. It's built for machine learning workflows where deep configurability—the ability to tweak nested parameters across complex systems—is essential. The library's core idea is that configuration should be readable and maintainable, written in the same language as the rest of your codebase.
You use Fiddle by creating Config objects that represent function or class instantiations, then setting their parameters as Python attributes. This approach keeps your configuration logic explicit and debuggable. The library depends on absl-py for logging, graphviz for visualization, libcst for code manipulation, and typing-extensions for type hints. It's currently in Alpha status but actively maintained by Google, with support for Python 3.8 through 3.10.
Use it for
- Define hyperparameter configurations for ML experiments in readable Python code instead of YAML or JSON files.
- Build nested parameter hierarchies for complex models where you need to configure sub-components at multiple levels.
- Generate and visualize configuration structures using graphviz to understand parameter dependencies.
- Manage multiple configuration variants for A/B testing or ablation studies without duplicating code.
- Share configuration logic across teams by expressing it as importable Python modules rather than static files.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you're building machine learning systems or other applications that need deep, readable parameter configuration.
The low install friction, active maintenance, permissive license, and zero known vulnerabilities make it a safe choice. The Alpha status is worth noting—expect the API to evolve—but the library is backed by Google and in active use. Install it if configuration-as-code in Python appeals to your workflow; skip it if you prefer external config files or simpler parameter passing.
Install
fiddle on PyPI
Before you install
Low install friction with a pure Python wheel and four lightweight runtime dependencies. Actively maintained with recent commits; last release was in April 2024 and the repository remains active.
Requires Python 3.8 or later.
License in practice
Licensed under Apache 2.0 (permissive), so you can use, modify, and distribute Fiddle freely in both open-source and commercial projects without restriction.
Quickstart
pip install fiddle
import fiddle as fdl
# Define a configuration object
config = fdl.Config(some_function)
config.param_name = value
Verify before relying
- Whether Fiddle's configuration objects integrate with popular ML frameworks (TensorFlow, PyTorch, JAX) or if integration is manual.
- Performance characteristics when managing very large configuration hierarchies.
- Whether the library supports runtime validation or type checking of configured parameters.
Package facts
| License | Apache 2.0 permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesabsl-pygraphvizlibcsttyping-extensions |
| Maintenance | Actively maintained 857 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,562,090 / month, #3,759 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Artificial IntelligenceTopic :: Scientific/Engineering :: MathematicsTopic :: Software DevelopmentTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python Modules |
Evidence: fiddle-0.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python configuration library”
- fiddleFiddle is a Python-first configuration library that lets you define…
- genie.libs.confGenie Libs Conf provides Python object-based configuration management…
- libconfReads and writes configuration files in libconfig format, a format…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also gin-config · yacs · ml-collections · netron · prefigure · ConfigSpace · tensorflow-addons · tensorflow · nvidia-cudnn-cu13 · nvidia-cudnn-cu12