This is an automated email from the ASF dual-hosted git repository. skrawcz pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/hamilton.git
commit fbb92f45133509ee7c51321caa27fcf2d5eb327a Author: Josh Markovic <[email protected]> AuthorDate: Thu Jan 8 15:43:50 2026 +0000 Remove Pythono 3.8 and 3.9 --- .github/workflows/hamilton-main.yml | 23 ++++------------------- .github/workflows/hamilton-ui-backend.yml | 2 +- contrib/setup.py | 4 +--- dev_tools/language_server/pyproject.toml | 2 +- docs/get-started/install.md | 2 +- pyproject.toml | 15 ++++++--------- scripts/build_conda.sh | 2 +- ui/backend/setup.py | 4 +--- ui/sdk/pyproject.toml | 4 +--- writeups/developer_setup.md | 2 +- 10 files changed, 18 insertions(+), 42 deletions(-) diff --git a/.github/workflows/hamilton-main.yml b/.github/workflows/hamilton-main.yml index b71e1e38..0c9db92d 100644 --- a/.github/workflows/hamilton-main.yml +++ b/.github/workflows/hamilton-main.yml @@ -79,15 +79,6 @@ jobs: - name: Test integrations - if: ${{ matrix.python-version == '3.9' }} - run: | - uv sync --group test --extra pandera - uv pip install -r tests/integrations/pandera/requirements.txt - uv pip install dask-expr - uv run pytest tests/integrations - - - name: Test integrations - if: ${{ matrix.python-version != '3.9' }} run: | uv sync --group test --extra pandera uv pip install -r tests/integrations/pandera/requirements.txt @@ -111,15 +102,11 @@ jobs: uv run pytest plugin_tests/h_narwhals - name: Test dask - # Dask supports >= py3.9 - if: ${{ matrix.python-version != '3.8' }} run: | uv sync --group test --extra dask uv run pytest plugin_tests/h_dask - name: Test ray - # Ray supports >= py3.9 - if: ${{ matrix.python-version != '3.8' }} env: RAY_ENABLE_UV_RUN_RUNTIME_ENV: 0 # https://github.com/ray-project/ray/issues/53848 run: | @@ -127,8 +114,7 @@ jobs: uv run pytest plugin_tests/h_ray - name: Test pyspark - # Spark supports >= py3.9 - if: ${{ matrix.python-version != '3.8' && runner.os == 'Linux' }} + if: ${{ runner.os == 'Linux' }} env: PYSPARK_SUBMIT_ARGS: "--conf spark.sql.ansi.enabled=false pyspark-shell" run: | @@ -139,8 +125,7 @@ jobs: uv run pytest plugin_tests/h_spark - name: Test pyspark - # Spark supports >= py3.9 - if: ${{ matrix.python-version != '3.8' && runner.os != 'Linux' }} + if: ${{ runner.os != 'Linux' }} env: PYSPARK_SUBMIT_ARGS: "--conf spark.sql.ansi.enabled=false pyspark-shell" run: | @@ -151,7 +136,7 @@ jobs: - name: Test vaex # Vaex supports <= py3.10 and numpy<2 - if: ${{ runner.os == 'Linux' && (matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10') }} + if: ${{ runner.os == 'Linux' && matrix.python-version == '3.10' }} run: | sudo apt-get install --no-install-recommends --yes libpcre3-dev cargo uv sync --group test --extra vaex @@ -160,7 +145,7 @@ jobs: - name: Test vaex # Vaex supports <= py3.10 and numpy<2 - if: ${{ runner.os != 'Linux' && (matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10') }} + if: ${{ runner.os != 'Linux' && matrix.python-version == '3.10' }} run: | uv sync --group test --extra vaex uv pip install "numpy<2" diff --git a/.github/workflows/hamilton-ui-backend.yml b/.github/workflows/hamilton-ui-backend.yml index 204fc48c..20942ce5 100644 --- a/.github/workflows/hamilton-ui-backend.yml +++ b/.github/workflows/hamilton-ui-backend.yml @@ -42,7 +42,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: '3.9' + python-version: '3.10' - name: Install dependencies run: | cd ui/backend/server diff --git a/contrib/setup.py b/contrib/setup.py index f325f977..7662d65c 100644 --- a/contrib/setup.py +++ b/contrib/setup.py @@ -75,8 +75,6 @@ setup( "Natural Language :: English", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -84,7 +82,7 @@ setup( ], # Note that this feature requires pep8 >= v9 and a version of setup tools greater than the # default version installed with virtualenv. Make sure to update your tools! - python_requires=">=3.8, <4", + python_requires=">=3.10, <4", # adding this to slim the package down, since these dependencies are only used in certain contexts. extras_require={ "visualization": ["sf-hamilton[visualization]"], diff --git a/dev_tools/language_server/pyproject.toml b/dev_tools/language_server/pyproject.toml index a0fe6b38..7ff50959 100644 --- a/dev_tools/language_server/pyproject.toml +++ b/dev_tools/language_server/pyproject.toml @@ -26,7 +26,7 @@ classifiers = [ "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", ] -requires-python = ">=3.8, <4" +requires-python = ">=3.10, <4" dependencies = [ "pygls>=1.3.1", "sf-hamilton[visualization]>=1.56", diff --git a/docs/get-started/install.md b/docs/get-started/install.md index 48810c90..04055a89 100644 --- a/docs/get-started/install.md +++ b/docs/get-started/install.md @@ -24,7 +24,7 @@ Installing hamilton is easy! Apache Hamilton is a lightweight framework with a variety of extensions/plugins. To get started, you'll need the following: -- ``python >= 3.8`` +- ``python >= 3.10`` - ``pip`` For help with python/pip/managing virtual environments see the [python docs](https://docs.python.org/3/tutorial/venv.html/). diff --git a/pyproject.toml b/pyproject.toml index bfa3f85e..481c85b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -93,10 +93,9 @@ dev = [ "ruff==0.5.7", # this should match `.pre-commit-config.yaml` ] test = [ - "connectorx<=0.3.2; python_version=='3.8'", - "connectorx; python_version!='3.8'", + "connectorx", "dask[complete]", - "dask-expr>=1.1.14; python_version >= '3.10'", # Bugfix only available after py3.10 https://github.com/dask/dask-expr/pull/1150 + "dask-expr>=1.1.14", "datasets>=2.18.0", # huggingface datasets -- https://github.com/huggingface/datasets/issues/6737#issuecomment-2107336816 "diskcache", "dlt", @@ -117,15 +116,13 @@ test = [ "polars", "pyarrow", "pydantic >=2.0", - "pyreadstat<1.2.8; python_version <= '3.9'", # for SPSS data loader - "pyreadstat; python_version > '3.9'", # for SPSS data loader + "pyreadstat", # for SPSS data loader "pytest", "pytest-asyncio", "pytest-cov", "PyYAML", "scikit-learn", - "sqlalchemy==1.4.49; python_version == '3.7.*'", - "sqlalchemy; python_version >= '3.8'", + "sqlalchemy", "typer", "xgboost", "xlsx2csv", # for excel data loader @@ -135,7 +132,7 @@ docs = [ {include-group = "dev"}, "alabaster>=0.7,<0.8,!=0.7.5", # read the docs pins "commonmark==0.9.1", # read the docs pins - "dask-expr>=1.1.14; python_version >= '3.10'", # Bugfix only available after py3.10 https://github.com/dask/dask-expr/pull/1150 + "dask-expr>=1.1.14", "dask[distributed]", "ddtrace<3.0", "diskcache", @@ -200,7 +197,7 @@ slack = "https://join.slack.com/t/hamilton-opensource/shared_invite/zt-2niepkra8 [tool.ruff] line-length = 100 -target-version = "py38" # Must include only the earliest supported version +target-version = "py310" # Must include only the earliest supported version [tool.ruff.format] docstring-code-format = false diff --git a/scripts/build_conda.sh b/scripts/build_conda.sh index 2b7a58da..d56af699 100644 --- a/scripts/build_conda.sh +++ b/scripts/build_conda.sh @@ -22,7 +22,7 @@ CONDA_HOME=$HOME/anaconda3 # conda activate && anaconda login pkg='sf-hamilton' # adjust the Python versions you would like to build -array=(3.7 3.8 3.9 3.10 3.11 ) +array=(3.10 3.11 3.12 3.13) echo "Building conda package ..." cd ~ # this will create a ~/sf-hamilton directory with metadata to build the package. diff --git a/ui/backend/setup.py b/ui/backend/setup.py index 92999067..60aed1a8 100644 --- a/ui/backend/setup.py +++ b/ui/backend/setup.py @@ -54,8 +54,6 @@ setup( "Natural Language :: English", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -63,7 +61,7 @@ setup( ], # Note that this feature requires pep8 >= v9 and a version of setup tools greater than the # default version installed with virtualenv. Make sure to update your tools! - python_requires=">=3.6, <4", + python_requires=">=3.10, <4", # adding this to slim the package down, since these dependencies are only used in certain contexts. # Relevant project URLs project_urls={ # Optional diff --git a/ui/sdk/pyproject.toml b/ui/sdk/pyproject.toml index 3b457d90..695aa83a 100644 --- a/ui/sdk/pyproject.toml +++ b/ui/sdk/pyproject.toml @@ -17,14 +17,12 @@ classifiers = [ "Natural Language :: English", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13" ] -requires-python = ">=3.7, <4" +requires-python = ">=3.10, <4" dynamic = ["dependencies", "optional-dependencies", "version"] [project.urls] diff --git a/writeups/developer_setup.md b/writeups/developer_setup.md index 0af38927..31c60f39 100644 --- a/writeups/developer_setup.md +++ b/writeups/developer_setup.md @@ -121,7 +121,7 @@ The following values for `TASK` are recognized: Choose a Python version and task. ```shell -PYTHON_VERSION='3.8' +PYTHON_VERSION='3.10' TASK=tests ```
