github holoviz/param v2.4.0
Version 2.4.0

3 hours ago

Param 2.4.0 brings first-class static typing support to the entire Param ecosystem — all major parameter types now carry precise type information that flows through to your IDE and type checker, with types inferred directly from your existing parameter declarations. The release also adds a lazy mode to reactive expressions (rx) and includes performance optimizations that speed up parameter initialization in large class hierarchies.

Many thanks to @philippjfr, @hoxbro, @maximlt and @camriddell for their contributions to this release.

🚀 Features

  • Implement descriptor factory typing system by implementing Parameter generics (Parameter[_T]) and add typed overloads for all major Parameter subclasses and add typing for public APIs (#1066, #1112, #1130, #1131, #1132, #1134, #1136, #1137, #1141)
  • Add py.typed PEP 561 marker so type checkers automatically recognize Param's inline annotations without requiring separate stubs (#1066)
  • Add rx(..., lazy=) argument (#1106)

⚡ Performance

  • Add caches to speed up Parameter initialization (#1124)
  • Optimize Parameter instantiation (#1122)
  • Implement custom __copy__ for Parameter to speed up instance Parameter creation (#1128)

🐛 Bug Fixes

  • Use re.search for param.String regex check (#1142)

📚 Documentation

  • Add Typing user guide (#1139)

🧪 Tests & CI

  • Add tests/assert_types.py with assert_type() assertions verified in CI (#1066)
  • Add CI jobs for mypy, pyright, pyrefly, and ty (#1066, #1140)
  • Add zizmor for GitHub Actions security scanning (#1143)

Don't miss a new param release

NewReleases is sending notifications on new releases.