- **Breaking changes to synthesis object load**: because of a breaking change in how torch 2.6 handles load (313), this release breaks backwards compatibility for synthesis objects' save/load methods (`Metamer`, `MADCompetition`, `Geodesic`, `Eigendistortion`). Previously, we would pickle some python callables, which is generally unsafe. Now, we cache some tensors to check behavior. Thus, if you save a synthesis object with `plenoptic<1.2` and try to load with `plenoptic>1.2`, we throw an exception. See 317 for more details, as well as the Examples section in the synthesis objects' `load()` docstrings.
- **Breaking changes to synthesis object init / synthesize**: optimized synthesis objects (`Metamer`, `MADCompetition`, `Geodesic`) now have an optional `setup()` method, which is used to initialize the synthesis image (e.g., the model metamer / the `metamer` attribute), optimizer, and scheduler objects. This shifts the initialization-related arg from `__init__` and the optimizer/scheduler-related ones from `synthesize`. Calling `setup()` is optional, but if you do: it should only be called once, between initialization and the first call to `synthesize`. See 325 for details, and the Examples section of the relevant objects' `setup()` docstrings for usage examples.
- `SteerablePyramidFreq` can now be initialized with `order=0` if it `is_complex=False` . See 305 for more details.
- Most of the remaining changes are quality-of-life: improving error/warning messages, improving docstrings.
What's Changed
* updates install instructions by billbrod in https://github.com/plenoptic-org/plenoptic/pull/294
* pip -> pipx install nbstripout by billbrod in https://github.com/plenoptic-org/plenoptic/pull/295
* Major Refactor: Add Ruff Linting, Nox, and Pre-Commit Hook by hmd101 in https://github.com/plenoptic-org/plenoptic/pull/266
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/plenoptic-org/plenoptic/pull/298
* Remove duplicate `exclude_patterns` by billbrod in https://github.com/plenoptic-org/plenoptic/pull/300
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/plenoptic-org/plenoptic/pull/301
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/plenoptic-org/plenoptic/pull/302
* Allows user to specify polar_angle direction by billbrod in https://github.com/plenoptic-org/plenoptic/pull/303
* Fix failing ruff check, adds check for steerpyr height by billbrod in https://github.com/plenoptic-org/plenoptic/pull/306
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/plenoptic-org/plenoptic/pull/304
* Jenkins docs by billbrod in https://github.com/plenoptic-org/plenoptic/pull/308
* Remove readthedocs by billbrod in https://github.com/plenoptic-org/plenoptic/pull/309
* adds git fetch --tags by billbrod in https://github.com/plenoptic-org/plenoptic/pull/310
* Updates save/load behavior for breaking change in torch 2.6 by billbrod in https://github.com/plenoptic-org/plenoptic/pull/317
* Update how dynamic version is set by billbrod in https://github.com/plenoptic-org/plenoptic/pull/314
* Document where nlpd parameters came from by billbrod in https://github.com/plenoptic-org/plenoptic/pull/312
* Updates steerable pyramid error message on shape mismatch by billbrod in https://github.com/plenoptic-org/plenoptic/pull/315
* updates CONTRIBUTING and noxfile by billbrod in https://github.com/plenoptic-org/plenoptic/pull/318
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/plenoptic-org/plenoptic/pull/307
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/plenoptic-org/plenoptic/pull/324
* Refactors initialization to use `setup()` by billbrod in https://github.com/plenoptic-org/plenoptic/pull/325
* Adds doctests action, metric doctests by BalzaniEdoardo in https://github.com/plenoptic-org/plenoptic/pull/319
* add docstrings to example images in data by sjvenditto in https://github.com/plenoptic-org/plenoptic/pull/322
* Updates to steerable pyramid by billbrod in https://github.com/plenoptic-org/plenoptic/pull/305
* Simulate filters by BalzaniEdoardo in https://github.com/plenoptic-org/plenoptic/pull/321
* More deprecations by billbrod in https://github.com/plenoptic-org/plenoptic/pull/327
* Fix deprecation warnings by billbrod in https://github.com/plenoptic-org/plenoptic/pull/328
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/plenoptic-org/plenoptic/pull/329
* Small fixes to geodesic by billbrod in https://github.com/plenoptic-org/plenoptic/pull/330
* updates deploy action version by billbrod in https://github.com/plenoptic-org/plenoptic/pull/331
* Adds environment back to deploy by billbrod in https://github.com/plenoptic-org/plenoptic/pull/332
New Contributors
* pre-commit-ci made their first contribution in https://github.com/plenoptic-org/plenoptic/pull/298
* sjvenditto made their first contribution in https://github.com/plenoptic-org/plenoptic/pull/322
**Full Changelog**: https://github.com/plenoptic-org/plenoptic/compare/1.1.0...1.2.0