Release Notes¶
A summary of changes made between each PyshGP release.
v0.1.8 - August 17, 2020¶
API changes¶
Fixed a bug with passing Pandas dataframes to the
fit
method ofPushEstimator
.Adds
PushVector
and all common vector Push types.
Internals¶
Multiprocessing pools properly get closed after each run.
Fixes bug where string columns of Pandas DataFrames were not properly converted to
PushString
.
Development / Repository¶
README now contains a link to the pyshgp demo repository
Added 3 new examples: triple, rectangle, and iris. See them here.
Credits¶
This release would not have been possible without the following contributors:
v0.1.7 - June 15, 2020¶
API changes¶
Added the
.pretty_str()
method toProgram
to get a traditional Push program representation.
Internals¶
Verbosity is set in the
PushEstimator
and not theSearchAlgorithm
. User who directly call the internals should use theTapManager
directly.The default information printed to stdout has been cleaned up.
Parallel process pool is manually closed after evolution to prevent a hang.
Development / Repository¶
README has been clarified and typos fixed.
setup.py
file license has been updated to match theLISCENSE
file in the repo.The
push_cli.py
file for generating instruction list HTML files has been removed.
Credits¶
This release would not have been possible without the following contributors:
Naya Burshan
Reporting that
push_cli.py
has broken
Lee Spector
Suggesting the
.pretty_str()
method.Providing feedback on what is printed to to stdout.
Reporting typos and clarity issues in the README.
v0.1.6 - June 1, 2020¶
API changes¶
Added a
Program
abstraction to better encapsulate (almost) everything needed to run a Push program consistently.Added parallelism controls to
PushEstimator
andSearchAlgorithm
.Added collection size cap to PushConfig to prevent programs from taking up huge amounts of memory.
Added
TapManager
andTaps
for logging and monitoring.Fixed
exclude_stacks
option ofregister_core_by_stack
.
Internals¶
Fixed DatasetEvaluator support for pandas data structures.
Refactored
Selector
to useSimpleMultiSelectorMixin
.Added more constraints to push execution.
Replaced Instructions in genomes and programs with InstructionMeta.
Changed Inputs their own Atom type instead of Instruction.
Switched to persistent collections and classes throughout genome, program, and config abstractions.
Fixes a bug in
EpsilonLexicaseSelection
.
Development / Repository¶
Removes support for Python 3.6
Added tox.
Fixed many doc typos.
Added some utility scripts for making deployment of new releases easier.
Updated CI to include multiple python versions.
Migrated CI/CD to GitHub actions.
v0.1.5 - April 19, 2019¶
API changes¶
Separated “types” and “stacks” in a more logical way. Various arguments have been renamed.
Made verbosity config easier to configure and use.
Add optional argument to
PushStack
for pushing initial values. Useful for custom fitness functions.Added the
PushTypeLibrary
abstraction. Read more at link below.
Internals¶
Changed how core instructions can be added to instruction sets.
Added support for smaller numpy ints than int64.
Improved performance with respect to monitoring/verbosity.
Fixed rarely occurring non-deterministic type matching.
Development / Repository¶
Added
tutorials/point_distance.py
example to demonstrate custom types.Added documentation article push types.
Moved style checking from tests to CI
Known Issues¶
Programs that have literal values of custom types are not be serializable to JSON.
Report issues on the Github.
Credits¶
This release would not have been possible without the following contributors:
Blossom Metevier.
Reported lack of support for smaller numpy int types.
Demonstrated the annoyance of style checking in tests.
Julian Oks
Demonstrated a need for
PushState
initial values argument.
v0.1.4 - March 23, 2019¶
API changes¶
Changed
PushState.pretty_print()
signature from argument annotation to default.
Internals¶
Removed variable annotations from codebase to make pyshgp compatible with Python 3.5 again.
Fixed overflow error in dup_times instructions (#108)
TakesStateInstruction
allows for tuple return valuesIf push program input value is Atom subtype, it will no longer be wrapped in a
Literal
.Removed incorrect numpy string types.
All exceptions when evaluating atoms will be caught and raised after printing which atom was being evaluated.
Development / Repository¶
Added documentation article on instructions.
Added documentation showing all core instruction docstrings.
Tuned string tutorial examples to take less time for CI testing.
Fixed typos in README.md
Added this release notes page :)
Known Issues¶
None yet. Report issues on the Github.
Credits¶
This release would not have been possible without the following contributors:
Blossom Metevier.
Reported the incompatibility with Python 3.5 due to variable annotations.
Lee Spector
Feedback on README file.
Michael Garcia
Reporting the lack of documentation on defining and registering custom instructions.
v0.1.3 - March 12, 2019¶
API changes¶
Added last_str_from_stdout option to PushEstimator. If True, the last string type output of a program will be taken from the PushState’s stdout attribute after program evaluation finishes.
Added validation and verbosity controls. Estimator has minimal verbosity options (0, 1, or 2). SearchAlgorithm can take a fully configurable VerbosityConfig.
Internals¶
Removed a source of infinite loops instructions.
Development / Repository¶
Added “Replace Space With Newline” example file.
Improved verbosity of example problems.
Mentioned tests in README.
Added license file.
Known Issues¶
None yet. Report issues on the Github.
Credits¶
This release would not have been possible without the following contributors:
Github user RedBeansAndRice. - Reporting issues with example files not conforming to API changes.