NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3468 most downloaded on PyPI
Declarative parameters for robust Python classes and a rich API for reactive programming
Last release 8 days ago
25 Sep 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 42 of 45 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
133 releases · first in 2012
Nothing published for this version
The 1.13.0 is the last release of Param before the 2.0 release. However, Param 1.13 is meant to receive long-term support; security patches and fixes
The 1.13.0 is the last release of Param before the 2.0 release. However, Param 1.13 is meant to receive long-term support; security patches and fixes to critical bugs are planned to be backported to the 1.13.x series.
This release includes a new Bytes Parameter and a few important bug fixes. This release is also marked by the adoption of a formal project governance, ensuring Param's future as a healthy open-source project. Many thanks to @ovidner and @droumis for their first contributions! And to @maximlt, @Hoxbro, @jlstevens, @philippjfr and @jbednar for their continuing support to fixing and improving Param.
Bug fixes:
json.dumps (#655)ListSelector restricted to list type objects (#531)depends async wrapper (#684)New features:
Documentation:
Project governance:
Maintenance:
One column per quarter.
Nothing published for this version
Nothing published for this version
The 1.12.3 release adds support for Python 3.11. Many thanks to @musicinmybrain (first contribution!) and @maximlt for contributing to this release.
Date: 2022-12-06
The 1.12.3 release adds support for Python 3.11. Many thanks to @musicinmybrain (first contribution!) and @maximlt for contributing to this release.
Enhancements:
Nothing published for this version
Nothing published for this version
The 1.12.2 release fixes a number of bugs and adds support again for Python 2.7, which was unfortunately no longer supported in the last release. Note
The 1.12.2 release fixes a number of bugs and adds support again for Python 2.7, which was unfortunately no longer supported in the last release. Note however that Param 2.0 will still drop support of Python 2.7 as already announced. Many thanks to @Hoxbro and the maintainers @jbednar, @jlstevens, @maximlt and @philippjfr for contributing to this release.
Bug fixes:
CalendarRange and DateRange Parameters (625)DateRange validation (627)@param.depends execution ordering (628)named_objs does not fail on unhashable objects (632)BinaryPower example in the docs to use the correct name EvenInteger(634)Nothing published for this version
Nothing published for this version
The 1.12.1 release fixes a number of bugs related to async callback handling when using param.depends and .param.watch and a number of documentation a
The 1.12.1 release fixes a number of bugs related to async callback handling when using param.depends and .param.watch and a number of documentation and error messages. Many thanks to @HoxBro and the maintainers @jbednar, @jlstevens, @maximlt and @philippjfr for contributing to this release.
Error handling and documentation:
Bug fixes:
Documentation:
Nothing published for this version
Nothing published for this version
…1.x release is expected to enable warnings for deprecated API. If you have older code using the deprecated Param features below, please update your AP…
Version 1.12.0 introduces a complete user manual and website (for the first time since 2003!) along with extensive API improvements gearing up for the 2.0 release (which will be Python3 only).
The pre-2.0 API is still being preserved and no new warnings are added in this release, so the older API can continue to be used with this release, but the next 1.x release is expected to enable warnings for deprecated API. If you have older code using the deprecated Param features below, please update your API calls as described below to be compatible with the 2.0 release when it comes out (or pin to param<2 if you don't need any new Param features). For new users, just use the API documented on the website, and you should be ready to go for either 1.12+ or 2.0+.
Thanks to James A. Bednar for the user guide and 2.0 API support, to Philipp Rudiger for improvements and new capabilities for handling dependencies on subobjects, and to Maxime Liquet and Philipp Rudiger for extensive improvements to the website/docs/package-building/testing.
New features:
on_init=True for @depends decorator, to run the method in the constructor to ensure initial state is consistent when appropriate (#540)Bug fixes:
inspect.getargspec to the py3 version inspect.getfullargspec, which is similar but splits keyword args into varkw (**) and kw-only args. Falls back to getargspec on Python2. (#521)Doc improvements (including complete user guide for the first time!):
Infrastructure:
Compatibility (see #543 for the complete list):
Calendardate now accepts date values only (#517)
No longer allows modifying name of a Parameter once it is in a Parameterized class, to avoid confusion (#541)
Renamed (with old name still accepted for compatibility until 2.0):
.param._add_parameter(): Now public .param.add_parameter(); too useful to keep private! (#559).param.params_depended_on: Now .param.method_dependencies to indicate that it accepts a method name and returns its dependencies (#559).pprint: Now private ._pprint; use public .param.pprint instead (#559)batch_watch: Now batch_call_watchers, to declare that it does not set up watching, it just invokes it. Removed unused operation argument (#536)Deprecated (but not yet warning unless noted):
.param.debug(): Use .param.log(param.DEBUG, ...) instead (#556).param.verbose(): Use .param.log(param.VERBOSE, ...) instead (#556).param.message(): Use .param.log(param.MESSAGE, ...) instead (#556).param.defaults(): Use {k:v.default for k,v in p.param.objects().items()} instead (#559).param.deprecate(): To be repurposed or deleted after 2.0 (#559).param.params(): Use .param.values() or .param['param'] instead (#559).param.print_param_defaults(): Use for k,v in p.param.objects().items(): print(f"{p.__class__.name}.{k}={repr(v.default)}") instead (#559).param.print_param_values(): Use for k,v in p.param.values().items(): print(f"{p.name}.{k}={v}") instead (#559).param.set_default(): Use p.param.default= instead (#559).param.set_param(): Had tricky API; use .param.update instead (#558).param.get_param_values(): Use .param.values().items() instead (or .param.values() for the common case of dict(....param.get_param_values())) (#559).state_pop(): Will be renamed to ._state_pop to make private.state_push(): Will be renamed to ._state_push to make private.initialized: Will be renamed to ._initialized to make private.param accessor instead.Added:
.param.watchers: Read-only version of private _watchers (#559).param.log(): Subsumes .debug/verbose/message; all are logging calls. (#556).param.update(): Dictionary-style updates to parameter values, as a drop-in replacement for set_param except for its optional legacy positional-arg syntax (#558).values(): Dictionary of name:value pairs for parameter values, replacing get_param_values but now a dict since python3 preserves order (#558).param.log(): General-purpose interface to the logging module functionailty; replaces .debug, .verbose, .message (#556)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Swapped ObjectSelector and Selector in the inheritance hierarchy, to allow ObjectSelector to be deprecated.
(including changes in 1.11.0; 1.11.1 adds only a minor change to fix param.List(None).)
Version 1.11 contains entirely new documentation, plus various enhancements and bugfixess. Thanks to James A. Bednar for the documentation, Philipp Rudiger for the website setup and for many of the other fixes and improvements below, and others as noted below.
Documentation:
Enhancements:
Bug Fixes:
instantiate and constant are True (#474)Compatibility:
get_soft_boundssilently crops softbounds to any hard bounds supplied ; previously soft bounds would be returned even if they were outside the hard bounds (#498)class_ to item_type in List parameter, to avoid clashing semantics with ClassSelector and others with a class_ slot. class_ is still accepted as a keyword but is stored in item_type. (#456)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Minor release for Panel-related bugfixes and minor features, from @philippjfr.
Minor release for Panel-related bugfixes and minor features, from @philippjfr.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed ClassSelector.get_range when a tuple of types is supplied
Add eager option to watch calls
Allow param.depends to annotate functions
Enhancements:
Bug fixes:
Full release with new functionality and some fixes. New features:
Full release with new functionality and some fixes. New features:
Changes affecting backwards compatibility:
Bugfixes and other improvements:
For more details, you can see a full list of changes since the previous release.
Added output decorator and outputs lookup method (#299, #312)
Minor release:
For more details, you can see a full list of changes since the previous release.
Added positional default arguments for nearly all Parameter subclasses (apart from ClassSelector)
Minor release:
For more details, you can see a full list of changes since the previous release.
Major new feature set: comprehensive support for events, watching, callbacks, and dependencies
Major new feature set: comprehensive support for events, watching, callbacks, and dependencies
@depends(p,q) to indicate that they depend on parameters p and q (defaulting to all parameters)@depends(p.param,q.param.r), where p.param indicates dependencies on all parameters of p and q.param.r indicates a dependency on parameter r of q.watch parameter values, re-running when those values change or when an explicit trigger is issued, and can unwatch them later if needed.Other new features:
For more details, you can see a full list of changes since the previous release.
Nothing published for this version
Since the previous release (1.6.1), there should be no changes that affect existing code, only additions:
Since the previous release (1.6.1), there should be no changes that affect existing code, only additions:
Although param should still work on python 3.3, we are no longer testing against it (unsupported by our test environment; #234).
For more details, you can see a full list of changes since the previous release.
Restores support for the previous versioning system (pre 1.6; see #225), and fixes a number of issues with the new versioning system:
Restores support for the previous versioning system (pre 1.6; see #225), and fixes a number of issues with the new versioning system:
Allow package name to differ from repository name (https://github.com/pyviz/autover/pull/39)
Allow develop install to work when repository is dirty (https://github.com/pyviz/autover/pull/41)
Fixed failure to report dirty when commit count is 0 (https://github.com/pyviz/autover/pull/44)
Notable changes, fixes, and additions since the previous release (1.5.1) are listed below. You can also see a full list of changes since the previous
Notable changes, fixes, and additions since the previous release (1.5.1) are listed below. You can also see a full list of changes since the previous release.
param.__version__ is now a stringparam.version.Version now supports a tag-based versioning workflow; if using the Version class, you will need to update your workflow (see autover for more details).get_param_values() to work on class (#162).param.Integer (#151).String to be None if its default is None (#104).ListSelector.compute_default() (#212).None in various Parameter subclasses (#208); fixes problems for subclasses of Parameterized that define a custom __nonzero__ or __len__.DateRange parameter.Your coding agent can read these notes before it upgrades. Set up the MCP server →