1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 6 # build-system 7 setuptools, 8 9 # dependencies 10 deprecated, 11 google-api-core, 12 google-cloud-core, 13 google-cloud-testutils, 14 grpc-google-iam-v1, 15 grpc-interceptor, 16 proto-plus, 17 protobuf, 18 sqlparse, 19 20 # optional dependencies 21 libcst, 22 23 # testing 24 google-cloud-monitoring, 25 mmh3, 26 mock, 27 opentelemetry-api, 28 opentelemetry-sdk, 29 opentelemetry-semantic-conventions, 30 pytest-asyncio, 31 pytestCheckHook, 32}: 33 34buildPythonPackage rec { 35 pname = "google-cloud-spanner"; 36 version = "3.54.0"; 37 pyproject = true; 38 39 src = fetchFromGitHub { 40 owner = "googleapis"; 41 repo = "python-spanner"; 42 tag = "v${version}"; 43 hash = "sha256-uJKUgY7fV+AK/2HQyjQRFypcL+mPZ/M5ZtAU+f73ezM="; 44 }; 45 46 build-system = [ setuptools ]; 47 48 dependencies = [ 49 deprecated 50 google-api-core 51 google-cloud-core 52 grpc-google-iam-v1 53 grpc-interceptor 54 proto-plus 55 protobuf 56 sqlparse 57 ] ++ google-api-core.optional-dependencies.grpc; 58 59 optional-dependencies = { 60 libcst = [ libcst ]; 61 }; 62 63 nativeCheckInputs = [ 64 google-cloud-monitoring 65 google-cloud-testutils 66 mmh3 67 mock 68 opentelemetry-api 69 opentelemetry-sdk 70 opentelemetry-semantic-conventions 71 pytest-asyncio 72 pytestCheckHook 73 ]; 74 75 preCheck = '' 76 # prevent google directory from shadowing google imports 77 rm -r google 78 ''; 79 80 disabledTests = [ 81 # Requires credentials 82 "test_list_backup" 83 "test_list_database" 84 "test_list_instance" 85 # can't import mmh3 86 "test_generate_client_hash" 87 ]; 88 89 disabledTestPaths = [ 90 # Requires credentials 91 "tests/system/test_backup_api.py" 92 "tests/system/test_database_api.py" 93 "tests/system/test_dbapi.py" 94 "tests/system/test_instance_api.py" 95 "tests/system/test_session_api.py" 96 "tests/system/test_streaming_chunking.py" 97 "tests/system/test_table_api.py" 98 "tests/unit/test_metrics.py" 99 "tests/unit/test_metrics_capture.py" 100 "tests/unit/test_metrics_exporter.py" 101 "tests/unit/test_metrics_interceptor.py" 102 "tests/unit/spanner_dbapi/test_connect.py" 103 "tests/unit/spanner_dbapi/test_connection.py" 104 "tests/unit/spanner_dbapi/test_cursor.py" 105 "samples/samples/" 106 ]; 107 108 pythonImportsCheck = [ 109 "google.cloud.spanner_admin_database_v1" 110 "google.cloud.spanner_admin_instance_v1" 111 "google.cloud.spanner_dbapi" 112 "google.cloud.spanner_v1" 113 ]; 114 115 __darwinAllowLocalNetworking = true; 116 117 meta = { 118 description = "Cloud Spanner API client library"; 119 homepage = "https://github.com/googleapis/python-spanner"; 120 changelog = "https://github.com/googleapis/python-spanner/blob/v${version}/CHANGELOG.md"; 121 license = lib.licenses.asl20; 122 maintainers = [ lib.maintainers.sarahec ]; 123 }; 124}