Skip to content

Commit

Permalink
Drop support for python 3.8 (#4414)
Browse files Browse the repository at this point in the history
* drop support for python 3.8

* update to python3.9
  • Loading branch information
MichaelFu512 authored May 16, 2024
1 parent 7bd6ed6 commit 947f138
Show file tree
Hide file tree
Showing 46 changed files with 110 additions and 96 deletions.
30 changes: 14 additions & 16 deletions .github/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,27 @@ outputs:
script: build_script.sh
requirements:
host:
- python >=3.8
- python >=3.9, <=3.11
- pip
- setuptools ==58.0.4
- setuptools >=58.0.4
run:
- numpy >=1.22.0
- numpy >=1.22.0
- pandas >=1.5.0, <2.1.0
- dask >=2022.2.0, !=2022.10.1
- scipy >=1.5.0, <1.12.0
- scikit-learn >=1.3.0
- scikit-learn >=1.3.2
- scikit-optimize >=0.9.0
- statsmodels >=0.12.2
- colorama >=0.4.4
- cloudpickle >=1.5.0
- click>=8.0.0
- click >=8.0.0
- shap >=0.42.0, <0.45.0
- texttable >=1.6.2
- woodwork >=0.22.0
- featuretools>=1.16.0
- nlp-primitives>=2.9.0
- python >=3.8.*
- networkx >=2.6, <3.2
- featuretools >=1.16.0
- nlp-primitives >=2.9.0
- python >=3.9.*
- networkx >=2.7
- category_encoders >=2.2.2, <=2.5.1.post0
- python-graphviz >=0.13
- tomli >=2.0.1
Expand All @@ -52,8 +52,8 @@ outputs:
imports:
- evalml
requires:
- pytest ==6.0.1
- nbval ==0.9.3
- pytest ==6.2.5
- nbval >=0.9.3
source_files:
- evalml/*
- pyproject.toml
Expand All @@ -77,7 +77,7 @@ outputs:
- catboost >=1.1.1
- lightgbm >=4.0.0
- lime >=0.2.0.1
- python >=3.8.*
- python >=3.9.*, <=3.11
- imbalanced-learn >=0.11.0
- sktime >=0.21.0, <0.29.0
- pmdarima >=1.8.5
Expand All @@ -86,8 +86,8 @@ outputs:
imports:
- evalml
requires:
- pytest ==6.0.1
- nbval ==0.9.3
- pytest ==6.2.5
- nbval >=0.9.3
- python-graphviz >=0.8.4
- category_encoders >=2.0.0, <=2.5.1.post0
- pytest-xdist
Expand All @@ -110,13 +110,11 @@ about:

extra:
recipe-maintainers:
- dsherry
- ParthivNaresh
- bchen1116
- chukarsten
- jeremyliweishih
- christopherbunn
- fjlanasa
- eccabay
- MichaelFu512
- ivanayx
4 changes: 2 additions & 2 deletions .github/workflows/build_conda_pkg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
build_conda_pkg:
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.8
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: 3.9
- name: Checkout repository
uses: actions/checkout@v3
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/check_conda_pkg_versions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ jobs:
check_versions:
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.8
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: 3.9
- name: Checkout repository
uses: actions/checkout@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/detect_changes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v1
with:
python-version: '3.8.x'
python-version: '3.9.x'
- name: Install Dependencies
run: |
make installdeps-test
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/install_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python_version: ["3.8", "3.9", "3.10"]
python_version: ["3.9", "3.10", "3.11"]
exclude:
- os: macos-latest
python-version: "3.8"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/latest_dependency_checker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v1
with:
python-version: '3.8.x'
python-version: '3.9.x'
- name: Update dependencies
id: vars
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python_version: ["3.9"]
python_version: ["3.9", "3.10"]
steps:
- name: Checkout repository
uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linux_integration_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
fail-fast: false
matrix:
include:
- python_version: "3.8"
- python_version: "3.9"
command: 'git-test-integration'

steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linux_nightlies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python_version: ['3.8', '3.9']
python_version: ['3.9']
command: ['git-test-automl', 'git-test-modelunderstanding', 'git-test-other', 'git-test-parallel', 'git-test-prophet']
steps:
- name: Set up Python ${{ matrix.python_version }}
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/linux_unit_tests_with_latest_deps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,13 @@ jobs:
include:
- python_version: "3.9"
command: 'git-test-automl'
- python_version: "3.8"
command: 'git-test-automl'
- python_version: "3.8"
- python_version: "3.9"
command: 'git-test-prophet'
- python_version: "3.8"
- python_version: "3.9"
command: 'git-test-modelunderstanding'
- python_version: "3.8"
- python_version: "3.9"
command: 'git-test-other'
- python_version: "3.8"
- python_version: "3.9"
command: 'git-test-parallel'
steps:
- name: Set up Python ${{ matrix.python_version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linux_unit_tests_with_minimum_deps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python_version: ['3.8']
python_version: ['3.9']
command: ['git-test-automl', 'git-test-modelunderstanding', 'git-test-other', 'git-test-parallel', 'git-test-prophet']
steps:
- name: Set up Python ${{ matrix.python_version }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
strategy:
fail-fast: true
matrix:
python_version: ["3.8", "3.9"]
python_version: ["3.9", "3.10", "3.11"]
libraries: ["core"]
steps:
- name: Set up python ${{ matrix.python_version }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
strategy:
fail-fast: true
matrix:
python_version: ["3.8", "3.9"]
python_version: ["3.9", "3.10", "3.11"]
libraries: ["core"]
steps:
- name: Set up python ${{ matrix.python_version }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/windows_nightlies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python_version: ['3.8']
python_version: ['3.9', '3.10', '3.11']
command: ['git-test-automl', 'git-test-modelunderstanding', 'git-test-other', 'git-test-parallel', 'git-test-prophet']
steps:
- name: Download Miniconda
Expand Down Expand Up @@ -51,7 +51,7 @@ jobs:
. $env:USERPROFILE\Miniconda3\shell\condabin\conda-hook.ps1
conda activate curr_py
conda config --add channels conda-forge
conda install -q -y -c conda-forge python-graphviz graphviz
conda install -q -y -c conda-forge python-graphviz graphviz=9.0.0 pango=1.52.2
- name: Install numba (for shap)
run: |
. $env:USERPROFILE\Miniconda3\shell\condabin\conda-hook.ps1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/windows_unit_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python_version: ['3.8']
python_version: ['3.9']
command: ['git-test-automl', 'git-test-modelunderstanding', 'git-test-other', 'git-test-parallel', 'git-test-prophet']
steps:
- name: Download Miniconda
Expand Down Expand Up @@ -53,7 +53,7 @@ jobs:
. $env:USERPROFILE\Miniconda3\shell\condabin\conda-hook.ps1
conda activate curr_py
conda config --add channels conda-forge
conda install -q -y -c conda-forge python-graphviz graphviz
conda install -q -y -c conda-forge python-graphviz graphviz=9.0.0 pango=1.52.2
- name: Install numba (for shap)
run: |
. $env:USERPROFILE\Miniconda3\shell\condabin\conda-hook.ps1
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.8"
python: "3.9"
apt_packages:
- graphviz

Expand Down
4 changes: 2 additions & 2 deletions contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ We currently utilize GitHub Issues as our project management tool for EvalML. Pl


#### 1. Clone repo
The code is hosted on GitHub, so you will need to use Git to clone the project and make changes to the codebase. Once you have obtained a copy of the code, you should create a development environment that is separate from your existing Python environment so that you can make and test changes without compromising your own work environment. Additionally, you must make sure that the version of Python you use is at least 3.8. Using `conda` you can use `conda create -n evalml python=3.8` and `conda activate evalml` before the following steps.
The code is hosted on GitHub, so you will need to use Git to clone the project and make changes to the codebase. Once you have obtained a copy of the code, you should create a development environment that is separate from your existing Python environment so that you can make and test changes without compromising your own work environment. Additionally, you must make sure that the version of Python you use is at least 3.9. Using `conda` you can use `conda create -n evalml python=3.9` and `conda activate evalml` before the following steps.
* clone with `git clone https://github.com/alteryx/evalml.git`
* install in edit mode with:
```bash
Expand All @@ -23,7 +23,7 @@ The code is hosted on GitHub, so you will need to use Git to clone the project a

Note that if you're on Mac, there are a few extra steps you'll want to keep track of.
* In order to run on Mac, [LightGBM requires the OpenMP library to be installed](https://evalml.alteryx.com/en/stable/install.html#Mac), which can be done with HomeBrew by running `brew install libomp`
* We've seen some installs get the following warning when importing evalml: "UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError". [A known workaround](https://stackoverflow.com/a/61531555/841003) is to run `brew reinstall readline xz` before installing the python version you're using via pyenv. If you've already installed a python version in pyenv, consider deleting it and reinstalling. v3.8.2 is known to work.
* We've seen some installs get the following warning when importing evalml: "UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError". [A known workaround](https://stackoverflow.com/a/61531555/841003) is to run `brew reinstall readline xz` before installing the python version you're using via pyenv. If you've already installed a python version in pyenv, consider deleting it and reinstalling. v3.9.2 is known to work.
#### 2. Implement your Pull Request
Expand Down
4 changes: 2 additions & 2 deletions core-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
numpy>=1.21.0
pandas>=1.5.0, <2.1.0
scipy>=1.5.0, <1.12.0
scikit-learn>=1.3.0
scikit-learn>=1.3.2
scikit-optimize>=0.9.0
pyzmq>=20.0.0
colorama>=0.4.4
Expand All @@ -14,4 +14,4 @@ woodwork>= 0.21.1
dask>=2022.2.0, !=2022.10.1
nlp-primitives>=2.9.0
featuretools>=1.16.0
networkx>=2.6, <3.2
networkx>=2.7
10 changes: 5 additions & 5 deletions docs/notebook_version_standardizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def _get_python_version(notebook):
return version


def _standardize_python_version(notebook, desired_version="3.8.6"):
def _standardize_python_version(notebook, desired_version="3.9.6"):
with open(notebook, "r") as f:
source = json.load(f)
source["metadata"]["language_info"]["version"] = desired_version
Expand All @@ -32,7 +32,7 @@ def _get_ipython_notebooks(docs_source):
return notebooks


def _get_notebooks_with_different_versions(notebooks, desired_version="3.8.6"):
def _get_notebooks_with_different_versions(notebooks, desired_version="3.9.6"):
different_versions = []
for notebook in notebooks:
version = _get_python_version(notebook)
Expand All @@ -41,7 +41,7 @@ def _get_notebooks_with_different_versions(notebooks, desired_version="3.8.6"):
return different_versions


def _standardize_versions(notebooks, desired_version="3.8.6"):
def _standardize_versions(notebooks, desired_version="3.9.6"):
for notebook in notebooks:
_standardize_python_version(notebook, desired_version)

Expand Down Expand Up @@ -115,7 +115,7 @@ def cli():
@cli.command()
@click.option(
"--desired-version",
default="3.8.6",
default="3.9.6",
help="python version that all notebooks should match",
)
def check_versions(desired_version):
Expand All @@ -136,7 +136,7 @@ def check_versions(desired_version):
@cli.command()
@click.option(
"--desired-version",
default="3.8.6",
default="3.9.6",
help="python version that all notebooks should match",
)
def standardize(desired_version):
Expand Down
2 changes: 1 addition & 1 deletion docs/source/demos/cost_benefit_matrix.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
"version": "3.9.6"
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion docs/source/demos/fraud.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
"version": "3.9.6"
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion docs/source/demos/lead_scoring.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
"version": "3.9.6"
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion docs/source/demos/text_input.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
"version": "3.9.6"
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion docs/source/index.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
"version": "3.9.6"
}
},
"nbformat": 4,
Expand Down
5 changes: 4 additions & 1 deletion docs/source/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ kernelspec:

# Install

EvalML is available for Python 3.8 and 3.9. It can be installed from [pypi](https://pypi.org/project/evalml/), [conda-forge](https://anaconda.org/conda-forge/evalml), or from [source](https://github.com/alteryx/evalml).
EvalML is available for Python 3.9 - 3.11. It can be installed from [pypi](https://pypi.org/project/evalml/), [conda-forge](https://anaconda.org/conda-forge/evalml), or from [source](https://github.com/alteryx/evalml).

To install EvalML on your platform, run one of the following commands:

Expand Down Expand Up @@ -110,6 +110,9 @@ If you are using `pip` to install EvalML on Windows, it is recommended you first

The [XGBoost](https://pypi.org/project/xgboost/) library may not be pip-installable in some Windows environments. If you are encountering installation issues, please try installing XGBoost from [Github](https://xgboost.readthedocs.io/en/latest/build.html) before installing EvalML or install evalml with conda.

Note: there are two graphviz, `python-graphviz` and `graphviz`. If you run into issues, ensure that `python-graphviz` version is >= 0.20.3. If there are still
issues related to `graphviz`, you can try `conda install -c conda-forge graphviz` where `graphviz` version >= 9.0.0

## Mac Additional Requirements & Troubleshooting

In order to run on Mac, [LightGBM](https://pypi.org/project/lightgbm/) requires the `OpenMP` library to be installed, which can be done with [HomeBrew](https://brew.sh/) by running:
Expand Down
Loading

0 comments on commit 947f138

Please sign in to comment.