diff --git a/README.rst b/README.rst index c33760a0ff5c..441a6b9d3e29 100644 --- a/README.rst +++ b/README.rst @@ -103,12 +103,17 @@ against beta libraries are addressed with a higher priority. The following client libraries have **beta** support: +- `Google Cloud Asset`_ (`Asset README`_, `Asset Documentation`_) - `Google Cloud Billing Budgets`_ (`Billing Budgets README`_, `Billing Budgets Documentation`_) - `Google Cloud Data Catalog`_ (`Data Catalog README`_, `Data Catalog Documentation`_) - `Google Cloud Firestore`_ (`Firestore README`_, `Firestore Documentation`_) - `Google Cloud Video Intelligence`_ (`Video Intelligence README`_, `Video Intelligence Documentation`_) - `Google Cloud Vision`_ (`Vision README`_, `Vision Documentation`_) +.. _Google Cloud Asset: https://pypi.org/project/google-cloud-asset/ +.. _Asset README: https://github.com/googleapis/google-cloud-python/blob/master/asset +.. _Asset Documentation: https://googleapis.dev/python/cloudasset/latest + .. _Google Cloud Billing Budgets: https://pypi.org/project/google-cloud-billing-budgets/ .. _Billing Budgets README: https://github.com/googleapis/google-cloud-python/tree/master/billingbudgets .. _Billing Budgets Documentation: https://googleapis.dev/python/billingbudgets/latest @@ -139,7 +144,6 @@ updates. See `versioning`_ for more details. The following client libraries have **alpha** support: -- `Google Cloud Asset`_ (`Asset README`_, `Asset Documentation`_) - `Google Cloud AutoML`_ (`AutoML README`_, `AutoML Documentation`_) - `Google BigQuery Data Transfer`_ (`BigQuery Data Transfer README`_, `BigQuery Documentation`_) - `Google Cloud Bigtable - HappyBase`_ (`HappyBase README`_, `HappyBase Documentation`_) @@ -161,10 +165,6 @@ The following client libraries have **alpha** support: - `Stackdriver Error Reporting`_ (`Error Reporting README`_, `Error Reporting Documentation`_) - `Stackdriver Monitoring`_ (`Monitoring README`_, `Monitoring Documentation`_) -.. _Google Cloud Asset: https://pypi.org/project/google-cloud-asset/ -.. _Asset README: https://github.com/googleapis/google-cloud-python/blob/master/asset -.. _Asset Documentation: https://googleapis.dev/python/cloudasset/latest - .. _Google Cloud AutoML: https://pypi.org/project/google-cloud-automl/ .. _AutoML README: https://github.com/googleapis/google-cloud-python/blob/master/automl .. _AutoML Documentation: https://googleapis.dev/python/automl/latest diff --git a/asset/.repo-metadata.json b/asset/.repo-metadata.json index cc9ac3cd4b1d..36b7812f5a50 100644 --- a/asset/.repo-metadata.json +++ b/asset/.repo-metadata.json @@ -4,7 +4,7 @@ "product_documentation": "https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview", "client_documentation": "https://googleapis.dev/python/cloudasset/latest", "issue_tracker": "https://issuetracker.google.com/savedsearches/559757", - "release_level": "alpha", + "release_level": "beta", "language": "python", "repo": "googleapis/google-cloud-python", "distribution_name": "google-cloud-asset", diff --git a/asset/README.rst b/asset/README.rst index e0d579c20035..8ef2943e0864 100644 --- a/asset/README.rst +++ b/asset/README.rst @@ -1,15 +1,15 @@ Python Client for Cloud Asset API ================================= -|alpha| |pypi| |versions| +|beta| |pypi| |versions| `Cloud Asset API`_: The cloud asset API manages the history and inventory of cloud resources. - `Client Library Documentation`_ - `Product Documentation`_ -.. |alpha| image:: https://img.shields.io/badge/support-alpha-orange.svg - :target: https://github.com/googleapis/google-cloud-python/blob/master/README.rst#alpha-support +.. |beta| image:: https://img.shields.io/badge/support-beta-orange.svg + :target: https://github.com/googleapis/google-cloud-python/blob/master/README.rst#beta-support .. |pypi| image:: https://img.shields.io/pypi/v/google-cloud-asset.svg :target: https://pypi.org/project/google-cloud-asset/ .. |versions| image:: https://img.shields.io/pypi/pyversions/google-cloud-asset.svg diff --git a/asset/docs/gapic/v1p1beta1/api.rst b/asset/docs/gapic/v1p1beta1/api.rst new file mode 100644 index 000000000000..2534b7d3df46 --- /dev/null +++ b/asset/docs/gapic/v1p1beta1/api.rst @@ -0,0 +1,6 @@ +Client for Cloud Asset API +========================== + +.. automodule:: google.cloud.asset_v1p1beta1 + :members: + :inherited-members: \ No newline at end of file diff --git a/asset/docs/gapic/v1p1beta1/types.rst b/asset/docs/gapic/v1p1beta1/types.rst new file mode 100644 index 000000000000..3e71731320b3 --- /dev/null +++ b/asset/docs/gapic/v1p1beta1/types.rst @@ -0,0 +1,5 @@ +Types for Cloud Asset API Client +================================ + +.. automodule:: google.cloud.asset_v1p1beta1.types + :members: \ No newline at end of file diff --git a/asset/docs/index.rst b/asset/docs/index.rst index cc1b49a90e90..f97e2b654644 100644 --- a/asset/docs/index.rst +++ b/asset/docs/index.rst @@ -6,28 +6,43 @@ Api Reference This package includes clients for multiple versions of the Cloud Asset API. By default, you will get ``v1`` the latest stable version. +v1 +~~~~~~~~~ .. toctree:: :maxdepth: 2 gapic/v1/api gapic/v1/types -A new beta release with additional features over the current stable version, spelled ``v1p2beta1``, is provided -to allow you to use these new features. These are expected to move into the stable release soon; until -then, the usual beta admonishment (changes are possible, etc.) applies. +Beta releases with additional features over the current stable version, spelled ``v1p1beta1`` and ``v1p2beta1``, +are provided to allow you to use these new features. These are expected to move into the stable release soon; +until then, the usual beta admonishment (changes are possible, etc.) applies. An API and type reference is provided for this beta: +v1p1beta1 +~~~~~~~~~ +.. toctree:: + :maxdepth: 2 + + gapic/v1p1beta1/api + gapic/v1p1beta1/types + + +v1p2beta1 +~~~~~~~~~ .. toctree:: :maxdepth: 2 gapic/v1p2beta1/api gapic/v1p2beta1/types -The previous beta release, spelled ``v1p2beta1`` is also provided to continue to support code +The previous beta release, spelled ``v1beta1`` is also provided to continue to support code previously written against it. In order to use it, you will want to import from ``google.cloud.asset_v1beta1`` in lieu of ``google.cloud.asset_v1``. +v1beta1 +~~~~~~~~~ .. toctree:: :maxdepth: 2 diff --git a/asset/google/cloud/asset_v1p1beta1/__init__.py b/asset/google/cloud/asset_v1p1beta1/__init__.py new file mode 100644 index 000000000000..d8cba9f950d0 --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from __future__ import absolute_import + +from google.cloud.asset_v1p1beta1 import types +from google.cloud.asset_v1p1beta1.gapic import asset_service_client + + +class AssetServiceClient(asset_service_client.AssetServiceClient): + __doc__ = asset_service_client.AssetServiceClient.__doc__ + + +__all__ = ("types", "AssetServiceClient") diff --git a/asset/google/cloud/asset_v1p1beta1/gapic/__init__.py b/asset/google/cloud/asset_v1p1beta1/gapic/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/asset/google/cloud/asset_v1p1beta1/gapic/asset_service_client.py b/asset/google/cloud/asset_v1p1beta1/gapic/asset_service_client.py new file mode 100644 index 000000000000..cb6de10069ac --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/gapic/asset_service_client.py @@ -0,0 +1,623 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.cloud.asset.v1p1beta1 AssetService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.page_iterator +import grpc + +from google.cloud.asset_v1p1beta1.gapic import asset_service_client_config +from google.cloud.asset_v1p1beta1.gapic.transports import asset_service_grpc_transport +from google.cloud.asset_v1p1beta1.proto import asset_service_pb2 +from google.cloud.asset_v1p1beta1.proto import asset_service_pb2_grpc + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-asset").version + + +class AssetServiceClient(object): + """Asset service definition.""" + + SERVICE_ADDRESS = "cloudasset.googleapis.com:443" + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = "google.cloud.asset.v1p1beta1.AssetService" + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AssetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + client_options=None, + ): + """Constructor. + + Args: + transport (Union[~.AssetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AssetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn( + "The `client_config` argument is deprecated.", + PendingDeprecationWarning, + stacklevel=2, + ) + else: + client_config = asset_service_client_config.config + + if channel: + warnings.warn( + "The `channel` argument is deprecated; use " "`transport` instead.", + PendingDeprecationWarning, + stacklevel=2, + ) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict( + client_options + ) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=asset_service_grpc_transport.AssetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) + self.transport = transport + else: + self.transport = asset_service_grpc_transport.AssetServiceGrpcTransport( + address=api_endpoint, channel=channel, credentials=credentials + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config["interfaces"][self._INTERFACE_NAME] + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def search_resources( + self, + scope, + query=None, + asset_types=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Searches resources which are accessible with .get permission. + + Example: + >>> from google.cloud import asset_v1p1beta1 + >>> + >>> client = asset_v1p1beta1.AssetServiceClient() + >>> + >>> # TODO: Initialize `scope`: + >>> scope = '' + >>> + >>> # Iterate over all results + >>> for element in client.search_resources(scope): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.search_resources(scope).pages: + ... for element in page: + ... # process element + ... pass + + Args: + scope (str): Required. The relative name of an asset. The search is limited to the + resources within the ``scope``. The allowed value must be: + + - Organization number (such as "organizations/123") + - Folder number(such as "folders/1234") + - Project number (such as "projects/12345") + query (str): Optional. The query statement. + asset_types (list[str]): Optional. A list of asset types that this request searches for. If empty, it will + search all the supported asset types. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.asset_v1p1beta1.types.StandardResourceMetadata` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if "search_resources" not in self._inner_api_calls: + self._inner_api_calls[ + "search_resources" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search_resources, + default_retry=self._method_configs["SearchResources"].retry, + default_timeout=self._method_configs["SearchResources"].timeout, + client_info=self._client_info, + ) + + request = asset_service_pb2.SearchResourcesRequest( + scope=scope, query=query, asset_types=asset_types, page_size=page_size + ) + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["search_resources"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="results", + request_token_field="page_token", + response_token_field="next_page_token", + ) + return iterator + + def search_iam_policies( + self, + scope, + query=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Searches IAM policies which are accessible with .getIamPolicy permission. + + Example: + >>> from google.cloud import asset_v1p1beta1 + >>> + >>> client = asset_v1p1beta1.AssetServiceClient() + >>> + >>> # TODO: Initialize `scope`: + >>> scope = '' + >>> + >>> # Iterate over all results + >>> for element in client.search_iam_policies(scope): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.search_iam_policies(scope).pages: + ... for element in page: + ... # process element + ... pass + + Args: + scope (str): Required. The relative name of an asset. The search is limited to the + resources within the ``scope``. The allowed value must be: + + - Organization number (such as "organizations/123") + - Folder number(such as "folders/1234") + - Project number (such as "projects/12345") + query (str): Optional. The query statement. Examples: + + - "policy:myuser@mydomain.com" + - "policy:(myuser@mydomain.com viewer)" + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.asset_v1p1beta1.types.IamPolicySearchResult` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if "search_iam_policies" not in self._inner_api_calls: + self._inner_api_calls[ + "search_iam_policies" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search_iam_policies, + default_retry=self._method_configs["SearchIamPolicies"].retry, + default_timeout=self._method_configs["SearchIamPolicies"].timeout, + client_info=self._client_info, + ) + + request = asset_service_pb2.SearchIamPoliciesRequest( + scope=scope, query=query, page_size=page_size + ) + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["search_iam_policies"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="results", + request_token_field="page_token", + response_token_field="next_page_token", + ) + return iterator + + def search_all_resources( + self, + scope, + query=None, + asset_types=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Searches all the resources under a given accessible CRM scope + (project/folder/organization). This RPC gives callers + especially admins the ability to search all the resources under a scope, + even if they don't have .get permission of all the resources. Callers + should have cloud.assets.SearchAllResources permission on the requested + scope, otherwise it will be rejected. + + Example: + >>> from google.cloud import asset_v1p1beta1 + >>> + >>> client = asset_v1p1beta1.AssetServiceClient() + >>> + >>> # TODO: Initialize `scope`: + >>> scope = '' + >>> + >>> # Iterate over all results + >>> for element in client.search_all_resources(scope): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.search_all_resources(scope).pages: + ... for element in page: + ... # process element + ... pass + + Args: + scope (str): Required. The relative name of an asset. The search is limited to the + resources within the ``scope``. The allowed value must be: + + - Organization number (such as "organizations/123") + - Folder number(such as "folders/1234") + - Project number (such as "projects/12345") + query (str): Optional. The query statement. + asset_types (list[str]): Optional. A list of asset types that this request searches for. If empty, it will + search all the supported asset types. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.asset_v1p1beta1.types.StandardResourceMetadata` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if "search_all_resources" not in self._inner_api_calls: + self._inner_api_calls[ + "search_all_resources" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search_all_resources, + default_retry=self._method_configs["SearchAllResources"].retry, + default_timeout=self._method_configs["SearchAllResources"].timeout, + client_info=self._client_info, + ) + + request = asset_service_pb2.SearchAllResourcesRequest( + scope=scope, query=query, asset_types=asset_types, page_size=page_size + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [("scope", scope)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( + routing_header + ) + metadata.append(routing_metadata) + + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["search_all_resources"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="results", + request_token_field="page_token", + response_token_field="next_page_token", + ) + return iterator + + def search_all_iam_policies( + self, + scope, + query=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Searches all the IAM policies under a given accessible CRM scope + (project/folder/organization). This RPC gives callers + especially admins the ability to search all the IAM policies under a scope, + even if they don't have .getIamPolicy permission of all the IAM policies. + Callers should have cloud.assets.SearchAllIamPolicies permission on the + requested scope, otherwise it will be rejected. + + Example: + >>> from google.cloud import asset_v1p1beta1 + >>> + >>> client = asset_v1p1beta1.AssetServiceClient() + >>> + >>> # TODO: Initialize `scope`: + >>> scope = '' + >>> + >>> # Iterate over all results + >>> for element in client.search_all_iam_policies(scope): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.search_all_iam_policies(scope).pages: + ... for element in page: + ... # process element + ... pass + + Args: + scope (str): Required. The relative name of an asset. The search is limited to the + resources within the ``scope``. The allowed value must be: + + - Organization number (such as "organizations/123") + - Folder number(such as "folders/1234") + - Project number (such as "projects/12345") + query (str): Optional. The query statement. Examples: + + - "policy:myuser@mydomain.com" + - "policy:(myuser@mydomain.com viewer)" + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.asset_v1p1beta1.types.IamPolicySearchResult` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if "search_all_iam_policies" not in self._inner_api_calls: + self._inner_api_calls[ + "search_all_iam_policies" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search_all_iam_policies, + default_retry=self._method_configs["SearchAllIamPolicies"].retry, + default_timeout=self._method_configs["SearchAllIamPolicies"].timeout, + client_info=self._client_info, + ) + + request = asset_service_pb2.SearchAllIamPoliciesRequest( + scope=scope, query=query, page_size=page_size + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [("scope", scope)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( + routing_header + ) + metadata.append(routing_metadata) + + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["search_all_iam_policies"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="results", + request_token_field="page_token", + response_token_field="next_page_token", + ) + return iterator diff --git a/asset/google/cloud/asset_v1p1beta1/gapic/asset_service_client_config.py b/asset/google/cloud/asset_v1p1beta1/gapic/asset_service_client_config.py new file mode 100644 index 000000000000..b675e69c5842 --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/gapic/asset_service_client_config.py @@ -0,0 +1,43 @@ +config = { + "interfaces": { + "google.cloud.asset.v1p1beta1.AssetService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [], + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000, + } + }, + "methods": { + "SearchResources": { + "timeout_millis": 15000, + "retry_codes_name": "idempotent", + "retry_params_name": "default", + }, + "SearchIamPolicies": { + "timeout_millis": 15000, + "retry_codes_name": "idempotent", + "retry_params_name": "default", + }, + "SearchAllResources": { + "timeout_millis": 15000, + "retry_codes_name": "idempotent", + "retry_params_name": "default", + }, + "SearchAllIamPolicies": { + "timeout_millis": 15000, + "retry_codes_name": "idempotent", + "retry_params_name": "default", + }, + }, + } + } +} diff --git a/asset/google/cloud/asset_v1p1beta1/gapic/transports/__init__.py b/asset/google/cloud/asset_v1p1beta1/gapic/transports/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/asset/google/cloud/asset_v1p1beta1/gapic/transports/asset_service_grpc_transport.py b/asset/google/cloud/asset_v1p1beta1/gapic/transports/asset_service_grpc_transport.py new file mode 100644 index 000000000000..cb3a63cc4363 --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/gapic/transports/asset_service_grpc_transport.py @@ -0,0 +1,170 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.cloud.asset_v1p1beta1.proto import asset_service_pb2_grpc + + +class AssetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.cloud.asset.v1p1beta1 AssetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, channel=None, credentials=None, address="cloudasset.googleapis.com:443" + ): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + "asset_service_stub": asset_service_pb2_grpc.AssetServiceStub(channel) + } + + @classmethod + def create_channel( + cls, address="cloudasset.googleapis.com:443", credentials=None, **kwargs + ): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, credentials=credentials, scopes=cls._OAUTH_SCOPES, **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def search_resources(self): + """Return the gRPC stub for :meth:`AssetServiceClient.search_resources`. + + Searches resources which are accessible with .get permission. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["asset_service_stub"].SearchResources + + @property + def search_iam_policies(self): + """Return the gRPC stub for :meth:`AssetServiceClient.search_iam_policies`. + + Searches IAM policies which are accessible with .getIamPolicy permission. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["asset_service_stub"].SearchIamPolicies + + @property + def search_all_resources(self): + """Return the gRPC stub for :meth:`AssetServiceClient.search_all_resources`. + + Searches all the resources under a given accessible CRM scope + (project/folder/organization). This RPC gives callers + especially admins the ability to search all the resources under a scope, + even if they don't have .get permission of all the resources. Callers + should have cloud.assets.SearchAllResources permission on the requested + scope, otherwise it will be rejected. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["asset_service_stub"].SearchAllResources + + @property + def search_all_iam_policies(self): + """Return the gRPC stub for :meth:`AssetServiceClient.search_all_iam_policies`. + + Searches all the IAM policies under a given accessible CRM scope + (project/folder/organization). This RPC gives callers + especially admins the ability to search all the IAM policies under a scope, + even if they don't have .getIamPolicy permission of all the IAM policies. + Callers should have cloud.assets.SearchAllIamPolicies permission on the + requested scope, otherwise it will be rejected. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["asset_service_stub"].SearchAllIamPolicies diff --git a/asset/google/cloud/asset_v1p1beta1/proto/__init__.py b/asset/google/cloud/asset_v1p1beta1/proto/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/asset/google/cloud/asset_v1p1beta1/proto/asset_service_pb2.py b/asset/google/cloud/asset_v1p1beta1/proto/asset_service_pb2.py new file mode 100644 index 000000000000..cdc0f0bae5db --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/proto/asset_service_pb2.py @@ -0,0 +1,1046 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/asset_v1p1beta1/proto/asset_service.proto + +import sys + +_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode("latin1")) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.cloud.asset_v1p1beta1.proto import ( + assets_pb2 as google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_assets__pb2, +) +from google.api import client_pb2 as google_dot_api_dot_client__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name="google/cloud/asset_v1p1beta1/proto/asset_service.proto", + package="google.cloud.asset.v1p1beta1", + syntax="proto3", + serialized_options=_b( + "\n com.google.cloud.asset.v1p1beta1B\021AssetServiceProtoP\001ZAgoogle.golang.org/genproto/googleapis/cloud/asset/v1p1beta1;asset\252\002\034Google.Cloud.Asset.V1P1Beta1\312\002\034Google\\Cloud\\Asset\\V1p1beta1" + ), + serialized_pb=_b( + '\n6google/cloud/asset_v1p1beta1/proto/asset_service.proto\x12\x1cgoogle.cloud.asset.v1p1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a/google/cloud/asset_v1p1beta1/proto/assets.proto\x1a\x17google/api/client.proto"\x8b\x01\n\x16SearchResourcesRequest\x12\x12\n\x05scope\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x61sset_types\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x05 \x01(\tB\x03\xe0\x41\x01"{\n\x17SearchResourcesResponse\x12G\n\x07results\x18\x01 \x03(\x0b\x32\x36.google.cloud.asset.v1p1beta1.StandardResourceMetadata\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"s\n\x18SearchIamPoliciesRequest\x12\x12\n\x05scope\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01"z\n\x19SearchIamPoliciesResponse\x12\x44\n\x07results\x18\x01 \x03(\x0b\x32\x33.google.cloud.asset.v1p1beta1.IamPolicySearchResult\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\x8e\x01\n\x19SearchAllResourcesRequest\x12\x12\n\x05scope\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x61sset_types\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x05 \x01(\tB\x03\xe0\x41\x01"~\n\x1aSearchAllResourcesResponse\x12G\n\x07results\x18\x01 \x03(\x0b\x32\x36.google.cloud.asset.v1p1beta1.StandardResourceMetadata\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"v\n\x1bSearchAllIamPoliciesRequest\x12\x12\n\x05scope\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01"}\n\x1cSearchAllIamPoliciesResponse\x12\x44\n\x07results\x18\x01 \x03(\x0b\x32\x33.google.cloud.asset.v1p1beta1.IamPolicySearchResult\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xb5\x06\n\x0c\x41ssetService\x12\xa3\x01\n\x0fSearchResources\x12\x34.google.cloud.asset.v1p1beta1.SearchResourcesRequest\x1a\x35.google.cloud.asset.v1p1beta1.SearchResourcesResponse"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1p1beta1/resources:search\x12\xab\x01\n\x11SearchIamPolicies\x12\x36.google.cloud.asset.v1p1beta1.SearchIamPoliciesRequest\x1a\x37.google.cloud.asset.v1p1beta1.SearchIamPoliciesResponse"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1p1beta1/iamPolicies:search\x12\xbb\x01\n\x12SearchAllResources\x12\x37.google.cloud.asset.v1p1beta1.SearchAllResourcesRequest\x1a\x38.google.cloud.asset.v1p1beta1.SearchAllResourcesResponse"2\x82\xd3\xe4\x93\x02,\x12*/v1p1beta1/{scope=*/*}/resources:searchAll\x12\xc3\x01\n\x14SearchAllIamPolicies\x12\x39.google.cloud.asset.v1p1beta1.SearchAllIamPoliciesRequest\x1a:.google.cloud.asset.v1p1beta1.SearchAllIamPoliciesResponse"4\x82\xd3\xe4\x93\x02.\x12,/v1p1beta1/{scope=*/*}/iamPolicies:searchAll\x1aM\xca\x41\x19\x63loudasset.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb8\x01\n com.google.cloud.asset.v1p1beta1B\x11\x41ssetServiceProtoP\x01ZAgoogle.golang.org/genproto/googleapis/cloud/asset/v1p1beta1;asset\xaa\x02\x1cGoogle.Cloud.Asset.V1P1Beta1\xca\x02\x1cGoogle\\Cloud\\Asset\\V1p1beta1b\x06proto3' + ), + dependencies=[ + google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, + google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_assets__pb2.DESCRIPTOR, + google_dot_api_dot_client__pb2.DESCRIPTOR, + ], +) + + +_SEARCHRESOURCESREQUEST = _descriptor.Descriptor( + name="SearchResourcesRequest", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesRequest", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="scope", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesRequest.scope", + index=0, + number=1, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\002"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="query", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesRequest.query", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="asset_types", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesRequest.asset_types", + index=2, + number=3, + type=9, + cpp_type=9, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_size", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesRequest.page_size", + index=3, + number=4, + type=5, + cpp_type=1, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_token", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesRequest.page_token", + index=4, + number=5, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=226, + serialized_end=365, +) + + +_SEARCHRESOURCESRESPONSE = _descriptor.Descriptor( + name="SearchResourcesResponse", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesResponse", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="results", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesResponse.results", + index=0, + number=1, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="next_page_token", + full_name="google.cloud.asset.v1p1beta1.SearchResourcesResponse.next_page_token", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=367, + serialized_end=490, +) + + +_SEARCHIAMPOLICIESREQUEST = _descriptor.Descriptor( + name="SearchIamPoliciesRequest", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesRequest", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="scope", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesRequest.scope", + index=0, + number=4, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\002"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="query", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesRequest.query", + index=1, + number=1, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_size", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesRequest.page_size", + index=2, + number=2, + type=5, + cpp_type=1, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_token", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesRequest.page_token", + index=3, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=492, + serialized_end=607, +) + + +_SEARCHIAMPOLICIESRESPONSE = _descriptor.Descriptor( + name="SearchIamPoliciesResponse", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesResponse", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="results", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesResponse.results", + index=0, + number=1, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="next_page_token", + full_name="google.cloud.asset.v1p1beta1.SearchIamPoliciesResponse.next_page_token", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=609, + serialized_end=731, +) + + +_SEARCHALLRESOURCESREQUEST = _descriptor.Descriptor( + name="SearchAllResourcesRequest", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesRequest", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="scope", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesRequest.scope", + index=0, + number=1, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\002"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="query", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesRequest.query", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="asset_types", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesRequest.asset_types", + index=2, + number=3, + type=9, + cpp_type=9, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_size", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesRequest.page_size", + index=3, + number=4, + type=5, + cpp_type=1, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_token", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesRequest.page_token", + index=4, + number=5, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=734, + serialized_end=876, +) + + +_SEARCHALLRESOURCESRESPONSE = _descriptor.Descriptor( + name="SearchAllResourcesResponse", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesResponse", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="results", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesResponse.results", + index=0, + number=1, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="next_page_token", + full_name="google.cloud.asset.v1p1beta1.SearchAllResourcesResponse.next_page_token", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=878, + serialized_end=1004, +) + + +_SEARCHALLIAMPOLICIESREQUEST = _descriptor.Descriptor( + name="SearchAllIamPoliciesRequest", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesRequest", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="scope", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesRequest.scope", + index=0, + number=1, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\002"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="query", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesRequest.query", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_size", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesRequest.page_size", + index=2, + number=3, + type=5, + cpp_type=1, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="page_token", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesRequest.page_token", + index=3, + number=4, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=_b("\340A\001"), + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=1006, + serialized_end=1124, +) + + +_SEARCHALLIAMPOLICIESRESPONSE = _descriptor.Descriptor( + name="SearchAllIamPoliciesResponse", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesResponse", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="results", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesResponse.results", + index=0, + number=1, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="next_page_token", + full_name="google.cloud.asset.v1p1beta1.SearchAllIamPoliciesResponse.next_page_token", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=1126, + serialized_end=1251, +) + +_SEARCHRESOURCESRESPONSE.fields_by_name[ + "results" +].message_type = ( + google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_assets__pb2._STANDARDRESOURCEMETADATA +) +_SEARCHIAMPOLICIESRESPONSE.fields_by_name[ + "results" +].message_type = ( + google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_assets__pb2._IAMPOLICYSEARCHRESULT +) +_SEARCHALLRESOURCESRESPONSE.fields_by_name[ + "results" +].message_type = ( + google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_assets__pb2._STANDARDRESOURCEMETADATA +) +_SEARCHALLIAMPOLICIESRESPONSE.fields_by_name[ + "results" +].message_type = ( + google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_assets__pb2._IAMPOLICYSEARCHRESULT +) +DESCRIPTOR.message_types_by_name["SearchResourcesRequest"] = _SEARCHRESOURCESREQUEST +DESCRIPTOR.message_types_by_name["SearchResourcesResponse"] = _SEARCHRESOURCESRESPONSE +DESCRIPTOR.message_types_by_name["SearchIamPoliciesRequest"] = _SEARCHIAMPOLICIESREQUEST +DESCRIPTOR.message_types_by_name[ + "SearchIamPoliciesResponse" +] = _SEARCHIAMPOLICIESRESPONSE +DESCRIPTOR.message_types_by_name[ + "SearchAllResourcesRequest" +] = _SEARCHALLRESOURCESREQUEST +DESCRIPTOR.message_types_by_name[ + "SearchAllResourcesResponse" +] = _SEARCHALLRESOURCESRESPONSE +DESCRIPTOR.message_types_by_name[ + "SearchAllIamPoliciesRequest" +] = _SEARCHALLIAMPOLICIESREQUEST +DESCRIPTOR.message_types_by_name[ + "SearchAllIamPoliciesResponse" +] = _SEARCHALLIAMPOLICIESRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SearchResourcesRequest = _reflection.GeneratedProtocolMessageType( + "SearchResourcesRequest", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHRESOURCESREQUEST, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search resource request. + + + Attributes: + scope: + Required. The relative name of an asset. The search is limited + to the resources within the ``scope``. The allowed value must + be: \* Organization number (such as "organizations/123") \* + Folder number(such as "folders/1234") \* Project number (such + as "projects/12345") + query: + Optional. The query statement. + asset_types: + Optional. A list of asset types that this request searches + for. If empty, it will search all the supported asset types. + page_size: + Optional. The page size for search result pagination. Returned + results may be fewer than requested. The value of this field + is capped at 2000. If set to the zero value, server will pick + an appropriate default. + page_token: + Optional. If present, then retrieve the next batch of results + from the preceding call to this method. ``page_token`` must be + the value of ``next_page_token`` from the previous response. + The values of all other method parameters, must be identical + to those in the previous call. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchResourcesRequest) + ), +) +_sym_db.RegisterMessage(SearchResourcesRequest) + +SearchResourcesResponse = _reflection.GeneratedProtocolMessageType( + "SearchResourcesResponse", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHRESOURCESRESPONSE, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search resource response. + + + Attributes: + results: + A list of resource that match the search query. + next_page_token: + If there are more results than those appearing in this + response, then ``next_page_token`` is included. To get the + next set of results, call this method again using the value of + ``next_page_token`` as ``page_token``. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchResourcesResponse) + ), +) +_sym_db.RegisterMessage(SearchResourcesResponse) + +SearchIamPoliciesRequest = _reflection.GeneratedProtocolMessageType( + "SearchIamPoliciesRequest", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHIAMPOLICIESREQUEST, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search IAM policies request. + + + Attributes: + scope: + Required. The relative name of an asset. The search is limited + to the resources within the ``scope``. The allowed value must + be: \* Organization number (such as "organizations/123") \* + Folder number(such as "folders/1234") \* Project number (such + as "projects/12345") + query: + Optional. The query statement. Examples: \* + "policy:myuser@mydomain.com" \* "policy:(myuser@mydomain.com + viewer)" + page_size: + Optional. The page size for search result pagination. Returned + results may be fewer than requested. The maximum is 2000. If + set to the zero value, the server will pick an appropriate + default. + page_token: + Optional. If present, retrieve the next batch of results from + the preceding call to this method. ``page_token`` must be the + value of ``next_page_token`` from the previous response. The + values of all other method parameters must be identical to + those in the previous call. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchIamPoliciesRequest) + ), +) +_sym_db.RegisterMessage(SearchIamPoliciesRequest) + +SearchIamPoliciesResponse = _reflection.GeneratedProtocolMessageType( + "SearchIamPoliciesResponse", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHIAMPOLICIESRESPONSE, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search IAM policies response. + + + Attributes: + results: + A list of IamPolicy that match the search query. Related + information such as the associated resource is returned along + with the policy. + next_page_token: + Set if there are more results than those appearing in this + response; to get the next set of results, call this method + again, using this value as the ``page_token``. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchIamPoliciesResponse) + ), +) +_sym_db.RegisterMessage(SearchIamPoliciesResponse) + +SearchAllResourcesRequest = _reflection.GeneratedProtocolMessageType( + "SearchAllResourcesRequest", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHALLRESOURCESREQUEST, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search all resources request. + + + Attributes: + scope: + Required. The relative name of an asset. The search is limited + to the resources within the ``scope``. The allowed value must + be: \* Organization number (such as "organizations/123") \* + Folder number(such as "folders/1234") \* Project number (such + as "projects/12345") + query: + Optional. The query statement. + asset_types: + Optional. A list of asset types that this request searches + for. If empty, it will search all the supported asset types. + page_size: + Optional. The page size for search result pagination. Returned + results may be fewer than requested. The value of this field + is capped at 2000. If set to the zero value, server will pick + an appropriate default. + page_token: + Optional. If present, then retrieve the next batch of results + from the preceding call to this method. ``page_token`` must be + the value of ``next_page_token`` from the previous response. + The values of all other method parameters, must be identical + to those in the previous call. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchAllResourcesRequest) + ), +) +_sym_db.RegisterMessage(SearchAllResourcesRequest) + +SearchAllResourcesResponse = _reflection.GeneratedProtocolMessageType( + "SearchAllResourcesResponse", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHALLRESOURCESRESPONSE, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search all resources response. + + + Attributes: + results: + A list of resource that match the search query. + next_page_token: + If there are more results than those appearing in this + response, then ``next_page_token`` is included. To get the + next set of results, call this method again using the value of + ``next_page_token`` as ``page_token``. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchAllResourcesResponse) + ), +) +_sym_db.RegisterMessage(SearchAllResourcesResponse) + +SearchAllIamPoliciesRequest = _reflection.GeneratedProtocolMessageType( + "SearchAllIamPoliciesRequest", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHALLIAMPOLICIESREQUEST, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search all IAM policies request. + + + Attributes: + scope: + Required. The relative name of an asset. The search is limited + to the resources within the ``scope``. The allowed value must + be: \* Organization number (such as "organizations/123") \* + Folder number(such as "folders/1234") \* Project number (such + as "projects/12345") + query: + Optional. The query statement. Examples: \* + "policy:myuser@mydomain.com" \* "policy:(myuser@mydomain.com + viewer)" + page_size: + Optional. The page size for search result pagination. Returned + results may be fewer than requested. The maximum is 2000. If + set to the zero value, the server will pick an appropriate + default. + page_token: + Optional. If present, retrieve the next batch of results from + the preceding call to this method. ``page_token`` must be the + value of ``next_page_token`` from the previous response. The + values of all other method parameters must be identical to + those in the previous call. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchAllIamPoliciesRequest) + ), +) +_sym_db.RegisterMessage(SearchAllIamPoliciesRequest) + +SearchAllIamPoliciesResponse = _reflection.GeneratedProtocolMessageType( + "SearchAllIamPoliciesResponse", + (_message.Message,), + dict( + DESCRIPTOR=_SEARCHALLIAMPOLICIESRESPONSE, + __module__="google.cloud.asset_v1p1beta1.proto.asset_service_pb2", + __doc__="""Search all IAM policies response. + + + Attributes: + results: + A list of IamPolicy that match the search query. Related + information such as the associated resource is returned along + with the policy. + next_page_token: + Set if there are more results than those appearing in this + response; to get the next set of results, call this method + again, using this value as the ``page_token``. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.SearchAllIamPoliciesResponse) + ), +) +_sym_db.RegisterMessage(SearchAllIamPoliciesResponse) + + +DESCRIPTOR._options = None +_SEARCHRESOURCESREQUEST.fields_by_name["scope"]._options = None +_SEARCHRESOURCESREQUEST.fields_by_name["query"]._options = None +_SEARCHRESOURCESREQUEST.fields_by_name["asset_types"]._options = None +_SEARCHRESOURCESREQUEST.fields_by_name["page_size"]._options = None +_SEARCHRESOURCESREQUEST.fields_by_name["page_token"]._options = None +_SEARCHIAMPOLICIESREQUEST.fields_by_name["scope"]._options = None +_SEARCHIAMPOLICIESREQUEST.fields_by_name["query"]._options = None +_SEARCHIAMPOLICIESREQUEST.fields_by_name["page_size"]._options = None +_SEARCHIAMPOLICIESREQUEST.fields_by_name["page_token"]._options = None +_SEARCHALLRESOURCESREQUEST.fields_by_name["scope"]._options = None +_SEARCHALLRESOURCESREQUEST.fields_by_name["query"]._options = None +_SEARCHALLRESOURCESREQUEST.fields_by_name["asset_types"]._options = None +_SEARCHALLRESOURCESREQUEST.fields_by_name["page_size"]._options = None +_SEARCHALLRESOURCESREQUEST.fields_by_name["page_token"]._options = None +_SEARCHALLIAMPOLICIESREQUEST.fields_by_name["scope"]._options = None +_SEARCHALLIAMPOLICIESREQUEST.fields_by_name["query"]._options = None +_SEARCHALLIAMPOLICIESREQUEST.fields_by_name["page_size"]._options = None +_SEARCHALLIAMPOLICIESREQUEST.fields_by_name["page_token"]._options = None + +_ASSETSERVICE = _descriptor.ServiceDescriptor( + name="AssetService", + full_name="google.cloud.asset.v1p1beta1.AssetService", + file=DESCRIPTOR, + index=0, + serialized_options=_b( + "\312A\031cloudasset.googleapis.com\322A.https://www.googleapis.com/auth/cloud-platform" + ), + serialized_start=1254, + serialized_end=2075, + methods=[ + _descriptor.MethodDescriptor( + name="SearchResources", + full_name="google.cloud.asset.v1p1beta1.AssetService.SearchResources", + index=0, + containing_service=None, + input_type=_SEARCHRESOURCESREQUEST, + output_type=_SEARCHRESOURCESRESPONSE, + serialized_options=_b( + "\202\323\344\223\002\035\022\033/v1p1beta1/resources:search" + ), + ), + _descriptor.MethodDescriptor( + name="SearchIamPolicies", + full_name="google.cloud.asset.v1p1beta1.AssetService.SearchIamPolicies", + index=1, + containing_service=None, + input_type=_SEARCHIAMPOLICIESREQUEST, + output_type=_SEARCHIAMPOLICIESRESPONSE, + serialized_options=_b( + "\202\323\344\223\002\037\022\035/v1p1beta1/iamPolicies:search" + ), + ), + _descriptor.MethodDescriptor( + name="SearchAllResources", + full_name="google.cloud.asset.v1p1beta1.AssetService.SearchAllResources", + index=2, + containing_service=None, + input_type=_SEARCHALLRESOURCESREQUEST, + output_type=_SEARCHALLRESOURCESRESPONSE, + serialized_options=_b( + "\202\323\344\223\002,\022*/v1p1beta1/{scope=*/*}/resources:searchAll" + ), + ), + _descriptor.MethodDescriptor( + name="SearchAllIamPolicies", + full_name="google.cloud.asset.v1p1beta1.AssetService.SearchAllIamPolicies", + index=3, + containing_service=None, + input_type=_SEARCHALLIAMPOLICIESREQUEST, + output_type=_SEARCHALLIAMPOLICIESRESPONSE, + serialized_options=_b( + "\202\323\344\223\002.\022,/v1p1beta1/{scope=*/*}/iamPolicies:searchAll" + ), + ), + ], +) +_sym_db.RegisterServiceDescriptor(_ASSETSERVICE) + +DESCRIPTOR.services_by_name["AssetService"] = _ASSETSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/asset/google/cloud/asset_v1p1beta1/proto/asset_service_pb2_grpc.py b/asset/google/cloud/asset_v1p1beta1/proto/asset_service_pb2_grpc.py new file mode 100644 index 000000000000..bf01e16c7147 --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/proto/asset_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.cloud.asset_v1p1beta1.proto import ( + asset_service_pb2 as google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2, +) + + +class AssetServiceStub(object): + """Asset service definition. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SearchResources = channel.unary_unary( + "/google.cloud.asset.v1p1beta1.AssetService/SearchResources", + request_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchResourcesRequest.SerializeToString, + response_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchResourcesResponse.FromString, + ) + self.SearchIamPolicies = channel.unary_unary( + "/google.cloud.asset.v1p1beta1.AssetService/SearchIamPolicies", + request_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchIamPoliciesRequest.SerializeToString, + response_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchIamPoliciesResponse.FromString, + ) + self.SearchAllResources = channel.unary_unary( + "/google.cloud.asset.v1p1beta1.AssetService/SearchAllResources", + request_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllResourcesRequest.SerializeToString, + response_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllResourcesResponse.FromString, + ) + self.SearchAllIamPolicies = channel.unary_unary( + "/google.cloud.asset.v1p1beta1.AssetService/SearchAllIamPolicies", + request_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllIamPoliciesRequest.SerializeToString, + response_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllIamPoliciesResponse.FromString, + ) + + +class AssetServiceServicer(object): + """Asset service definition. + """ + + def SearchResources(self, request, context): + """Searches resources which are accessible with .get permission. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + def SearchIamPolicies(self, request, context): + """Searches IAM policies which are accessible with .getIamPolicy permission. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + def SearchAllResources(self, request, context): + """Searches all the resources under a given accessible CRM scope + (project/folder/organization). This RPC gives callers + especially admins the ability to search all the resources under a scope, + even if they don't have .get permission of all the resources. Callers + should have cloud.assets.SearchAllResources permission on the requested + scope, otherwise it will be rejected. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + def SearchAllIamPolicies(self, request, context): + """Searches all the IAM policies under a given accessible CRM scope + (project/folder/organization). This RPC gives callers + especially admins the ability to search all the IAM policies under a scope, + even if they don't have .getIamPolicy permission of all the IAM policies. + Callers should have cloud.assets.SearchAllIamPolicies permission on the + requested scope, otherwise it will be rejected. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + +def add_AssetServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + "SearchResources": grpc.unary_unary_rpc_method_handler( + servicer.SearchResources, + request_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchResourcesRequest.FromString, + response_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchResourcesResponse.SerializeToString, + ), + "SearchIamPolicies": grpc.unary_unary_rpc_method_handler( + servicer.SearchIamPolicies, + request_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchIamPoliciesRequest.FromString, + response_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchIamPoliciesResponse.SerializeToString, + ), + "SearchAllResources": grpc.unary_unary_rpc_method_handler( + servicer.SearchAllResources, + request_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllResourcesRequest.FromString, + response_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllResourcesResponse.SerializeToString, + ), + "SearchAllIamPolicies": grpc.unary_unary_rpc_method_handler( + servicer.SearchAllIamPolicies, + request_deserializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllIamPoliciesRequest.FromString, + response_serializer=google_dot_cloud_dot_asset__v1p1beta1_dot_proto_dot_asset__service__pb2.SearchAllIamPoliciesResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + "google.cloud.asset.v1p1beta1.AssetService", rpc_method_handlers + ) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/asset/google/cloud/asset_v1p1beta1/proto/assets_pb2.py b/asset/google/cloud/asset_v1p1beta1/proto/assets_pb2.py new file mode 100644 index 000000000000..ef68efd0c8ae --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/proto/assets_pb2.py @@ -0,0 +1,298 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/asset_v1p1beta1/proto/assets.proto + +import sys + +_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode("latin1")) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.iam.v1 import iam_policy_pb2 as google_dot_iam_dot_v1_dot_policy__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name="google/cloud/asset_v1p1beta1/proto/assets.proto", + package="google.cloud.asset.v1p1beta1", + syntax="proto3", + serialized_options=_b( + "\n com.google.cloud.asset.v1p1beta1B\nAssetProtoP\001ZAgoogle.golang.org/genproto/googleapis/cloud/asset/v1p1beta1;asset\370\001\001\252\002\034Google.Cloud.Asset.V1P1Beta1\312\002\034Google\\Cloud\\Asset\\V1p1beta1" + ), + serialized_pb=_b( + '\n/google/cloud/asset_v1p1beta1/proto/assets.proto\x12\x1cgoogle.cloud.asset.v1p1beta1\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1cgoogle/api/annotations.proto"x\n\x18StandardResourceMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nasset_type\x18\x02 \x01(\t\x12\x0f\n\x07project\x18\x03 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t"a\n\x15IamPolicySearchResult\x12\x10\n\x08resource\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x03 \x01(\t\x12%\n\x06policy\x18\x04 \x01(\x0b\x32\x15.google.iam.v1.PolicyB\xb4\x01\n com.google.cloud.asset.v1p1beta1B\nAssetProtoP\x01ZAgoogle.golang.org/genproto/googleapis/cloud/asset/v1p1beta1;asset\xf8\x01\x01\xaa\x02\x1cGoogle.Cloud.Asset.V1P1Beta1\xca\x02\x1cGoogle\\Cloud\\Asset\\V1p1beta1b\x06proto3' + ), + dependencies=[ + google_dot_iam_dot_v1_dot_policy__pb2.DESCRIPTOR, + google_dot_api_dot_annotations__pb2.DESCRIPTOR, + ], +) + + +_STANDARDRESOURCEMETADATA = _descriptor.Descriptor( + name="StandardResourceMetadata", + full_name="google.cloud.asset.v1p1beta1.StandardResourceMetadata", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="name", + full_name="google.cloud.asset.v1p1beta1.StandardResourceMetadata.name", + index=0, + number=1, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="asset_type", + full_name="google.cloud.asset.v1p1beta1.StandardResourceMetadata.asset_type", + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="project", + full_name="google.cloud.asset.v1p1beta1.StandardResourceMetadata.project", + index=2, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="display_name", + full_name="google.cloud.asset.v1p1beta1.StandardResourceMetadata.display_name", + index=3, + number=4, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="description", + full_name="google.cloud.asset.v1p1beta1.StandardResourceMetadata.description", + index=4, + number=5, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=139, + serialized_end=259, +) + + +_IAMPOLICYSEARCHRESULT = _descriptor.Descriptor( + name="IamPolicySearchResult", + full_name="google.cloud.asset.v1p1beta1.IamPolicySearchResult", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="resource", + full_name="google.cloud.asset.v1p1beta1.IamPolicySearchResult.resource", + index=0, + number=1, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="project", + full_name="google.cloud.asset.v1p1beta1.IamPolicySearchResult.project", + index=1, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + _descriptor.FieldDescriptor( + name="policy", + full_name="google.cloud.asset.v1p1beta1.IamPolicySearchResult.policy", + index=2, + number=4, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto3", + extension_ranges=[], + oneofs=[], + serialized_start=261, + serialized_end=358, +) + +_IAMPOLICYSEARCHRESULT.fields_by_name[ + "policy" +].message_type = ( + google_dot_iam_dot_v1_dot_policy__pb2.google_dot_iam_dot_v1_dot_policy__pb2._POLICY +) +DESCRIPTOR.message_types_by_name["StandardResourceMetadata"] = _STANDARDRESOURCEMETADATA +DESCRIPTOR.message_types_by_name["IamPolicySearchResult"] = _IAMPOLICYSEARCHRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +StandardResourceMetadata = _reflection.GeneratedProtocolMessageType( + "StandardResourceMetadata", + (_message.Message,), + dict( + DESCRIPTOR=_STANDARDRESOURCEMETADATA, + __module__="google.cloud.asset_v1p1beta1.proto.assets_pb2", + __doc__="""The standard metadata of a cloud resource. + + + Attributes: + name: + The full resource name. For example: ``//compute.googleapis.co + m/projects/my_project_123/zones/zone1/instances/instance1``. + See `Resource Names `__ for more information. + asset_type: + The type of this resource. For example: + "compute.googleapis.com/Disk". + project: + The project that this resource belongs to, in the form of + ``projects/{project_number}``. + display_name: + The display name of this resource. + description: + One or more paragraphs of text description of this resource. + Maximum length could be up to 1M bytes. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.StandardResourceMetadata) + ), +) +_sym_db.RegisterMessage(StandardResourceMetadata) + +IamPolicySearchResult = _reflection.GeneratedProtocolMessageType( + "IamPolicySearchResult", + (_message.Message,), + dict( + DESCRIPTOR=_IAMPOLICYSEARCHRESULT, + __module__="google.cloud.asset_v1p1beta1.proto.assets_pb2", + __doc__="""The result for a IAM Policy search. + + + Attributes: + resource: + The `full resource name `__ of the resource + associated with this IAM policy. + project: + The project that the associated GCP resource belongs to, in + the form of ``projects/{project_number}``. If an IAM policy is + set on a resource (like VM instance, Cloud Storage bucket), + the project field will indicate the project that contains the + resource. If an IAM policy is set on a folder or orgnization, + the project field will be empty. + policy: + Representation of the actual Cloud IAM policy set on a cloud + resource. For each resource, there must be at most one Cloud + IAM policy set on it. + """, + # @@protoc_insertion_point(class_scope:google.cloud.asset.v1p1beta1.IamPolicySearchResult) + ), +) +_sym_db.RegisterMessage(IamPolicySearchResult) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/asset/google/cloud/asset_v1p1beta1/proto/assets_pb2_grpc.py b/asset/google/cloud/asset_v1p1beta1/proto/assets_pb2_grpc.py new file mode 100644 index 000000000000..07cb78fe03a9 --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/proto/assets_pb2_grpc.py @@ -0,0 +1,2 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc diff --git a/asset/google/cloud/asset_v1p1beta1/types.py b/asset/google/cloud/asset_v1p1beta1/types.py new file mode 100644 index 000000000000..7d5c664071b3 --- /dev/null +++ b/asset/google/cloud/asset_v1p1beta1/types.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from __future__ import absolute_import +import sys + +from google.api_core.protobuf_helpers import get_messages + +from google.cloud.asset_v1p1beta1.proto import asset_service_pb2 +from google.cloud.asset_v1p1beta1.proto import assets_pb2 +from google.iam.v1 import policy_pb2 +from google.type import expr_pb2 + + +_shared_modules = [policy_pb2, expr_pb2] + +_local_modules = [asset_service_pb2, assets_pb2] + +names = [] + +for module in _shared_modules: # pragma: NO COVER + for name, message in get_messages(module).items(): + setattr(sys.modules[__name__], name, message) + names.append(name) +for module in _local_modules: + for name, message in get_messages(module).items(): + message.__module__ = "google.cloud.asset_v1p1beta1.types" + setattr(sys.modules[__name__], name, message) + names.append(name) + + +__all__ = tuple(sorted(names)) diff --git a/asset/setup.py b/asset/setup.py index c5404c124a2a..729b9d543a18 100644 --- a/asset/setup.py +++ b/asset/setup.py @@ -26,7 +26,7 @@ # 'Development Status :: 3 - Alpha' # 'Development Status :: 4 - Beta' # 'Development Status :: 5 - Production/Stable' -release_status = "Development Status :: 3 - Alpha" +release_status = "Development Status :: 4 - Beta" dependencies = [ "google-api-core[grpc] >= 1.14.0, < 2.0.0dev", 'enum34; python_version < "3.4"', diff --git a/asset/synth.metadata b/asset/synth.metadata index e7c80019f7c7..c71beede5b5a 100644 --- a/asset/synth.metadata +++ b/asset/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2020-01-03T13:12:07.522766Z", + "updateTime": "2020-01-24T20:52:19.363395Z", "sources": [ { "generator": { @@ -11,9 +11,9 @@ { "git": { "name": "googleapis", - "remote": "https://github.com/googleapis/googleapis.git", - "sha": "4d45a6399e9444fbddaeb1c86aabfde210723714", - "internalRef": "287908369" + "remote": "git@github.com:googleapis/googleapis.git", + "sha": "3c39a1d6e23c1ef63c7fba4019c25e76c40dfe19", + "internalRef": "291420695" } }, { @@ -45,6 +45,16 @@ "config": "google/cloud/asset/artman_cloudasset_v1p2beta1.yaml" } }, + { + "client": { + "source": "googleapis", + "apiName": "asset", + "apiVersion": "v1p1beta1", + "language": "python", + "generator": "gapic", + "config": "google/cloud/asset/v1p1beta1/artman_cloudasset_v1p1beta1.yaml" + } + }, { "client": { "source": "googleapis", @@ -57,3527 +67,227 @@ } ], "newFiles": [ - { - "path": "setup.cfg" - }, - { - "path": "synth.py" - }, { "path": "MANIFEST.in" }, - { - "path": ".repo-metadata.json" - }, { "path": ".flake8" }, - { - "path": "setup.py" - }, { "path": ".coveragerc" }, { - "path": "noxfile.py" + "path": "setup.cfg" }, { "path": "LICENSE" }, { - "path": "synth.metadata" - }, - { - "path": "README.rst" - }, - { - "path": "CHANGELOG.md" - }, - { - "path": ".nox/blacken/lib/python3.6/orig-prefix.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site.py" - }, - { - "path": ".nox/blacken/lib/python3.6/no-global-site-packages.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/easy_install.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blackd.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/lib2to3_ex.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/cli-64.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/py34compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/cli.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/gui.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/script.tmpl" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/version.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/site-patch.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/dist.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/gui-32.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/script (dev).tmpl" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/namespaces.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/wheel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/py31compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/cli-32.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/build_meta.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/archive_util.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/package_index.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/config.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/depends.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/py33compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/extension.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/launch.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/installer.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_imp.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/py27compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/monkey.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_deprecation_warning.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/dep_util.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/msvc.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/ssl_support.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/unicode_utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/windows_support.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/sandbox.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/errors.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/gui-64.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/glob.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/pyparsing.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/ordered_set.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/six.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/specifiers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/version.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/tags.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/_compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/_structures.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__about__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/requirements.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/markers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/_compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/_vendor/__pycache__/six.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/setopt.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/upload_docs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/bdist_rpm.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/install_scripts.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/launcher manifest.xml" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/dist_info.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/alias.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/develop.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/install.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/bdist_wininst.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/build_clib.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/sdist.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/bdist_egg.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/rotate.py" + "path": "docs/_static/custom.css" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/register.py" + "path": "docs/gapic/v1/api.rst" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/install_lib.py" + "path": "docs/gapic/v1/types.rst" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/build_ext.py" + "path": "docs/gapic/v1p2beta1/api.rst" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/py36compat.py" + "path": "docs/gapic/v1p2beta1/types.rst" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/install_egg_info.py" + "path": "docs/gapic/v1beta1/api.rst" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/egg_info.py" + "path": "docs/gapic/v1beta1/types.rst" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__init__.py" + "path": "docs/_templates/layout.html" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/upload.py" + "path": "google/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/test.py" + "path": "google/cloud/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/easy_install.py" + "path": "google/cloud/asset.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/saveopts.py" + "path": "google/cloud/asset_v1/types.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/build_py.py" + "path": "google/cloud/asset_v1/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/easy_install.cpython-36.pyc" + "path": "google/cloud/asset_v1/gapic/asset_service_client.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install.cpython-36.pyc" + "path": "google/cloud/asset_v1/gapic/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/alias.cpython-36.pyc" + "path": "google/cloud/asset_v1/gapic/enums.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-36.pyc" + "path": "google/cloud/asset_v1/gapic/asset_service_client_config.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install_lib.cpython-36.pyc" + "path": "google/cloud/asset_v1/gapic/transports/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/bdist_wininst.cpython-36.pyc" + "path": "google/cloud/asset_v1/gapic/transports/asset_service_grpc_transport.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/upload_docs.cpython-36.pyc" + "path": "google/cloud/asset_v1/proto/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/rotate.cpython-36.pyc" + "path": "google/cloud/asset_v1/proto/assets.proto" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/sdist.cpython-36.pyc" + "path": "google/cloud/asset_v1/proto/asset_service.proto" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/build_ext.cpython-36.pyc" + "path": "google/cloud/asset_v1/proto/asset_service_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/develop.cpython-36.pyc" + "path": "google/cloud/asset_v1/proto/assets_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/register.cpython-36.pyc" + "path": "google/cloud/asset_v1/proto/assets_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/test.cpython-36.pyc" + "path": "google/cloud/asset_v1/proto/asset_service_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/dist_info.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/types.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/egg_info.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install_scripts.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/gapic/asset_service_client.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/gapic/asset_service_client_config.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/setopt.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/gapic/transports/asset_service_grpc_transport.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/__init__.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/proto/asset_service_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/saveopts.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/proto/assets_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/py36compat.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/proto/assets_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-36.pyc" + "path": "google/cloud/asset_v1p1beta1/proto/asset_service_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/upload.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/types.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/build_py.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/build_clib.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/gapic/asset_service_client.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py31compat.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/gapic/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py27compat.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/gapic/enums.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/package_index.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/gapic/asset_service_client_config.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/dist.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/gapic/transports/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/gapic/transports/asset_service_grpc_transport.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py33compat.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/proto/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/extension.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/proto/assets.proto" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/version.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/proto/asset_service.proto" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/unicode_utils.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/proto/asset_service_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/installer.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/proto/assets_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/msvc.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/proto/assets_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/site-patch.cpython-36.pyc" + "path": "google/cloud/asset_v1p2beta1/proto/asset_service_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/namespaces.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/types.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/dep_util.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/glob.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/gapic/asset_service_client.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/launch.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/gapic/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/__init__.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/gapic/enums.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/monkey.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/gapic/asset_service_client_config.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/errors.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/gapic/transports/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/depends.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/gapic/transports/asset_service_grpc_transport.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py34compat.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/proto/__init__.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/_imp.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/proto/assets.proto" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/windows_support.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/proto/asset_service.proto" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/archive_util.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/proto/asset_service_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/config.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/proto/assets_pb2.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/sandbox.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/proto/assets_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/build_meta.cpython-36.pyc" + "path": "google/cloud/asset_v1beta1/proto/asset_service_pb2_grpc.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-36.pyc" + "path": "tests/unit/gapic/v1/test_asset_service_client_v1.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/ssl_support.cpython-36.pyc" + "path": "tests/unit/gapic/v1p1beta1/test_asset_service_client_v1p1beta1.py" }, { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/wheel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/extern/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/extern/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs-1.4.3.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs-1.4.3.dist-info/metadata.json" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs-1.4.3.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs-1.4.3.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs-1.4.3.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs-1.4.3.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/appdirs-1.4.3.dist-info/DESCRIPTION.rst" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/wheelfile.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__main__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/bdist_wheel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/pkginfo.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/metadata.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/pep425tags.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/util.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/pack.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/convert.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/unpack.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/__pycache__/pack.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/__pycache__/convert.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/cli/__pycache__/unpack.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/bdist_wheel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/metadata.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/pep425tags.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/__main__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/wheelfile.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/util.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel/__pycache__/pkginfo.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/metadata.json" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/DESCRIPTION.rst" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml-0.10.0.dist-info/LICENSE.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/PatternGrammar.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/Grammar.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pygram.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pytree.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/pgen.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/driver.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/grammar.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/tokenize.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/conv.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/token.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/literals.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/parse.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/token.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/driver.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/tokenize.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/pgen.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/grammar.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/literals.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/conv.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/pgen2/__pycache__/parse.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/__pycache__/pytree.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/blib2to3/__pycache__/pygram.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/dependency_links.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/zip-safe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/LICENSE" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools-44.0.0.dist-info/entry_points.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/formatting.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/parser.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/exceptions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/_bashcomplete.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/_unicodefun.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/_compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/testing.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/core.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/globals.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/termui.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/decorators.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/_winconsole.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/types.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/_termui_impl.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/_textwrap.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/core.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/_textwrap.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/testing.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/_winconsole.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/globals.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/parser.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/_termui_impl.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/types.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/formatting.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/_unicodefun.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/termui.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/_compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/exceptions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/decorators.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/click/__pycache__/_bashcomplete.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/encoder.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/decoder.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/ordered.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/tz.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/__pycache__/tz.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/__pycache__/encoder.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/__pycache__/decoder.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/toml/__pycache__/ordered.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip-19.3.1.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip-19.3.1.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip-19.3.1.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip-19.3.1.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip-19.3.1.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip-19.3.1.dist-info/LICENSE.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip-19.3.1.dist-info/entry_points.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/py31compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/pyparsing.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/appdirs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/six.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/specifiers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/version.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/_compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/_structures.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__about__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/requirements.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/markers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/_vendor/__pycache__/six.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/__pycache__/py31compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/extern/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black-19.3b0.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black-19.3b0.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black-19.3b0.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black-19.3b0.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black-19.3b0.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black-19.3b0.dist-info/LICENSE" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/black-19.3b0.dist-info/entry_points.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attrs-19.3.0.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attrs-19.3.0.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attrs-19.3.0.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attrs-19.3.0.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attrs-19.3.0.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attrs-19.3.0.dist-info/LICENSE" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/Click-7.0.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/Click-7.0.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/Click-7.0.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/Click-7.0.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/Click-7.0.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/Click-7.0.dist-info/LICENSE.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/__pycache__/easy_install.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/__pycache__/black.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/__pycache__/appdirs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/__pycache__/toml.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/__pycache__/blackd.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/exceptions.pyi" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/validators.pyi" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/filters.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/_make.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/py.typed" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/exceptions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/_compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/converters.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/_config.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/_version_info.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__init__.pyi" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/filters.pyi" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/_funcs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/_version_info.pyi" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/validators.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/converters.pyi" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/_make.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/_config.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/_compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/validators.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/exceptions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/converters.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/_funcs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/_version_info.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/attr/__pycache__/filters.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel-0.33.6.dist-info/WHEEL" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel-0.33.6.dist-info/METADATA" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel-0.33.6.dist-info/RECORD" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel-0.33.6.dist-info/top_level.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel-0.33.6.dist-info/INSTALLER" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel-0.33.6.dist-info/LICENSE.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/wheel-0.33.6.dist-info/entry_points.txt" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/__main__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pyparsing.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distro.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/appdirs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/ipaddress.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/contextlib2.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/six.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/retrying.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/response.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/filepost.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/poolmanager.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/exceptions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/fields.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/connectionpool.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/request.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/connection.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/six.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/securetransport.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/socks.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/appengine.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/url.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/response.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/queue.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/timeout.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/wait.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/retry.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/ssl_.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/request.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/connection.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/winterm.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/ansitowin32.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/initialise.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/ansi.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/win32.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/_version.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/exceptions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/fallback.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/certifi/cacert.pem" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/certifi/__main__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/certifi/core.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/certifi/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/specifiers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/version.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/tags.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/_compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/_structures.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__about__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/markers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/_compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/parser.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/core.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/test.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/writer.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/__pycache__/writer.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/__pycache__/core.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/__pycache__/utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/__pycache__/test.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/__pycache__/parser.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pytoml/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/structures.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/help.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/hooks.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/_internal_utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/adapters.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/status_codes.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/models.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/exceptions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__version__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/auth.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/certs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/packages.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/cookies.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/api.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/help.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/api.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/models.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/_cmd.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/filewrapper.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/controller.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/wrapper.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/cache.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/heuristics.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/serialize.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/adapter.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/caches/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/package_data.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/codec.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/uts46data.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/core.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/intranges.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/idnadata.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/core.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pkg_resources/py31compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/gb2312prober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/euctwprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/euckrfreq.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/eucjpprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/sbcharsetprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/version.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/mbcsgroupprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/jisfreq.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/big5prober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/escprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/utf8prober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/chardistribution.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/enums.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/langbulgarianmodel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/cp949prober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/langthaimodel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/langgreekmodel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/charsetgroupprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/langcyrillicmodel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/jpcntx.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/euctwfreq.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/hebrewprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/langturkishmodel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/langhungarianmodel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/gb2312freq.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/big5freq.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/langhebrewmodel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/charsetprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/sbcsgroupprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/latin1prober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/sjisprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/mbcssm.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/escsm.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/euckrprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/universaldetector.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/codingstatemachine.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/mbcharsetprober.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/cli/chardetect.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/cli/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langcyrillicmodel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/database.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/t32.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/manifest.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/w32.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/w64.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/locators.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/version.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/wheel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/index.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/scripts.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/metadata.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/resources.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/markers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/util.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/t64.exe" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/shutil.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/tarfile.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/sysconfig.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/misc.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/envbuild.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/colorlog.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/wrappers.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/dirtools.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/meta.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/build.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/check.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/_in_process.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/appdirs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/ipaddress.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/retrying.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/distro.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/six.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/__pycache__/contextlib2.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/tests.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/mklabels.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/x_user_defined.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/labels.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/serializer.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_tokenizer.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/html5parser.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/constants.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_utils.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_ihatexml.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_inputstream.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/dom.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/base.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/etree.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/sax.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/py.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/datrie.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/_base.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/_trie/__pycache__/datrie.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/dom.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/base.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/etree.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/base.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/sanitizer.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/whitespace.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/lint.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/optionaltags.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/spinner.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/bar.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/counter.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/wheel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/configuration.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/index.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/exceptions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/main.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/locations.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cache.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/self_outdated_check.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/collector.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/pyproject.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/legacy_resolve.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/build_env.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/pep425tags.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/download.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/autocompletion.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/main_parser.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/parser.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/cmdoptions.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/status_codes.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/command_context.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/base_command.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/req_command.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/parser.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/req_tracker.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/constructors.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/req_uninstall.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/req_file.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/req_set.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/req_install.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__pycache__/req_set.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__pycache__/req_file.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__pycache__/req_install.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/req/__pycache__/constructors.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/help.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/wheel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/install.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/configuration.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/show.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/hash.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/search.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/list.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/completion.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/freeze.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/debug.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/uninstall.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/download.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/check.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/install.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/help.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/list.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/search.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/completion.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/download.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/check.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/show.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/debug.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/commands/__pycache__/hash.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/versioncontrol.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/mercurial.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/subversion.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/bazaar.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/git.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/__pycache__/git.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/link.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/selection_prefs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/index.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/search_scope.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/target_python.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/candidate.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/format_control.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/link.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/candidate.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/format_control.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/target_python.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/models/__pycache__/index.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/freeze.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/prepare.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/generate_metadata.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/check.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/__pycache__/generate_metadata.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/operations/__pycache__/check.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/marker_files.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/packaging.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/glibc.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/filetypes.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/misc.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/appdirs.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/deprecation.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/typing.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/encoding.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/models.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/temp_dir.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/hashes.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/filesystem.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/unpacking.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/setuptools_build.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/urls.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/inject_securetransport.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/logging.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/ui.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/subprocess.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/virtualenv.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/misc.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/typing.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/urls.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/ui.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/logging.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/marker_files.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/models.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/utils/__pycache__/compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/session.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/cache.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/auth.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/xmlrpc.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/__pycache__/auth.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/__pycache__/cache.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/network/__pycache__/session.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/legacy_resolve.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/pyproject.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/pep425tags.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/cache.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/locations.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/build_env.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/configuration.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/download.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/index.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/collector.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/exceptions.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/main.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/__pycache__/wheel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/base.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/wheel.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/installed.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/source/legacy.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/source/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/source/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/source/__pycache__/legacy.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/__pycache__/base.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/__pycache__/__main__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/pip/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/bisect.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/ntpath.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/tarfile.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/struct.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/token.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/fnmatch.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/locale.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/genericpath.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/__future__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/tokenize.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/stat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/warnings.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/linecache.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/tempfile.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/codecs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/_weakrefset.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/sre_parse.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/types.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/sre_constants.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/shutil.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/keyword.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/reprlib.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/abc.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/functools.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/hashlib.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/site.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/re.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/copy.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/_collections_abc.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/operator.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/io.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/heapq.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/weakref.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/os.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/random.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/base64.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/copyreg.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/posixpath.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/_bootlocale.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/sre_compile.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/enum.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/__pycache__/hmac.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/distutils/distutils.cfg" - }, - { - "path": ".nox/blacken/lib/python3.6/distutils/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/distutils/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/bin/blackd" - }, - { - "path": ".nox/blacken/bin/python3" - }, - { - "path": ".nox/blacken/bin/wheel" - }, - { - "path": ".nox/blacken/bin/python3.6" - }, - { - "path": ".nox/blacken/bin/activate_this.py" - }, - { - "path": ".nox/blacken/bin/activate.csh" - }, - { - "path": ".nox/blacken/bin/python-config" - }, - { - "path": ".nox/blacken/bin/black" - }, - { - "path": ".nox/blacken/bin/activate.ps1" - }, - { - "path": ".nox/blacken/bin/pip3.6" - }, - { - "path": ".nox/blacken/bin/activate.xsh" - }, - { - "path": ".nox/blacken/bin/activate.fish" - }, - { - "path": ".nox/blacken/bin/python" - }, - { - "path": ".nox/blacken/bin/activate" - }, - { - "path": ".nox/blacken/bin/easy_install-3.6" - }, - { - "path": ".nox/blacken/bin/easy_install" - }, - { - "path": ".nox/blacken/bin/pip3" - }, - { - "path": ".nox/blacken/bin/pip" - }, - { - "path": "tests/system/test_vpcsc.py" - }, - { - "path": "tests/unit/gapic/v1/test_asset_service_client_v1.py" - }, - { - "path": "tests/unit/gapic/v1p2beta1/test_asset_service_client_v1p2beta1.py" + "path": "tests/unit/gapic/v1p2beta1/test_asset_service_client_v1p2beta1.py" }, { "path": "tests/unit/gapic/v1beta1/test_asset_service_client_v1beta1.py" - }, - { - "path": "google/__init__.py" - }, - { - "path": "google/cloud/asset.py" - }, - { - "path": "google/cloud/__init__.py" - }, - { - "path": "google/cloud/asset_v1/__init__.py" - }, - { - "path": "google/cloud/asset_v1/types.py" - }, - { - "path": "google/cloud/asset_v1/gapic/enums.py" - }, - { - "path": "google/cloud/asset_v1/gapic/__init__.py" - }, - { - "path": "google/cloud/asset_v1/gapic/asset_service_client.py" - }, - { - "path": "google/cloud/asset_v1/gapic/asset_service_client_config.py" - }, - { - "path": "google/cloud/asset_v1/gapic/transports/asset_service_grpc_transport.py" - }, - { - "path": "google/cloud/asset_v1/gapic/transports/__init__.py" - }, - { - "path": "google/cloud/asset_v1/proto/asset_service.proto" - }, - { - "path": "google/cloud/asset_v1/proto/assets.proto" - }, - { - "path": "google/cloud/asset_v1/proto/assets_pb2.py" - }, - { - "path": "google/cloud/asset_v1/proto/asset_service_pb2.py" - }, - { - "path": "google/cloud/asset_v1/proto/assets_pb2_grpc.py" - }, - { - "path": "google/cloud/asset_v1/proto/__init__.py" - }, - { - "path": "google/cloud/asset_v1/proto/asset_service_pb2_grpc.py" - }, - { - "path": "google/cloud/asset_v1beta1/__init__.py" - }, - { - "path": "google/cloud/asset_v1beta1/types.py" - }, - { - "path": "google/cloud/asset_v1beta1/gapic/enums.py" - }, - { - "path": "google/cloud/asset_v1beta1/gapic/__init__.py" - }, - { - "path": "google/cloud/asset_v1beta1/gapic/asset_service_client.py" - }, - { - "path": "google/cloud/asset_v1beta1/gapic/asset_service_client_config.py" - }, - { - "path": "google/cloud/asset_v1beta1/gapic/transports/asset_service_grpc_transport.py" - }, - { - "path": "google/cloud/asset_v1beta1/gapic/transports/__init__.py" - }, - { - "path": "google/cloud/asset_v1beta1/proto/asset_service.proto" - }, - { - "path": "google/cloud/asset_v1beta1/proto/assets.proto" - }, - { - "path": "google/cloud/asset_v1beta1/proto/assets_pb2.py" - }, - { - "path": "google/cloud/asset_v1beta1/proto/asset_service_pb2.py" - }, - { - "path": "google/cloud/asset_v1beta1/proto/assets_pb2_grpc.py" - }, - { - "path": "google/cloud/asset_v1beta1/proto/__init__.py" - }, - { - "path": "google/cloud/asset_v1beta1/proto/asset_service_pb2_grpc.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/__init__.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/types.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/gapic/enums.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/gapic/__init__.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/gapic/asset_service_client.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/gapic/asset_service_client_config.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/gapic/transports/asset_service_grpc_transport.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/gapic/transports/__init__.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/proto/asset_service.proto" - }, - { - "path": "google/cloud/asset_v1p2beta1/proto/assets.proto" - }, - { - "path": "google/cloud/asset_v1p2beta1/proto/assets_pb2.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/proto/asset_service_pb2.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/proto/assets_pb2_grpc.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/proto/__init__.py" - }, - { - "path": "google/cloud/asset_v1p2beta1/proto/asset_service_pb2_grpc.py" - }, - { - "path": "google/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": "__pycache__/synth.cpython-36.pyc" - }, - { - "path": "__pycache__/noxfile.cpython-36.pyc" - }, - { - "path": "docs/conf.py" - }, - { - "path": "docs/changelog.md" - }, - { - "path": "docs/index.rst" - }, - { - "path": "docs/README.rst" - }, - { - "path": "docs/_static/custom.css" - }, - { - "path": "docs/_templates/layout.html" - }, - { - "path": "docs/gapic/v1/types.rst" - }, - { - "path": "docs/gapic/v1/api.rst" - }, - { - "path": "docs/gapic/v1p2beta1/types.rst" - }, - { - "path": "docs/gapic/v1p2beta1/api.rst" - }, - { - "path": "docs/gapic/v1beta1/types.rst" - }, - { - "path": "docs/gapic/v1beta1/api.rst" } ] } \ No newline at end of file diff --git a/asset/synth.py b/asset/synth.py index d3175bcacdae..e6a0077c4a2f 100644 --- a/asset/synth.py +++ b/asset/synth.py @@ -19,7 +19,7 @@ gapic = gcp.GAPICGenerator() common = gcp.CommonTemplates() -versions = ["v1beta1", "v1p2beta1", "v1"] +versions = ["v1beta1", "v1p2beta1", "v1p1beta1", "v1"] excludes = ["setup.py", "nox*.py", "README.rst", "docs/conf.py", "docs/index.rst"] @@ -27,11 +27,17 @@ # Generate asset GAPIC layer # ---------------------------------------------------------------------------- for version in versions: + if version == "v1p1beta1": + config_path = "/google/cloud/asset/v1p1beta1/artman_cloudasset_v1p1beta1.yaml" + artman_output_name = f"cloudasset-{version}" + else: + config_path = f"/google/cloud/asset/artman_cloudasset_{version}.yaml" + artman_output_name=f"asset-{version}" library = gapic.py_library( "asset", version, - config_path=f"/google/cloud/asset/artman_cloudasset_{version}.yaml", - artman_output_name=f"asset-{version}", + config_path=config_path, + artman_output_name=artman_output_name, include_protos=True, ) @@ -53,12 +59,21 @@ s.replace( "google/cloud/asset_v*/proto/assets_pb2.py", - "_ASSET.fields_by_name\['iam_policy'\].message_type " - "= google_dot_iam_dot_v1_dot_policy__pb2._POLICY", + "_ASSET\.fields_by_name\['iam_policy'\]\.message_type " + "= google_dot_iam_dot_v1_dot_policy__pb2\._POLICY", "_ASSET.fields_by_name['iam_policy'].message_type = google_dot_iam_dot" "_v1_dot_policy__pb2.google_dot_iam_dot_v1_dot_policy__pb2._POLICY", ) +s.replace( + "google/cloud/asset_v*/proto/assets_pb2.py", + "_IAMPOLICYSEARCHRESULT\.fields_by_name\['policy'\]\.message_type " + "= google_dot_iam_dot_v1_dot_policy__pb2\._POLICY", + "_IAMPOLICYSEARCHRESULT.fields_by_name['policy'].message_type = google_dot_iam_dot" + "_v1_dot_policy__pb2.google_dot_iam_dot_v1_dot_policy__pb2._POLICY", +) + + _BORKED_ASSET_DOCSTRING = """\ The full name of the asset. For example: ``//compute.googleapi @@ -80,6 +95,11 @@ _FIXED_ASSET_DOCSTRING, ) +s.replace( + "google/cloud/**/asset_service_client.py", + "google-cloud-cloudasset", + "google-cloud-asset" +) # Fix docstrings with no summary line s.replace( "google/cloud/**/proto/*_pb2.py", diff --git a/asset/tests/unit/gapic/v1p1beta1/test_asset_service_client_v1p1beta1.py b/asset/tests/unit/gapic/v1p1beta1/test_asset_service_client_v1p1beta1.py new file mode 100644 index 000000000000..04a649fdf0d8 --- /dev/null +++ b/asset/tests/unit/gapic/v1p1beta1/test_asset_service_client_v1p1beta1.py @@ -0,0 +1,242 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Unit tests.""" + +import mock +import pytest + +from google.cloud import asset_v1p1beta1 +from google.cloud.asset_v1p1beta1.proto import asset_service_pb2 +from google.cloud.asset_v1p1beta1.proto import assets_pb2 + + +class MultiCallableStub(object): + """Stub for the grpc.UnaryUnaryMultiCallable interface.""" + + def __init__(self, method, channel_stub): + self.method = method + self.channel_stub = channel_stub + + def __call__(self, request, timeout=None, metadata=None, credentials=None): + self.channel_stub.requests.append((self.method, request)) + + response = None + if self.channel_stub.responses: + response = self.channel_stub.responses.pop() + + if isinstance(response, Exception): + raise response + + if response: + return response + + +class ChannelStub(object): + """Stub for the grpc.Channel interface.""" + + def __init__(self, responses=[]): + self.responses = responses + self.requests = [] + + def unary_unary(self, method, request_serializer=None, response_deserializer=None): + return MultiCallableStub(method, self) + + +class CustomException(Exception): + pass + + +class TestAssetServiceClient(object): + def test_search_resources(self): + # Setup Expected Response + next_page_token = "" + results_element = {} + results = [results_element] + expected_response = {"next_page_token": next_page_token, "results": results} + expected_response = asset_service_pb2.SearchResourcesResponse( + **expected_response + ) + + # Mock the API response + channel = ChannelStub(responses=[expected_response]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup Request + scope = "scope109264468" + + paged_list_response = client.search_resources(scope) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.results[0] == resources[0] + + assert len(channel.requests) == 1 + expected_request = asset_service_pb2.SearchResourcesRequest(scope=scope) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_search_resources_exception(self): + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup request + scope = "scope109264468" + + paged_list_response = client.search_resources(scope) + with pytest.raises(CustomException): + list(paged_list_response) + + def test_search_iam_policies(self): + # Setup Expected Response + next_page_token = "" + results_element = {} + results = [results_element] + expected_response = {"next_page_token": next_page_token, "results": results} + expected_response = asset_service_pb2.SearchIamPoliciesResponse( + **expected_response + ) + + # Mock the API response + channel = ChannelStub(responses=[expected_response]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup Request + scope = "scope109264468" + + paged_list_response = client.search_iam_policies(scope) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.results[0] == resources[0] + + assert len(channel.requests) == 1 + expected_request = asset_service_pb2.SearchIamPoliciesRequest(scope=scope) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_search_iam_policies_exception(self): + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup request + scope = "scope109264468" + + paged_list_response = client.search_iam_policies(scope) + with pytest.raises(CustomException): + list(paged_list_response) + + def test_search_all_resources(self): + # Setup Expected Response + next_page_token = "" + results_element = {} + results = [results_element] + expected_response = {"next_page_token": next_page_token, "results": results} + expected_response = asset_service_pb2.SearchAllResourcesResponse( + **expected_response + ) + + # Mock the API response + channel = ChannelStub(responses=[expected_response]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup Request + scope = "scope109264468" + + paged_list_response = client.search_all_resources(scope) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.results[0] == resources[0] + + assert len(channel.requests) == 1 + expected_request = asset_service_pb2.SearchAllResourcesRequest(scope=scope) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_search_all_resources_exception(self): + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup request + scope = "scope109264468" + + paged_list_response = client.search_all_resources(scope) + with pytest.raises(CustomException): + list(paged_list_response) + + def test_search_all_iam_policies(self): + # Setup Expected Response + next_page_token = "" + results_element = {} + results = [results_element] + expected_response = {"next_page_token": next_page_token, "results": results} + expected_response = asset_service_pb2.SearchAllIamPoliciesResponse( + **expected_response + ) + + # Mock the API response + channel = ChannelStub(responses=[expected_response]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup Request + scope = "scope109264468" + + paged_list_response = client.search_all_iam_policies(scope) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.results[0] == resources[0] + + assert len(channel.requests) == 1 + expected_request = asset_service_pb2.SearchAllIamPoliciesRequest(scope=scope) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_search_all_iam_policies_exception(self): + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = asset_v1p1beta1.AssetServiceClient() + + # Setup request + scope = "scope109264468" + + paged_list_response = client.search_all_iam_policies(scope) + with pytest.raises(CustomException): + list(paged_list_response)