This update for python-aioresponses, python-google-api-core, python-google-api-python-client, python-google-auth, python-google-auth-httplib2, python-google-cloud-appengine-logging, python-google-cloud-artifact-registry, python-google-cloud-audit-log, python-google-cloud-build, python-google-cloud-compute, python-google-cloud-core, python-google-cloud-dns, python-google-cloud-domains, python-google-cloud-iam, python-google-cloud-kms, python-google-cloud-kms-inventory, python-google-cloud-logging, python-google-cloud-run, python-google-cloud-secret-manager, python-google-cloud-service-directory, python-google-cloud-spanner, python-google-cloud-storage, python-google-cloud-vpc-access, python-google-crc32c, python-google-resumable-media, python-googleapis-common-protos, python-grpc-google-iam-v1, python-grpc-interceptor, python-mmh3, python-mypy, python-opentelemetry-resourcedetector-gcp, python-poetry-core, python-proto-plus, python-pytest-asyncio, python-syrupy, python-typed-ast, python-uritemplate, python-dnspython, python-trio, python-websocket-client fixes the following issues:
Changes in python-aioresponses:
Switch to pyproject macros.
Update to 0.7.8
from version 0.7.7
__version__ to latest released versionAdd test_pass_through_unmatched_requests to skipped tests
Update Requires from requirements.txt
Add %{?sle15_python_module_pythons}
update to 0.7.6:
update to 0.7.5:
update to 0.7.4:
update to 0.7.3:
Remove unused patch.
Update to v0.7.1
drop patch merged upstream
fix python version requirement, require asynctest for python36 again
Remove no longer necessary aioresponses replace asynctest patch
Add patch to add compatibility with aiohttp 3.7.0
Update to v0.7.0
replace asynctest with native python 3.8 unittest async test class
drop disable-online-test patch and deselect by pytest call
update to 0.6.4
update to 0.6.2
Update to 0.6.1:
Lower the ddt requirement as it is not really needed
cleanup deps
Remove unnecessary build dependencies
Update to v0.6.0
Use noun phrase / full sentences in summary / description.
Format with spec-cleaner
Initial build
Include patch to disable online test
Changes in python-google-api-core:
Update to 2.26.0
from version 2.25.2
Update to 2.25.1
Update to 2.25.0
x-goog-api-client header (#812)Update to 2.24.2
Update Requires from pyproject.toml
Update to 2.24.1
Update to 2.24.0
Update to 2.23.0
from version 2.22.0
Any decode error (#712)Update to 2.21.0
fix requirements
Remove unneeded BuildRequires.
Refreshed patches:
Update to 2.20.0
Update to 2.19.2
rpc_status module (#680)Adjust upstream source name in spec file
update to 2.19.1:
Update to version 2.19.0
from version 2.18.0
from version 2.17.1
from version 2.17.0
from version 2.16.2
a,out -> amount (#596)from version 2.16.1
from version 2.16.0
Refresh patches for new version
Update BuildRequires and Requires from setup.py
Changes in python-google-api-python-client:
Update to version 1.185.0
Update to version 1.184.0
Update to version 1.183.0
Update to version 1.182.0
from version 2.181.0
from version 2.180.0
Update to version 2.179.0
from version 2.178.0
Update to version 1.177.0
from version 1.176.0
from version 1.175.0
from version 1.174.0
from version 1.173.0
Update to version 1.172.0
from version 2.171.0
Update to version 1.170.0
Update to version 1.169.0
Update to version 1.168.0
from version 2.167.0
Update to version 1.166.0
from version 2.165.0
Update to version 1.164.0
from version 2.163.0
from version 1.162.0
Update to version 1.161.0
Update to version 1.160.0
Update to version 1.159.0
Update to version 1.158.0
Update to version 1.157.0
from version 2.156.0
from version 2.155.0
Update to version 1.154.0
from version 2.153.0
from version 2.152.0
from version 2.151.0
from version 2.150.0
Update to version 2.149.0
from version 2.148.0
Update to version 2.147.0
from version 2.146.0
Update to 2.143.0
from version 2.142.0
from version 2.141.0
from version 2.140.0
Update to 2.139.0
from version 2.138.0
Update to 2.137.0
Adjust upstream source name in spec file
Update to 2.136.0
from version 2.135.0
from version 2.134.0
update to 2.133.0:
update to 2.132.0:
Update to 2.130.0
from version 2.129.0
from version 2.128.0
from version 2.127.0
Disable two more tests that require internet connection
Update to 2.126.0
from version 2.125.0
from version 2.124.0
universe_domain (#2368)from version 2.123.0
from version 2.122.0
from version 2.121.0
from version 2.12.0
from version 2.119.0
from version 2.118.0
from version 2.117.0
Update BuildRequires and Requires from setup.py
update to 2.116.0:
Update to 2.115.0
update to 2.114.0:
update to 2.113.0:
update to 2.112.0:
update to 2.111.0:
Remove pandas from the BuildRequires. It's not really needed.
Update to 2.103.0
from version 2.102.0
from version 2.101.0
from version 2.100.0
from version 2.99.0
from version 2.98.0
Update to 2.97.0
from version 2.96.0
from version 2.95.0
from version 2.94.0
Update to 2.93.0
from version 2.92.0
from version 2.91.0
from version 2.90.0
Add %{?sle15_python_module_pythons}
Update to 2.89.0
from version 2.88.0
from version 2.87.0
Update to 2.86.0
from version 2.85.0
from version 2.84.0
from version 2.83.0
update to 2.82.0:
Update to version 2.80.0
from version 2.79.0
from version 2.78.0
from version 2.77.0
from version 2.76.0
from version 2.75.0
from version 2.74.0
from version 2.73.0
from version 2.72.0
from version 2.71.0
Drop patch to disable oauth2client tests, fixed upstream
Update to version 2.70.0
Remove python_module macro definition
Update to version 2.69.0
Update to 2.68.0:
Update to 2.66.0:
Update to 2.65.0: Features
Update to 2.64.0:
from version 2.63.0:
Update to 2.62.0:
from version 2.61.0:
Update to 2.60.0:
from version 2.59.0:
from verson 2.58.0:
from version 2.57.0:
Update to 2.56.0:
Refresh patches.
Update to 2.44.0
Do not test deprecated oauth2client anymore:
Update to 2.31.0:
from version 2.28.0:
from version 2.26.1:
from version 2.26.0:
from version 2.25.0:
Drop python google api python client no unittest2 patch
Update to 2.20.0:
Refreshed python google api python client no unittest2 patch
Update to version 1.12.8
from version 1.12.7
from version 1.12.6
from version 1.12.5
from version 1.12.4
from version 1.12.3
from version 1.12.2
from version 1.12.1
from version 1.12.0
Update to version 1.11.0
from version 1.10.1
from version 1.10.0
from version 1.9.3
from version 1.9.2
from version 1.9.1
from version 1.9.0
Refresh patches for new version
Update BuildRequires and Requires from setup.py
so remove the dependency on unittest2 from BuildRequires, too
version update to 1.8.4
added patches fix unittest2 seems to be fake dependency
Update to 1.8.2:
Add missing dependency on oauth2client.
Fix filelist (no CHANGELOG anymore, missing README.md)
Update to 1.8.0
Update to 1.7.11 bsc#1161898:
Update to 1.7.8:
Remove hide Python dependency patch does not make sense
Add back unittest2 dep, upstream hardcoded it
Remove superfluous devel dependency for noarch package
Changes in python-googleapis-common-protos:
Update to 1.71.0
Update to 1.70.0
Update to 1.69.2
include in tool.setuptools.packages.find (#13662)Fix changelog entry for previous version
Update GitHub URL in URL field
Update to 1.69.1
from version 1.69.0
Update Recommends from pyproject.toml
Update to 1.68.0
experimental_features to message PythonSettings (#249)from version 1.67.0
unversioned_package_disabled is added to message
.google.api.PythonSettings (eb554e8)content in message .google.api.Page is
changed (eb554e8)RoutingRule is changed (eb554e8)Update to 1.66.0
MISSING_ORIGIN and OVERLOADED_CREDENTIALS to
ErrorReason enum (d0478d8)protobuf_pythonic_types_enabled to
ExperimentalFeatures message (d0478d8)selective_gapic_generation to
CommonLanguageSettings message (d0478d8)time_series_resource_hierarchy_level to
MetricDescriptorMetadata message (d0478d8)SelectiveGapicGeneration (d0478d8)Update to 1.65.0
experimental_features to message PythonSettings (#249)from version 1.64.0
Adjust upstream source name in spec file
Remove unnecessary %{modname} and %{pkgname} variables
Update to 1.63.2
Update to 1.63.1
update to 1.63.0:
api_version field to ServiceOptions in
google/api/client.protoLOCATION_POLICY_VIOLATED enum to ErrorReason in
google/api/error_reason.protorest_reference_documentation_uri field to
ServiceOptions in google/api/client.protoChanges in python-google-auth-httplib2:
update to 0.2.0:
version update to 0.1.1
modified patches
Add %{?sle15_python_module_pythons}
do not require python-mock for build
added patches fix https://github.com/googleapis/google-auth-library-python-httplib2/issues/68
Update to version 0.1.0
from version 0.0.4
Update BuildRequires and Requires from setup.py
Changes in python-google-auth:
Update to version 2.41.1
from version 2.41.0
Refresh patches for new version
Convert to pip-based build
Update to version 2.40.3
Update to version 2.40.2
Update to version 2.40.1
from version 2.40.0
from version 2.39.0
Refresh python google auth no mock patch
Skip test broken with new pyOpenSSL
Update to version 2.38.0
Update to version 2.37.0
from version 2.36.1
Update BuildRequires and Recommends from setup.py
Update to version 2.36.0
Update to version 2.35.0
AuthorizedSession api (#1577)Refresh patches for new version
Updates BuildRequires from setup.py
Update to version 2.34.0
from version 2.33.0
StaticCredentials using access tokens (#1559)Refresh patches for new version
Update to version 2.32.0
Adjust upstream source name in spec file
Update to version 2.31.0
Update to version 2.30.0
Refresh patches for new version
Update to version 2.29.0
from version 2.28.2
from version 2.28.1
from version 2.28.0
Refresh patches for new version
Changes in python-google-cloud-appengine-logging:
Update to 1.7.0
from version 1.6.2
Update BuildRequires and Requires from setup.py
Update to 1.6.1
from version 1.6.0
from version 1.5.0
from version 1.4.5
from version 1.4.4
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 1.4.3:
Changes in python-google-cloud-artifact-registry:
Update to 1.17.0
Update BuildRequires and Requires from setup.py
Add missing BuildRequires on pytest-asyncio.
Update to 1.16.0
from version 1.15.2
from version 1.15.1
from version 1.15.0
from version 1.14.0
from version 1.13.1
from version 1.13.0
from version 1.12.0
from version 1.11.5
from version 1.11.4
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 1.11.3:
Changes in python-google-cloud-audit-log:
Update to 0.4.0
from version 0.3.3
Update to 0.3.2
from version 0.3.1
from version 0.3.0
google/cloud/audit/bigquery_audit_metadata_pb2.pyAdjust upstream source name in spec file
Switch upstream tarball to PyPi as tests are now included there
Update BuildRequires and Requires from setup.py
Changes in python-google-cloud-build:
Update to 3.33.0
from version 3.32.0
machine_type and disk_size_gbfrom version 3.31.3
from version 3.31.2
Update BuildRequires and Requires from setup.py
Add missing BuildRequires on pytest-asyncio.
Update to 3.31.1
from version 3.31.0
from version 3.30.0
from version 3.29.0
from version 3.28.0
from version 3.27.1
from version 3.27.0
from version 3.26.0
from 3.25.0
from version 3.24.2
from version 3.24.1
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 3.24.0:
Changes in python-google-cloud-compute:
Update to 1.40.0
from version 1.39.0
from version 1.38.0
from version 1.37.0
from version 1.36.0
from version 1.35.0
from version 1.34.0
from version 1.33.0
from version 1.32.0
from version 1.31.0
Update BuildRequires and Requires from setup.py
Update to 1.30.0
Changes in python-google-cloud-core:
Changes in python-google-cloud-dns:
Changes in python-google-cloud-domains:
Update to 1.11.0
from version 1.10.2
Update BuildRequires and Requires from setup.py
Add missing BuildRequires on pytest-asyncio.
Update to 1.10.1
from version 1.10.1
from version 1.9.0
from version 1.8.1
from version 1.8.0
from version 1.7.5
from version 1.7.4
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 1.7.3:
Changes in python-google-cloud-iam:
Update to 2.20.0
Update BuildRequires and Requires from setup.py
Update to 2.19.0
from version 2.18.3
from version 2.18.2
from version 2.18.1
from version 2.18.0
from version 2.17.0
from version 2.16.1
from version 2.16.0
from version 2.15.2
from version 2.15.1
Adjust upstream source name in spec file
Changes in python-google-cloud-kms-inventory:
Update to 0.3.0
from version 0.2.15
Update BuildRequires and Requires from setup.py
Update to 0.2.14
from version 0.2.13
from version 0.2.12
from version 0.2.11
from version 0.2.10
from version 0.2.9
from version 0.2.8
from version 0.2.7
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 0.2.6:
Changes in python-google-cloud-kms:
Update to 3.7.0
from version 3.6.0
from version 3.5.1
DESTROYED in enum
CryptoKeyVersionState is changed (#13913)from version 3.5.0
Update BuildRequires and Requires from setup.py
Update to 3.4.1
from version 3.4.0
from version 3.3.1
from version 3.3.0
from version 3.2.2
from version 3.2.1
from version 3.2.0
CryptoKeyVersionAlgorithm is changed (#13305)from version 3.1.1
from version 3.1.0
from version 3.0.0
from version 2.24.2
from version 2.24.1
from version 2.24.0
from version 2.23.0
from version 2.22.0
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 2.21.4:
Changes in python-google-cloud-logging:
Update to 3.12.1
from version 3.12.0
from version 3.11.4
write_entries raise ValueError on ParseErrors (#958)from version 3.11.3
from version 3.11.2
from version 3.11.1
from version 3.11.0
dictConfig snippet (#885)Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 3.10.0:
Changes in python-google-cloud-run:
Update to 0.11.0
worker_pool in message .google.cloud.run.v2.SubmitBuildRequest
is changed from cloudbuild.googleapis.com/WorkerPool to
cloudbuild.googleapis.com/BuildWorkerPoolworker_pool in message .google.cloud.run.v2.BuildConfig
is changed from cloudbuild.googleapis.com/WorkerPool to
cloudbuild.googleapis.com/BuildWorkerPoolcloudbuild.googleapis.com/WorkerPool is removedcloudbuild.googleapis.com/WorkerPool is removed (077a8ff)worker_pool in message .google.cloud.run.v2.BuildConfig
is changed from cloudbuild.googleapis.com/WorkerPool to
cloudbuild.googleapis.com/BuildWorkerPool (077a8ff)worker_pool in message .google.cloud.run.v2.SubmitBuildRequest
is changed from cloudbuild.googleapis.com/WorkerPool to
cloudbuild.googleapis.com/BuildWorkerPool (077a8ff)from version 0.10.19
term_signal to .google.cloud.run.v2.TaskAttemptResult
(078e0e2)from version 0.10.18
Update to 0.10.17
from version 0.10.16
from version 0.10.15
from version 0.10.14
from version 0.10.13
Update BuildRequires and Requires from setup.py
Update to 0.10.12
Changes in python-google-cloud-secret-manager:
Update to 2.25.0
from version 2.24.0
Update BuildRequires and Requires from setup.py
Update to 2.23.3
Update to 2.23.2:
update to 2.20.0:
update to 2.19.0:
Changes in python-google-cloud-service-directory:
Update to 1.14.2
from version 1.14.1
from version 1.14.0
from version 1.13.0
from version 1.12.1
from version 1.12.0
from version 1.11.6
from version 1.11.5
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 1.11.4:
update to 1.11.3:
Changes in python-google-cloud-spanner:
Drop python-google-cloud-monitoring from BuildRequires
Skip tests that require python-google-cloud-monitoring
Replace bash scriptlet to remove mock usage from source code
Update to 3.58.0
from version 3.57.0
from version 3.56.0
from version 3.55.0
last field in the PartialResultSet (d532d57)chunked_value in message
.google.spanner.v1.PartialResultSet is changed (d532d57)precommit_token in message
.google.spanner.v1.PartialResultSet is changed (d532d57)precommit_token in message
.google.spanner.v1.ResultSet is changed (d532d57)query_plan in message
.google.spanner.v1.ResultSetStats is changed (d532d57)row_count_lower_bound in message
.google.spanner.v1.ResultSetStats is changed (d532d57)row_type in message
.google.spanner.v1.ResultSetMetadata is changed (d532d57)rows in message
.google.spanner.v1.ResultSet is changed (d532d57)stats in message
.google.spanner.v1.PartialResultSet is changed (d532d57)stats in message
.google.spanner.v1.ResultSet is changed (d532d57)values in message
.google.spanner.v1.PartialResultSet is changed (d532d57)ResultSetMetadata is changed (d532d57)ResultSetStats is changed (d532d57)from version 3.54.0
Add missing test dependencies to BuildRequires
Update to 3.53.0
IsolationLevel is added (#1224)DefaultBackupScheduleType is changedAUTOMATIC in enum DefaultBackupScheduleType is changedGOOGLE_MANAGED in enum Type is changedNONE in enum DefaultBackupScheduleType is changedUSER_MANAGED in enum Type is changedbase_config in message
.google.spanner.admin.instance.v1.InstanceConfig is changeddefault_backup_schedule_type in message
.google.spanner.admin.instance.v1.Instancefilter in message
.google.spanner.admin.instance.v1.ListInstanceConfigOperationsRequest
is changedfilter in message
.google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest
is changedinstance_config in message
.google.spanner.admin.instance.v1.CreateInstanceConfigRequest
is changedinstance_partition_deadline in message
.google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest
is changedlocation in message
.google.spanner.admin.instance.v1.ReplicaInfo is changednode_count in message
.google.spanner.admin.instance.v1.Instance is changednode_count in message
.google.spanner.admin.instance.v1.InstancePartition is changedoperations in message
.google.spanner.admin.instance.v1.ListInstanceConfigOperationsResponse
is changedoperations in message
.google.spanner.admin.instance.v1.ListInstancePartitionOperationsResponse
is changedoptional_replicas in message
.google.spanner.admin.instance.v1.InstanceConfig is changedparent in message
.google.spanner.admin.instance.v1.ListInstancePartitionsRequest is changedprocessing_units in message
.google.spanner.admin.instance.v1.Instance is changedprocessing_units in message
.google.spanner.admin.instance.v1.InstancePartition is changedreferencing_backups in message
.google.spanner.admin.instance.v1.InstancePartition is changedreplicas in message
.google.spanner.admin.instance.v1.InstanceConfig is changedstorage_utilization_percent in message
.google.spanner.admin.instance.v1.AutoscalingConfig is changedunreachable in message
.google.spanner.admin.instance.v1.ListInstancePartitionsResponse is changedCreateInstanceConfigRequest is changedDeleteInstanceConfigRequest is changedUpdateInstanceConfigRequest is changedCreateInstance in service InstanceAdmin is changedCreateInstanceConfig in service InstanceAdmin is changedCreateInstancePartition in service InstanceAdmin is changedListInstanceConfigOperations in service InstanceAdmin is changedListInstanceConfigs in service InstanceAdmin is changedListInstancePartitionOperations in service InstanceAdmin is changedMoveInstance in service InstanceAdmin is changedUpdateInstance in service InstanceAdmin is changedUpdateInstanceConfig in service InstanceAdmin is changedUpdateInstancePartition in service InstanceAdmin is changedfrom version 3.52.0
from version 3.51.0
Update Suggests from setup.py
Update to 3.50.1
Changes in python-google-cloud-storage:
Update to 3.4.1
upload_from_string, upload_from_file,
and upload_from_filename methods.from version 3.4.0
Adjust python folder names in %files section
Update to 3.3.1
from version 3.3.0
from version 3.2.0
from version 3.1.1
Add %{python_sitelib}/google/cloud/storage_v2 in %files section
Update BuildRequires and Requires from setup.py
Update to 3.1.0
from version 3.0.0
Blob.from_string() and Bucket.from_string() to from_uri() (#1335)Refresh demock patch
Update BuildRequires and Requires from setup.py
Update to 2.19.0:
Update to 2.18.2:
Update to 2.18.1:
Update to 2.18.0:
Update to 2.17.0:
Update to 2.16.0:
Update to 2.15.0:
Changes in python-google-cloud-vpc-access:
Update to 1.13.2
Add missing BuildRequires on pytest-asyncio.
Update to 1.13.1
from version 1.13.0
from version 1.12.0
from version 1.11.1
from version 1.11.0
from version 1.10.5
Adjust upstream source name in spec file
Update BuildRequires and Requires from setup.py
update to 1.10.4:
update to 1.10.3:
Changes in python-google-crc32c:
Update to 1.7.1
from version 1.7.0
update to 1.6.0:
Changes in python-google-resumable-media:
Update to 2.7.2
Adjust upstream source name in spec file
Update to 2.7.1
Changes in python-grpc-google-iam-v1:
Update to 0.14.3
Update to 0.14.2
Update to 0.14.1
Update to 0.14.0
google.iam.v1.resource_policy_member_pb2 (2e1af7c)Adjust upstream source name in spec file
Update to 0.13.1
Changes in python-grpc-interceptor:
Use Python 3.11 on SLE-15 by default
Add missing BuildRequires on pytest-asyncio.
Ship README and license in the binary packages.
Initial packaging (v0.15.4), needed by python-google-cloud-spanner
Changes in python-mmh3:
Use upstream tarball
Initial packaging for mmh3 (version 4.1.0), needed by the OpenWebUI stack
Changes in python-mypy:
Update to 1.5.1:
Update test suite dependencies:
Rename package from mypy to python-mypy.
Adjust rpmlintrc.
update to version 1.5.0:
Drop Support for Python 3.7
Mypy no longer supports running with Python 3.7, which has reached end-of-life. This was contributed by Shantanu (PR 15566).
Optional Check to Require Explicit @override
If you enable the explicit-override error code, mypy will generate an error if a method override doesn’t use the @typing.override decorator (as discussed in PEP 698). This way mypy will detect accidentally introduced overrides.
You can enable the error code via --enable-error-code=explicit-override on the mypy command line or enable_error_code = explicit-override in the mypy config file.
The override decorator will be available in typing in Python 3.12, but you can also use the backport from a recent version of typing_extensions on all supported Python versions.
More Flexible TypedDict Creation and Update
Mypy was previously overly strict when type checking TypedDict creation and update operations. Though these checks were often technically correct, they sometimes triggered for apparently valid code. These checks have now been relaxed by default. You can enable stricter checking by using the new --extra-checks flag.
Deprecated Flag: --strict-concatenate
The behavior of --strict-concatenate is now included in the new --extra-checks flag, and the old flag is deprecated.
Optionally Show Links to Error Code Documentation
If you use --show-error-code-links, mypy will add documentation links to (many) reported errors. The links are not shown for error messages that are sufficiently obvious, and they are shown once per error code only.
Consistently Avoid Type Checking Unreachable Code
If a module top level has unreachable code, mypy won’t type check the unreachable statements. This is consistent with how functions behave. The behavior of --warn-unreachable is also more consistent now.
Experimental Improved Type Inference for Generic Functions
You can use --new-type-inference to opt into an experimental new type inference algorithm. It fixes issues when calling a generic functions with an argument that is also a generic function, in particular. This current implementation is still incomplete, but we encourage trying it out and reporting bugs if you encounter regressions. We are planning to enable the new algorithm by default in a future mypy release.
Partial Support for Python 3.12
Mypy and mypyc now support running on recent Python 3.12 development versions. Not all new Python 3.12 features are supported, and we don’t ship compiled wheels for Python 3.12 yet.
Improvements to Dataclasses
Improve signature of dataclasses.replace (Ilya Priven, PR 14849)
Fix dataclass/protocol crash on joining types (Ilya Priven, PR 15629)
Fix strict optional handling in dataclasses (Ivan Levkivskyi, PR 15571)
Support optional types for custom dataclass descriptors (Marc Mueller, PR 15628)
Add slots attribute to dataclasses (Nikita Sobolev, PR 15649)
Support better post_init method signature for dataclasses (Nikita Sobolev, PR 15503)
Mypyc Improvements
Support unsigned 8-bit native integer type: mypy_extensions.u8 (Jukka Lehtosalo, PR 15564)
Support signed 16-bit native integer type: mypy_extensions.i16 (Jukka Lehtosalo, PR 15464)
Define mypy_extensions.i16 in stubs (Jukka Lehtosalo, PR 15562)
Document more unsupported features and update supported features (Richard Si, PR 15524)
Fix final NamedTuple classes (Richard Si, PR 15513)
Use C99 compound literals for undefined tuple values (Jukka Lehtosalo, PR 15453)
Don't explicitly assign NULL values in setup functions (Logan Hunt, PR 15379)
Stubgen Improvements
Teach stubgen to work with complex and unary expressions (Nikita Sobolev, PR 15661)
Support ParamSpec and TypeVarTuple (Ali Hamdan, PR 15626)
Fix crash on non-str docstring (Ali Hamdan, PR 15623)
Documentation Updates
Add documentation for additional error codes (Ivan Levkivskyi, PR 15539)
Improve documentation of type narrowing (Ilya Priven, PR 15652)
Small improvements to protocol documentation (Shantanu, PR 15460)
Remove confusing instance variable example in cheat sheet (Adel Atallah, PR 15441)
Other Notable Fixes and Improvements
Constant fold additional unary and binary expressions (Richard Si, PR 15202)
Exclude the same special attributes from Protocol as CPython (Kyle Benesch, PR 15490)
Change the default value of the slots argument of attrs.define to True, to match runtime behavior (Ilya Priven, PR 15642)
Fix type of class attribute if attribute is defined in both class and metaclass (Alex Waygood, PR 14988)
Handle type the same as typing.Type in the first argument of classmethods (Erik Kemperman, PR 15297)
Fix --find-occurrences flag (Shantanu, PR 15528)
Fix error location for class patterns (Nikita Sobolev, PR 15506)
Fix re-added file with errors in mypy daemon (Ivan Levkivskyi, PR 15440)
Fix dmypy run on Windows (Ivan Levkivskyi, PR 15429)
Fix abstract and non-abstract variant error for property deleter (Shantanu, PR 15395)
Remove special casing for 'cannot' in error messages (Ilya Priven, PR 15428)
Add runtime slots attribute to attrs classes (Nikita Sobolev, PR 15651)
Add get_expression_type to CheckerPluginInterface (Ilya Priven, PR 15369)
Remove parameters that no longer exist from NamedTuple._make() (Alex Waygood, PR 15578)
Allow using typing.Self in new with an explicit @staticmethod decorator (Erik Kemperman, PR 15353)
Fix self types in subclass methods without Self annotation (Ivan Levkivskyi, PR 15541)
Check for abstract class objects in tuples (Nikita Sobolev, PR 15366)
Typeshed Updates
Typeshed is now modular and distributed as separate PyPI packages for everything except the standard library stubs. Please see git log for full list of typeshed changes.
Update to 1.4.1
disable pep561 tests, as they fail on Python 3.11.4, see https://github.com/python/mypy/issues/15446
Update to 1.4.0:
Skip over failing testMathOps (gh#python/mypy#15221).
Update to 1.3.0:
add sle15_python_module_pythons
update typed_ast to version 1.5.8.6
update types_psutil to version 5.9.5.12
update types_setuptools to version 67.7.0.1
fix 'E: wrong-script-end-of-line-encoding' and 'E: spurious-executable-perm' for docs/make.bat
fix 'W: python-doc-in-package' for %{$python_sitelib}/mypyc/doc in Python 3.9, 3.10 and 3.11
update mypy to version 1.2.0:
Improvements to Dataclass Transforms
Support implicit default for 'init' parameter in field specifiers (Wesley Collin Wright and Jukka Lehtosalo, PR 15010)
Support descriptors in dataclass transform (Jukka Lehtosalo, PR 15006)
Fix frozen_default in incremental mode (Wesley Collin Wright)
Fix frozen behavior for base classes with direct metaclasses (Wesley Collin Wright, PR 14878)
Mypyc: Native Floats
Mypyc now uses a native, unboxed representation for values of type float. Previously these were heap-allocated Python objects. Native floats are faster and use less memory. Code that uses floating-point operations heavily can be several times faster when using native floats.
Various float operations and math functions also now have optimized implementations. Refer to the documentation for a full list.
This can change the behavior of existing code that uses subclasses of float. When assigning an instance of a subclass of float to a variable with the float type, it gets implicitly converted to a float instance when compiled
Previously, implicit conversions were applied to int subclasses but not float subclasses.
Also, int values can no longer be assigned to a variable with type float in compiled code, since these types now have incompatible representations. An explicit conversion is required.
This restriction only applies to assignments, since they could otherwise narrow down the type of a variable from float to int. int values can still be implicitly converted to float when passed as arguments to functions that expect float values.
Note that mypyc still doesn’t support arrays of unboxed float values. Using list[float] involves heap-allocated float objects, since list can only store boxed values. Support for efficient floating point arrays is one of the next major planned mypyc features.
Related changes:
Use a native unboxed representation for floats (Jukka Lehtosalo, PR 14880)
Document native floats and integers (Jukka Lehtosalo, PR 14927)
Fixes to float to int conversion (Jukka Lehtosalo, PR 14936)
Mypyc: Native Integers
Mypyc now supports signed 32-bit and 64-bit integer types in addition to the arbitrary-precision int type. You can use the types mypy_extensions.i32 and mypy_extensions.i64 to speed up code that uses integer operations heavily.
Refer to the documentation for more information. This feature was contributed by Jukka Lehtosalo.
Other Mypyc Fixes and Improvements
Support iterating over a TypedDict (Richard Si, PR 14747)
Faster coercions between different tuple types (Jukka Lehtosalo, PR 14899)
Faster calls via type aliases (Jukka Lehtosalo, PR 14784)
Faster classmethod calls via cls (Jukka Lehtosalo, PR 14789)
Fixes to Crashes
Fix crash on class-level import in protocol definition (Ivan Levkivskyi, PR 14926)
Fix crash on single item union of alias (Ivan Levkivskyi, PR 14876)
Fix crash on ParamSpec in incremental mode (Ivan Levkivskyi, PR 14885)
Documentation Updates
Update adopting --strict documentation for 1.0 (Shantanu, PR 14865)
Some minor documentation tweaks (Jukka Lehtosalo, PR 14847)
Improve documentation of top level mypy: disable-error-code comment (Nikita Sobolev, PR 14810)
Error Reporting Improvements
Add error code to typing_extensions suggestion (Shantanu, PR 14881)
Add a separate error code for top-level await (Nikita Sobolev, PR 14801)
Don’t suggest two obsolete stub packages (Jelle Zijlstra, PR 14842)
Add suggestions for pandas-stubs and lxml-stubs (Shantanu, PR 14737)
Other Fixes and Improvements
Multiple inheritance considers callable objects as subtypes of functions (Christoph Tyralla, PR 14855)
stubtest: Respect @final runtime decorator and enforce it in stubs (Nikita Sobolev, PR 14922)
Fix false positives related to type[] (sterliakov, PR 14756)
Fix duplication of ParamSpec prefixes and properly substitute ParamSpecs (EXPLOSION, PR 14677)
Fix line number if iter is incorrectly reported as missing (Jukka Lehtosalo, PR 14893)
Fix incompatible overrides of overloaded generics with self types (Shantanu, PR 14882)
Allow SupportsIndex in slice expressions (Shantanu, PR 14738)
Support if statements in bodies of dataclasses and classes that use dataclass_transform (Jacek Chałupka, PR 14854)
Allow iterable class objects to be unpacked (including enums) (Alex Waygood, PR 14827)
Fix narrowing for walrus expressions used in match statements (Shantanu, PR 14844)
Add signature for attr.evolve (Ilya Konstantinov, PR 14526)
Fix Any inference when unpacking iterators that don't directly inherit from typing.Iterator (Alex Waygood, PR 14821)
Fix unpack with overloaded iter method (Nikita Sobolev, PR 14817)
Reduce size of JSON data in mypy cache (dosisod, PR 14808)
Improve “used before definition” checks when a local definition has the same name as a global definition (Stas Ilinskiy, PR 14517)
Honor NoReturn as setitem return type to mark unreachable code (sterliakov, PR 12572)
Update to 1.1.1:
Removed upstreamed patch I64Cast fix patch
Sadly, six is still required for tests, re-add to BuildRequires.
add test I64 Cast fix test patch to make it working (gh#python/mypy#14691).
Skip failing test testI64Cast (gh#python/mypy#14633).
Update to 1.0.0 (YAY!):
Update to 0.991
Remove walrus patch.
Update to 0.981
Update Requirements
Add walrus patch
Update to 0.971:
remove obsolete patch stringent err msg patch
update to version 0.960:
Recognise typing.LiteralString and typing_extensions.LiteralString as aliases to str.
This does not add proper support for LiteralString, but this allows it to be used in type annotations and stubs. LiteralString will be included in Python 3.11 (PEP 675), and it can be used to require that a value is an arbitrary literal string (once fully supported).
Per-file Timing Stats
When mypy is run with the (currently hidden) --timing-stats FILE option, mypy will record detailed information about time spent type checking each file (microseconds). When profiling mypy runs over a large codebase, it can be useful to know which files are the slowest to type check. We are happy to receive bug reports about unexpectedly slow type checking.
Performance Improvements
Cache type of container literals when possible (Hugues, PR 12707)
Speed up type checking of nested if expressions (Hugues, PR 12700)
Speed up type checking of container literals with tuple entries (Hugues, PR 12706)
Speed up argument count check (Hugues, PR 12703)
Speed up processing large error counts and improve error filtering (Hugues, PR 12631)
Experimental Fast Module Lookup
Use the new --fast-module-lookup to switch to an alternative import resolution implementation that is faster when a large number of folders share a top-level namespace. We’d like to hear if you notice an improvement when using this flag, so that we can potentially prioritize work to enable this by default.
Documentation Updates
Add information about classes and types to “Getting started” (Michael Lee, PR 6557)
Mention no_type_check decorator in documentation (Shantanu, PR 12713)
Remove most mentions of type comments from docs (Shantanu, PR 12683)
Use PEP 585 syntax in 'The type of class objects' (Alex Waygood, PR 12516)
Improvements to Plugin System
Add a class attribute hook to the plugin system (Danny Weinberg, PR 9881)
Add an alternative class decorator hook that is less error-prone than the old one (Jukka Lehtosalo, PR 12762)
ParamSpec Improvements
Friendlier errors for ParamSpec (PEP 612) (Shantanu, PR 12832)
Fix ParamSpec crash related to Any types (EXPLOSION, PR 12548)
Use tuple[object, ...] and dict[str, object] as upper bounds for ParamSpec.args and ParamSpec.kwargs (Alex Waygood, PR 12668)
Fixes to Crashes
Fix crash on invalid Python executable (Pranav Rajpal, PR 12812)
Fix crash on type alias definition inside dataclass declaration (Alex Waygood, PR 12792)
Fix crash related to namedtuple in unannotated function (Jukka Lehtosalo, PR 12804)
Fix nested namedtuple crash in incremental mode (Jukka Lehtosalo, PR 12803)
Fix forward references and generic inheritance in attrs classes (Jukka Lehtosalo, PR 12772)
mypyc: Fix TypeError in lambda argument to overloaded function (Jukka Lehtosalo, PR 12780)
Fix crashes related to functools.total_ordering and forward references (Jukka Lehtosalo, PR 12767)
Fix crashes related to dataclasses and forward references (Jukka Lehtosalo, PR 12762)
Fix crash on invalid TypedDict definition (Alex Waygood, PR 12741)
Fix crash when using decorator in class scope (dzcode, PR 12724)
Other Notable Fixes and Improvements
Fix type annotation support of dunder methods in stubgen (Fabian Keller, PR 12828)
Fix some value patterns in match statements to be non-exhaustive (Štěpán Horáček, PR 12751)
Generate error when using both abstractmethod and final (Tomoki Nakagawa, PR 12743)
Add more precise error message for Callable annotation (frerikandriessen, PR 12518)
Fix generic inference in functions with TypeGuard (Nikita Sobolev, PR 11797)
Add check if python_version was parsed as float in pyproject.toml (Marcel Otoboni, PR 12558)
Fix nested overload merging (Marc Mueller, PR 12607)
stubtest: Generate error if type alias doesn't exist at runtime (Alex Waygood, PR 12608)
Support typing_extensions.overload (Jelle Zijlstra, PR 12602)
update to version 0.950:
Recent third-party library stubs available via types-* packages (e.g. types-requests) are actively using recent typing features that may not be supported by older mypy releases. We recommend that if you pin mypy to a specific version, you should also pin any stub packages to a version no more recent than the mypy release. Otherwise the mypy version you use may silently fall back to Any types if it encounters annotation syntax that it can’t process. It’s fine to continue using older versions of stubs when you upgrade mypy.
Note also that recent versions of many third-party stub packages don’t support Python 2 any more. If you are using mypy to type check Python 2 code, it’s important to pin all stub packages to versions that still support Python 2. Generally stub package versions: in Feb 2022 or earlier still support Python 2 (assuming that they supported Python 2 at all).
New Features: Concatenate and Literals with ParamSpec
It’s now possible to precisely annotate decorators that add/remove arguments, using ParamSpec together with typing.Concatenate (Python 3.10 or later) or typing_extensions.Concatenate. The decorator in this example provides an implicit Request argument to the decorated function.
New Feature: Detect Unused Coroutines and Awaitables
Now mypy will give an error if you forget to await a coroutine:
If you enable the unused-awaitable error code, mypy will also complain about any unused value that supports await. This is not enabled by default, since this can cause false positives.
New Feature: assert_type
You can now use typing_extensions.assert_type to ask mypy to validate that an expression has a specific static type. Mypy will report an error if the inferred type is not as expected:
from typing_extensions import assert_type
assert_type([1], list[int]) # OK
assert_type([1], list[str])
This can be used to validate that the expected type is inferred by mypy when calling a complex overloaded function, for example. At runtime assert_type just returns the first argument and doesn’t perform a runtime type check.
Mypyc Fixes and Improvements
Fix overflow in id built-in (Ekin Dursun, PR 12332)
Simplify generated code for native attribute get (Jukka Lehtosalo, PR 11978)
Implement close method for generators (Max Shvets, PR 12042)
Use more accurate flags with msvc (KotlinIsland, PR 12468)
Fix potential memory leak with setdefault() (Jukka Lehtosalo, PR 12514)
Make boxed integer constants/literals faster (Jukka Lehtosalo, PR 12507)
Performance Improvements
Mypy now type checks somewhat faster, in particular when dealing with enums and unions with many items.
Speed up union types (Jukka Lehtosalo, PR 12541, PR 12519)
Speed up subtype checks (Jukka Lehtosalo, PR 12540, PR 12538, PR 12536, PR 12539)
Speed up type checking enums (Hugues, PR 12032)
Speed up union types further (Hugues, PR 12630)
Documentation Improvements
Use Furo theme for documentation (97littleleaf11, PR 12348)
Add missing enable_error_code to config documentation (Mathieu Kniewallner, PR 12346)
Correct example in “Annotation issues at runtime” (Alex Waygood, PR 12356)
Fix inaccuracy: NoneType is exposed in the types module on Python 3.10+ (Alex Waygood, PR 12515)
Stubgen Improvements
Fix handling of Protocol (citruz, PR 12129)
Use _typeshed.Incomplete instead of typing.Any (Sebastian Rittau, PR 12449)
Do not consider nested generators (Štěpán Horáček, PR 12463)
Fix behavior for instance variables in C extensions (Shubham SInghal, PR 12524)
Stubtest Improvements
Generate error for read-only property at runtime, but not in stub (Alex Waygood, PR 12291)
Enable verification of match_args attributes (Alex Waygood, PR 12465)
Other Notable Fixes and Improvements
Use tomllib on Python 3.11 (Shantanu, PR 12305)
Print compilation status with --version (Shantanu, PR 12318)
Fix annotations being undefined (Niklas Gustafsson, PR 10969)
Add success message for notes-only output (97littleleaf11, PR 12306)
dmypy: Warn instead of failing if report generation is configured (Nate McMaster, PR 10181)
Fix caching of PEP 561 namespace packages with missing submodules (Shantanu, PR 12250)
Fix empty reveal_locals output (Cibin Mathew, PR 12400)
Check that async for/with is inside an async function (Štěpán Horáček, PR 12418)
Recognize Hashable as a real protocol (Nikita Sobolev, PR 11802)
Remove the * for inferred types from reveal_type output (Stanislav K, PR 12459)
Unify a codepath in typevarlike semanal (Jared Hance, PR 12480)
Recognise both attrs and attr package names (Spencer Brown, PR 12469)
Fix Callable attributes in frozen dataclasses (Jordan Speicher, PR 12383)
Improve checking of slots (Jukka Lehtosalo, PR 12531)
Avoid conflicts between type variables defined in different classes (Jukka Lehtosalo, PR 12590)
Fix slots and deletable in incremental mode (Jukka Lehtosalo, PR 12645)
Fix issue with ParamSpec serialization (Jukka Lehtosalo, PR 12654)
Fix types of inherited attributes in generic dataclasses (Jukka Lehtosalo, PR 12656)
Add stringent-err-msg patch to make mypy work with more stringent error messages in Python
= 3.10.3 (gh#python/mypy#12451).
Update to version 0.942:
Fixes to Regressions:
Let overload item have a more general return type than the implementation (Jukka Lehtosalo, PR 12435)
Fix inheritance false positives with dataclasses/attrs (Jukka Lehtosalo, PR 12411)
Support overriding dunder attributes in Enum subclass (Petter Friberg, PR 12138)
Fix small conditional overload regression (Marc Mueller, PR 12336)
Other Fixes:
Fix issues related to the order of processing in the builtins import cycle (Jukka Lehtosalo, PR 12431)
Fix crash in match statement if class name is undefined (Jukka Lehtosalo, PR 12417)
Allow non-final match_args and overriding (Jukka Lehtosalo, PR 12415)
Update to version 0.941:
No changelog available.
Update to version 0.940:
Match Statement Mypy now has experimental support for type checking match statements introduced in Python 3.10.
Python 2 End-of-Life Schedule After this release, Python 2 support is in feature freeze. Mypy won’t add new features or fixes specific to type checking Python 2 code, expect for fixes of significant regressions. Mypy will drop Python 2 support in the second half of 2022. Important note: Since typeshed is in the process of removing Python 2 specific stubs, you should pin all installed typeshed stub packages for third-party libraries to a version from Feb 2022 or earlier if you want to type check Python 2 code.
Miscellaneous New Features
Add support for conditionally defined overloads (Marc Mueller, PR 10712)
Give 'as' variables in with statements separate scopes when it is safe to do so (Jukka Lehtosalo, PR 12254)
Add an optional error code ignore-without-code to require ignore comments to have error codes (Peter Law, PR 11633)
Add support for typing.Never and typing_extensions.Never as alternative spellings of NoReturn (Jelle Zijlstra, PR 12153)
Add support for typing.reveal_type (Jelle Zijlstra, PR 12117)
Support universal2 macOS wheels (97littleleaf11, PR 10651)
Add match_args support to attr.s() (Nikita Sobolev, PR 12111)
Enum Improvements
Check Enum definition for invalid base classes (Nikita Sobolev, PR 12026)
Understand the self-destructing nature of Enum.ignore (Kenny Stauffer, PR 12128)
Add StrEnum support for Python 3.11 (Nikita Sobolev, PR 12035)
Make enum values final (joey-laminar, PR 11962)
Improve final detection for Enum (Nikita Sobolev, PR 11984)
Fix Enum final properties and writable special members (Nikita Sobolev, PR 11945)
Enum now accepts String literals and final values as 2nd argument (Vincent Perez, PR 8664)
Fix false positive about member name reuse in enum (Max Rossmannek, PR 11972)
Fix enum inheritance regression (Nikita Sobolev, PR 12260)
Mypyc Fixes and Improvements
Use Py_TYPE and Py_IsNone (97littleleaf11, PR 12233)
Implement additional internal consistency checks (Jared Hance, PR 12191)
Raise AttributeError also for non-refcounted types (Jukka Lehtosalo, PR 11940)
Fix invalid unlikely() in certain rare branches (Jukka Lehtosalo, PR 11939)
Skip no-op super calls to object.init() (Jukka Lehtosalo, PR 11938)
Use latest pythoncapi_compat (97littleleaf11, PR 12188)
Add helpful message to assert (Joshua Cannon, PR 12119)
Documentation Updates
Add documentations about Enum types (Nikita Sobolev, PR 11805)
Update Enum documentation (Nikita Sobolev, PR 12238)
Improve documentation of allow_redefinition (KotlinIsland, PR 11951)
Fix intelligent indexing example (Chris Keefe, PR 11973)
Explain generic Protocol[T1, T2, ...] shorthand (Matt Bogosian, PR 12047)
Clarify that stub-only packages need to be installed (Gustav Gränsbo, PR 9958)
Small documentation improvements for conditional overloads (Marc Mueller, PR 12283)
Improved Error Messages
Improve the 'Argument must be a mapping' error message (Purna Chandra Mansingh, PR 12222)
Coalesce Literals when printing unions (Marti Raudsepp, PR 12205)
Suggest typing.Callable when using callable as type (Tuomas Siipola, PR 12204)
Suggest typing.Any when using any as type (Tuomas Siipola, PR 12185)
Add note about wrong error code in type: ignore (Jukka Lehtosalo, PR 12067)
Add no-overload-impl error code (Brian Phillips, PR 11944)
Display ellipsis when formatting variadic tuple[T, ...] (Marti Raudsepp, PR 11857)
Deduplicate error codes for ignore-without-code (Marc Mueller, PR 12194)
Tweak ignore-without-code error message (Marc Mueller, PR 12216)
Mention common resolutions for build errors (Shantanu, PR 12154)
Stubtest Improvements
Ignore more dunder positional-only errors (Shantanu, PR 12294)
Fix wrong assumption about relative path (Stanislav Levin, PR 12282)
Catch more getattr errors (Shantanu, PR 12219)
Error if module level dunder is missing, housekeeping (Shantanu, PR 12217)
Ignore main module (Shantanu, PR 12218)
Error if a dunder method is missing from a stub (Alex Waygood, PR 12203)
Error if a function is async at runtime but not in the stub (and vice versa) (Alex Waygood, PR 12212)
Do not error if a stub is async, but runtime is not (Alex Waygood, PR 12234)
Error if a class should be decorated with @final (Akuli, PR 12091)
Use VERSIONS for submodules (Shantanu, PR 12083)
Treat dicts as a subtype of typeddict (Shantanu, PR 12040)
Ignore more exceptions in stubtest (Jelle Zijlstra, PR 11946)
Other Notable Fixes and Improvements
Fix non-default keyword-only argument positioning in stubgen (Štěpán Horáček, PR 12303)
Remove orjson stubs from default list (Shantanu, PR 12264)
Use truediv for Python 2 with future import (Nikita Sobolev, PR 11787)
Fix Python 2 compatibility issue (Shantanu, PR 12244)
Use type variable bound to infer constraints (Jukka Lehtosalo, PR 12230)
Handle raise Exception(), None on Python 2.7 (Nikita Sobolev, PR 11786)
Fix inference of protocol against overloaded function (Jukka Lehtosalo, PR 12227)
Fix an issubclass failure for protocols with overloaded methods (Bas van Beek, PR 9904)
Fix crashes in class scoped imports (PR 12199, PR 12023) (Shantanu)
Fix use of TypeAlias from aliased imports (Shantanu, PR 12180)
Delete open plugin (Shantanu, PR 9275)
Read pyproject.toml with correct encoding on Windows (Dominic Davis-Foster, PR 12105)
Fix issue with implicit type aliases in import cycles (but only for stubs) (Alex Waygood, PR 11915)
Forbid extra ParamSpec arguments (Nikita Sobolev, PR 12024)
Fix crash involving explicit any flag and Required (Mehdi Drissi, PR 12039)
Fix join of Any against a union type (Jukka Lehtosalo, PR 12068)
Simplify unions when erasing last known values (Jukka Lehtosalo, PR 12064)
Fix crash with yield in comprehension (Alexandre Bouayad, PR 12048)
Fix handling of NoReturn in union return types (Jannic Warken, PR 11996)
Fix init in dataclasses inheriting from Any (joey-laminar, PR 11966)
Narrow NamedTuple to bool correctly when bool is defined (Nikita Sobolev, PR 11822)
Improve type of attrs_attrs in attrs classes (Tin Tvrtković, PR 11794)
Install dependencies needed for reports via pip install mypy[reports] (James Braza, PR 11777)
Consider import * to be an explicit re-export (Shantanu, PR 11867)
Fix --no-implicit-reexport inconsistency (Shantanu, PR 11707)
Fix crash if '_' is in builtins (StefanM-TT, PR 11811)
Fixes crash on subclassing Annotated without args (Nikita Sobolev, PR 11814)
Typeshed Updates
Typeshed is now modular and distributed as separate PyPI packages for everything except the standard library stubs. Please see git log for full list of typeshed changes.
Skip teststubtest because we use a pytest-xdist version which is not allowed by upstream -- gh#python/mypy#11019
Update to version 0.931:
Fixes to Regressions
Fix mypyc binary wheel (Michael R. Crusoe, PR 11862)
Revert to treating multi-line strings as a single value for exclude in TOML files (Matt Bogosian, PR 11828)
Revert to treating exclude in .ini as a single value (Matt Bogosian, PR 11881)
Fix slots regression (Nikita Sobolev, PR 11824)
Fix regression with module and similar non-final Enum attributes (Nikita Sobolev, PR 11823)
Fix regression when a contextmanager yields a generic function (Anthony Sottile, PR 11870)
Fix reduce regression (Shantanu, PR 11866)
Fix NoReturn type aliases (Nikita Sobolev, PR 11912)
Fix regression in None handling with --no-strict-optional (Nikita Sobolev, PR 11717)
Fix crash related to generics (Nikita Sobolev, PR 11924)
Restore removed builtin_type() plugin API method (Jukka Lehtosalo, PR 11932)
Other Fixes
Always allow the use of type[T] in stubs (Nikita Sobolev, PR 11863)
Fix PEP 585 type aliases in stubs (Shantanu, PR 11918)
Fix bug with literal types in stubtest (Nikita Sobolev, PR 11931)
Need typed_ast for all flavors in testing
Skip failing tests on 32-bit: gh#python/mypy#11148
add missing g++ compiler for tests
add python-psutil as optional dependency.
Update requirements
Reenable testsuite by including the typed_ast stubs manually
Update to version 0.930:
New Feature: Explicit Type Aliases (PEP 613)
You can now explicitly mark an assignment as a type alias, by using typing.TypeAlias
For more context, see the docs or PEP 613.
New Feature: NotRequired in TypedDicts
You can now define individual TypedDict items as non-required by using typing_extensions.NotRequired. Previously this could only be configured at TypedDict level (by using total=).
You can also use typing_extensions.Required to mark an item as required in a non-total TypedDict.
New Feature: ParamSpec (Experimental)
Mypy now partially support ParamSpec, which was introduced in Python 3.10. This makes it possible to define type variables that range over the parameter specification of a callable type. In particular, it allows giving precise types for some decorators that change the return type of the decorated function.
Miscellaneous New Features
Define a GitHub Action that makes it easier to run mypy in GitHub CI workflows (Elvis Pranskevichus, PR 11320)
Allow mypy to run self check on PyPy 3.8 beta (Ethan Smith, PR 11350)
Check that enum values are unique (Nikita Sobolev, PR 11267)
Make enum classess with values implicitly final (Nikita Sobolev, PR 11247)
Make enum members implicitly final (Nikita Sobolev, PR 10852)
Allow NamedTuple to be used as a type that accepts all named tuples, as an experimental extension (Nikita Sobolev, PR 11162)
Allow booleans to be narrowed to literal types (Ethan Leba, PR 10389)
Add slots=True support for @dataclass (Nikita Sobolev, PR 11483)
Add slots=True support for @attr.s (Nikita Sobolev, PR 11489)
Support the typing_extensions.OrderedDict alias (Nikita Sobolev, PR 11533)
Usability and Documentation Improvements
Add better NamedTuple error messages (Nikita Sobolev, PR 11127)
Show all overloads in error message (Akuli, PR 9177)
Fix error message for dataclasses.field with positional argument (Hiroshi Ogawa, PR 11180)
Fix error message for f-string and str-bytes-safe (Nikita Sobolev, PR 11139)
Add documentation for type: ignore (Tushar Sadhwani, PR 11358)
Support --exclude more than once on command line (Nipunn Koorapati, PR 11329)
Use list[int] instead of List[int] in documentation (PR 11377, PR 11450) (Nick Crews)
Remove builtins. from error messages (97littleleaf11, PR 11522)
Document explicit type aliases (Nikita Sobolev, PR 11800)
Improve documentation of annotating generator functions (Alex Waygood, PR 11623)
Improve error message for nested TypedDict (97littleleaf11, PR 11658)
Exit gracefully on KeyboardInterrupt (Marc Mueller, PR 10725)
Optimizations: This release includes some optimizations that make mypy a bit faster (in addition to mypyc performance improvements discussed below):
Enable --fast-exit by default to speed up mypy (Jukka Lehtosalo, PR 11541)
Only read the stdlib versions dictionary once per run (Jukka Lehtosalo, PR 11542)
Optimize commonly used function (Jukka Lehtosalo, PR 11543)
Minor optimization/cleanup (Jukka Lehtosalo, PR 11544)
Reduce the number of executed local imports (Jukka Lehtosalo, PR 11545)
Mypyc Fixes and Improvements
Add missing type coercions (Jared Hance, PR 11176)
Support --allow-redefinition (Jared Hance, PR 11175)
Constant fold integer operations and string concatenation (Jukka Lehtosalo, PR 11194)
Use optimized implementation for builtins.sum (Sara Sinback and 97littleleaf11, PR 10268)
Move mypyc to console_scripts to fix running on Windows 10 (谭九鼎, PR 11494)
Make min(x, y) faster(Chetan Khanna and 97littleleaf11, PR 10265)
Make max(x, y) faster (97littleleaf11, PR 11530)
Speed up reference counting operations by inlining them in commonly executed blocks (Jukka Lehtosalo, PR 11540)
Add support for attrs classes (Chad Dombrova, PR 11328)
Port mypyc to Python 3.11 (Victor Stinner, PR 11652)
Reduce the amount of debug information included in compiled extension modules (Nehal J Wani, PR 11526)
Other Notable Fixes and Improvements
Fix semantic analysis of assignment expressions (Shantanu, PR 11153)
Fixes mypy crash on protocol with contravariant variable (Nikita Sobolev, PR 11135)
Warn about unused ignores when not all specified error codes are used (Hiroshi Ogawa, PR 11178)
Improve type narrowing for walrus operator in conditional statements (Shantanu, PR 11202)
Fix literal type compatibility checking special case (Nikita Sobolev, PR 11236)
Rename API method builtin_type to named_type (97littleleaf11, PR 11224)
Fix narrowing information not propagated in assignment and boolean expressions (Ran Benita, PR 11207)
Fix narrowing of a nested union of TypedDicts (Ran Benita, PR 11204)
Fix case mismatching modules during namespace package search (Nipunn Koorapati, PR 11261)
Disallow invalid identifiers from getting implicit bazel init.py (Nipunn Koorapati, PR 11268)
Don’t type check lambdas nested in unchecked functions (Nikita Sobolev, PR 11213)
Update None.bool to return Literal[False] (Nikita Sobolev, PR 11290)
Relax type checking of % formatting when the right operand is an iterable (97littleleaf11, PR 11319)
Fix crash with namespace packages when generating html reports (Nikita Sobolev, PR 11338)
Allow slice syntax in Annotated types (Zac Hatfield-Dodds, PR 11345)
Show warning if self / cls argument is missing (Nikita Sobolev, PR 11317)
Improve subtype checking of TypeGuard types (Nikita Sobolev, PR 11314)
Fix type narrowing for overlaping runtime types (Nikita Sobolev, PR 11273)
Do not use TypeGuard context for lambda (Nikita Sobolev, PR 11417)
Check reachability in module bodies (Nikita Sobolev, PR 11361)
Check that new in a metaclass returns a subtype of type (Nikita Sobolev, PR 11420)
Improve support of contextlib.asynccontextmanager (Barnaby Shearer, PR 11352)
Discard deprecated builtin_type (97littleleaf11, PR 11343)
Don't look in user site packages when using a virtual env (Dimitri Merejkowsky, PR 11444)
Update stubgen to preserve string literals in annotations (Imad Eddine Rezgui, PR 11292)
Fix issue with exporting names in the presence of getattr (Shantanu, PR 11411)
Reject duplicate bases when defining TypedDict (97littleleaf11, PR 11485)
Fix type inference for index expression with a bounded TypeVar (Ilya Labun, PR 11434)
Fix get_dynamic_class_hook in some scenarios (Jade Lin, PR 10904)
Check print >> properly (Nikita Sobolev, PR 11576)
Correctly handle cls in protocol classmethod (Ilia Novoselov, PR 11119)
Use current Python version, rather than hardcoding 3.6, in stubgen (Shantanu, PR 10907)
Don't use ModuleType.getattr if we know module symbols (Jukka Lehtosalo, PR 11597)
Fix strict equality when using the latest typeshed (Jukka Lehtosalo, PR 11599)
Make sure ClassVar does not contain type variables (Nikita Sobolev, PR 11585)
Allow overriding attributes with methods (Nikita Sobolev, PR 11561)
Don’t generate an error for PEP 593 Annotated with a string literal second argument (Seth Yastrov, PR 10777)
Install types to the correct environment (Konstantin Weddige, PR 11457)
Support decorators in additional contexts (Nikita Sobolev, PR 11150)
Fix crash involving unreachable binary operations (Shantanu, PR 11680)
Fix None assignments with mypy daemon cache (Christian Bundy, PR 11574)
Handle OSError when accessing the mtime of a mypy cache file (Zac Hatfield-Dodds, PR 11718)
Special case some special Enum properties to be non-final (Nikita Sobolev, PR 11713)
Fix crash involving undefined cyclic import * (Shantanu, PR 11681)
Remove incorrect assumption about file system case sensitivity (Shantanu, PR 11708)
Fix compatibility of bool and Literal[True, False] (Nikita Sobolev, PR 11709)
Allow subclassing enums with annotations and no values (Nikita Sobolev, PR 11579)
Update to version 0.921:
Bug Fixes Included in This Release:
Fix regression in PathLike (Shantanu, PR 11785)
Allow calling a function with name _ (Jukka Lehtosalo, PR 11810)
Fix signature in curses and corresponding dmypy bug (Shantanu, PR 11785)
Update to version 0.920:
Making a Variable Optional in an Else Block
Now mypy alllows more general conditionally defined variables with optional types. Previously mypy allowed this only if a None assignment happened first. Now this is also supported. Implemented by Michael J. Sullivan in PR 11002.
Type Checking slots Assignment
For classes that define the special slots attribute, mypy will now report an error on assigning to attributes that are not found in the slots definitions (this matches runtime semantics).
Note that this feature does not work for dynamically computed slots. Implemented by Nikita Sobolev in PR 10864.
Partial Python 3.10 Support
We now ship binary wheels for Python 3.10 and mypy supports the new Python 3.10 union type syntax.
Some new features, including the match statement, ParamSpec and TypeAlias are not supported yet.
Python 3.5 Is No Longer Supported
Python 3.5 reached its end of life more than a year ago. Its support was deprecated in mypy 0.910 and it is no longer supported in mypy 0.920.
Efficient String and Bytes Formatting in Mypyc
Most string and bytes formatting methods now use fast C-level logic when compiled with mypyc. This includes % formatting, the format() method, and f-strings. This was implemented by 97littleleaf11 as part of a Google Summer of Code project.
Work Towards singledispatch Support
The signature of the initial function variant handles the generic case and describes the external signature of the singledispatch function.
This was implemented Pranav Rajpal as part of a Google Summer of Code project.
Stubgen Improvements
Add support for yield statements in stubgen (Sebastian Rittau, PR 10745)
Handle commas in namedtuple field definition in stubgen (Vanessa Ung, PR 10828)
Other Notable Fixes and Improvements
Allow plugin signature hooks to return FunctionLike (to support overloads) (pranavrajpal, PR 10717)
Narrow type with type variable when the upper bound is a subtype of current type (ethframe, PR 10658)
Make --cache-fine-grained imply --local-partial-types (Michael J. Sullivan, PR 10737)
Support new union syntax in stubs independent of target Python version and in runtime context (PR 10770, PR 10771) (Jukka Lehtosalo)
Support new union type syntax with isinstance() (Jukka Lehtosalo, PR 10775)
Better message if method is incompatible with base class (Anmol Takiar, PR 10572)
Allow redefinition of underscore functions (named '_') (pranavrajpal, PR 10811)
Properly track positional-only arguments for unannotated functions (Michael J. Sullivan, PR 10802)
Fixes to type checking %c string and bytes interpolation (97littleleaf11, PR 10869)
Use better error message for %c interpolation (97littleleaf11, PR 10875)
Skip overlapping overload checks in ignored files (Shantanu, PR 10922)
Fix ad hoc instance intersection logic (Christoph Tyralla, PR 9909)
Support tuple multiplication with literal integers (hatal175, PR 10361)
Fix recursion issue with nested instances and unions (Peilonrayz, PR 9663)
Fix caching behavior of PEP561-installed namespace packages (Michael J. Sullivan, PR 10937)
Add dataclass_fields and attrs_attrs to dataclasses (Timofey Kukushkin, PR 8578)
Fix argument checking on empty dict with double stars (Momoko Hattori, PR 9629)
Fix some type-guard-related crashes (Shantanu, PR 11061)
Reject raise Err if Err can’t be called without arguments (Nikita Sobolev, PR 11125)
Fix TypedDict crash with function definition (Nikita Sobolev, PR 11126)
Report attribute access errors for type variable bound to a union (Christoph Tyralla, PR 11140)
Fix crash on dataclasses.field(unpack) (Nikita Sobolev, PR 11137)
Fix crash related to ParamSpec in mypy daemon (Jukka Lehtosalo, PR 11567)
Properly type check *CustomType and CustomType function arguments (Nikita Sobolev, PR 11151)
Fix crash with overload and callable object decorators (Shantanu, PR 11630)
Fix crash involving explicit reexport, import cycle, and a wildcard (Shantanu, PR 11632)
Mypyc Features, Fixes, and Performace Improvements
Fix class-based named tuples (Jukka Lehtosalo, PR 10746)
Add a special case for len() of a string value (97littleleaf11, PR 10710)
Reject instance attribute access through class object (Jukka Lehtosalo, PR 10798)
Speed up the construction of list objects (97littleleaf11, PR 10807)
Add bytes primitive type (97littleleaf11, PR 10881)
Add bytearray support (97littleleaf11, PR 10891)
Optimize construction via list() and dict() (Richard Si, PR 10918)
Speed up bytes join() method (jhance, PR 10929)
Speed up len(bytes) (97littleleaf11, PR 10936)
Speed up bytes indexing and slicing (PR 10966, PR 10950) (97littleleaf11)
Speed up bytes.decode() and str.encode() (PR 10974, PR 10951) (97littleleaf11)
Speed up bytes equality checks (jhance, PR 10928)
Documentation Improvements
Add docs about exhaustive literal and enum checks (Nikita Sobolev, PR 10860)
Add ‘or’ regular expression example to --exclude documentation (Niklas Gustafsson, PR 10903)
Document per-module follow_imports more explicitly (Shantanu, PR 10845)
Add docs for the TypeGuard type (Nikita Sobolev, PR 10758)
Update type narrowing section in common issues (Nikita Sobolev, PR 11014)
Document how --no-implicit-reexport handles from X import Y as Z (Max Marrone, PR 11083)
Document strict config file option (Anders Kaseorg, PR 11132)
Add better type narrowing documentation (Nikita Sobolev, PR 11088)
Add documentation about := and type guards (Nikita Sobolev, PR 11161)
disable the tests to fix the build temporarily
Remove obsolete build (prep) instructions: typeshed has been removed from the archive.
update to version 0.910:
Python 3.5 Deprecation
Running mypy on Python 3.5 is now deprecated. A future mypy release will drop Python 3.5 support. We haven’t decided when this will happen, but this might happen in the next feature release after 0.910.
Stubgen Improvements
Don't annotate unknown argument and return types (Sebastian Rittau, PR 10626)
Never generate a variable initializer (Sebastian Rittau, PR 10623)
Use NamedTuple class syntax (Sebastian Rittau, PR 10625)
Use T | None (PEP 604) instead of Optional[T] (Sebastian Rittau, PR 10624)
Other Fixes and Improvements
Fix some crashes from faulty casts (Shantanu, PR 10560)
Update docs for deferral of PEP 563 to 3.11 (Smart, PR 10655)
Don't suggest to install stubs for packages with py.typed files (Sebastian Rittau, PR 10652)
Correct the type package name of pyopenssl ( Sebastian Rittau, PR 10656)
Improve error reporting when --install-types has no cache (PR 10667)
Suggest types-setuptools for pkg_resources (Sebastian Rittau, PR 10681)
Fix crash with assignment to variable guarded with TypeGuard (PR 10683)
Don't ask to install a stub package if stubs are installed (PR 10670)
Fix crash when inferring multiple assignment with overloaded function (PR 10689)
update to version 0.900:
Using cached types_requests-0.1.8-py2.py3-none-any.whl (22 kB)
For more information, read the blog post about this change and why we did this. There is more detail in the docs.
Python 2 Support is Opt-in (Breaking Change)
If you want to type check Python 2 code, you now have to install mypy[python2] using pip (on Python 3.8 and later):
python3 -m pip install -U mypy[python2]
This will install the additional typed-ast pip dependency that is required for Python 2 support. Type checking Python 2 code is still fully supported by mypy.
TypeGuard
Mypy now supports defining user-defined functions that perform type narrowing, similar to isinstance. Read PEP 647 for the details.
Since TypeGuard will be included in Python 3.10, which hasn’t been released yet, you will have to import it from a recent version of typing_extensions for now.
Support for pyproject.toml
Binary Wheels for Apple Silicon
We now include binary wheels for Apple Silicon. This can make mypy runs over 4x faster on supported hardware. This requires a native Apple Silicon build of Python 3.9 to work.
Type Narrowing with type(x)
Hosted Documentation for Mypyc
We now have hosted user documentation for mypyc, the compiler we use to speed up mypy. Mypyc is still experimental, but we are looking for early adopters.
New Mypyc Features
Support setitem, delitem, len and contains in native classes (PR 10451)
Basic support for class-based named tuples (PR 10252)
Support class-based TypedDict definitions (PR 10226)
Mypyc Performance Improvements
Pre-allocate space in list comprehensions (97littleleaf11, PR 10295)
Faster dict true test (97littleleaf11, PR 10333)
Implement dict.setdefault primitive (97littleleaf11, PR 10286)
Optimize truth value testing for strings (pranavrajpal, PR 10269)
Faster set creation with generator expression (97littleleaf11, PR 10261)
Add a primitive for loading the bool type (97littleleaf11, PR 10257)
Faster creation of a tuple from list/tuple (97littleleaf11, PR 10217)
Use vectorcalls to speed up calls to Python objects (PR 10153)
Add primitive for str.replace (97littleleaf11, PR 10088)
Add primitives for list.index() and list.remove() (PR 9961)
Intern string literals (PR 9960)
Add fast path for simple calls in wrapper functions (PR 9948)
Use METH_FASTCALL with call (PR 9946)
Use faster METH_FASTCALL wrapper functions on Python 3.7+ (PR 9894)
Add primitives for list.sort() and list.reverse() (PR 9897)
Recognize six.moves.xrange as an alias of range (PR 9896)
Some tagged integer micro-optimizations (PR 9801)
Add primitive for dict.copy (vsakkas, PR 9721)
Other Mypyc Fixes and Improvements
Fix reference counting in dict.setdefault (97littleleaf11, PR 10334)
Don't coerce types checked with isinstance (Sara Sinback, PR 10245)
Simplify argument parsing in legacy wrapper functions (PR 10234)
Simplify generated C by omitting gotos to the next block (PR 10230)
Box initializers of final variables when required (PR 10229)
Fix compilation of unreachable expressions (PR 10228)
Foundational support for tuple literals (and None and bool literals, PR 10148)
Use tables to construct and store literals (PR 10147)
Fix overflow error handling in list.insert (PR 9895)
Always add implicit None return type to init method (Thomas Johnson, PR 9866)
Small documentation updates (Thomas Johnson, PR 10184)
Updates to introduction in the documentation (PR 10179)
Various small doc updates (PR 10177)
Make mypyc docs use the same theme as mypy docs (PR 10176)
Fix mypyc failing to compile on CPython 3.10.0a6 (Adrian Freund, PR 10202)
Avoid declaring variable in C for loop initialization (Thomas Johnson, PR 10091)
Stubgen Improvements
Properly convert overloaded functions (Chad Dombrova, PR 9613)
Fix invoking mro() (Gen Xu, PR 10138)
Render a bit better stubs (Sergei Izmailov, PR 9903)
Fixed Any and Dict missing from stubgen imports list (Ashley Whetter, PR 9900)
Fix type error (Shantanu, PR 10523)
Fixes and typos (Sergei Izmailov, PR 9877)
Stubtest Improvements
Improve build error messages (Shantanu, PR 10365)
Check overloads are functions, don't early return (Shantanu, PR 10258)
Fix signature construction for overload + implicit classmethod (Shantanu, PR 9921)
Documentation Updates
Add security documentation for --install-types (Adam Weeden, PR 10555)
Improve documentation of extending mypy (Nikita Sobolev, PR 10222)
Update documentation links (Shantanu, PR 10159)
Fix incomplete error codes documentation (Iulian Onofrei, PR 9799)
Document explicit_package_bases config file option (Sam Bull, PR 10020)
Clarify that mypy_path is relative to current working directory (Gustav Gränsbo, PR 9959)
Emphasise that users probably want --follow-imports=normal (Shantanu, PR 9955)
Other Notable Fixes and Improvements
Make ignore_missing_imports work for third-party libraries which previously had bundled stubs (PR 10582)
Restrict the number of errors shown when there are missing stubs (PR 10579)
Mention fullname of PlaceholderNode in assertion to simplify debugging (Adam Weeden, PR 10565)
Use double quotes in error messages instead of single quotes (Dixith)
Use double quotes in various error messages (Prasanth Chettri, PR 10053)
Fix crash on TypeGuard plus 'and' (Jelle Zijlstra, PR 10496)
Fix spurious name undefined error in class body within import cycle (PR 10498)
Remove assertion from TypeGuard serialization (Jelle Zijlstra, PR 10486)
Do not allow to use Final and ClassVar at same time (Yurii Karabas, PR 10478)
Allow running mypy if Python 2 typeshed stubs aren't installed (PR 10494)
Allow inline comments in VERSIONS (Sebastian Rittau, PR 10472)
Infer unreachability for await no_return() (Shantanu, PR 10458)
Fix unresolved reference + tuples crashing (EXPLOSION, PR 10401)
Fix crash with type alias inside init in incremental mode (PR 10432)
Fix crash with nested NamedTuple in incremental mode (PR 10431)
Fix crash related to module-level getattr in incremental mode (PR 10430)
Add support for functools.cached_property (Marc Mueller, PR 10408)
Don't narrow Type[X] with a metaclass (PR 10424)
Remove note: setup.cfg does need [mypy] section (James Cooke, PR 10364)
Fix inference of IntEnum value attribute type (Python 2, PR 10417)
Don't report error when using total_ordering in Python 2 mode (PR 10416)
Fix narrowing down TypedDict unions with enum literal types (PR 10415)
Fix inference of IntEnum value attribute type (PR 10412)
Use typeddict-item error code for more errors (PR 10410)
Fix a bunch of tests broken by python 3.10 (Adrian Freund, PR 10404)
Support maximum version marker of stdlib typeshed modules (Sebastian Rittau, PR 10402)
First look into @python2 subdirectory of search path items in Python 2 mode (PR 10392)
Make enum type compatible with union of all enum item literals (PR 10388)
Fix an issue with union types containing literals (Adrian Freund, PR 10373)
Fix re-exporting all in a stub file (PR 10382)
Extend the dataclass plugin to deal with callable properties (Aaron Ecay, PR 10292)
Make TypedDict incompatible type message more understandable (Akshay K, PR 10326)
Make --explicit-package-bases invertible (Gustav Gränsbo, PR 9969)
Fix crash for protocol classes and Hashable false negative (Christoph Tyralla, PR 10308)
Fix strict equality false positive when strict optional disabled (Kamil Turek, PR 10174)
Issue an error when overriding typeguard with non-typeguard in subclass (Kamil Turek, PR 10300)
Support functools.total_ordering (Ashley Whetter, PR 7831)
Support reversed operand order when comparing against sys.version_info (Kamil Turek, PR 10288)
Only import distutils if it is needed (Adrian Freund, PR 10203)
Recombine complete union of enum literals into original type (PR 9097, PR 9063) (Ethan Leba)
Support union type arguments when showing protocol member conflicts (97littleleaf11, PR 10154)
Fix recently added enum value type prediction (Paddy, PR 10057)
Support subclassing of NodeVisitor and TraverserVisitor in plugins (Nikita Sobolev, PR 10125)
Speed up processing of new files in daemon by caching ASTs (PR 10128)
Add narrowing and closures to common issues (Shantanu, PR 9956)
Add Python script to build wheels using cibuildwheel (PR 10096)
Don't try to follow imports to encodings.* (PR 10094)
Speed up case sensitive is-file check in file system cache (PR 10093)
Use fast path for finding modules in mypy daemon (PR 10095)
Fix following stub imports in daemon when using --follow-imports=skip (PR 10092)
Use sys.executable instead of python3 for --install-types (Anthony Sottile, PR 10086)
Add build-requirements.txt to MANIFEST.in (PR 10071)
Add separate requirements file for mypy self-compile (PR 10069)
Expand user home for cache_dir (Marco Zatta, PR 10051)
Fix daemon crash when deleting packages (PR 10036)
Keep track of fine-grained dependencies for modules in typeshed (PR 10034)
Fix import following issue in daemon (PR 10032)
Fix mypy daemon crash when following from a new module (PR 10030)
Detect invalid value for --custom-typeshed-dir (PR 9985)
Fix pip install for new typeshed (Ivan Levkivskyi, PR 9976)
Report incompatible assignments for descriptors with overloaded set methods (Christoph Tyralla, PR 9893)
Fix TypedDict.get('missing_key') with string literal (Adrian Freund, PR 9906)
update to version0.812L
Improved Source File Finding
Mypy 0.800 changed how mypy finds modules if you run mypy as mypy directory/ or mypy -p package. Mypy started looking for source files in directories without a init.py file. This is often the expected behavior, and it avoids excluding some files that should be type checked.
However, this caused issues for some users, such as when using mypy . to type check all files under the current directory. Mypy could now try to type check files inside nested virtual environments and node_modules directories, which is usually not desirable. This could result in mypy needlessly complaining about duplicate module names, in particular.
Now mypy will skip directories named site-packages or node_modules, and any directory beginning with a dot (such as .git) when recursively looking for files to check.
This doesn’t affect how mypy resolves imports — it only affects when mypy is given a directory or a package to type check. You can override the exclusions by explicitly passing the files on the command line.
Excluding Paths
Mypy now supports the --exclude regex command line option to exclude paths matching a regular expression when searching for files to type check. For example, mypy --exclude '/setup.py$' skips all setup.py files. This lets you exclude additional paths that mypy started finding after mypy 0.800 changed module finding behavior, as discussed above.
You can also specify this in the config file (exclude=regex). The option expects forward slashes as directory separators on all platforms, including Windows, for consistency.
Update to version 0.812
Improved Source File Finding
Mypy 0.800 changed how mypy finds modules if you run mypy as mypy directory/ or mypy -p package. Mypy started looking for source files in directories without a init.py file. This is often the expected behavior, and it avoids excluding some files that should be type checked. However, this caused issues for some users, such as when using mypy . to type check all files under the current directory. Mypy could now try to type check files inside nested virtual environments and node_modules directories, which is usually not desirable. This could result in mypy needlessly complaining about duplicate module names, in particular. Now mypy will skip directories named site-packages or node_modules, and any directory beginning with a dot (such as .git) when recursively looking for files to check. This doesn’t affect how mypy resolves imports — it only affects when mypy is given a directory or a package to type check. You can override the exclusions by explicitly passing the files on the command line.
Excluding Paths
Mypy now supports the --exclude regex command line option to exclude paths matching a regular expression when searching for files to type check. For example, mypy --exclude '/setup.py$' skips all setup.py files. This lets you exclude additional paths that mypy started finding after mypy 0.800 changed module finding behavior, as discussed above.
You can also specify this in the config file (exclude=regex). The option expects forward slashes as directory separators on all platforms, including Windows, for consistency.
Provide the toolname only for the primary python3 flavor in order to avoid choice conflicts.
python3-mypy and python3Y-mypy are provided automatically.
Update to version 0.800:
Python 3.9 Support
Typing Usability Improvements (PEP 585 and PEP 604) The necessity to repeatedly import various types and special forms from typing has been a long-term nuisance for users of static type checking and Python. Two new Python features improve this situation and are now supported by mypy: PEP 585 lets you use list[int] instead of List[int] (no need to import List and other generic collections from typing). PEP 604 lets you write X | Y instead of Union[X, Y], and X | None instead of Optional[X] (no need to import Union or Optional from typing). Note: Using list[int] requires Python 3.9 and X | Y requires Python 3.10 (alpha) in order to work at runtime. To use them on older versions of Python, use from future import annotations. This allows them to be used in type annotations, but the older variants (or string literal escaping) may be required in non-annotation contexts, such as in type aliases. See the docs for more details. Here is an example that uses the new features: from future import annotations def fields(s: str | None) -> list[str]: if not s: return [] else: return s.split(',') These were implemented by Allan Daemon in PR 9564 and by Marc Mueller in PR 9647.
Improvements to Finding Modules This release adds several improvements to how mypy finds Python source files to type check. You can now pass paths to files within namespace packages on the command line, and mypy can better infer their module names. As before, use --namespace-packages to enable namespace packages. When you use --explicit-package-bases together with --namespace-packages, mypy assumes that only the current directory and directories explicitly specified in MYPYPATH (or mypy_path in the config file) are valid package roots. This can help with situations where the module name of a file is ambiguous. For example, it may not be clear whether src/pkg/mod.py should be treated as src.pkg.mod or pkg.mod, and you can use this option to disambiguate between the two (more information in the docs). The above improvements were implemented in PR 9742 by Shantanu. Other related improvements (also implemented by Shantanu):
When you run mypy as mypy , look for source files recursively also inside directories without a init.py (PR 9614)
Support namespace packages with -p (PR 9683)
Log encountered source files when running mypy with -v (PR 9672)
Document the new module finding behavior (PR 9923)
Other Notable Improvements and Bug Fixes
Only treat import X as X as a re-export in stubs (Shantanu, PR 9515)
Fix package imports with aliases in stubgen (Chad Dombrova, PR 9534)
Require first argument of namedtuple() to match the variable name (Momoko Hattori, PR 9577)
Add error code for name mismatches in named tuples and TypedDicts to make it easy to disable these error messages (Jukka Lehtosalo, PR 9811)
Document local_partial_types config option (Momoko Hattori, PR 9551)
Improve ambiguous kwargs checking (Erik Soma, PR 9573)
Disable unreachable warnings in boolean operators for type variables with value restrictions (Vincent Barbaresi, PR 9572)
Allow assignment to an empty tuple (Tobin Yehle, PR 5617)
Use absolute path when checking source duplication error (Yuki Igarashi, PR 9059)
Add get_function_signature_hook() to the plugin API (Nikita Sobolev, PR 9102)
Speed up type checking of dictionary, set, and list expressions (Hugues, PR 9477)
Allow non-types as arguments in Annotated (Patrick Arminio, PR 9625)
Add support for next generation attrs API (David Euresti, PR 9396)
Fix case folding of missing keys error message for TypedDicts (Marti Raudsepp, PR 9757)
Fix generic inheritance of init() methods in dataclasses and attrs classes (Nate McMaster, PR 9383, PR 9380)
Add more information to error message on too few arguments (Abhinay Pandey, PR 9796)
Document PEP 585, 563, 604, and related functionality (Shantanu, PR 9763)
Mypyc Improvements We use mypyc to compile mypy into fast C extension modules. This release includes many mypyc improvements. Xuanda Yang finished the migration to use a new, lower-level compiler intermediate representation in his Google Summer of Code project.
New supported Python features:
Support the walrus operator (:=) (Michael J. Sullivan, PR 9624)
Performance improvements:
Add primitives for list sort and list reverse (Jukka Lehtosalo, PR 9897)
Recognize six.moves.xrange again as an alias of range (Jukka Lehtosalo, PR 9896)
Speed up some integer primitives (Jukka Lehtosalo, PR 9801)
Speed up if x for int values (Jukka Lehtosalo, PR 9854)
Implement dict clear primitive (Vasileios Sakkas, PR 9724)
Implement list insert primitive (Vasileios Sakkas, PR 9741)
Implement float abs primitive (Xuanda Yang, PR 9695)
Implement str-to-float primitive (Xuanda Yang, PR 9685)
Specialize some calls to frozenset (Michael J. Sullivan, PR 9623)
Speed up multiple assignment from tuple (Xuanda Yang, PR 9575)
Speed up multiple assignment from sequence (Jukka Lehtosalo, PR 9800)
Optimize startswith and endswith (Tomer Chachamu, PR 9557)
Add primitives for bitwise ops (Jukka Lehtosalo, PR 9529)
Speed up in operations for list/tuple (Johan Dahlin, PR 9004)
Add primitives for list, str and tuple slicing (Jukka Lehtosalo, PR 9283)
Speed up tuple equality checks (Xuanda Yang, PR 9343)
Bug fixes:
Always add implicit None return type to init method (Thomas Johnson, PR 9866)
Fix deallocation of deeply nested data structures (Michael J. Sullivan, PR 9839)
Fix using package imported inside a function (Jukka Lehtosalo, PR 9782)
Fix type of for loop index register in for over range (Jukka Lehtosalo, PR 9634)
Convert to single-spec
Use update-alternatives to handle binaries
Do not expect python3.5 during tests
update to version 0.790:
Enabling and Disabling Error Codes
You can now globally disable and enable the generation of error messages with specific error codes by using --enable-error-code and --disable-error-code command line options (and config file options). This lets you disallow certain checks that don’t provide value or are too noisy, and in the future these can be used to enable optional, stricter checks. For more information, read the documentation.
Bug Fixes
Fix disable_error_code config file option (Aristotelis Mikropoulos, PR 9538)
Fix partial type crash during protocol checking (Shantanu, PR 9495)
Store the type for assignment expression (walrus) targets (Lawrence Chan, PR 9479)
Always type check arguments when using --disallow-untyped-calls (PR 9510)
Make None compatible with Hashable (PR 9371)
Don't infinite loop on self dependencies in --follow-imports=normal (Michael J. Sullivan, PR 9302)
Don't simplify away Any when joining union types (PR 9301)
Check for deleted vars in raise from (Alexandre Viau, PR 9272)
Fix corner case for comparing nested overloads (Nikita Sobolev, PR 9259)
Fix issues with async for and with statements (Guido van Rossum, PR 9268)
Fix internal error on list/dict comprehension with walrus operator in global scope (dhood, PR 9062)
Fix propagation of module-specific options to the parser (Guido van Rossum, PR 9247)
Fix crash when super is called outside a method (Weiss, PR 9173)
Fix untyped decorator overload error on class decorator with call overloads (Ran Benita, PR 9232)
Clean up terminal width handling (Florian Bruhin, PR 9143)
Add keyword arguments for functional Enum API (LiuYuhui, PR 9123)
Validate follow_imports values in mypy.ini (Michael J. Sullivan, PR 9165)
Fix *expr in an assigned expression (LiuYuhui, PR 8827)
Don't consider comparing True and False as a dangerous comparison (PR 9021)
Make reveal_type work with call expressions returning None (Jakub Stasiak, PR 8924)
Error Reporting Improvements
Improve missing module error for subdirectories (Ethan Leba, PR 8927)
Clarify bytes formatting error messages (Shantanu, PR 9243)
Fix misleading follow_imports error message in dmypy (Michael J. Sullivan, PR 9167)
Use [arg-type] error code for additional argument type error messages (PR 9090)
Report some additional serious errors in junit.xml (PR 8950)
Report note about binary operation on the same location as error message (PR 8936)
Documentation Updates
Document disable_error_code config file option (Aristotelis Mikropoulos, PR 9539)
Add cross references to config file values (Oleg Höfling, PR 7859)
Add cross references to additional config values, and missing plugins config value, and document --help option for stubgen (Oleg Höfling, PR 9241)
Remove note that Final is experimental and suggest importing it from typing (Ran Benita, PR 9138)
Discuss unreachable code as a common issue (Chetan Khanna, PR 8899)
Stubgen Improvements
Improve property type detection in extension modules (Antoine Prouvost, PR 8999)
Fix type stubgen crash caused by invalid type annotation (Henry Schreiner, PR 8888)
Import Iterable and Iterator from typing in generated stubs (Ashley Whetter, PR 9088)
Other Improvements
Speed up type checking of unions containing many literal string types (Akuli, PR 9192)
Add scripts to misc/ (in the mypy GitHub repository) for computing and applying diffs of mypy caches to enable incremental cache downloads (Michael J. Sullivan, PR 8906)
Internal Changes
This release includes several improvements to mypyc, the compiler we use to speed up mypy. Most notably, Xuanda Yang has been migrating mypyc to use a new, lower-level intermediate representation in his Google Summer of Code project. This provides a solid foundation for a variety of future mypyc improvements.
Additional mypyc improvements:
Dynamically disallow instantiating traits/interpreted subclasses (Michael J. Sullivan, PR 9248)
Basic support for protocols (PR 8914) Michael J. Sullivan)
Various optimizations (PR 8903, PR 8870) (Michael J. Sullivan and Xuanda Yang, PR 9245)
Make it easier to write mypyc test cases (PR 9094)
Typeshed Updates
Many improvements were made to typeshed — too many to list.
update to version 0.780:
Following Imports in Mypy Daemon
You can now leave out the --follow-imports option when running dmypy, and mypy daemon will follow imports, similar to a non-daemon mypy run. Previously mypy daemon did not support this, and it was necessary to use --follow-imports and explicitly mention all files to check on the command line. (Following imports in mypy daemon is an experimental feature.) See the docs about following import in mypy.
Miscellaneous New Features:
Support environment variable interpolation for junit_xml configuration key (Mattwmaster58, PR 8479)
Add no_site_packages config file setting (davidzwa, PR 8524)
Allow .mypy.ini (with a dot prefix) as an alternative name to mypy.ini (dosisod, PR 8515)
Disallow unpacking of strings in multiple assignment, as this is usually a bug (Abtin, PR 8589)
Allow type aliases in a runtime (non-type) context (PR 8779)
Add narrowing unions with bool literals via identity check (Steve Dignam, PR 8821)
Always allow to cast to Any without warnings (oda, PR 8544)
Suggest solutions for a typo in a key of a TypedDict (Felicián Németh, PR 8483)
Provide more context about why incompatible with supertype is an error (Chetan Khanna, PR 8866)
Other Notable Improvements and Bug Fixes:
Fix handling dependencies to call in mypy daemon (PR 8494)
Various improvements to stubtest (PR 8502, PR 8886) (Shantanu)
Fix invalid type causing named tuple errors reported in wrong files (PR 8549)
Clarify documentation of Liskov substitution principle (PR 8563)
Fix type inference with lambda that returns None (PR 8562)
Fix incremental crash bug caused by NewType in functions (PR 8607)
Fix indexed assignment check when TypedDict is used as upper bound (Xuanda Yang, PR 8621)
Improve error message for bad indexed assignment (pando, PR 8641)
Fix crash when the same file is processed under multiple names (PR 8644)
Fix parser when using Python 3.9 (PR 8716)
Accept dict() as an empty dictionary in a TypedDict context (PR 8749)
Fix incorrect coroutine return type for nested function (Jens Widell, PR 8741)
Reject bytes literal as a TypedDict key (PR 8782)
Allow attrs keyword-only arguments at any position (Markus Schmaus, PR 8803)
Detect duplicate keys in call-based TypedDict definitions (PR 8849)
Look at arguments when generating constraints for an overload (PR 8845)
Fix potential wrong-file error message for unsupported types (PR 8854)
Typeshed Updates
Many small improvements were made to typeshed — too many to list. Browse the typeshed commit log here.
update to version 0.770:
Tagged Unions
Previously, the only way to distinguish between two types in a union was to use an isinstance check. Now, mypy supports distinguishing between two or more types based on the value of some common shared 'tag' field. This feature is most useful when you want to narrow down a union of TypedDicts: since TypedDicts are really just regular dicts at runtime, using isinstance checks won't work. Instead, you can now label or tag each TypedDict with a distinct Literal type and discriminate by checking that tag. Note that you can import Literal from typing_extensions on Python 3.7 and earlier. You can also use this technique to discriminate between unions of objects, tuples, or named tuples, so long as: 1. Every item in your union is tagged with a unique value 2. Mypy understands how to narrow the union of the tag values. For more details and examples, see the documentation on tagged unions.
Type Inference Improvements Type inference is now more powerful. Mypy can infer types in some cases where you previously needed an explicit type annotation. Mypy can infer a built-in collection type from augmented assignment statements. Some dictionary construction idioms are better supported. Mypy is better at inferring defaultdict types.
Multiple Inheritance and isinstance() Checks Previously, mypy assumed a variable cannot have two unrelated types when analyzing isinstance checks. For example, in the following example B is not a subclass of A, so mypy would incorrectly conclude the isinstance check is always false, and that the if-branch is unreachable — even though var could actually be a subtype of both types. This meant that mypy skipped type checking anything inside the if statement, since it (by design) skips analyzing unreachable branches. Now, mypy will instead decide that the narrowed type of x is test.<subclass of 'A' and 'B'>, instead of marking the branch as unreachable. If it’s impossible for two types to be a subtype of one another, mypy will continue to not attempt to infer this 'ad-hoc intersection'.
Other Notable Improvements and Bug Fixes:
Fix some crash bugs involving import * and import cycles (PR 8450)
Fix interaction of descriptor methods with plugins (Jan Verbeek, PR 8365)
Allow strict in config file (Ville Skyttä, PR 8192)
Don’t crash when a module shadows builtin libraries (such as typing or types, PR 8405)
Fix type join between subclasses of unicode and str (PR 8402)
Fix type join of fixed-length tuples with mismatching lengths (Marti Raudsepp, PR 8333)
Fix type join of Sequence (e.g. variadic tuple) and fixed-length tuple (Marti Raudsepp, PR 8335)
Make mypy.api.run_dmypy actually capture the output (PR 8375)
Support determining whether a literal is truthy (Jan Verbeek, PR 8368)
Fix covariant overriding of decorated methods (Xuanda Yang, PR 8350)
Support typing.Annotated in addition to typing_extensions.Annotated (Jakub Stasiak, PR 8371)
Add add_method_to_class function to plugins.common (useful when writing mypy plugins) (Maksim Kurnikov, PR 8245)
Fix module alias as instance attribute (Uwe L. Korn, PR 8259)
Automatically write a file .gitignore file to cache directory, ignoring everything (Ville Skyttä , PR 8193)
Don't make dunder attributes enum members (Xuanda Yang, PR 8302)
Allow redefining TypedDict keys (while still generating an error) (Cohen Karnell, PR 8109)
Fix some crashes in dataclasses (PR 8271)
Use TypedDict union as type context when unambiguous (PattenR, PR 8212)
Fix false positive for subclasses of bytes overriding str (Shantanu, PR 8222)
Fix deeply nested InitVar definitions in dataclasses with init=False (Jacob Beck, PR 8208)
Narrow types for walrus assignment in if statements in some cases (Shantanu, PR 8258)
Narrow types for walrus assignment in if statements in most of the rest of cases (PR 8458)
Fix incorrect error code indexing (Xuanda Yang, PR 8248)
Fix regression in container check logic (Michael Lee, PR 8232)
Make reachability code understand chained comparisons (Michael Lee, PR 8148)
Fix incorrect name lookup for decorated methods (Xuanda Yang, PR 8175)
Fix simplifying unions with type aliases (Xuanda Yang, PR 8146)
Fix crash when overriding init in a dataclass subclass (Jacob Beck, PR 8159)
Fix some daemon crashes involving classes becoming generic (PR 8157)
Documentation and Error Reporting Improvements
Use fully qualified names in error messages for class names resembling builtins(Mukuntha N S, PR 8425)
Improve diagnostics involving missing stubs for a library that is installed in site-packages (Michael Lee, PR 8238)
Add a section to the documentation about incompatible overrides (RAHUL RAJA, PR 8377)
Add variable-sized tuples to the cheat sheet (Marcio Mazza, PR 8364)
Improve documentation of decorators (add decorator factories) (Marti Raudsepp, PR 8336)
Update documentation of variables and aliases (Xuanda Yang, PR 8200)
Report an error if a final class has abstract attributes (Denys Halenok, PR 8332)
Update common issues to include init without arguments (Tan Yuanhong, PR 8303)
Add a new error code for errors about unreachability (Denys Halenok, PR 8312)
Fix error indicator position in code with tabs (dosisod, PR 8307)
Document --local-partial-types (Xuanda Yang, PR 8201)
Update documentation for Literal types (Michael Lee, PR 8152)
Stubtest rewrite stubtest is a tool that compares stub definitions to what it finds at runtime with introspection and reports back inconsistencies. It got a complete rewrite. Some features of the new stubtest are:
Find missing, extraneous or mistyped classes, methods, functions and attributes in the stubs
Check presence, names and kinds of function arguments, accounting for overloads, decorators, *args and kwargs. Checks argument types against their default values, accounting for type vars.
Checks @property, @classmethod, @staticmethod declarations
Check types of module level and class level attributes and enums
Some results of this:
We now run stubtest in typeshed CI (for stdlib)
We’ve fixed about 1900 issues in typeshed definitions
We’ve greatly improved Python 3.8 support in typeshed and it’ll be easier to make the changes needed for future Python versions
We’ve uncovered a handful of issues in Python itself
Typeshed Updates:
Many small improvements were made to typeshed — too many to list. Browse the typeshed commit log here.
Update to 0.770: too many changes to list here, but all information is on https://mypy-lang.blogspot.com/2019/12/mypy-0760-released.html Remove 0003 Pass executable path into main when running install patch it got already broken by upstream in e491b5d4aa anyway.
update to version 0.761
Type Signature Suggestions for Tools
Type Inference Improvements
Fixes to Regressions
Fix regression introduced in 0.750: union (non-)simplification should not affect type inference (PR 8095)
Breaking Changes
Make the error code of a binary operation involving overload operator, for consistency (PR 8124)
Other Notable Improvements and Bug Fixes
Generate error when assigning an Enum or TypedDict type to an attribute (Xuanda Yang, PR 8107)
Fix relative path calculation if path is on a different drive on Windows (Netzeband, PR 8094)
Don’t infer an abstract type object type from concrete type object values (Xuanda Yang, PR 8096)
Fix an inconsistency with type checking lambda expressions (PR 8080)
Fix crash involving generic callable types (PR 8075)
Improve error message with long tuple initializer (Xuanda Yang, PR 7995)
Improve mypy daemon documentation (PR 8041)
Recommend typing_extensions instead of mypy_extensions for TypedDict (PR 8023)
Fix an inconsistency with self types (PR 8030, PR 8021)
Support type alias within Literal[...] (Xuanda Yang, PR 8014)
Fix --warn-return-any false positive when returning Any from a function declared to return object (Xuanda Yang, PR 8011)
Stubgen: Split @abstractproperty into @abstractmethod and @property (Xuanda Yang, PR 8066)
Stubgen: Give a better error message when using a .pyd file as target (Xuanda Yang, PR 8063)
Update stubgen documentation (PR 8031)
Typeshed Updates
Many small improvements were made to typeshed — too many to list. Browse the typeshed commit log here.
update to 0.750
Pull in full interpreter as we can't have this package working with just base interpreter
Update to version 0.720:
New Semantic Analyzer Used by Default
New Feature: Warn about Unreachable Code
Plugin API Changes
Notable Improvements and Bug Fixes
Have --package usage respect mypy_path (Aaron Batilo, PR 6926)
Support flexible option specification in config files. Now all the flags support invertible forms so that one can specify either strict_optional = False or no_strict_optional = True. This matches how flags work on the command line (PR 7054)
Fix reachability inference with isinstance(Any, Any) (Michael Lee, PR 7048)
Fix mypyc crash with plugins using get_customize_class_mro_hook() (PR 7075)
Fix slicing tuples with non-literal expressions (Ethan Smith, PR 7066)
Fixes to column numbers in error messages (PR 7078, PR 7081)
Make Need type annotation for variable error more consistent (PR 7079, PR 7113)
Fix error reporting context for missing generic type arguments (PR 7100)
Use only directories containing no init.py as namespace packages (Arne Welzel, PR 7108)
Support method plugin hooks on union types (PR 6560)
Fix some corner cases in --strict-equality (PR 7156, PR 7164)
Fix binding of self-types on unions (PR 7152)
Add more details for Invalid type errors (PR 7166)
Fix custom init() in dataclasses (Ryan Gonzalez, PR 7168)
Better support for indexing with unions of literal types (Michael Lee, PR 6558)
update to version 0.711:
Revert typeshed PR 2878 (“Define functools.partial as overloaded function instead of its own class”). This caused too many false positive errors in real-world code. (PR 3077)
Fix MYPYC_BLACKLIST on Windows. This broke running dmypy on Windows. (PR 7032)
Update to 0.710: too many changes to list here (and there is no perfect changelog), but all information is on http://www.mypy-lang.org/
update Pass executable path into main when running installe patch
Update to 0.700: too many changes to list here (and there is no perfect changelog), but all information is on http://www.mypy-lang.org/
Update to 0.670: too many changes to list here (and there is no perfect changelog), but all information is on http://www.mypy-lang.org/
Remove already included patches
desinglespec - is app and only for python3
add RH patchset
update to 0.620
fix install deps
Drop dependency over devel python package, not needed
Do not skip build on < 3.4 python, we do not ship that anywhere (last seen on 13.1)
update to version 0.590:
include compiled docs in package
fix build for distributions with python 3.4
update to 0.550:
--python-version flag).--disallow-any flag into separate boolean flags <disallow-any>.--old-html-report flag was removed.fix shebang removal
update to 0.521
fine-grained control of Any types <disallow-any>.typeddict.command-line:correct shebangs of typeshed libs
fix build for older versions
Enhance description by some more text from the webpage.
use python singlespec approach marking as uncompatible with python2
first package
Changes in python-opentelemetry-resourcedetector-gcp:
Changes in python-poetry-core:
Update to 2.1.3
Update to 2.1.1
Changes from 2.1.0
Changes from 2.0.1
Unset source date epoch for tests
Change test skipping, the skipped one works, and another is broken.
update to 2.0.0:
project section in the
pyproject.toml file according to PEP 621 (#708, #792).platform_release marker (#722).in / not in in
generic constraints (#722).SOURCE_DATE_EPOCH when building packages
(#766, #781).METADATA files with version 2.3 instead of 2.2allow-prereleases a tri-state setting (#783).Error suffix (#767).x in version constraints (#770).tool.poetry.dev-dependencies in favor of
tool.poetry.group.dev.dependencies (#754).Package.python_marker (#446).pyproject.toml file cannot
be parsed (#734).readme files (#752).platlib directory of the wrong
Python was used (#726).+ was not allowed in git URL paths
(#765).update to 1.9.1:
3.13 to the list of available Python versions (#747).drop upstream patch
Add patch support newer pythons patch:
Switch to autosetup macro.
Skip test failing with Python 3.12.6 gh#python-poetry/poetry#9678
Update to 1.9.0 (bsc#1221705):
update to 1.8.1:
git+ could not be
parsed anymore (#657).3.12 to the list of available Python versions (#631).extra markers (#636).Dependency.transitive_python_versions (#648).Dependency.transitive_python_constraint (#649).lib folder was added to
the wheel (#634).jsonschema with fastjsonschema.lark==1.1.8packaging==23.2Update to 1.7.0
Update description
Update to version 1.4.0 version constraints (#128).
unbundle vendored packages
Changes in python-proto-plus:
Update to 1.26.1
update to 1.26.0:
Update to 1.25.0
Drop merged pytest static method patch
Explicitly BuildRequires on pytz, the testsuite uses it.
update to 1.24.0:
always_print_fields_with_no_presence fields to
to_json and to_dictincluding_default_value_fields in to_json
and to_dictChanges in python-pytest-asyncio:
Add patch to allow use of older setuptools
Add upstream patch for compatibility with pytest 8.4.0
update to 1.0.0: https://github.com/pytest-dev/pytest-asyncio/releases/tag/v1.0.0
update to 0.26.0:
update to 0.25.3:
update to 0.25.2:
update to 0.25.1:
Update to 0.25.0:
Update to 0.24.0
Drop merged duplicated markers patch
Add patch to fix some testsuites broken by duplicate markers;
update to 0.23.7:
update to 0.23.6:
update to 0.23.5.post1:
asyncio.get_event_loop() from affecting test cases #757Update to 0.23.5
Release 0.23.4
update to 0.23.3:
remove unnecessary dependency on async_generator
Add hypothesis-health-check patch to fix tests
Inject multibuild to defeat a build loop
Initial release of python-pytest-asyncio 0.8.0
Changes in python-syrupy:
Update to 4.9.1
from version 4.9.0
from version 4.8.3
from version 4.8.2
from version 4.8.1
from version 4.8.0
update to 4.7.2:
Add %{?sle15_python_module_pythons}
update to 4.6.1:
update to 4.6.0:
drop no colored patch: obsolete
update to 4.0.8:
Initial packaging (v4.0.4), needed by translate-toolkit
Changes in python-typed-ast:
update to 1.5.5:
add sle15_python_module_pythons
Release version 1.5.4 (#189)
Do not include now private code.h (#188) As of https://github.com/python/cpython/pull/32385 the header code.h is private but directly included into Python.h
Fix Python 3.11 support (#187) The compilation error on master is:
ast3/Parser/tokenizer.c:1991:10: error: implicit declaration of function '_Py_dup' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
fd = _Py_dup(fd);
^
1 error generated.
Probably as a result of https://github.com/python/cpython/pull/30484 Just declaring it seems to fix things. Add a (slightly) hacky way of testing Python 3.11 in CI prior to manylinux / cibuildwheel support.
Bump version to 1.5.4.dev0 (#186)
Release version 1.5.3 (#185)
FIX: Account form stdbool.h being included in Python.h (#184) As of CPython 3.11 (via https://github.com/python/cpython/pull/29883) stdbool.h is now included in Python.h so do attempt to redefine bool/true/false.
Bump version to 1.5.3.dev0
Release version 1.5.2
Add support for building aarch64 wheels (#182) Co-authored-by: Shantanu 12621235+hauntsaninja@users.noreply.github.com
Remove update process document (#177) typed_ast will not be updated to support syntax past Python 3.8 as Python 3.8's ast module now incorporates the features of typed_ast.
Bump version to 1.5.2.dev0
Release version 1.5.1 (#181)
Fix #167: Port ast27 to Python 3.11 (#176) Copy _PyLong_DigitValue table from Python 3.10 as 'digitvalue' in ast27/Python/mystrtoul.c. The symbol has been removed from the public Python 3.11 C API.
Bump version to 1.5.1.dev0
Add patch to use PyUnicode_DecodeUnicodeEscape directly, rather than wrapping it.
update to 1.5.0:
update to version 1.4.3:
Download wheels for 3.9 as well
Download aarch64 wheels (#154)
Allow compilation on python 3.10.0a6 (#155) Closes #156. (Except for Apple Silicon.)
Fix compilation on python 3.10.0a7 (#158)
PyArena was removed from the public api in python/cpython#25007
This commit adds two new files (a copy of each for ast27 and ast3):
Add Python 3.10 classifier (#160)
remove obsolete ppc64 and s390x patch, included upstream
update to version 1.4.2:
Fix linker error in debug build (#131)
Fix cross compile by adjusting includes (#135)
Add note in incompatabilities that PyPy is broken and unsupported (#144)
Remove reference to PyNode_ListTree for Python 3.10 (#153)
ast27: prefix exported symbols (#152)
Add 3.9 to supported versions
Add patch from upstream PR#152 to fix ppc64 and s390x builds/tests and run all tests again.
Use (fixed in the meantime) pytest_arch macro in order to ignore the _build directories from multiple python3 flavors gh#openSUSE/python-rpm-macros#66
Changes in python-uritemplate:
Switch to pyproject macros.
Use sle15_python_module_pythons
Remove completely unnecessary dependency on python-simplejson.
update to 4.1.1:
update to 3.0.1
Remove superfluous devel dependency for noarch package
Changes in python-dnspython:
Drop patch for CVE-2023-29483, fixed upstream.
Update to version 2.6.1
Update to version 2.6.0
Update to version 2.5.0
Don't use curio.
update to version 2.4.2:
dns.nameserver.Nameserver to represent
remote recursive resolvers, and can communicate using
DNS over UDP/TCP, HTTPS, TLS, and QUIC. In additional to being able to specify
an IPv4, IPv6, or HTTPS URL as a nameserver, instances of dns.nameserver.Nameserver
are now permitted.try_ddr() method, which will try to
use Discovery of Designated Resolvers (DDR) to upgrade the connection from the stub
resolver to the recursive server so that it uses DNS-over-HTTPS, DNS-over-TLS, or
DNS-over-QUIC. This feature is currently experimental as the standard is still in
draft stage.make_resolver_at() and
resolve_at() functions, as a convenience for making queries to specific
recursive servers.Changes in python-trio:
Remove version restriction for python-setuptools in BuildRequires
Update to 0.30.0
Update BuildRequires from pyproject.toml
Update to 0.29.0
Add sed command to remove shebangs from check_type_completeness.py and gen_exports.py
Update to 0.28.0
update to 0.27.0:
trio.move_on_after and :func:trio.fail_after
previously set the deadline relative to initialization time,
instead of more intuitively upon entering the context
manager. This might change timeouts if a program relied on
this behavior. If you want to restore previous behavior you
should instead use trio.move_on_at(trio.current_time() +
...). flake8-async has a new rule to catch this, in case
you're supporting older trio versions. See :ref:ASYNC122.CancelScope.relative_deadline and
:meth:CancelScope.is_relative added, as well as a
relative_deadline parameter to init. This allows
initializing scopes ahead of time, but where the specified
relative deadline doesn't count down until the scope is
entered.trio.Lock and :class:trio.StrictFIFOLock will now
raise :exc:trio.BrokenResourceError when
:meth:trio.Lock.acquire would previously stall due to the
owner of the lock exiting without releasing the lock.trio.lowlevel.add_parking_lot_breaker and
:func:trio.lowlevel.remove_parking_lot_breaker to allow
creating custom lock/semaphore implementations that will
break their underlying parking lot if a task exits
unexpectedly. :meth:trio.lowlevel.ParkingLot.break_lot is
also added, to allow breaking a parking lot intentionally.trio.sleep_forever to be NoReturn.update to 0.26.2:
interactive debugging for
further detail. (#2972)trio.testing.RaisesGroup can now catch an unwrapped
exception with unwrapped=True. This means that the behaviour
of :ref:except* <except_star> can be fully replicated in
combination with flatten_subgroups=True (formerly
strict=False). (#2989)trio.testing.RaisesGroup(..., strict=False) <trio.testing.RaisesGroup> would check the
number of exceptions in the raised ExceptionGroup before
flattening subgroups, leading to incorrectly failed matches.
It now properly supports end ($) regex markers in the match
message, by no longer including ' (x sub-exceptions)' in the
string it matches against.trio.testing.RaisesGroup, previous functionality of
strict=False is now in flatten_subgroups=True.update to 0.25.1:
Update to 0.25.0
We don't need isort for the tests: Avoid it for Ring1
Clean dependencies
update to 0.23.2:
nursery.start_soon() <trio.Nursery.start_soon>,
:func:trio.run(), :func:trio.to_thread.run_sync(), and
other similar functions accepting (func, *args). This means
type checkers will be able to verify types are used
correctly. :meth:nursery.start() <trio.Nursery.start> is
not fully typed yet however. (#2881)open_memory_channel as
generic. (#2873)
backlink Unknown interpreted text role 'func'.open_memory_channel as
generic.pyproject.toml. (#2860)update to 0.23.1:
Cancelled exception, even though it wasn't cancelled.
Most users probably never noticed either way, but injecting a
Cancelled here is not really useful, and in some rare cases
caused confusion or problems, so Trio no longer does that.trio.to_thread.run_sync,
trio.from_thread.run and trio.from_thread.run_sync now
reuse the task and cancellation status of the host task;trio.from_thread.check_cancelled
to efficiently check for cancellation without reentering the
Trio thread.trio.lowlevel.start_guest_run now does a bit more
setup of the guest run before it returns to its caller,
so that the caller can immediately make calls to
:func:trio.current_time,
:func:trio.lowlevel.spawn_system_task,
:func:trio.lowlevel.current_trio_token, etc.trio.TaskStatus.started,
:func:trio.Nursery.start will no longer wrap the exception
in an undocumented :exc:ExceptionGroup.trio.to_thread.run_sync that was
previously called cancellable is now named
abandon_on_cancel.cancellable name is now deprecated.Update to 0.22.2:
Changes in python-websocket-client:
Adjust License tag on spec file after transition to Apache-2.0
Update to 1.9.0
teardown() to improve run_forever() (#1015)_stop_ping_thread(), avoid implicit None in recv() (#1036)Update to 1.8.0:
on_reconnect parameter to WebSocketApp to handle callback
ambiguitySwitch to pyproject macros.
update to 1.7.0:
mask variable in ABNF to prevent name collision
with mask() function (9b51f73)send_text() and send_bytes() to _app.pyupdate to 1.6.4:
{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-auth": "2.47.0-150400.6.12.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpc-interceptor": "0.15.4-150400.9.4.1",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}{
"binaries": [
{
"python311-google-api-core": "2.28.0-150400.5.9.2",
"python311-google-cloud-appengine-logging": "1.8.0-150400.9.8.2",
"python311-google-cloud-artifact-registry": "1.19.0-150400.9.8.2",
"python311-google-cloud-audit-log": "0.4.0-150400.9.8.1",
"python311-google-cloud-build": "3.35.0-150400.9.8.2",
"python311-google-cloud-compute": "1.42.0-150400.9.11.2",
"python311-google-cloud-core": "2.5.0-150400.5.9.2",
"python311-google-cloud-dns": "0.36.0-150400.9.8.2",
"python311-google-cloud-domains": "1.12.0-150400.9.8.2",
"python311-google-cloud-iam": "2.21.0-150400.9.11.2",
"python311-google-cloud-kms": "3.9.0-150400.9.8.2",
"python311-google-cloud-kms-inventory": "0.4.0-150400.9.8.2",
"python311-google-cloud-logging": "3.13.0-150400.9.8.2",
"python311-google-cloud-run": "0.14.0-150400.9.8.2",
"python311-google-cloud-secret-manager": "2.26.0-150400.9.8.2",
"python311-google-cloud-service-directory": "1.16.0-150400.9.8.2",
"python311-google-cloud-spanner": "3.58.0-150400.9.8.1",
"python311-google-cloud-storage": "3.8.0-150400.10.9.2",
"python311-google-cloud-vpc-access": "1.15.0-150400.9.8.2",
"python311-google-crc32c": "1.8.0-150400.9.8.2",
"python311-google-resumable-media": "2.8.0-150400.10.9.2",
"python311-googleapis-common-protos": "1.72.0-150400.10.9.2",
"python311-grpc-google-iam-v1": "0.14.3-150400.9.6.2",
"python311-grpcio": "1.60.1-150600.16.10.1",
"python311-proto-plus": "1.26.1-150400.9.6.2"
}
]
}