{"categories":[{"label":"Software Development","url":"https://skillfed.io/packages/category/software-development/5"},{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/4"},{"label":"Scientific/Engineering","url":"https://skillfed.io/packages/category/scientific-engineering/2"},{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/6"},{"label":"Artificial Intelligence","url":"https://skillfed.io/packages/category/scientific-engineering-artificial-intelligence/3"},{"label":"Mathematics","url":"https://skillfed.io/packages/category/scientific-engineering-mathematics"}],"enrichment":{"capability":"Fiddle is a Python-first configuration library that lets you define and manage complex program parameters in readable Python code, particularly suited for machine learning applications.","skillfed_tags":["configuration-management","ml-tooling"],"use_cases":["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."],"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\u2014the ability to tweak nested parameters across complex systems\u2014is 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.\n\nYou 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.","worth_installing":"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\u2014expect the API to evolve\u2014but 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."},"id":"fiddle","links":{"html":"https://skillfed.io/packages/fiddle","md":"https://skillfed.io/packages/fiddle.md","pypi":"https://pypi.org/project/fiddle/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2024-04-09","license_spdx":null,"license_treatment":"permissive","name":"fiddle","python_support":"supports_current","summary":"Fiddle: A Python-first configuration library"},"popularity":{"monthly_downloads":1562090,"position":3759,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"0.3.0"}
