From 3ebbe2b56ceecfc21f58cac1ede5673acea6dd93 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 4 Jun 2025 07:16:29 +0200 Subject: [PATCH 1/6] chore: pin ta-lib<0.6 to avoid false installs --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c3ef5f1fc..e0c875f77 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ dependencies = [ "jsonschema", "numpy>2.0,<3.0", "pandas>=2.2.0,<3.0", - "TA-Lib", + "TA-Lib<0.6", "ft-pandas-ta", "technical", "tabulate", From da6affcd6afa98d0976a15930d75c1c93eca7034 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 4 Jun 2025 07:18:24 +0200 Subject: [PATCH 2/6] chore: run CI against 3.13 --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a583ae33..0cd8612e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: strategy: matrix: os: [ "ubuntu-22.04", "ubuntu-24.04" ] - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -157,7 +157,7 @@ jobs: strategy: matrix: os: [ "macos-13", "macos-14", "macos-15" ] - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -285,7 +285,7 @@ jobs: strategy: matrix: os: [ windows-latest ] - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 From 2c4452453a2a5d1160bbaa0f2514b32e49f06548 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 4 Jun 2025 07:19:40 +0200 Subject: [PATCH 3/6] chore: update pyproject for python 3.13 --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index e0c875f77..7593262d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: MacOS", "Operating System :: Unix", "Topic :: Office/Business :: Financial :: Investment", From 473a15c4ef34589594bb8f1c51fa345017affbed Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 4 Jun 2025 07:20:58 +0200 Subject: [PATCH 4/6] chore: scripts should support 3.13 --- setup.ps1 | 3 +++ setup.sh | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/setup.ps1 b/setup.ps1 index 116ed0a2b..0bf0542cd 100644 --- a/setup.ps1 +++ b/setup.ps1 @@ -150,13 +150,16 @@ function Test-PythonExecutable { function Find-PythonExecutable { $PythonExecutables = @( "python", + "python3.13", "python3.12", "python3.11", "python3.10", "python3", + "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python313\python.exe", "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python312\python.exe", "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python311\python.exe", "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python310\python.exe", + "C:\Python313\python.exe", "C:\Python312\python.exe", "C:\Python311\python.exe", "C:\Python310\python.exe" diff --git a/setup.sh b/setup.sh index 0d490a134..4e877b19d 100755 --- a/setup.sh +++ b/setup.sh @@ -25,7 +25,7 @@ function check_installed_python() { exit 2 fi - for v in 12 11 10 + for v in 13 12 11 10 do PYTHON="python3.${v}" which $PYTHON @@ -257,7 +257,7 @@ function install() { install_redhat else echo "This script does not support your OS." - echo "If you have Python version 3.10 - 3.12, pip, virtualenv, ta-lib you can continue." + echo "If you have Python version 3.10 - 3.13, pip, virtualenv, ta-lib you can continue." echo "Wait 10 seconds to continue the next install steps or use ctrl+c to interrupt this shell." sleep 10 fi From d3b5be6cb602cf01dcba26ede8f4050a9f5b513f Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 4 Jun 2025 07:21:13 +0200 Subject: [PATCH 5/6] chore: update docs and ft_client taxonomy --- docs/windows_installation.md | 2 +- ft_client/pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/windows_installation.md b/docs/windows_installation.md index c824ee5de..936124b05 100644 --- a/docs/windows_installation.md +++ b/docs/windows_installation.md @@ -42,7 +42,7 @@ cd freqtrade Install ta-lib according to the [ta-lib documentation](https://github.com/TA-Lib/ta-lib-python#windows). -As compiling from source on windows has heavy dependencies (requires a partial visual studio installation), Freqtrade provides these dependencies (in the binary wheel format) for the latest 3 Python versions (3.10, 3.11 and 3.12) and for 64bit Windows. +As compiling from source on windows has heavy dependencies (requires a partial visual studio installation), Freqtrade provides these dependencies (in the binary wheel format) for the latest 3 Python versions (3.10, 3.11, 3.12 and 3.13) and for 64bit Windows. These Wheels are also used by CI running on windows, and are therefore tested together with freqtrade. Other versions must be downloaded from the above link. diff --git a/ft_client/pyproject.toml b/ft_client/pyproject.toml index a29b3d08c..d69dad49d 100644 --- a/ft_client/pyproject.toml +++ b/ft_client/pyproject.toml @@ -23,6 +23,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: MacOS", "Operating System :: Unix", "Topic :: Office/Business :: Financial :: Investment", From c6c2934741e7bf360eede2288a03acfc56717d6a Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 4 Jun 2025 08:18:50 +0200 Subject: [PATCH 6/6] chore(ci): fix 3.13 tests and incompatibilities --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0cd8612e9..3453d11ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,6 +103,8 @@ jobs: python build_helpers/create_command_partials.py - name: Check for repository changes + # TODO: python 3.13 slightly changed the output of argparse. + if: (matrix.python-version != '3.13') run: | if [ -n "$(git status --porcelain)" ]; then echo "Repository is dirty, changes detected:" @@ -158,6 +160,9 @@ jobs: matrix: os: [ "macos-13", "macos-14", "macos-15" ] python-version: ["3.10", "3.11", "3.12", "3.13"] + exclude: + - os: macos-13 + python-version: "3.13" steps: - uses: actions/checkout@v4