Repository: googleapis/python-bigquery

Issue:
Python 3.11 support
Same request as https://github.com/googleapis/python-bigquery/issues/1006 but for 3.11

Luckily I'm not yet using 3.11, but I had to modify my `pyproject.yaml` to make [Poetry](https://python-poetry.org/) happy, and I probably will be using 3.11 soon


Discussion:
The biggest blocker is going to be the `pyarrow` dependency which isn't overseen by the maintainers of this project.
It is essentially impossible to build on your own and there hasn't been much activity to make Python 3.11 wheels available.
We are looking forward to get this supported too in Apache Airflow. 

I know it is eaarly (Python 3.11 has just been released yesterday) but we are hoping in Apache Airflow to a much faster cycle of adding new Python releases - especially that Pyhon 3.11 introduces huge performance improvements (25% is the average number claimed) due to a very focused effort to increase single-threaded Python performance (Specialized interpreter being the core of it but also many other improvements) without actually changing any of the Python code.

I'd appreciate if someone in the Google team attempted to migrate and have a PR running (and failing possibly until all prerequisite are met so that we can also track the progress and possibly help each other to solve any problems. I know PyArrow is blocking for now, but this is going to be solved soon lilely with https://github.com/apache/arrow/pull/14499 and just opening a failing PR with it might be a good start.

I just opened such PR in Apache Airflow yesterday and plan to keep it open until it gets green :). So far google provider will need to be excluded there.

https://github.com/apache/airflow/pull/27264

I think it would be fantastic if we could as the open source community migrate to the new Python much faster.

Looking forward to cooperation on that one :)
FTR Upstream issue in pyarrow has been resolved ( apache/arrow/pull/14499 ), but still missing a compatible release of pyarrow ( https://pypi.org/project/pyarrow/#files ) 
FTR There is a compatible release of pyarrow (https://pypi.org/project/pyarrow/#files).
Where is support for 3.11 on the roadmap? This would be super helpful 🙏
- https://github.com/googleapis/python-bigquery/pull/1454

Resolving patch:
diff --git a/noxfile.py b/noxfile.py
--- a/noxfile.py
+++ b/noxfile.py
@@ -36,7 +36,7 @@
 )
 
 DEFAULT_PYTHON_VERSION = "3.8"
-SYSTEM_TEST_PYTHON_VERSIONS = ["3.8", "3.10"]
+SYSTEM_TEST_PYTHON_VERSIONS = ["3.8", "3.11"]
 UNIT_TEST_PYTHON_VERSIONS = ["3.7", "3.8", "3.9", "3.10", "3.11"]
 CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
 
@@ -80,7 +80,7 @@ def default(session, install_extras=True):
         constraints_path,
     )
 
-    if install_extras and session.python == "3.10":
+    if install_extras and session.python == "3.11":
         install_target = ".[bqstorage,ipywidgets,pandas,tqdm,opentelemetry]"
     elif install_extras:
         install_target = ".[all]"
@@ -185,7 +185,7 @@ def system(session):
     # Data Catalog needed for the column ACL test with a real Policy Tag.
     session.install("google-cloud-datacatalog", "-c", constraints_path)
 
-    if session.python == "3.10":
+    if session.python == "3.11":
         extras = "[bqstorage,ipywidgets,pandas,tqdm,opentelemetry]"
     else:
         extras = "[all]"
@@ -244,7 +244,7 @@ def snippets(session):
     session.install("google-cloud-storage", "-c", constraints_path)
     session.install("grpcio", "-c", constraints_path)
 
-    if session.python == "3.10":
+    if session.python == "3.11":
         extras = "[bqstorage,ipywidgets,pandas,tqdm,opentelemetry]"
     else:
         extras = "[all]"
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -131,6 +131,7 @@
         "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
+        "Programming Language :: Python :: 3.11",
         "Operating System :: OS Independent",
         "Topic :: Internet",
     ],


Test patch: