From 2b5b518ccfe4aeb51c75d1ae9663ef36f0bdd82d Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 10 Mar 2024 13:10:51 +0100 Subject: [PATCH 1/6] Bump rl requirements for 3.12 --- requirements-freqai-rl.txt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/requirements-freqai-rl.txt b/requirements-freqai-rl.txt index 67fed9190..3f623b0c0 100644 --- a/requirements-freqai-rl.txt +++ b/requirements-freqai-rl.txt @@ -2,10 +2,9 @@ -r requirements-freqai.txt # Required for freqai-rl -torch==2.1.2; python_version < '3.12' -#until these branches will be released we can use this -gymnasium==0.29.1; python_version < '3.12' -stable_baselines3==2.2.1; python_version < '3.12' -sb3_contrib>=2.0.0a9; python_version < '3.12' +torch==2.2.1 +gymnasium==0.29.1 +stable_baselines3==2.2.1 +sb3_contrib>=2.2.1 # Progress bar for stable-baselines3 and sb3-contrib tqdm==4.66.2 From 08cff9890fd1abe7cb624e3559c091fe91b52be1 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 10 Mar 2024 13:11:56 +0100 Subject: [PATCH 2/6] Remove conditional checks for python 3.12 --- tests/freqai/conftest.py | 2 +- tests/freqai/test_freqai_interface.py | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/tests/freqai/conftest.py b/tests/freqai/conftest.py index 55f0296a3..1a479d903 100644 --- a/tests/freqai/conftest.py +++ b/tests/freqai/conftest.py @@ -41,7 +41,7 @@ def patch_torch_initlogs(mocker) -> None: module_name = 'torch' mocked_module = types.ModuleType(module_name) sys.modules[module_name] = mocked_module - elif not is_py12(): + else: mocker.patch("torch._logging._init_logs") diff --git a/tests/freqai/test_freqai_interface.py b/tests/freqai/test_freqai_interface.py index 2e42f000e..9e0955bd2 100644 --- a/tests/freqai/test_freqai_interface.py +++ b/tests/freqai/test_freqai_interface.py @@ -14,16 +14,13 @@ from freqtrade.optimize.backtesting import Backtesting from freqtrade.persistence import Trade from freqtrade.plugins.pairlistmanager import PairListManager from tests.conftest import EXMS, create_mock_trades, get_patched_exchange, log_has_re -from tests.freqai.conftest import (get_patched_freqai_strategy, is_arm, is_mac, is_py12, - make_rl_config, mock_pytorch_mlp_model_training_parameters) +from tests.freqai.conftest import (get_patched_freqai_strategy, is_arm, is_mac, make_rl_config, + mock_pytorch_mlp_model_training_parameters) def can_run_model(model: str) -> None: is_pytorch_model = 'Reinforcement' in model or 'PyTorch' in model - if is_py12() and is_pytorch_model: - pytest.skip("Model not supported on python 3.12 yet.") - if is_arm() and "Catboost" in model: pytest.skip("CatBoost is not supported on ARM.") @@ -521,8 +518,6 @@ def test_get_state_info(mocker, freqai_conf, dp_exists, caplog, tickers): if is_mac(): pytest.skip("Reinforcement learning module not available on intel based Mac OS") - if is_py12(): - pytest.skip("Reinforcement learning currently not available on python 3.12.") freqai_conf.update({"freqaimodel": "ReinforcementLearner"}) freqai_conf.update({"timerange": "20180110-20180130"}) From 0cf46d86054211b3a38f14c42272661171b08520 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 10 Mar 2024 15:24:22 +0100 Subject: [PATCH 3/6] Revert "Remove conditional checks for python 3.12" This reverts commit e5fb2eb2d1874d7652a280ff098e4f63d7b8f528. --- tests/freqai/conftest.py | 2 +- tests/freqai/test_freqai_interface.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/freqai/conftest.py b/tests/freqai/conftest.py index 1a479d903..55f0296a3 100644 --- a/tests/freqai/conftest.py +++ b/tests/freqai/conftest.py @@ -41,7 +41,7 @@ def patch_torch_initlogs(mocker) -> None: module_name = 'torch' mocked_module = types.ModuleType(module_name) sys.modules[module_name] = mocked_module - else: + elif not is_py12(): mocker.patch("torch._logging._init_logs") diff --git a/tests/freqai/test_freqai_interface.py b/tests/freqai/test_freqai_interface.py index 9e0955bd2..2e42f000e 100644 --- a/tests/freqai/test_freqai_interface.py +++ b/tests/freqai/test_freqai_interface.py @@ -14,13 +14,16 @@ from freqtrade.optimize.backtesting import Backtesting from freqtrade.persistence import Trade from freqtrade.plugins.pairlistmanager import PairListManager from tests.conftest import EXMS, create_mock_trades, get_patched_exchange, log_has_re -from tests.freqai.conftest import (get_patched_freqai_strategy, is_arm, is_mac, make_rl_config, - mock_pytorch_mlp_model_training_parameters) +from tests.freqai.conftest import (get_patched_freqai_strategy, is_arm, is_mac, is_py12, + make_rl_config, mock_pytorch_mlp_model_training_parameters) def can_run_model(model: str) -> None: is_pytorch_model = 'Reinforcement' in model or 'PyTorch' in model + if is_py12() and is_pytorch_model: + pytest.skip("Model not supported on python 3.12 yet.") + if is_arm() and "Catboost" in model: pytest.skip("CatBoost is not supported on ARM.") @@ -518,6 +521,8 @@ def test_get_state_info(mocker, freqai_conf, dp_exists, caplog, tickers): if is_mac(): pytest.skip("Reinforcement learning module not available on intel based Mac OS") + if is_py12(): + pytest.skip("Reinforcement learning currently not available on python 3.12.") freqai_conf.update({"freqaimodel": "ReinforcementLearner"}) freqai_conf.update({"timerange": "20180110-20180130"}) From 4e02d31cdccc3305f8b66a61e3e40189e5ebe4eb Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 10 Mar 2024 18:20:54 +0100 Subject: [PATCH 4/6] Mock torch on mac ARM --- tests/freqai/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/freqai/conftest.py b/tests/freqai/conftest.py index 55f0296a3..6f3c3018d 100644 --- a/tests/freqai/conftest.py +++ b/tests/freqai/conftest.py @@ -33,7 +33,7 @@ def is_arm() -> bool: @pytest.fixture(autouse=True) def patch_torch_initlogs(mocker) -> None: - if is_mac() and not is_arm(): + if is_mac(): # Mock torch import completely import sys import types From e560f9963c6b46db0367319098e68b0dcb3eda7d Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 12 Mar 2024 07:30:06 +0100 Subject: [PATCH 5/6] Don't run Torch models on macos. --- tests/freqai/test_freqai_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/freqai/test_freqai_interface.py b/tests/freqai/test_freqai_interface.py index 2e42f000e..5e6c1f35c 100644 --- a/tests/freqai/test_freqai_interface.py +++ b/tests/freqai/test_freqai_interface.py @@ -27,7 +27,7 @@ def can_run_model(model: str) -> None: if is_arm() and "Catboost" in model: pytest.skip("CatBoost is not supported on ARM.") - if is_pytorch_model and is_mac() and not is_arm(): + if is_pytorch_model and is_mac(): pytest.skip("Reinforcement learning / PyTorch module not available on intel based Mac OS.") From 28bdbbffca9f89bccb6894a74fab2fd75d804e95 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 12 Mar 2024 19:59:46 +0100 Subject: [PATCH 6/6] Patch torch logging on 3.12 --- tests/freqai/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/freqai/conftest.py b/tests/freqai/conftest.py index 6f3c3018d..4a1976d9d 100644 --- a/tests/freqai/conftest.py +++ b/tests/freqai/conftest.py @@ -41,7 +41,7 @@ def patch_torch_initlogs(mocker) -> None: module_name = 'torch' mocked_module = types.ModuleType(module_name) sys.modules[module_name] = mocked_module - elif not is_py12(): + else: mocker.patch("torch._logging._init_logs")