Repository: googleapis/python-bigquery

Issue:
unit-3.6 session is failing on Mac
```
nox > Running session unit-3.6
nox > Re-using existing virtual environment at .nox/unit-3-6.
nox > pip install mock pytest google-cloud-testutils pytest-cov freezegun -c /Users/swast/src/python-bigquery/testing/constraints-3.6.txt
nox > pip install -e .[all] -c /Users/swast/src/python-bigquery/testing/constraints-3.6.txt
nox > Command pip install -e .[all] -c /Users/swast/src/python-bigquery/testing/constraints-3.6.txt failed with exit code 1:
Obtaining file:///Users/swast/src/python-bigquery
Collecting google-api-core[grpc]<2.0.0dev,>=1.23.0
  Using cached google_api_core-1.23.0-py2.py3-none-any.whl (91 kB)
Collecting proto-plus>=1.10.0
  Using cached proto_plus-1.10.0-py3-none-any.whl
Collecting google-cloud-core<2.0dev,>=1.4.1
  Using cached google_cloud_core-1.4.1-py2.py3-none-any.whl (26 kB)
Collecting google-resumable-media<2.0dev,>=0.6.0
  Using cached google_resumable_media-0.6.0-py2.py3-none-any.whl (41 kB)
Requirement already satisfied: packaging>=14.3 in ./.nox/unit-3-6/lib/python3.6/site-packages (from google-cloud-bigquery==2.12.0) (20.9)
Collecting protobuf>=3.12.0
  Using cached protobuf-3.12.0-cp36-cp36m-macosx_10_9_x86_64.whl (1.3 MB)
Collecting google-cloud-bigquery-storage<3.0.0dev,>=2.0.0
  Using cached google_cloud_bigquery_storage-2.0.0-py2.py3-none-any.whl (60 kB)
Collecting grpcio<2.0dev,>=1.32.0
  Using cached grpcio-1.32.0-cp36-cp36m-macosx_10_9_x86_64.whl (3.3 MB)
Collecting pyarrow<4.0dev,>=1.0.0
  Using cached pyarrow-1.0.0-cp36-cp36m-macosx_10_9_intel.whl (11.1 MB)
Collecting pandas>=0.23.0
  Using cached pandas-0.23.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (16.8 MB)
ERROR: Could not find a version that satisfies the requirement pyarrow<4.0dev,>=3.0.0 (from google-cloud-bigquery[all])
ERROR: No matching distribution found for pyarrow<4.0dev,>=3.0.0
nox > Session unit-3.6 failed.
```

I think the `bignumeric` extra needs to be excluded from `all` or we need to add some logic to avoid installing that extra from Python 3.6.

Not sure why the Kokoro jobs aren't failing, though.


Discussion:
There are pyarrow 3.0.0 wheels for Python 3.6 https://pypi.org/project/pyarrow/#files

I think this is just a matter of the constraints file trying to force 1.0.0, which we do still want to test with.

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -48,7 +48,7 @@
         "grpcio >= 1.32.0, < 2.0dev",
         "pyarrow >= 1.0.0, < 4.0dev",
     ],
-    "pandas": ["pandas>=0.23.0", "pyarrow >= 1.0.0, < 4.0dev",],
+    "pandas": ["pandas>=0.23.0", "pyarrow >= 1.0.0, < 4.0dev"],
     "bignumeric_type": ["pyarrow >= 3.0.0, < 4.0dev"],
     "tqdm": ["tqdm >= 4.7.4, <5.0.0dev"],
     "opentelemetry": [
@@ -61,6 +61,11 @@
 all_extras = []
 
 for extra in extras:
+    # Exclude this extra from all to avoid overly strict dependencies on core
+    # libraries such as pyarrow.
+    # https://github.com/googleapis/python-bigquery/issues/563
+    if extra in {"bignumeric_type"}:
+        continue
     all_extras.extend(extras[extra])
 
 extras["all"] = all_extras


Test patch: