Skip to content

chore(ci): drop support for Python 3.7 #3638

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Feb 5, 2024
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6131d94
Python 3.7 deprecation + cleaning code with unnecessary compats
leandrodamascena Jan 16, 2024
b251dff
Ops, missing a file
leandrodamascena Jan 16, 2024
21b969e
Ops, missing a file
leandrodamascena Jan 16, 2024
6ed0afd
Merge branch 'develop' into drop-python37
leandrodamascena Jan 16, 2024
0be6c76
Merge branch 'develop' into drop-python37
leandrodamascena Jan 17, 2024
663ee82
Merge branch 'develop' into drop-python37
leandrodamascena Jan 17, 2024
06739a8
Merge branch 'develop' into drop-python37
leandrodamascena Jan 18, 2024
1766ccb
Merge branch 'develop' into drop-python37
leandrodamascena Jan 19, 2024
82b017c
Merge branch 'develop' into drop-python37
leandrodamascena Jan 19, 2024
efec106
Merge branch 'develop' into drop-python37
leandrodamascena Jan 21, 2024
9716333
Merge branch 'develop' into drop-python37
leandrodamascena Jan 22, 2024
a0aa541
Merge branch 'develop' into drop-python37
leandrodamascena Jan 23, 2024
1a55a12
Merge branch 'develop' into drop-python37
leandrodamascena Jan 25, 2024
3350848
Merge branch 'develop' into drop-python37
leandrodamascena Jan 26, 2024
bd7799d
Merge branch 'develop' into drop-python37
leandrodamascena Jan 27, 2024
68a2498
Merge branch 'develop' into drop-python37
leandrodamascena Jan 29, 2024
f299587
Merge branch 'develop' into drop-python37
leandrodamascena Jan 30, 2024
56863ec
Merge branch 'develop' into drop-python37
leandrodamascena Jan 31, 2024
85a4800
Merge branch 'develop' into drop-python37
leandrodamascena Feb 1, 2024
4811ac4
Merge branch 'develop' into drop-python37
leandrodamascena Feb 1, 2024
917843c
Merge branch 'develop' into drop-python37
leandrodamascena Feb 2, 2024
bf9b590
Merge branch 'develop' into drop-python37
leandrodamascena Feb 5, 2024
15be976
Reverting a potential breaking change
leandrodamascena Feb 5, 2024
d32c134
Refactoring data class to cache some properties
leandrodamascena Feb 5, 2024
8d8c414
Importing from typing_extensions directly
leandrodamascena Feb 5, 2024
4a6deb7
Reverting
leandrodamascena Feb 5, 2024
62ea51a
Merge branch 'develop' into drop-python37
heitorlessa Feb 5, 2024
0d9d7b5
Addressing Heitor's feedback
leandrodamascena Feb 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ body:
attributes:
label: AWS Lambda function runtime
options:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
Expand Down
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/static_typing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ body:
attributes:
label: AWS Lambda function runtime
options:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/quality_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
env:
PYTHON: "${{ matrix.python-version }}"
permissions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/quality_check_pydanticv2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
env:
PYTHON: "${{ matrix.python-version }}"
permissions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
strategy:
fail-fast: false # needed so if a version fails, the others will still be able to complete and cleanup
matrix:
version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
if: ${{ github.actor != 'dependabot[bot]' && github.repository == 'aws-powertools/powertools-lambda-python' }}
steps:
- name: "Checkout"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

[![Build](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml/badge.svg)](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/python_build.yml)
[![codecov.io](https://codecov.io/github/aws-powertools/powertools-lambda-python/branch/develop/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/powertools-lambda-python)
![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.7|%203.8|%203.9|%203.10|%203.11|%203.12&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET)](https://discord.gg/B8zZKbbyET)
![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.8|%203.9|%203.10|%203.11|%203.12&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET)](https://discord.gg/B8zZKbbyET)

Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless [best practices and increase developer velocity](https://docs.powertools.aws.dev/lambda/python/latest/#features).

Expand Down
51 changes: 0 additions & 51 deletions aws_lambda_powertools/logging/compat.py

This file was deleted.

22 changes: 0 additions & 22 deletions aws_lambda_powertools/logging/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
overload,
)

from aws_lambda_powertools.logging import compat
from aws_lambda_powertools.shared import constants
from aws_lambda_powertools.shared.functions import (
extract_event_from_common_models,
Expand Down Expand Up @@ -302,9 +301,6 @@ def _init_logger(
self.addHandler(self.logger_handler)
self.structure_logs(formatter_options=formatter_options, **kwargs)

# Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
self._logger.findCaller = compat.findCaller # type: ignore[method-assign]

# Pytest Live Log feature duplicates log records for colored output
# but we explicitly add a filter for log deduplication.
# This flag disables this protection when you explicit want logs to be duplicated (#262)
Expand Down Expand Up @@ -467,9 +463,6 @@ def info(
extra = extra or {}
extra = {**extra, **kwargs}

# Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
if sys.version_info < (3, 8): # pragma: no cover
return self._logger.info(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
return self._logger.info(
msg,
*args,
Expand All @@ -492,9 +485,6 @@ def error(
extra = extra or {}
extra = {**extra, **kwargs}

# Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
if sys.version_info < (3, 8): # pragma: no cover
return self._logger.error(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
return self._logger.error(
msg,
*args,
Expand All @@ -517,9 +507,6 @@ def exception(
extra = extra or {}
extra = {**extra, **kwargs}

# Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
if sys.version_info < (3, 8): # pragma: no cover
return self._logger.exception(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
return self._logger.exception(
msg,
*args,
Expand All @@ -542,9 +529,6 @@ def critical(
extra = extra or {}
extra = {**extra, **kwargs}

# Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
if sys.version_info < (3, 8): # pragma: no cover
return self._logger.critical(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
return self._logger.critical(
msg,
*args,
Expand All @@ -567,9 +551,6 @@ def warning(
extra = extra or {}
extra = {**extra, **kwargs}

# Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
if sys.version_info < (3, 8): # pragma: no cover
return self._logger.warning(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
return self._logger.warning(
msg,
*args,
Expand All @@ -592,9 +573,6 @@ def debug(
extra = extra or {}
extra = {**extra, **kwargs}

# Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
if sys.version_info < (3, 8): # pragma: no cover
return self._logger.debug(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
return self._logger.debug(
msg,
*args,
Expand Down
7 changes: 1 addition & 6 deletions aws_lambda_powertools/shared/types.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
import sys
from typing import Any, Callable, Dict, List, TypeVar, Union

if sys.version_info >= (3, 8):
from typing import Literal, Protocol, TypedDict
else:
from typing_extensions import Literal, Protocol, TypedDict
from typing import Any, Callable, Dict, List, Literal, Protocol, TypedDict, TypeVar, Union

if sys.version_info >= (3, 9):
from typing import Annotated
Expand Down
8 changes: 4 additions & 4 deletions aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
)

import boto3
from botocore.response import StreamingBody

from aws_lambda_powertools.shared import user_agent
from aws_lambda_powertools.utilities.streaming.compat import PowertoolsStreamingBody

if TYPE_CHECKING:
from mmap import mmap
Expand Down Expand Up @@ -68,7 +68,7 @@ def __init__(
self._size: Optional[int] = None

self._s3_client: Optional["Client"] = boto3_client
self._raw_stream: Optional[PowertoolsStreamingBody] = None
self._raw_stream: Optional[StreamingBody] = None

self._sdk_options = sdk_options
self._sdk_options["Bucket"] = bucket
Expand Down Expand Up @@ -100,7 +100,7 @@ def size(self) -> int:
return self._size

@property
def raw_stream(self) -> PowertoolsStreamingBody:
def raw_stream(self) -> StreamingBody:
"""
Returns the boto3 StreamingBody, starting the stream from the seeked position.
"""
Expand All @@ -110,7 +110,7 @@ def raw_stream(self) -> PowertoolsStreamingBody:
self._raw_stream = self.s3_client.get_object(Range=range_header, **self._sdk_options).get("Body")
self._closed = False

return cast(PowertoolsStreamingBody, self._raw_stream)
return cast(StreamingBody, self._raw_stream)

def seek(self, offset: int, whence: int = io.SEEK_SET) -> int:
"""
Expand Down
Loading