diff --git a/.github/workflows/dependency_checker.yml b/.github/workflows/dependency_checker.yml index 64353c25..cb6e7368 100644 --- a/.github/workflows/dependency_checker.yml +++ b/.github/workflows/dependency_checker.yml @@ -14,6 +14,7 @@ jobs: python-version-file: 'pyproject.toml' - name: Install dependencies run: | + make upgradepip python -m pip install .[dev] make check-deps OUTPUT_FILEPATH=latest_requirements.txt make fix-lint diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b98d851c..5ff24bd5 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -17,7 +17,7 @@ jobs: - name: Build run: | sudo apt-get install pandoc - python -m pip install --upgrade pip + make upgradepip pip install -e .[dev] make docs - name: Deploy diff --git a/.github/workflows/end_to_end.yml b/.github/workflows/end_to_end.yml index 8334e132..865c15b1 100644 --- a/.github/workflows/end_to_end.yml +++ b/.github/workflows/end_to_end.yml @@ -10,11 +10,11 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-latest, windows-latest] include: - os: macos-latest - python-version: '3.9' + python-version: '3.10' - os: macos-latest python-version: '3.14' steps: @@ -25,7 +25,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install invoke .[test] - name: Run end to end tests run: invoke end-to-end diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d329a306..f9d7d135 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -20,7 +20,7 @@ jobs: python-version-file: 'pyproject.toml' - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install invoke .[dev] - name: Run lint checks run: invoke lint diff --git a/.github/workflows/minimum.yml b/.github/workflows/minimum.yml index befc5c1e..d4aacab9 100644 --- a/.github/workflows/minimum.yml +++ b/.github/workflows/minimum.yml @@ -14,11 +14,11 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-latest, windows-latest] include: - os: macos-latest - python-version: '3.9' + python-version: '3.10' - os: macos-latest python-version: '3.14' steps: @@ -29,7 +29,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install invoke .[test] - name: Test with minimum versions run: invoke minimum diff --git a/.github/workflows/numerical.yml b/.github/workflows/numerical.yml index 79f31658..53c6a857 100644 --- a/.github/workflows/numerical.yml +++ b/.github/workflows/numerical.yml @@ -14,11 +14,11 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-latest, windows-latest] include: - os: macos-latest - python-version: '3.9' + python-version: '3.10' - os: macos-latest python-version: '3.14' steps: @@ -29,7 +29,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install invoke .[test] - name: Run numerical tests run: invoke numerical diff --git a/.github/workflows/prepare_release.yml b/.github/workflows/prepare_release.yml index b313bc14..fe5947d2 100644 --- a/.github/workflows/prepare_release.yml +++ b/.github/workflows/prepare_release.yml @@ -26,7 +26,7 @@ jobs: - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install requests==2.31.0 python -m pip install bandit==1.9.2 python -m pip install .[test] diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml index feab89c6..1aba7846 100644 --- a/.github/workflows/readme.yml +++ b/.github/workflows/readme.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@v6 @@ -24,7 +24,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install invoke tomli rundoc . - name: Run the README.md run: invoke readme diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6dc0e282..fc73280e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,7 @@ jobs: - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install .[dev] - name: Create wheel diff --git a/.github/workflows/tutorials.yml b/.github/workflows/tutorials.yml index 569475ab..adf3dd94 100644 --- a/.github/workflows/tutorials.yml +++ b/.github/workflows/tutorials.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} @@ -23,7 +23,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install package and dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install invoke tomli jupyter .[tutorials] - name: invoke tutorials run: invoke tutorials diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index 6fcc96fc..604caaf3 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -14,11 +14,11 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] os: [ubuntu-latest, windows-latest] include: - os: macos-latest - python-version: '3.9' + python-version: '3.10' - os: macos-latest python-version: '3.14' steps: @@ -29,7 +29,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip + make upgradepip python -m pip install invoke .[test] - name: Run unit tests run: invoke unit diff --git a/INSTALL.md b/INSTALL.md index 6b4cf8b7..6b59d1f8 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -3,7 +3,7 @@ ## Requirements **Copulas** has been developed and tested on -[Python 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14](https://www.python.org/downloads/) +[Python 3.10, 3.11, 3.12, 3.13 and 3.14](https://www.python.org/downloads/) Also, although it is not strictly required, the usage of a [virtualenv]( https://virtualenv.pypa.io/en/latest/) is highly recommended in order to avoid diff --git a/Makefile b/Makefile index 6589da79..c37d96af 100644 --- a/Makefile +++ b/Makefile @@ -246,6 +246,11 @@ check-deps: # Dependency targets $(eval allow_list='numpy=|pandas=|scipy=|plotly=') pip freeze | grep -v "Copulas.git" | grep -E $(allow_list) | sort > $(OUTPUT_FILEPATH) +.PHONY: upgradepip +upgradepip: + python -m pip install "pip @ https://files.pythonhosted.org/packages/3f/06/3e4420302363fbb71be3c7f35ce042f54bfca330e3e66b3a2e3c4cca579f/pip-26.2.2-py3-none-any.whl#sha256=fd7f4dfa8190e014013b9f08f3e973f4e4c26ffd179a204895533a7254813a70" + python -m pip install --upgrade pip + .PHONY: check-release check-release: check-clean check-candidate check-main check-history ## Check if the release can be made @echo "A new release can be made" diff --git a/pyproject.toml b/pyproject.toml index 4535bc5f..3d3ba5a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,6 @@ classifiers = [ 'Intended Audience :: Developers', 'Natural Language :: English', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', @@ -19,11 +18,10 @@ keywords = [ 'copulas' ] dynamic = ["version"] license = 'BUSL-1.1' license-files = ['LICENSE'] -requires-python = '>=3.9,<3.15' +requires-python = '>=3.10,<3.15' readme = 'README.md' dependencies = [ - "numpy>=1.21.0;python_version<'3.10'", - "numpy>=1.23.3;python_version>='3.10' and python_version<'3.12'", + "numpy>=1.23.3;python_version<'3.12'", "numpy>=1.26.0;python_version>='3.12' and python_version<'3.13'", "numpy>=2.1.0;python_version>='3.13' and python_version<'3.14'", "numpy>=2.3.2;python_version>='3.14'", @@ -32,10 +30,9 @@ dependencies = [ "pandas>=2.1.1,<3;python_version>='3.12' and python_version<'3.13'", "pandas>=2.2.3,<3;python_version>='3.13' and python_version<'3.14'", "pandas>=2.3.3,<3;python_version>='3.14'", - "plotly>=5.10.0;python_version<'3.13'", - "plotly>=5.12.0;python_version>='3.13'", - "scipy>=1.7.3;python_version<'3.10'", - "scipy>=1.9.2;python_version>='3.10' and python_version<'3.12'", + "plotly>=5.10.0,<7;python_version<'3.13'", + "plotly>=5.12.0,<7;python_version>='3.13'", + "scipy>=1.9.2;python_version<'3.12'", "scipy>=1.12.0;python_version>='3.12' and python_version<'3.13'", "scipy>=1.14.1;python_version>='3.13' and python_version<'3.14'", "scipy>=1.16.1;python_version>='3.14'",