Releases: Philip-S-Martin/paramclass
Release list
Release v1.1.1
paramclass 1.1.1
June 2026
Summary
paramclass 1.1.1 improves the public developer experience for the project and
expands the declarative parameter model. Public class-body assignments now behave
more consistently as deferred, overrideable parameters, including literals,
collections, language constants, and standalone lambdas.
This release also adds UV-based development workflows, test coverage, and public
documentation.
Highlights
- Added UV project metadata and a reproducible
uv.lock. - Added public README documentation with project motivation, examples, timeline,
development commands, and current limitations. - Added pytest-based regression coverage for the core
ParamClassbehavior. - Added support for literal assignments as deferred parameters.
- Added support for nested links inside lists, tuples, and dictionaries.
- Added support for standalone lambda assignments as overrideable parameters.
- Added support for
True,False, andNoneas parameter values. - Preserved normal behavior for methods, properties, static methods, class
methods, nested classes, and dunder attributes. - Improved linker handling for closed linkers and unhashable outer objects.
Example
from paramclass import ParamClass
class Demo(ParamClass):
x = 2
y = x + 3
assert Demo().y == 5
assert Demo(x=10).y == 13Compatibility Notes
This release changes the semantics of public class-body literal assignments.
Values such as x = 2, enabled = True, and transform = lambda x: x + 1 are
now treated as deferred parameters instead of plain class attributes.
Methods and descriptors remain class members, not parameters.
Python boolean operators such as and, or, and not still require immediate
truth values during class creation and are not deferred by the tracing layer.
Validation
The release was validated with:
uv run --extra dev pytest
uv build