Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: geneticpy/geneticpy

v2.0.0

11 Oct 06:16
46b268a

Choose a tag to compare

[2.0.0] - 2025-10-11

Changed

  • BREAKING: Removed scikit-learn dependency and GeneticSearchCV class
  • BREAKING: Minimum Python version increased from 3.8 to 3.10
  • Migrated from setuptools to hatchling build backend
  • Migrated from pip to uv for dependency management
  • Modernized CI/CD workflows to use uv
  • Updated README with modern development workflow

Added

  • Comprehensive type hints across entire codebase
  • NumPy-style docstrings on all public APIs
  • Makefile with helpful development targets (test, lint, format, typecheck, build, coverage, clean)
  • MyPy type checking with strict mode enabled
  • Ruff for linting and formatting with docstring validation
  • Coverage reporting configuration
  • Python 3.13 and 3.14 support
  • Tournament selection option for improved parent selection pressure (use_tournament_selection, tournament_size parameters)
  • Diversity protection with automatic population diversity monitoring and injection when diversity falls below threshold
    • Handles both numeric parameters (variance-based) and categorical choice parameters (unique ratio)
    • Automatically injects random individuals when diversity falls below threshold
  • Adaptive mutation that automatically adjusts exploration vs exploitation based on optimization progress
  • Early stopping via patience parameter to halt optimization when no improvement is seen for N generations
  • Enhanced mutation with mutation_rate parameter (0.0-1.0) for probabilistic per-parameter mutation
  • Comprehensive test suite with 15 new tests covering all new features (64 total tests, 97% coverage)

Fixed

  • ReadTheDocs configuration for proper documentation building
  • Docstring formatting for Sphinx compatibility
  • Infinite loop bug in breeding logic where if set1 != set2 condition could hang indefinitely
  • Incomplete random seeding - now seeds both random and numpy.random for full reproducibility
  • Weak elitism protection - top performers are now preserved correctly across generations
  • Improved breeding algorithm to always produce valid offspring

v1.4.0

16 Sep 17:04
fe1e9a8

Choose a tag to compare

What's Changed

  • Add Python 3.11 support
  • Remove Python 3.7 support

Full Changelog: v1.3.0...v.1.4.0

v1.3.0

28 Mar 01:31
a929bf3

Choose a tag to compare

New Feature

  • Added the ability to provide an asynchronous loss/reward function to the optimize function.

Miscellaneous Changes

Full Changelog: v1.2.3...v1.3.0

v1.2.3

26 Mar 17:33
54451cf

Choose a tag to compare

Bug Fix

  • Updated Scikit-Learn support to include >=0.23.2.

Miscellaneous Changes

  • Changed CI/CD from Travis to GitHub Actions
  • Utilizing pyproject.toml and setup.cfg files instead of setup.py
  • Using setuptools-git-versioning for automatic versioning with release.
  • Adding Release step to GitHub actions to automate deployment to Pypi.

v1.2.2

16 Jun 18:31
a218b70

Choose a tag to compare

Bug Fix

  • Fixed issue with complex pipelines and GeneticSearchCV.

v1.2.1

16 Jun 17:42
2a1005b

Choose a tag to compare

Bug Fix

  • Complex pipelines can now be used with GeneticSearchCV.

v1.2.0

06 Jun 15:20
ddd26ff

Choose a tag to compare

New Features

  • Introduced GeneticSearchCV class.

Changes

  • Removed Python 3.4 and Python 3.5 support.

v1.1.0

22 Nov 18:54

Choose a tag to compare

Bug Fixes

  • Using tqdm autonotebook to allow tqdm counter to automatically detect Jupyter notebooks.
  • Fixed incorrect counting of tqdm counter.

Other Changes

  • Returning dictionary by default for the optimize function.
  • Added DeprecationWarning for "tuple" optimize return type.

v1.0.1

04 Mar 03:47

Choose a tag to compare

New Features

  • Created dictionary return type for optimize function.

Other Changes

  • Added PendingDeprecationWarning for "tuple" optimize return type.
  • Added Python 3.8 testing.

v1.0.0

09 Dec 01:12

Choose a tag to compare

New Features

  • Created 'seed' parameter to allow for reproducible results.
  • Allowing for early stopping when 'target' loss is reached.
  • Added 'total_time' to output of the optimize() function.

Bug Fixes

  • Exception is raised if loss function returns None.

Other Changes

  • Added test coverage report.
  • Achieved 100% test coverage.