Skip to content

Commit

Permalink
[MRG+1] Remove support for Python 3.7 (#548)
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronreidsmith authored Nov 7, 2024
1 parent 22cb5ce commit 64cee30
Show file tree
Hide file tree
Showing 10 changed files with 93 additions and 62 deletions.
54 changes: 5 additions & 49 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ commands:
-v `pwd`:/app \
-w /app \
--env-file vars.env \
python:3.7 \
python:3.9 \
./build_tools/circle/deploy.sh
jobs:
Expand All @@ -94,8 +94,10 @@ jobs:
# larger unit tests, and to avoid multiple setup steps that can slow the pipeline down
test-sanity:
docker:
- image: python:3.7
- image: python:3.9
working_directory: ~/pmdarima
environment:
SETUPTOOLS_USE_DISTUTILS: stdlib
steps:
- checkout
- run:
Expand Down Expand Up @@ -130,26 +132,6 @@ jobs:
python -c 'import pmdarima as pm; print(pm.__version__)'
# --- Unit tests ---
# These are all executed on `machine` executors, since they require DinD to build the whl
# files and perform the whl repair for manylinux support.
test-unit-cpython37:
machine:
image: ubuntu-2004:202111-02
working_directory: ~/pmdarima
steps:
- checkout
- build-test-and-persist:
pythonversion: "3.7"

test-unit-cpython38:
machine:
image: ubuntu-2004:202111-02
working_directory: ~/pmdarima
steps:
- checkout
- build-test-and-persist:
pythonversion: "3.8"

test-unit-cpython39:
machine:
image: ubuntu-2004:202111-02
Expand Down Expand Up @@ -219,16 +201,6 @@ jobs:
#
# ############################################

deploy-cpython37-whl:
machine:
image: ubuntu-2004:202111-02
working_directory: ~/pmdarima
steps:
- checkout
- restore-whl-file:
key: "3.7"
- deploy-to-pypi

deploy-cpython38-whl:
machine:
image: ubuntu-2004:202111-02
Expand Down Expand Up @@ -287,7 +259,7 @@ jobs:
# GH_TOKEN (the personal Git token with pushes enabled)
deploy-doc:
docker:
- image: python:3.7
- image: python:3.9
working_directory: ~/pmdarima
steps:
- checkout
Expand All @@ -306,10 +278,6 @@ workflows:
# run on test and tag
- test-sanity:
filters: *test-filters
- test-unit-cpython37:
filters: *test-filters
- test-unit-cpython38:
filters: *test-filters
- test-unit-cpython39:
filters: *test-filters
- test-unit-cpython310:
Expand All @@ -323,8 +291,6 @@ workflows:
- testing-passed:
requires:
- test-sanity
- test-unit-cpython37
- test-unit-cpython38
- test-unit-cpython39
- test-unit-cpython310
- test-unit-cpython311
Expand All @@ -339,16 +305,6 @@ workflows:
- testing-passed
filters: *test-filters

- deploy-cpython37-whl:
filters: *deploy-filters
requires:
- deploy-doc

- deploy-cpython38-whl:
filters: *deploy-filters
requires:
- deploy-doc

- deploy-cpython39-whl:
filters: *deploy-filters
requires:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build_and_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
build-and-deploy:
strategy:
matrix:
python3-minor-version: [7, 8, 9, 10, 11, 12]
python3-minor-version: [9, 10, 11, 12]
# TODO: Figure out macos-14/macos-latest
os: [macos-13, ubuntu-latest, windows-latest]
defaults:
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[![CircleCI](https://circleci.com/gh/alkaline-ml/pmdarima.svg?style=svg)](https://circleci.com/gh/alkaline-ml/pmdarima)
[![Github Actions Status](https://github.com/alkaline-ml/pmdarima/workflows/Mac%20and%20Windows%20Builds/badge.svg?branch=master)](https://github.com/alkaline-ml/pmdarima/actions?query=workflow%3A%22Mac+and+Windows+Builds%22+branch%3Amaster)
[![codecov](https://codecov.io/gh/alkaline-ml/pmdarima/branch/master/graph/badge.svg)](https://codecov.io/gh/alkaline-ml/pmdarima)
![Supported versions](https://img.shields.io/badge/python-3.7+-blue.svg)
![Supported versions](https://img.shields.io/badge/python-3.9+-blue.svg)
![Downloads](https://img.shields.io/badge/dynamic/json?color=blue&label=downloads&query=%24.total&url=https%3A%2F%2Fstore.zapier.com%2Fapi%2Frecords%3Fsecret%3D1e061b29db6c4f15af01103d403b0237)
![Downloads/Week](https://img.shields.io/badge/dynamic/json?color=blue&label=downloads%2Fweek&query=%24.weekly&url=https%3A%2F%2Fstore.zapier.com%2Fapi%2Frecords%3Fsecret%3D1e061b29db6c4f15af01103d403b0237)

Expand Down Expand Up @@ -118,7 +118,7 @@ with open('model.pkl', 'rb') as pkl:

### Availability

`pmdarima` is available on PyPi in pre-built Wheel files for Python 3.7+ for the following platforms:
`pmdarima` is available on PyPi in pre-built Wheel files for Python 3.9+ for the following platforms:

* Mac (64-bit)
* Linux (64-bit manylinux)
Expand Down
4 changes: 1 addition & 3 deletions build_tools/circle/build_wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ function build_wheel {

# https://www.python.org/dev/peps/pep-0513/#ucs-2-vs-ucs-4-builds
ucs_tag=""
if [ "$pyver" = "3.7" ]; then
ucs_tag="m"
elif [ "$ucs_setting" = "ucs4" ]; then
if [ "$ucs_setting" = "ucs4" ]; then
ucs_tag="${ucs_tag}u"
fi

Expand Down
2 changes: 1 addition & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@
def setup(app):
def adds(pth):
print("Adding stylesheet: %s" % pth)
app.add_stylesheet(pth)
app.add_css_file(pth)

adds('css/fields.css') # for parameters, etc.
adds('css/gitcontrib.css') # for git contributors
Expand Down
73 changes: 73 additions & 0 deletions doc/sg_execution_times.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@

:orphan:

.. _sphx_glr_sg_execution_times:


Computation times
=================
**00:11.856** total execution time for 13 files **from all galleries**:

.. container::

.. raw:: html

<style scoped>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdn.datatables.net/1.13.6/css/dataTables.bootstrap5.min.css" rel="stylesheet" />
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/dataTables.bootstrap5.min.js"></script>
<script type="text/javascript" class="init">
$(document).ready( function () {
$('table.sg-datatable').DataTable({order: [[1, 'desc']]});
} );
</script>

.. list-table::
:header-rows: 1
:class: table table-striped sg-datatable

* - Example
- Time
- Mem (MB)
* - :ref:`sphx_glr_auto_examples_preprocessing_example_date_featurizer.py` (``../examples/preprocessing/example_date_featurizer.py``)
- 00:03.490
- 0.0
* - :ref:`sphx_glr_auto_examples_example_simple_fit.py` (``../examples/example_simple_fit.py``)
- 00:03.400
- 0.0
* - :ref:`sphx_glr_auto_examples_model_selection_example_cross_val_predict.py` (``../examples/model_selection/example_cross_val_predict.py``)
- 00:01.976
- 0.0
* - :ref:`sphx_glr_auto_examples_example_pipeline.py` (``../examples/example_pipeline.py``)
- 00:00.937
- 0.0
* - :ref:`sphx_glr_auto_examples_model_selection_example_cross_validation.py` (``../examples/model_selection/example_cross_validation.py``)
- 00:00.775
- 0.0
* - :ref:`sphx_glr_auto_examples_arima_example_persisting_a_model.py` (``../examples/arima/example_persisting_a_model.py``)
- 00:00.602
- 0.0
* - :ref:`sphx_glr_auto_examples_utils_example_tsdisplay.py` (``../examples/utils/example_tsdisplay.py``)
- 00:00.233
- 0.0
* - :ref:`sphx_glr_auto_examples_arima_example_add_new_samples.py` (``../examples/arima/example_add_new_samples.py``)
- 00:00.198
- 0.0
* - :ref:`sphx_glr_auto_examples_arima_example_seasonal_decomposition.py` (``../examples/arima/example_seasonal_decomposition.py``)
- 00:00.140
- 0.0
* - :ref:`sphx_glr_auto_examples_arima_example_auto_arima.py` (``../examples/arima/example_auto_arima.py``)
- 00:00.102
- 0.0
* - :ref:`sphx_glr_auto_examples_datasets_example_load_data.py` (``../examples/datasets/example_load_data.py``)
- 00:00.001
- 0.0
* - :ref:`sphx_glr_auto_examples_utils_example_array_differencing.py` (``../examples/utils/example_array_differencing.py``)
- 00:00.001
- 0.0
* - :ref:`sphx_glr_auto_examples_utils_example_array_concatenation.py` (``../examples/utils/example_array_concatenation.py``)
- 00:00.000
- 0.0
6 changes: 6 additions & 0 deletions doc/whats_new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ What's new in pmdarima
As new releases of pmdarima are pushed out, the following list (introduced in
v0.8.1) will document the latest features.

`v2.0.5 <https://alkaline-ml.com/pmdarima/2.0.5>`_
-------------------------------------------------

* Remove support for Python 3.7 (end-of-life 2023-06-23)
* Remove support for Python 3.8 (end-of-life 2024-10-07)

`v2.0.4 <https://alkaline-ml.com/pmdarima/2.0.4>`_
-------------------------------------------------

Expand Down
4 changes: 2 additions & 2 deletions pmdarima/arima/tests/test_arima_diagnostics.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ def mock_acf_plot(resid, ax, lags):
def test_mock_plot_diagnostics(model_type, model):
model.fit(lynx)

with patch('statsmodels.graphics.utils.create_mpl_fig', MockMPLFigure),\
patch('statsmodels.graphics.gofplots.qqplot', mock_qqplot),\
with patch('statsmodels.graphics.utils.create_mpl_fig', MockMPLFigure), \
patch('statsmodels.graphics.gofplots.qqplot', mock_qqplot), \
patch('statsmodels.graphics.tsaplots.plot_acf', mock_acf_plot):

diag = model.plot_diagnostics(figsize=(10, 12))
Expand Down
2 changes: 1 addition & 1 deletion pmdarima/datasets/tests/test_load_datasets.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-

from pmdarima.datasets import load_heartrate, load_lynx, load_wineind,\
from pmdarima.datasets import load_heartrate, load_lynx, load_wineind, \
load_woolyrnq, load_ausbeer, load_austres, load_gasoline, \
load_airpassengers, load_taylor, load_msft, load_sunspots, _base as base

Expand Down
4 changes: 1 addition & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
import builtins

# Minimum allowed version
MIN_PYTHON = (3, 7)
IS_PYTHON_312 = sys.version_info[0] == 3 and sys.version_info[1] >= 12
MIN_PYTHON = (3, 9)

# Hacky (!!), adopted from sklearn. This sets a global variable
# so pmdarima __init__ can detect if it's being loaded in the setup
Expand Down Expand Up @@ -239,8 +239,6 @@ def do_setup():
'Operating System :: Unix',
'Operating System :: MacOS',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
Expand Down

0 comments on commit 64cee30

Please sign in to comment.