Skip to content
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

feat: add support for python 3.12 #400

Merged
merged 8 commits into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 3 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,13 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11']
python: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
variant: ['', 'cpp', 'upb']
exclude:
- variant: "cpp"
python: 3.11
- variant: "cpp"
python: 3.12
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python }}
Expand Down
8 changes: 7 additions & 1 deletion noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"3.9",
"3.10",
"3.11",
"3.12",
]

# Error if a python version is missing
Expand All @@ -48,9 +49,14 @@ def unit(session, proto="python"):
session.install("-e", ".[testing]", "-c", constraints_path)
if proto == "cpp": # 4.20 does not have cpp.
session.install("protobuf==3.19.0")

# The warnings as errors flag `-W=error` was removed in
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth filing an issue for this, and linking it here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in #403

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I see. #403 is the issue tracking this. So fixing #403 MEANS re-enabling the warning.

Suggested change
# The warnings as errors flag `-W=error` was removed in
# TODO(https://github.com/googleapis/proto-plus-python/issues/403): re-enable -W=error
# The warnings-as\-errors flag `-W=error` was removed in
# https://github.com/googleapis/proto-plus-python/pull/400.
# It should be re-added once issue https://github.com/protocolbuffers/protobuf/issues/12186 is fixed.

# https://github.com/googleapis/proto-plus-python/pull/400.
# It should be re-added once issue
# https://github.com/googleapis/proto-plus-python/issues/403 is fixed.
# See also https://github.com/protocolbuffers/protobuf/issues/12186.
session.run(
"py.test",
"-W=error",
"--quiet",
*(
session.posargs # Coverage info when running individual tests is annoying.
Expand Down
3 changes: 2 additions & 1 deletion proto/datetime_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
from google.protobuf import timestamp_pb2


_UTC_EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=datetime.timezone.utc)
_UTC_EPOCH = datetime.datetime.fromtimestamp(0, datetime.timezone.utc)

_RFC3339_MICROS = "%Y-%m-%dT%H:%M:%S.%fZ"
_RFC3339_NO_FRACTION = "%Y-%m-%dT%H:%M:%S"
# datetime.strptime cannot handle nanosecond precision: parse w/ regex
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Code Generators",
"Topic :: Software Development :: Libraries :: Python Modules",
],
Expand Down
Empty file added testing/constraints-3.12.txt
Empty file.