Closed penguinpee closed 21 hours ago
I seems I have spoken and jumped to conclusions too soon. I just attempted a local build and test run in a Python 3.11 venv. That showed exactly the same errors.
At first the import of sklearn_genetic/tests/test_plots.py
failes with:
_____________________________________________________________________________________________________________ ERROR collecting sklearn_genetic/tests/test_plots.py _____________________________________________________________________________________________________________
.venv/lib64/python3.11/site-packages/_pytest/runner.py:341: in from_call
result: Optional[TResult] = func()
.venv/lib64/python3.11/site-packages/_pytest/runner.py:372: in <lambda>
call = CallInfo.from_call(lambda: list(collector.collect()), "collect")
.venv/lib64/python3.11/site-packages/_pytest/python.py:531: in collect
self._inject_setup_module_fixture()
.venv/lib64/python3.11/site-packages/_pytest/python.py:545: in _inject_setup_module_fixture
self.obj, ("setUpModule", "setup_module")
.venv/lib64/python3.11/site-packages/_pytest/python.py:310: in obj
self._obj = obj = self._getobj()
.venv/lib64/python3.11/site-packages/_pytest/python.py:528: in _getobj
return self._importtestmodule()
.venv/lib64/python3.11/site-packages/_pytest/python.py:617: in _importtestmodule
mod = import_path(self.path, mode=importmode, root=self.config.rootpath)
.venv/lib64/python3.11/site-packages/_pytest/pathlib.py:565: in import_path
importlib.import_module(module_name)
/usr/lib64/python3.11/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1204: in _gcd_import
???
<frozen importlib._bootstrap>:1176: in _find_and_load
???
<frozen importlib._bootstrap>:1147: in _find_and_load_unlocked
???
<frozen importlib._bootstrap>:690: in _load_unlocked
???
<frozen importlib._bootstrap_external>:940: in exec_module
???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
???
sklearn_genetic/tests/test_plots.py:39: in <module>
evolved_estimator.fit(X_train, y_train)
sklearn_genetic/genetic_search.py:545: in fit
self._register()
sklearn_genetic/genetic_search.py:311: in _register
self.creator.create("FitnessMax", base.Fitness, weights=[self.criteria_sign, 1.0])
E AttributeError: 'GASearchCV' object has no attribute 'creator'
In the next run I disabled the import with --ignore sklearn_genetic/tests/test_plots.py
leading to many more failing tests.
I'm mostly interested in the GASearchCV AttributeError. Since we have neither mlflow
nor tensorflow
packaged in Fedora, we skipped the tests needing those (plus a few more I hadn't had time to look into back then).
When I looked at the recent GitHub Actions, in particular the most recent 0.11.0 release run in order to compare results, I noticed that there is no output or the Test with pytest job since the previous job timed out.
The one before that succeeded, but only for the 3.11 Ubuntu configuration. Versions used for testing are the same on my end: platform linux -- Python 3.11.9, pytest-7.4.0, pluggy-1.5.0
.
Hi, thanks for reporting this, I'll take a look into the error AttributeError: 'GASearchCV' object has no attribute 'creator'
To run all the tests the installation requires to use pip install sklearn-genetic-opt[all]
. If you're manually skipping some tests and not using the all
flag, I still would recommend installing seaborn
.
The latest official supported version is python 3.11 because the underlying genetic algorithms package DEAP from which we heavily rely, also has this version as the latest supported one.
Thanks! Just a quick confirmation that everything is working again as before also in Python 3.12 and 3.13. :+1:
System information
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Fedora Linux F39+ Sklearn-genetic-opt version: 0.11.0 Scikit-learn version: 1.3.0 / 1.4.1 Python version: 3.12.5 / 3.13.0rc2
Describe the bug
Tests are failing in version 0.11.0 with above mentioned Python version. We expect Python 3.13.0 to be released in time for inclusion in the upcoming Fedora 41. Current releases (39 and 40) were shipped with Python 3.12 and are currently on 3.12.5.
Version 0.10.1 seems to build and test fine with Python 3.12 and 3.13. I've noticed that the newest Python release, which is listed in
setup.py
and which is used for the CI tests is Python 3.11.Before I waste any time with the details, is there a reason Python 3.12 is not officially supported and not tested with?
To Reproduce Steps to reproduce the behavior:
AttributeError: 'GASearchCV' object has no attribute 'creator'
during collection and execution of tests