Releases: MilesCranmer/PySR
Releases · MilesCranmer/PySR
v0.17.4
Small patch to Julia version to avoid buggy libgomp in 1.10.1 and 1.10.2.
Full Changelog: v0.17.3...v0.17.4
v0.17.3
What's Changed
- Bump juliacall from 0.9.15 to 0.9.19 by @dependabot in #569
- Upstreamed patching of
sevalto support multiple expressions
- Upstreamed patching of
- remove repeated operator by @RaulPL in #573
New Contributors
Full Changelog: v0.17.2...v0.17.3
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
Vectorwhen calling SymbolicRegression.jl functions (otherwise would get passed asPyList{Any}; see JuliaPy/PythonCall.jl#441) - Wrapped
equation_searchcode withjl.PythonCall.GC.disable()to avoid multithreading-related segfaults (JuliaPy/PythonCall.jl#298) - Manually convert
np.str_tostrbefore passing tovariable_names, otherwise it becomes aPyArrayand 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 installbecause JuliaCall now handles this. python -m pysr installwill 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_projectargument (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.tomlfor building rather thansetup.py. However,setup.py installshould 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.jldirectly. - Deprecated various kwargs to match SymbolicRegression.jl (old names will still work, so this is not breaking):
ncyclesperiteration => ncycles_per_iterationloss => elementwise_lossfull_objective => loss_function
- Fixes Jupyter printing by automatically loading the
juliacall.ipythonextension 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_extensionsfor 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-hinton 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