Symbolite Changelog
===================

0.8.0 (2025-11-28)
------------------

- Drop legacy `.subs`, `.subs_by_name`, `.eval`, `.symbol_names`, `.yield_named` and `.symbol_namespaces` in favor of the new substitution/translation APIs (breaking change).
- Reorganize the symbolic core around `SymbolicObject`, `Call`, and separated Function/Operator types; rename `evaluate` to `translate` and clarify naming helpers.
- Introduce the `lang` module and `libpythoncode` backend so `as_code` is generated through translation with VALUE/CODE kinds.
- Rename `Scalar` to `Real`, remove `Real`/`Vector` as `Symbol` subclasses, and push more operations into singledispatch `ops`.
- Make symbolic objects opaque, keeping metadata in `__symbolite_info__`.
- Add `SymbolicNamespace` capabilities (yielding, substitute/evaluate, string rendering) and rework `yield_free_symbols`/function helpers.
- Modernize packaging: require Python 3.12, drop 3.10/3.11, migrate to the new pixi layout, refresh CI, and add win-64 builds.
- Remove JAX dependencies from numpy/win paths; fix power handling (including Pint) and value conversion edge cases.
- Improve docs, naming consistency, and typing coverage.


0.7.0 (2025-01-27)
------------------

- Prepare to remove .subs .subs_by_name, .eval, .symbol_names, .yield_named, .symbol_namespaces.
- Migrate to pixi and improve package infrastructure.
- Improve types and typing in dunder methods.
- Hide private attributes and attributes with default values from dataclass repr.
- Add UserFunction.
- (breaking change) subs and subs_by_name should no eval functions, just replace.


0.6.0 (2024-01-19)
------------------

- Make `Symbol` serializable.

0.5.1 (2023-12-14)
------------------

- Add `typing_extensions` to requirements.

0.5.0 (2023-10-24)
------------------

- Remove reflected BinaryFunctions, as reflected methods call
the non-reflected BinaryFunctions changing the order of the arguments.
- Remove unnecessary parenthesis when converting expression to string
based on operator precedences.
- Refactor code to compute dependencies in `util` module.


0.4.1 (2023-08-17)
------------------

- Add option to substitute and eval in multiple
  symbols respecting the dependencies.
- Remove reverse operators replacing with reverse arguments.
- Do not change Exception type (and use add_note)


0.4 (2023-08-01)
----------------

- Merged symbolite-scalar and symbolite-array.
- Minimum Python version: 3.10.
- Better vectorization functionality.
- Several fixes.
- Homogenous API.

0.3 (2023-02-12)
----------------

- Reorganized package into a flatter structure.


0.2 (2022-12-21)
----------------

- Everything is now a namespace package to allow extension.
- Moved to an extendable lib structure.
- Renamed Symbol to Scalar.


0.1.1 (2022-12-18)
------------------

- Change pyproject.toml to fix some installation issues.


0.1 (2022-12-15)
----------------

- first public release.
