Merge pull request #11837 from freqtrade/feat/python_13

Add support for python 3.13
This commit is contained in:
Matthias
2025-06-04 18:24:35 +02:00
committed by GitHub
6 changed files with 17 additions and 7 deletions

View File

@@ -25,7 +25,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ "ubuntu-22.04", "ubuntu-24.04" ] 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: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -103,6 +103,8 @@ jobs:
python build_helpers/create_command_partials.py python build_helpers/create_command_partials.py
- name: Check for repository changes - name: Check for repository changes
# TODO: python 3.13 slightly changed the output of argparse.
if: (matrix.python-version != '3.13')
run: | run: |
if [ -n "$(git status --porcelain)" ]; then if [ -n "$(git status --porcelain)" ]; then
echo "Repository is dirty, changes detected:" echo "Repository is dirty, changes detected:"
@@ -157,7 +159,10 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ "macos-13", "macos-14", "macos-15" ] 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: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -285,7 +290,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ windows-latest ] os: [ windows-latest ]
python-version: ["3.10", "3.11", "3.12"] python-version: ["3.10", "3.11", "3.12", "3.13"]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4

View File

@@ -42,7 +42,7 @@ cd freqtrade
Install ta-lib according to the [ta-lib documentation](https://github.com/TA-Lib/ta-lib-python#windows). 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. 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. Other versions must be downloaded from the above link.

View File

@@ -23,6 +23,7 @@ classifiers = [
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Operating System :: MacOS", "Operating System :: MacOS",
"Operating System :: Unix", "Operating System :: Unix",
"Topic :: Office/Business :: Financial :: Investment", "Topic :: Office/Business :: Financial :: Investment",

View File

@@ -22,6 +22,7 @@ classifiers = [
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Operating System :: MacOS", "Operating System :: MacOS",
"Operating System :: Unix", "Operating System :: Unix",
"Topic :: Office/Business :: Financial :: Investment", "Topic :: Office/Business :: Financial :: Investment",
@@ -40,7 +41,7 @@ dependencies = [
"jsonschema", "jsonschema",
"numpy>2.0,<3.0", "numpy>2.0,<3.0",
"pandas>=2.2.0,<3.0", "pandas>=2.2.0,<3.0",
"TA-Lib", "TA-Lib<0.6",
"ft-pandas-ta", "ft-pandas-ta",
"technical", "technical",
"tabulate", "tabulate",

View File

@@ -150,13 +150,16 @@ function Test-PythonExecutable {
function Find-PythonExecutable { function Find-PythonExecutable {
$PythonExecutables = @( $PythonExecutables = @(
"python", "python",
"python3.13",
"python3.12", "python3.12",
"python3.11", "python3.11",
"python3.10", "python3.10",
"python3", "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\Python312\python.exe",
"C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python311\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:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python310\python.exe",
"C:\Python313\python.exe",
"C:\Python312\python.exe", "C:\Python312\python.exe",
"C:\Python311\python.exe", "C:\Python311\python.exe",
"C:\Python310\python.exe" "C:\Python310\python.exe"

View File

@@ -25,7 +25,7 @@ function check_installed_python() {
exit 2 exit 2
fi fi
for v in 12 11 10 for v in 13 12 11 10
do do
PYTHON="python3.${v}" PYTHON="python3.${v}"
which $PYTHON which $PYTHON
@@ -257,7 +257,7 @@ function install() {
install_redhat install_redhat
else else
echo "This script does not support your OS." 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." echo "Wait 10 seconds to continue the next install steps or use ctrl+c to interrupt this shell."
sleep 10 sleep 10
fi fi