Releases: metaopt/optree
Releases · metaopt/optree
v0.18.0
optree v0.18.0
Added
- Use ARM-based GHA runners to build ARM wheels by @XuehaiPan in #234.
- Add Android support by @XuehaiPan in #236.
- Add
manylinux-riscv64wheels by @XuehaiPan in #243. - Add
cp{313,314}-ios/cp{313,314}-android/cp{312,313}-pyodidewheels by @XuehaiPan in #242 and #244. - Add support for method pair
(__tree_flatten__, __tree_unflatten__)forregister_pytree_node_class(cls)by @XuehaiPan in #253.
Removed
- Remove CPython 3.9/3.10 wheels for Windows ARM64 due to unavailability of official Python distribution by @XuehaiPan in #234.
- Remove previously deprecated singular-named modules in #209 by @XuehaiPan in #238.
- Remove PyPy 3.10 (EOL) wheels by @dependabot in #241.
Full Changelog: v0.17.0...v0.18.0
v0.17.0
optree v0.17.0
Added
- Add WASM support by @XuehaiPan in #226.
- Bump
cibuildwheelfrom 2.23 to 3.0 by @dependabot in #228. - Add iOS support by @XuehaiPan in #232.
- Build Python 3.14 and 3.14t wheels in CI by @XuehaiPan in #233.
Changed
- Build wheels against
pybind113.0.0 by @XuehaiPan in #231.
Fixed
- Handle
pybind11macro defined as 0 instead of non-exist by @XuehaiPan in #227.
Removed
- Remove PyPy 3.9 (EOL) wheels by @dependabot in #228.
Full Changelog: v0.16.0...v0.17.0
v0.16.0
optree v0.16.0
Added
- Explicitly set recursion limit for recursion tests by @XuehaiPan in #207.
- Dump build-time meta-information to C extension by @XuehaiPan in #215.
- Use
pybind11::native_enumto create enum classPyTreeKindif available by @XuehaiPan in #214. - Enable
pybind11::smart_holderto create classPyTreeSpecandPyTreeIterif available by @XuehaiPan in #217. - Implement optional
tp_clearfor classPyTreeSpecandPyTreeIterby @XuehaiPan in #218. - Add function
tree_partitionby @pfackeldey in #222. - Add Python 3.14 and Python 3.14t support by @XuehaiPan in #216.
Changed
- Enforce naming convention of packages with singular and plural:
optree.{accessor,integration}->optree.{accessors,integrations}by @XuehaiPan in #209. - Allow creating dataclass types in the global namespace by @XuehaiPan in #212.
- Migrate to
setuptools>=77for PEP-639 by @XuehaiPan in #208. - Update minimal version of
typing-extensionsto 4.6.0 fortyping_extensions.TypeAliasTypeby @XuehaiPan in #216.
Fixed
- Never call
PyType_Readytwice and usePyType_Modifiedinstead by @XuehaiPan in #214. - Fix
optree.typing.PyTree[T]for Python 3.14 due to immutableUnionTypeby @XuehaiPan in #216.
Removed
- Drop Python 3.8 support by @XuehaiPan in #206.
- Retire benchmark script by @XuehaiPan in #211.
New Contributors
- @pfackeldey made their first contribution in #222
Full Changelog: v0.15.0...v0.16.0
optree v0.15.0
optree v0.15.0
Added
- Add method
PyTreeSpec.traverseby @XuehaiPan in #197. - Include test suites in SDist by @XuehaiPan in #201.
- Include branch coverage and add conditional pragmas by @XuehaiPan in #204.
- Detect
cmakeversion and guard minimum version insetup.pyby @XuehaiPan in #205.
Removed
- Remove deprecated key path APIs by @XuehaiPan in #195.
- Remove deprecated
optree.Partialby @XuehaiPan in #196. - Remove duplicate lint checks by @XuehaiPan in #202.
New Contributors
- @Flamefire made their first contribution in #203.
Full Changelog: v0.14.1...v0.15.0
optree v0.14.1
optree v0.14.1
Added
- Support using system
cmakeexecutable during setup by @mgorny in #188. - Add shortcut module
optree.pytreeandoptree.treespecby @lqhuang in #189. - Support lookup all registry entries in a
namespaceviaregister_pytree_node.get()by @XuehaiPan in #190. - Add PyPy 3.11 support by @XuehaiPan in #194.
Changed
- Enable CXX11 ABI in C++ extension by @XuehaiPan in #184.
New Contributors
Full Changelog: v0.14.0...v0.14.1
optree v0.14.0
optree v0.14.0
Added
- Add method
PyTreeSpec.one_levelandPyTreeSpec.is_one_levelby @XuehaiPan in #179. - Add method
PyTreeSpec.transformby @XuehaiPan in #177.
Changed
- Mark some arguments as positional-only as of Python 3.8+ by @XuehaiPan in #178.
Fixed
- Fix cross-compiling for ARM64 on x64 Windows by @XuehaiPan in #183.
Removed
- Drop Python 3.7 support by @XuehaiPan in #161.
Full Changelog: v0.13.1...v0.14.0
optree v0.13.1
optree v0.13.1
What's New
- CI workflow improvements and minor fixes for typing annotation.
Added
- Upload coverage / JUnit results / core dumps in CI workflows by @XuehaiPan in #170 and #172.
- Add more info to
tree_flatten_one_levelby @XuehaiPan in #168. - Improve typing support for generic
PyTree[T]and registry lookup / register functions by @XuehaiPan in #160 and #166.
Changed
- Move include directory
include/{ => optree}/*.hby @XuehaiPan in #167.
Fixed
- Improve typing support for
optree.dataclasses.dataclassandoptree.dataclasses.fieldby @manulari in #165.
Full Changelog: v0.13.0...v0.13.1
New Contributors
optree v0.13.0
optree v0.13.0
What's New
- Add Python 3.13 and Python 3.13t (free-threading build) support.
- Add
dataclassesintegration. - Significantly refactor and improve CXX build support.
Added
- Add Python 3.13t support by @XuehaiPan in #137.
- Expose Python implementation for C utilities for
namedtupleandPyStructSequenceby @XuehaiPan in #157. - Add
dataclassesintegration by @XuehaiPan in #142. - Add Python 3.13 support by @XuehaiPan in #156.
- Respect cmake variable
pybind11_DIRby @XuehaiPan in #155. - Add tests with PyDebug enabled in CI by @XuehaiPan in #150.
Changed
- Split implementation files and add more
inline/constexpr/noexceptqualifiers by @XuehaiPan in #159. - Use
cmake'sFindPythonmodule by @XuehaiPan in #151.
Fixed
- Fix potential segmentation fault for
structseq_fieldscache support by @XuehaiPan in #150.
Full Changelog: v0.12.1...v0.13.0
optree v0.12.1
optree v0.12.1
Fixed
- Fix warning regression during import when launch with strict warning filters by @XuehaiPan in #149.
Full Changelog: v0.12.0...v0.12.1
optree v0.12.0
optree v0.12.0
Added
- Add context manager to temporarily set the dictionary sorting mode by @XuehaiPan in #147.
- Add PyPy support by @XuehaiPan in #145.
- Add 32-bit wheels for Linux and Windows by @XuehaiPan in #141.
- Add Linux ppc64le and s390x wheels by @XuehaiPan in #138.
- Add accessor APIs
tree_flatten_with_accessorandPyTreeSpec.accessorsby @XuehaiPan in #108. - Add submodule
optree.functoolsby @XuehaiPan in #134.
Changed
- Use
stabletag instead of 2.12.0 forpybind11version by @XuehaiPan in #146. - Refactor the raw import statement in
setup.pywithimportlibutilities by @XuehaiPan in #135. - Update minimal version of
typing-extensionsto 4.5.0 fortyping_extensions.deprecatedby @XuehaiPan in #134. - Update string representation for
OrderedDictby @XuehaiPan in #133.
Fixed
- Fix gc for self-referential case by implementing
tp_traverseby @XuehaiPan in #144. - Fix potential segmentation fault for pickling support by @XuehaiPan in #143.
- Update CI runner image for Python 3.7 on macOS by @XuehaiPan in #135.
Removed
- Deprecate key path APIs by @XuehaiPan in #108.
- Deprecate
optree.Partialand replace withoptree.functools.partialby @XuehaiPan in #134.
Full Changelog: v0.11.0...v0.12.0