about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix138
1 files changed, 138 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
new file mode 100644
index 000000000000..7edbedb80c6a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -0,0 +1,138 @@
+{ lib
+, buildPythonPackage
+, db-dtypes
+, fetchPypi
+, freezegun
+, google-api-core
+, google-cloud-bigquery-storage
+, google-cloud-core
+, google-cloud-datacatalog
+, google-cloud-storage
+, google-cloud-testutils
+, google-resumable-media
+, grpcio
+, ipython
+, mock
+, pandas
+, proto-plus
+, protobuf
+, psutil
+, pyarrow
+, pytest-xdist
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+, requests
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-bigquery";
+  version = "3.11.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-aX3xFyQaIoO8u5OyHhC63BTlHJqQgA0qfho+HH2EKXQ=";
+  };
+
+  propagatedBuildInputs = [
+    grpcio
+    google-api-core
+    google-cloud-core
+    google-cloud-bigquery-storage
+    google-resumable-media
+    proto-plus
+    protobuf
+    requests
+    python-dateutil
+  ] ++ google-api-core.optional-dependencies.grpc;
+
+  passthru.optional-dependencies = {
+    bqstorage = [
+      google-cloud-bigquery-storage
+      grpcio
+      pyarrow
+    ];
+    pandas = [
+      db-dtypes
+      pandas
+      pyarrow
+    ];
+    tqdm = [
+      tqdm
+    ];
+    ipython = [
+      ipython
+    ];
+  };
+
+  nativeCheckInputs = [
+    freezegun
+    google-cloud-testutils
+    mock
+    psutil
+    google-cloud-datacatalog
+    google-cloud-storage
+    pytestCheckHook
+    pytest-xdist
+  ] ++ passthru.optional-dependencies.pandas
+  ++ passthru.optional-dependencies.ipython;
+
+  # prevent google directory from shadowing google imports
+  preCheck = ''
+    rm -r google
+  '';
+
+  disabledTests = [
+    # requires credentials
+    "test_bigquery_magic"
+    "TestBigQuery"
+    "test_context_with_no_query_cache_from_context"
+    "test_arrow_extension_types_same_for_storage_and_REST_APIs_894"
+    "test_list_rows_empty_table"
+    "test_list_rows_page_size"
+    "test_list_rows_scalars"
+    "test_list_rows_scalars_extreme"
+    "test_dry_run"
+    "test_session"
+    # Mocking of _ensure_bqstorage_client fails
+    "test_to_arrow_ensure_bqstorage_client_wo_bqstorage"
+    # requires network
+    "test_dbapi_create_view"
+    "test_list_rows_nullable_scalars_dtypes"
+    "test_parameterized_types_round_trip"
+    "test_structs"
+    "test_table_snapshots"
+    "test__initiate_resumable_upload"
+    "test__initiate_resumable_upload_mtls"
+    "test__initiate_resumable_upload_with_retry"
+    "test_table_clones"
+    "test_context_with_default_connection"
+    "test_context_with_custom_connection"
+  ];
+
+  disabledTestPaths = [
+    # Tests require credentials
+    "tests/system/test_query.py"
+    "tests/system/test_job_retry.py"
+    "tests/system/test_pandas.py"
+  ];
+
+  pythonImportsCheck = [
+    "google.cloud.bigquery"
+    "google.cloud.bigquery_v2"
+  ];
+
+  meta = with lib; {
+    # Not compatible with pyarrow13 yet.
+    broken = true;
+    description = "Google BigQuery API client library";
+    homepage = "https://github.com/googleapis/python-bigquery";
+    changelog = "https://github.com/googleapis/python-bigquery/blob/v${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ];
+  };
+}