diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 3d95c1921..06334621e 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -21,7 +21,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.7" - "3.8" - "3.9" - "3.10" @@ -123,7 +122,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.7" - "3.8" - "3.9" - "3.10" diff --git a/CHANGELOG.md b/CHANGELOG.md index db5e5d6ce..ed486db93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### Removed +- Support for Python 3.7 ([#853](https://github.com/stac-utils/pystac/pull/853)) + ### Changed ### Fixed diff --git a/README.md b/README.md index 07aa7291e..6c3bc7f87 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ PySTAC is a library for working with [SpatioTemporal Asset Catalog](https://stac ## Installation -PySTAC requires Python >= 3.7. This project follows the recommendations of +PySTAC requires Python >= 3.8. This project follows the recommendations of [NEP-29](https://numpy.org/neps/nep-0029-deprecation_policy.html) in deprecating support -for Python versions. This means that users can expect support for Python 3.7 to be -removed from the `main` branch after Dec 26, 2021 and therefore from the next release +for Python versions. This means that users can expect support for Python 3.8 to be +removed from the `main` branch after Apr 14, 2023 and therefore from the next release after that date. Note that while we support Python 3.10.\*, wheels for the `orjson` library are not always immediately available for all diff --git a/pystac/summaries.py b/pystac/summaries.py index f7850628c..c9718caf5 100644 --- a/pystac/summaries.py +++ b/pystac/summaries.py @@ -1,5 +1,4 @@ from copy import deepcopy -import sys import numbers from enum import Enum from functools import lru_cache @@ -13,17 +12,13 @@ Generic, List, Optional, + Protocol, Union, TypeVar, Iterable, TYPE_CHECKING, ) -if sys.version_info >= (3, 8): - from typing import Protocol -else: - from typing_extensions import Protocol - if TYPE_CHECKING: from pystac.item import Item as Item_Type from pystac.collection import Collection as Collection_Type diff --git a/setup.py b/setup.py index ca4065801..53af1bb4c 100644 --- a/setup.py +++ b/setup.py @@ -22,11 +22,8 @@ packages=find_packages(exclude=["tests*"]), package_data={"": ["py.typed", "*.jinja2"]}, py_modules=[splitext(basename(path))[0] for path in glob("pystac/*.py")], - python_requires=">=3.7", - install_requires=[ - "python-dateutil>=2.7.0", - 'typing_extensions >= 3.7; python_version < "3.8"', - ], + python_requires=">=3.8", + install_requires=["python-dateutil>=2.7.0"], extras_require={"validation": ["jsonschema>=3.0"], "orjson": ["orjson>=3.5"]}, license="Apache Software License 2.0", license_files=["LICENSE"], @@ -38,7 +35,6 @@ "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10",