{"categories":[{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/3"},{"label":"Scientific/Engineering","url":"https://skillfed.io/packages/category/scientific-engineering/2"}],"enrichment":{"capability":"Param provides declarative class attributes with runtime validation and a reactive programming API for automatic updates when attribute values change.","skillfed_tags":["validation","reactive-programming","declarative-api"],"use_cases":["Build configuration classes with validated, documented parameters that can be introspected by tools to generate UIs or CLIs automatically.","Create interactive applications where method calls or state updates trigger automatically when watched parameters change.","Define hierarchies of classes where subclasses inherit and selectively override parameter metadata from parent classes.","Implement data pipelines where reactive dependencies ensure downstream computations stay synchronized with upstream changes.","Construct scientific or data-analysis workflows with rich parameter metadata for reproducibility and documentation."],"what_it_does":"Param is a zero-dependency library for building classes with rich, validated attributes and reactive programming capabilities. You define attributes as Parameter objects\u2014Integer, String, Selector, Event, and many others\u2014each with metadata like bounds, default values, documentation, and nullability constraints. Param enforces these constraints at runtime, raising errors when invalid values are assigned. The library also provides a reactive API: you can declare that methods should automatically run when specific attributes change, enabling data-driven workflows where UI updates, computations, or side effects trigger automatically.\n\nParam serves as the foundation for HoloViz's Panel and HoloViews libraries, which rely on its combination of declarative attributes and reactive bindings to power interactive visualizations and responsive applications. It is conceptually similar to Pydantic or dataclasses but emphasizes class-level attribute configuration, parameter inheritance across subclasses, and automatic reactivity rather than just input validation.","worth_installing":"Yes. Param is production-stable, actively maintained, has zero runtime dependencies, and solves a real problem: combining declarative attribute validation with reactive programming. Install it if you need runtime parameter validation with class-level configuration, or if you're building interactive systems where automatic synchronization matters. The BSD-3-Clause license poses no barrier."},"id":"param","links":{"html":"https://skillfed.io/packages/param","md":"https://skillfed.io/packages/param.md","pypi":"https://pypi.org/project/param/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-06-09","license_spdx":null,"license_treatment":"permissive","name":"param","python_support":"supports_current","summary":"Declarative parameters for robust Python classes and a rich API for reactive programming"},"popularity":{"monthly_downloads":2798370,"position":2883,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"2.4.1"}
