Releases: MilesCranmer/PySR
Releases · MilesCranmer/PySR
v0.17.2
What's Changed
- All cell state in bio image paper by @chris-soelistyo in #560
- Refactor update_backend.yml workflow by @sefffal in #562
- Limit to Julia 1.6.7-1.10.0 and 1.10.3+ by @MilesCranmer in #565
New Contributors
- @chris-soelistyo made their first contribution in #560
- @sefffal made their first contribution in #562
Full Changelog: v0.17.1...v0.17.2
v0.17.1
v0.17.0
What's Changed
- Bump docker/build-push-action from 3 to 5 by @dependabot in #510
- Bump actions/cache from 3 to 4 by @dependabot in #526
- Update colab notebook to use juliaup by @MilesCranmer in #531
- Bump peter-evans/create-pull-request from 5 to 6 by @dependabot in #539
- (BREAKING) Rewrite Julia interface with PyJulia -> JuliaCall; other changes by @MilesCranmer @cjdoris @mkitti in #535
Detailed changes from #535
- (BREAKING) Changed PyJulia with JuliaCall
- Need to change
eval
->seval
- Manually converting to
Vector
when calling SymbolicRegression.jl functions (otherwise would get passed asPyList{Any}
; see JuliaPy/PythonCall.jl#441) - Wrapped
equation_search
code withjl.PythonCall.GC.disable()
to avoid multithreading-related segfaults (JuliaPy/PythonCall.jl#298) - Manually convert
np.str_
tostr
before passing tovariable_names
, otherwise it becomes aPyArray
and not aString
(might be worth adding a workaround, it seems like PyJulia does this automatically)
- Need to change
- (BREAKING) Julia is now installed automatically when you import
pysr
(via JuliaCall) - (BREAKING) The user no longer needs to run
python -m pysr install
. The install process is done by JuliaCall at import time.- Removed code related to
pysr.install()
andpython -m pysr install
because JuliaCall now handles this. python -m pysr install
will not give a warning and do nothing.
- Removed code related to
- (BREAKING) Remove the feynman problems dataset. Didn't seem good to have a dataset within a library itself.
- (BREAKING) Deprecated
julia_project
argument (ignored; no effect). The user now needs to set this up by customizingjuliapkg.json
. See updated documentation for instructions. - (BREAKING) Switch from
python -m pysr.test [test]
topython -m pysr test [test]
. - Switches to
pyproject.toml
for building rather thansetup.py
. However,setup.py install
should still work. - Dependencies are now managed by pyjuliapkg rather than the custom code we made. Simplifies things a lot!
- Rather than storing the raw julia variables in
PySRRegressor
, I am now storing a serialized version of them. This means you can now pickle the search state and warm-start the search from a file, in another Python process!- Not breaking! Because
self.raw_julia_state_
will deserialize it automatically for you
- Not breaking! Because
- SymbolicRegression is now available to import from PySR:
from pysr import SymbolicRegression as SR
x1 = SR.Node(feature=1) # Create expressions manually
- SymbolicRegression options are accessible in
<model>.julia_options_
(generated from a serialized format for pickle safety) so that the user can call a variety of functions inSymbolicRegression.jl
directly. - Deprecated various kwargs to match SymbolicRegression.jl (old names will still work, so this is not breaking):
ncyclesperiteration => ncycles_per_iteration
loss => elementwise_loss
full_objective => loss_function
- Fixes Jupyter printing by automatically loading the
juliacall.ipython
extension at import time - Adds Zygote.jl to environment by default
- Does unittesting on an example Jupyter notebook
Full Changelog: v0.16.9...v0.17.0
v0.16.9
v0.16.8
What's Changed
- Install
typing_extensions
for compatibility with Python 3.7 by @MilesCranmer in #497 - Create dependabot.yml by @MilesCranmer in #500
- Fix docker CI nightly by @MilesCranmer in #499
- Enforce upper bound compats by @MilesCranmer in #498
Full Changelog: v0.16.7...v0.16.8
v0.16.7
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #495
- Warn the user on Python 3.12 by @MilesCranmer in #496
Full Changelog: v0.16.6...v0.16.7
v0.16.6
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #488
- Add parameter for specifying
--heap-size-hint
on spawned Julia processes by @MilesCranmer in #493
Full Changelog: v0.16.5...v0.16.6
v0.16.5
What's Changed
- Add more piecewise operators by @MilesCranmer in #486
Full Changelog: v0.16.4...v0.16.5
v0.16.4
What's Changed
- Requesting addition of paper to research examples by @tmengel in #415
- Incorporate pre-commit hooks by @MilesCranmer in #425
- Refactor sympy and export functionality by @MilesCranmer in #427
- Refactor utility functions in
sr.py
by @MilesCranmer in #428 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #431
- Add paper "Discovery of a Planar Black Hole Mass Scaling Relation for Spiral Galaxies" by @ZehaoJin in #437
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #440
- Added "min" and "max" sympy mapping by @tanweer-mahdi in #473
- Added "round" operator in the Sympy mappings by @tanweer-mahdi in #474
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #446
- Automated update to backend: v0.22.5 by @MilesCranmer in #482
New Contributors
- @tmengel made their first contribution in #415
- @ZehaoJin made their first contribution in #437
- @tanweer-mahdi made their first contribution in #473
Full Changelog: v0.16.3...v0.16.4
v0.16.3
What's Changed
- Automated update to backend: v0.22.4 by @MilesCranmer in #413
- Fixes world age issue
Full Changelog: v0.16.2...v0.16.3