diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a583ae33..3453d11ea 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 @@ -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:" @@ -157,7 +159,10 @@ 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"] + exclude: + - os: macos-13 + python-version: "3.13" steps: - uses: actions/checkout@v4 @@ -285,7 +290,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 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", diff --git a/pyproject.toml b/pyproject.toml index c3ef5f1fc..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", @@ -40,7 +41,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", 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