Skip to content

Commit

Permalink
feat: add support for python 3.12 (#400)
Browse files Browse the repository at this point in the history
* feat: add support for python 3.12

* update exclude

* update noxfile

* add contraints file

* Disable warnings as errors

* use datetime.datetime.fromtimestamp instead of datetime.datetime.utcfromtimestamp(0) which is deprecated

* use datetime.timezone.utc

* add comment
  • Loading branch information
parthea authored Oct 19, 2023
1 parent a9700cb commit 1b3a96f
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 3 deletions.
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
# 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.

0 comments on commit 1b3a96f

Please sign in to comment.