diff --git a/datalabeling/google/__init__.py b/datalabeling/google/__init__.py index 8fcc60e2b9c6..9a1b64a6d586 100644 --- a/datalabeling/google/__init__.py +++ b/datalabeling/google/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/datalabeling/google/cloud/__init__.py b/datalabeling/google/cloud/__init__.py index 8fcc60e2b9c6..9a1b64a6d586 100644 --- a/datalabeling/google/cloud/__init__.py +++ b/datalabeling/google/cloud/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/datalabeling/google/cloud/datalabeling.py b/datalabeling/google/cloud/datalabeling.py index f852ea6c3b1a..d4b9c191eecc 100644 --- a/datalabeling/google/cloud/datalabeling.py +++ b/datalabeling/google/cloud/datalabeling.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client.py b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client.py index c4de47d05a63..31f5785a783d 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -726,9 +726,7 @@ def export_data( >>> client = datalabeling_v1beta1.DataLabelingServiceClient() >>> >>> name = client.dataset_path('[PROJECT]', '[DATASET]') - >>> - >>> # TODO: Initialize `annotated_dataset`: - >>> annotated_dataset = '' + >>> annotated_dataset = client.annotated_dataset_path('[PROJECT]', '[DATASET]', '[ANNOTATED_DATASET]') >>> >>> # TODO: Initialize `output_config`: >>> output_config = {} @@ -1174,6 +1172,74 @@ def list_annotated_datasets( ) return iterator + def delete_annotated_dataset( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Deletes an annotated dataset by resource name. + + Example: + >>> from google.cloud import datalabeling_v1beta1 + >>> + >>> client = datalabeling_v1beta1.DataLabelingServiceClient() + >>> + >>> name = client.annotated_dataset_path('[PROJECT]', '[DATASET]', '[ANNOTATED_DATASET]') + >>> + >>> client.delete_annotated_dataset(name) + + Args: + name (str): Required. Name of the annotated dataset to delete, format: + projects/{project\_id}/datasets/{dataset\_id}/annotatedDatasets/ + {annotated\_dataset\_id} + 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. + + 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 "delete_annotated_dataset" not in self._inner_api_calls: + self._inner_api_calls[ + "delete_annotated_dataset" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_annotated_dataset, + default_retry=self._method_configs["DeleteAnnotatedDataset"].retry, + default_timeout=self._method_configs["DeleteAnnotatedDataset"].timeout, + client_info=self._client_info, + ) + + request = data_labeling_service_pb2.DeleteAnnotatedDatasetRequest(name=name) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [("name", name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( + routing_header + ) + metadata.append(routing_metadata) + + self._inner_api_calls["delete_annotated_dataset"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + def label_image( self, parent, @@ -2442,7 +2508,8 @@ def get_evaluation( metadata=None, ): """ - Gets an evaluation by resource name. + Gets an evaluation by resource name (to search, use + ``projects.evaluations.search``). Example: >>> from google.cloud import datalabeling_v1beta1 @@ -2455,7 +2522,8 @@ def get_evaluation( Args: name (str): Required. Name of the evaluation. Format: - 'projects/{project\_id}/datasets/{dataset\_id}/evaluations/{evaluation\_id}' + + "projects/{project\_id}/datasets/{dataset\_id}/evaluations/{evaluation\_id}' 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. @@ -2507,28 +2575,24 @@ def get_evaluation( def search_evaluations( self, parent, - filter_, + filter_=None, page_size=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Searchs evaluations within a project. Supported filter: evaluation\_job, - evaluation\_time. + Searches ``evaluations`` within a project. Example: >>> from google.cloud import datalabeling_v1beta1 >>> >>> client = datalabeling_v1beta1.DataLabelingServiceClient() >>> - >>> parent = client.project_path('[PROJECT]') - >>> - >>> # TODO: Initialize `filter_`: - >>> filter_ = '' + >>> parent = client.evaluation_path('[PROJECT]', '[DATASET]', '[EVALUATION]') >>> >>> # Iterate over all results - >>> for element in client.search_evaluations(parent, filter_): + >>> for element in client.search_evaluations(parent): ... # process element ... pass >>> @@ -2536,17 +2600,36 @@ def search_evaluations( >>> # Alternatively: >>> >>> # Iterate over results one page at a time - >>> for page in client.search_evaluations(parent, filter_).pages: + >>> for page in client.search_evaluations(parent).pages: ... for element in page: ... # process element ... pass Args: - parent (str): Required. Evaluation search parent. Format: projects/{project\_id} - filter_ (str): Optional. Support filtering by model id, job state, start and end time. - Format: "evaluation\_job.evaluation\_job\_id = {evaluation\_job\_id} AND - evaluation\_job.evaluation\_job\_run\_time\_start = {timestamp} AND - evaluation\_job.evaluation\_job\_run\_time\_end = {timestamp} AND + parent (str): Required. Evaluation search parent (project ID). Format: + "projects/{project\_id}" + filter_ (str): Optional. To search evaluations, you can filter by the following: + + - evaluation\_job.evaluation\_job\_id (the last part of + ``EvaluationJob.name``) + - evaluation\_job.model\_id (the {model\_name} portion of + ``EvaluationJob.modelVersion``) + - evaluation\_job.evaluation\_job\_run\_time\_start (Minimum threshold + for the ``evaluationJobRunTime`` that created the evaluation) + - evaluation\_job.evaluation\_job\_run\_time\_end (Maximum threshold + for the ``evaluationJobRunTime`` that created the evaluation) + - evaluation\_job.job\_state (``EvaluationJob.state``) + - annotation\_spec.display\_name (the Evaluation contains a metric for + the annotation spec with this ``displayName``) + + To filter by multiple critiera, use the ``AND`` operator or the ``OR`` + operator. The following examples shows a string that filters by several + critiera: + + "evaluation\ *job.evaluation\_job\_id = {evaluation\_job\_id} AND + evaluation*\ job.model\_id = {model\_name} AND + evaluation\ *job.evaluation\_job\_run\_time\_start = {timestamp\_1} AND + evaluation*\ job.evaluation\_job\_run\_time\_end = {timestamp\_2} AND annotation\_spec.display\_name = {display\_name}" page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- @@ -2626,9 +2709,9 @@ def search_example_comparisons( metadata=None, ): """ - Searchs example comparisons in evaluation, in format of examples - of both ground truth and prediction(s). It is represented as a search with - evaluation id. + Searches example comparisons from an evaluation. The return format is a + list of example comparisons that show ground truth and prediction(s) for + a single input. Search by providing an evaluation ID. Example: >>> from google.cloud import datalabeling_v1beta1 @@ -2652,9 +2735,10 @@ def search_example_comparisons( ... pass Args: - parent (str): Required. Name of the Evaluation resource to search example comparison - from. Format: - projects/{project\_id}/datasets/{dataset\_id}/evaluations/{evaluation\_id} + parent (str): Required. Name of the ``Evaluation`` resource to search for example + comparisons from. Format: + + "projects/{project\_id}/datasets/{dataset\_id}/evaluations/{evaluation\_id}" 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 @@ -2750,8 +2834,8 @@ def create_evaluation_job( >>> response = client.create_evaluation_job(parent, job) Args: - parent (str): Required. Evaluation job resource parent, format: - projects/{project\_id}. + parent (str): Required. Evaluation job resource parent. Format: + "projects/{project\_id}" job (Union[dict, ~google.cloud.datalabeling_v1beta1.types.EvaluationJob]): Required. The evaluation job to create. If a dict is provided, it must be of the same form as the protobuf @@ -2809,13 +2893,18 @@ def create_evaluation_job( def update_evaluation_job( self, evaluation_job, - update_mask, + update_mask=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Updates an evaluation job. + Updates an evaluation job. You can only update certain fields of the + job's ``EvaluationJobConfig``: ``humanAnnotationConfig.instruction``, + ``exampleCount``, and ``exampleSamplePercentage``. + + If you want to change any other aspect of the evaluation job, you must + delete the job and create a new one. Example: >>> from google.cloud import datalabeling_v1beta1 @@ -2825,17 +2914,22 @@ def update_evaluation_job( >>> # TODO: Initialize `evaluation_job`: >>> evaluation_job = {} >>> - >>> # TODO: Initialize `update_mask`: - >>> update_mask = {} - >>> - >>> response = client.update_evaluation_job(evaluation_job, update_mask) + >>> response = client.update_evaluation_job(evaluation_job) Args: evaluation_job (Union[dict, ~google.cloud.datalabeling_v1beta1.types.EvaluationJob]): Required. Evaluation job that is going to be updated. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datalabeling_v1beta1.types.EvaluationJob` - update_mask (Union[dict, ~google.cloud.datalabeling_v1beta1.types.FieldMask]): Optional. Mask for which field in evaluation\_job should be updated. + update_mask (Union[dict, ~google.cloud.datalabeling_v1beta1.types.FieldMask]): Optional. Mask for which fields to update. You can only provide the + following fields: + + - ``evaluationJobConfig.humanAnnotationConfig.instruction`` + - ``evaluationJobConfig.exampleCount`` + - ``evaluationJobConfig.exampleSamplePercentage`` + + You can provide more than one of these fields by separating them with + commas. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datalabeling_v1beta1.types.FieldMask` @@ -2910,7 +3004,8 @@ def get_evaluation_job( Args: name (str): Required. Name of the evaluation job. Format: - 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" 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. @@ -2967,8 +3062,8 @@ def pause_evaluation_job( metadata=None, ): """ - Pauses an evaluation job. Pausing a evaluation job that is already in - PAUSED state will be a no-op. + Pauses an evaluation job. Pausing an evaluation job that is already in a + ``PAUSED`` state is a no-op. Example: >>> from google.cloud import datalabeling_v1beta1 @@ -2981,7 +3076,8 @@ def pause_evaluation_job( Args: name (str): Required. Name of the evaluation job that is going to be paused. Format: - 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" 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. @@ -3035,8 +3131,8 @@ def resume_evaluation_job( metadata=None, ): """ - Resumes a paused evaluation job. Deleted evaluation job can't be resumed. - Resuming a running evaluation job will be a no-op. + Resumes a paused evaluation job. A deleted evaluation job can't be resumed. + Resuming a running or scheduled evaluation job is a no-op. Example: >>> from google.cloud import datalabeling_v1beta1 @@ -3049,7 +3145,9 @@ def resume_evaluation_job( Args: name (str): Required. Name of the evaluation job that is going to be resumed. - Format: 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + Format: + + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" 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. @@ -3116,7 +3214,9 @@ def delete_evaluation_job( Args: name (str): Required. Name of the evaluation job that is going to be deleted. - Format: 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + Format: + + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" 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. @@ -3165,7 +3265,7 @@ def delete_evaluation_job( def list_evaluation_jobs( self, parent, - filter_, + filter_=None, page_size=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, @@ -3182,11 +3282,8 @@ def list_evaluation_jobs( >>> >>> parent = client.project_path('[PROJECT]') >>> - >>> # TODO: Initialize `filter_`: - >>> filter_ = '' - >>> >>> # Iterate over all results - >>> for element in client.list_evaluation_jobs(parent, filter_): + >>> for element in client.list_evaluation_jobs(parent): ... # process element ... pass >>> @@ -3194,16 +3291,21 @@ def list_evaluation_jobs( >>> # Alternatively: >>> >>> # Iterate over results one page at a time - >>> for page in client.list_evaluation_jobs(parent, filter_).pages: + >>> for page in client.list_evaluation_jobs(parent).pages: ... for element in page: ... # process element ... pass Args: - parent (str): Required. Evaluation resource parent. Format: "projects/{project\_id}" - filter_ (str): Optional. Only support filter by model id and job state. Format: - "evaluation\_job.model\_id = {model\_id} AND evaluation\_job.state = - {EvaluationJob::State}" + parent (str): Required. Evaluation job resource parent. Format: + "projects/{project\_id}" + filter_ (str): Optional. You can filter the jobs to list by model\_id (also known as + model\_name, as described in ``EvaluationJob.modelVersion``) or by + evaluation job state (as described in ``EvaluationJob.state``). To + filter by both criteria, use the ``AND`` operator or the ``OR`` + operator. For example, you can use the following string for your filter: + "evaluation\ *job.model\_id = {model\_name} AND evaluation*\ job.state = + {evaluation\_job\_state}" 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 @@ -3272,69 +3374,3 @@ def list_evaluation_jobs( response_token_field="next_page_token", ) return iterator - - def delete_annotated_dataset( - self, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None, - ): - """ - Deletes an annotated dataset by resource name. - - Example: - >>> from google.cloud import datalabeling_v1beta1 - >>> - >>> client = datalabeling_v1beta1.DataLabelingServiceClient() - >>> - >>> client.delete_annotated_dataset() - - Args: - name (str): Required. Name of the annotated dataset to delete, format: - projects/{project\_id}/datasets/{dataset\_id}/annotatedDatasets/ - {annotated\_dataset\_id} - 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. - - 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 "delete_annotated_dataset" not in self._inner_api_calls: - self._inner_api_calls[ - "delete_annotated_dataset" - ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_annotated_dataset, - default_retry=self._method_configs["DeleteAnnotatedDataset"].retry, - default_timeout=self._method_configs["DeleteAnnotatedDataset"].timeout, - client_info=self._client_info, - ) - - request = data_labeling_service_pb2.DeleteAnnotatedDatasetRequest(name=name) - if metadata is None: - metadata = [] - metadata = list(metadata) - try: - routing_header = [("name", name)] - except AttributeError: - pass - else: - routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header - ) - metadata.append(routing_metadata) - - self._inner_api_calls["delete_annotated_dataset"]( - request, retry=retry, timeout=timeout, metadata=metadata - ) diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client_config.py b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client_config.py index 2c22921218c2..54d9359b93ce 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client_config.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client_config.py @@ -9,127 +9,132 @@ "default": { "initial_retry_delay_millis": 100, "retry_delay_multiplier": 1.3, - "max_retry_delay_millis": 30000, + "max_retry_delay_millis": 60000, "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 300000, + "total_timeout_millis": 600000, } }, "methods": { "CreateDataset": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "GetDataset": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "ListDatasets": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "DeleteDataset": { - "timeout_millis": 30000, - "retry_codes_name": "idempotent", + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "ImportData": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "ExportData": { - "timeout_millis": 30000, - "retry_codes_name": "idempotent", + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "GetDataItem": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "ListDataItems": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "GetAnnotatedDataset": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "ListAnnotatedDatasets": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, + "DeleteAnnotatedDataset": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default", + }, "LabelImage": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "LabelVideo": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "LabelText": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "GetExample": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "ListExamples": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "CreateAnnotationSpecSet": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "GetAnnotationSpecSet": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "ListAnnotationSpecSets": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "DeleteAnnotationSpecSet": { - "timeout_millis": 30000, - "retry_codes_name": "idempotent", + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "CreateInstruction": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "GetInstruction": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "ListInstructions": { - "timeout_millis": 30000, + "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, "DeleteInstruction": { - "timeout_millis": 30000, - "retry_codes_name": "idempotent", + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "GetEvaluation": { @@ -174,7 +179,7 @@ }, "DeleteEvaluationJob": { "timeout_millis": 60000, - "retry_codes_name": "idempotent", + "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "ListEvaluationJobs": { @@ -182,11 +187,6 @@ "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "DeleteAnnotatedDataset": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default", - }, }, } } diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/enums.py b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/enums.py index c066882020ac..2a782589734f 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/enums.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/enums.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -34,7 +34,8 @@ class AnnotationSentiment(enum.IntEnum): class AnnotationSource(enum.IntEnum): """ - Specifies where is the answer from. + Specifies where the annotation comes from (whether it was provided by a + human labeler or a different source). Attributes: ANNOTATION_SOURCE_UNSPECIFIED (int) @@ -49,8 +50,9 @@ class AnnotationType(enum.IntEnum): """ Attributes: ANNOTATION_TYPE_UNSPECIFIED (int) - IMAGE_CLASSIFICATION_ANNOTATION (int): Classification annotations in an image. - IMAGE_BOUNDING_BOX_ANNOTATION (int): Bounding box annotations in an image. + IMAGE_CLASSIFICATION_ANNOTATION (int): Classification annotations in an image. Allowed for continuous evaluation. + IMAGE_BOUNDING_BOX_ANNOTATION (int): Bounding box annotations in an image. A form of image object detection. + Allowed for continuous evaluation. IMAGE_ORIENTED_BOUNDING_BOX_ANNOTATION (int): Oriented bounding box. The box does not have to be parallel to horizontal line. IMAGE_BOUNDING_POLY_ANNOTATION (int): Bounding poly annotations in an image. @@ -60,9 +62,9 @@ class AnnotationType(enum.IntEnum): VIDEO_OBJECT_TRACKING_ANNOTATION (int): Video object tracking annotation. VIDEO_OBJECT_DETECTION_ANNOTATION (int): Video object detection annotation. VIDEO_EVENT_ANNOTATION (int): Video event annotation. - TEXT_CLASSIFICATION_ANNOTATION (int): Classification for text. + TEXT_CLASSIFICATION_ANNOTATION (int): Classification for text. Allowed for continuous evaluation. TEXT_ENTITY_EXTRACTION_ANNOTATION (int): Entity extraction for text. - GENERAL_CLASSIFICATION_ANNOTATION (int): General classification. + GENERAL_CLASSIFICATION_ANNOTATION (int): General classification. Allowed for continuous evaluation. """ ANNOTATION_TYPE_UNSPECIFIED = 0 @@ -85,10 +87,10 @@ class DataType(enum.IntEnum): """ Attributes: DATA_TYPE_UNSPECIFIED (int) - IMAGE (int) + IMAGE (int): Allowed for continuous evaluation. VIDEO (int) - TEXT (int) - GENERAL_DATA (int) + TEXT (int): Allowed for continuous evaluation. + GENERAL_DATA (int): Allowed for continuous evaluation. """ DATA_TYPE_UNSPECIFIED = 0 @@ -120,10 +122,39 @@ class State(enum.IntEnum): Attributes: STATE_UNSPECIFIED (int) - SCHEDULED (int) - RUNNING (int) - PAUSED (int) - STOPPED (int) + SCHEDULED (int): The job is scheduled to run at the ``configured interval``. You can + ``pause`` or ``delete`` the job. + + When the job is in this state, it samples prediction input and output + from your model version into your BigQuery table as predictions occur. + RUNNING (int): The job is currently running. When the job runs, Data Labeling Service + does several things: + + 1. If you have configured your job to use Data Labeling Service for + ground truth labeling, the service creates a ``Dataset`` and a + labeling task for all data sampled since the last time the job ran. + Human labelers provide ground truth labels for your data. Human + labeling may take hours, or even days, depending on how much data has + been sampled. The job remains in the ``RUNNING`` state during this + time, and it can even be running multiple times in parallel if it + gets triggered again (for example 24 hours later) before the earlier + run has completed. When human labelers have finished labeling the + data, the next step occurs. If you have configured your job to + provide your own ground truth labels, Data Labeling Service still + creates a ``Dataset`` for newly sampled data, but it expects that you + have already added ground truth labels to the BigQuery table by this + time. The next step occurs immediately. + + 2. Data Labeling Service creates an ``Evaluation`` by comparing your + model version's predictions with the ground truth labels. + + If the job remains in this state for a long time, it continues to sample + prediction data into your BigQuery table and will run again at the next + interval, even if it causes the job to run multiple times in parallel. + PAUSED (int): The job is not sampling prediction input and output into your BigQuery + table and it will not run according to its schedule. You can ``resume`` + the job. + STOPPED (int): The job has this state right before it is deleted. """ STATE_UNSPECIFIED = 0 diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/transports/data_labeling_service_grpc_transport.py b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/transports/data_labeling_service_grpc_transport.py index c429a412c130..4e6e56a7d984 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/gapic/transports/data_labeling_service_grpc_transport.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/gapic/transports/data_labeling_service_grpc_transport.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -253,6 +253,19 @@ def list_annotated_datasets(self): """ return self._stubs["data_labeling_service_stub"].ListAnnotatedDatasets + @property + def delete_annotated_dataset(self): + """Return the gRPC stub for :meth:`DataLabelingServiceClient.delete_annotated_dataset`. + + Deletes an annotated dataset by resource name. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["data_labeling_service_stub"].DeleteAnnotatedDataset + @property def label_image(self): """Return the gRPC stub for :meth:`DataLabelingServiceClient.label_image`. @@ -429,7 +442,8 @@ def delete_instruction(self): def get_evaluation(self): """Return the gRPC stub for :meth:`DataLabelingServiceClient.get_evaluation`. - Gets an evaluation by resource name. + Gets an evaluation by resource name (to search, use + ``projects.evaluations.search``). Returns: Callable: A callable which accepts the appropriate @@ -442,8 +456,7 @@ def get_evaluation(self): def search_evaluations(self): """Return the gRPC stub for :meth:`DataLabelingServiceClient.search_evaluations`. - Searchs evaluations within a project. Supported filter: evaluation\_job, - evaluation\_time. + Searches ``evaluations`` within a project. Returns: Callable: A callable which accepts the appropriate @@ -456,9 +469,9 @@ def search_evaluations(self): def search_example_comparisons(self): """Return the gRPC stub for :meth:`DataLabelingServiceClient.search_example_comparisons`. - Searchs example comparisons in evaluation, in format of examples - of both ground truth and prediction(s). It is represented as a search with - evaluation id. + Searches example comparisons from an evaluation. The return format is a + list of example comparisons that show ground truth and prediction(s) for + a single input. Search by providing an evaluation ID. Returns: Callable: A callable which accepts the appropriate @@ -484,7 +497,12 @@ def create_evaluation_job(self): def update_evaluation_job(self): """Return the gRPC stub for :meth:`DataLabelingServiceClient.update_evaluation_job`. - Updates an evaluation job. + Updates an evaluation job. You can only update certain fields of the + job's ``EvaluationJobConfig``: ``humanAnnotationConfig.instruction``, + ``exampleCount``, and ``exampleSamplePercentage``. + + If you want to change any other aspect of the evaluation job, you must + delete the job and create a new one. Returns: Callable: A callable which accepts the appropriate @@ -510,8 +528,8 @@ def get_evaluation_job(self): def pause_evaluation_job(self): """Return the gRPC stub for :meth:`DataLabelingServiceClient.pause_evaluation_job`. - Pauses an evaluation job. Pausing a evaluation job that is already in - PAUSED state will be a no-op. + Pauses an evaluation job. Pausing an evaluation job that is already in a + ``PAUSED`` state is a no-op. Returns: Callable: A callable which accepts the appropriate @@ -524,8 +542,8 @@ def pause_evaluation_job(self): def resume_evaluation_job(self): """Return the gRPC stub for :meth:`DataLabelingServiceClient.resume_evaluation_job`. - Resumes a paused evaluation job. Deleted evaluation job can't be resumed. - Resuming a running evaluation job will be a no-op. + Resumes a paused evaluation job. A deleted evaluation job can't be resumed. + Resuming a running or scheduled evaluation job is a no-op. Returns: Callable: A callable which accepts the appropriate @@ -560,16 +578,3 @@ def list_evaluation_jobs(self): deserialized response object. """ return self._stubs["data_labeling_service_stub"].ListEvaluationJobs - - @property - def delete_annotated_dataset(self): - """Return the gRPC stub for :meth:`DataLabelingServiceClient.delete_annotated_dataset`. - - Deletes an annotated dataset by resource name. - - Returns: - Callable: A callable which accepts the appropriate - deserialized request object and returns a - deserialized response object. - """ - return self._stubs["data_labeling_service_stub"].DeleteAnnotatedDataset diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation.proto index b71e4598090a..4750fdc3bbac 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation.proto @@ -18,15 +18,16 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; -import "google/cloud/datalabeling/v1beta1/data_payloads.proto"; import "google/protobuf/duration.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling"; option java_multiple_files = true; option java_package = "com.google.cloud.datalabeling.v1beta1"; -// Specifies where is the answer from. +// Specifies where the annotation comes from (whether it was provided by a +// human labeler or a different source). enum AnnotationSource { ANNOTATION_SOURCE_UNSPECIFIED = 0; @@ -71,10 +72,11 @@ enum AnnotationSentiment { enum AnnotationType { ANNOTATION_TYPE_UNSPECIFIED = 0; - // Classification annotations in an image. + // Classification annotations in an image. Allowed for continuous evaluation. IMAGE_CLASSIFICATION_ANNOTATION = 1; - // Bounding box annotations in an image. + // Bounding box annotations in an image. A form of image object detection. + // Allowed for continuous evaluation. IMAGE_BOUNDING_BOX_ANNOTATION = 2; // Oriented bounding box. The box does not have to be parallel to horizontal @@ -102,13 +104,13 @@ enum AnnotationType { // Video event annotation. VIDEO_EVENT_ANNOTATION = 6; - // Classification for text. + // Classification for text. Allowed for continuous evaluation. TEXT_CLASSIFICATION_ANNOTATION = 8; // Entity extraction for text. TEXT_ENTITY_EXTRACTION_ANNOTATION = 9; - // General classification. + // General classification. Allowed for continuous evaluation. GENERAL_CLASSIFICATION_ANNOTATION = 14; } diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_pb2.py index 01bc066bdfc1..5ba2d891f96f 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_pb2.py @@ -17,12 +17,10 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.cloud.datalabeling_v1beta1.proto import ( annotation_spec_set_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2, ) -from google.cloud.datalabeling_v1beta1.proto import ( - data_payloads_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_data__payloads__pb2, -) from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 @@ -34,12 +32,12 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\n8google/cloud/datalabeling_v1beta1/proto/annotation.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x41google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x1a;google/cloud/datalabeling_v1beta1/proto/data_payloads.proto\x1a\x1egoogle/protobuf/duration.proto"\xe2\x02\n\nAnnotation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12N\n\x11\x61nnotation_source\x18\x02 \x01(\x0e\x32\x33.google.cloud.datalabeling.v1beta1.AnnotationSource\x12L\n\x10\x61nnotation_value\x18\x03 \x01(\x0b\x32\x32.google.cloud.datalabeling.v1beta1.AnnotationValue\x12R\n\x13\x61nnotation_metadata\x18\x04 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.AnnotationMetadata\x12T\n\x14\x61nnotation_sentiment\x18\x06 \x01(\x0e\x32\x36.google.cloud.datalabeling.v1beta1.AnnotationSentiment"\xd1\x07\n\x0f\x41nnotationValue\x12k\n\x1fimage_classification_annotation\x18\x01 \x01(\x0b\x32@.google.cloud.datalabeling.v1beta1.ImageClassificationAnnotationH\x00\x12h\n\x1eimage_bounding_poly_annotation\x18\x02 \x01(\x0b\x32>.google.cloud.datalabeling.v1beta1.ImageBoundingPolyAnnotationH\x00\x12_\n\x19image_polyline_annotation\x18\x08 \x01(\x0b\x32:.google.cloud.datalabeling.v1beta1.ImagePolylineAnnotationH\x00\x12g\n\x1dimage_segmentation_annotation\x18\t \x01(\x0b\x32>.google.cloud.datalabeling.v1beta1.ImageSegmentationAnnotationH\x00\x12i\n\x1etext_classification_annotation\x18\x03 \x01(\x0b\x32?.google.cloud.datalabeling.v1beta1.TextClassificationAnnotationH\x00\x12n\n!text_entity_extraction_annotation\x18\n \x01(\x0b\x32\x41.google.cloud.datalabeling.v1beta1.TextEntityExtractionAnnotationH\x00\x12k\n\x1fvideo_classification_annotation\x18\x04 \x01(\x0b\x32@.google.cloud.datalabeling.v1beta1.VideoClassificationAnnotationH\x00\x12l\n video_object_tracking_annotation\x18\x05 \x01(\x0b\x32@.google.cloud.datalabeling.v1beta1.VideoObjectTrackingAnnotationH\x00\x12Y\n\x16video_event_annotation\x18\x06 \x01(\x0b\x32\x37.google.cloud.datalabeling.v1beta1.VideoEventAnnotationH\x00\x42\x0c\n\nvalue_type"k\n\x1dImageClassificationAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec"\x1e\n\x06Vertex\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05"(\n\x10NormalizedVertex\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02"K\n\x0c\x42oundingPoly\x12;\n\x08vertices\x18\x01 \x03(\x0b\x32).google.cloud.datalabeling.v1beta1.Vertex"j\n\x16NormalizedBoundingPoly\x12P\n\x13normalized_vertices\x18\x01 \x03(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.NormalizedVertex"\xa2\x02\n\x1bImageBoundingPolyAnnotation\x12H\n\rbounding_poly\x18\x02 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.BoundingPolyH\x00\x12]\n\x18normalized_bounding_poly\x18\x03 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.NormalizedBoundingPolyH\x00\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpecB\x0e\n\x0c\x62ounded_area"G\n\x08Polyline\x12;\n\x08vertices\x18\x01 \x03(\x0b\x32).google.cloud.datalabeling.v1beta1.Vertex"f\n\x12NormalizedPolyline\x12P\n\x13normalized_vertices\x18\x01 \x03(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.NormalizedVertex"\x84\x02\n\x17ImagePolylineAnnotation\x12?\n\x08polyline\x18\x02 \x01(\x0b\x32+.google.cloud.datalabeling.v1beta1.PolylineH\x00\x12T\n\x13normalized_polyline\x18\x03 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.NormalizedPolylineH\x00\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpecB\x06\n\x04poly"\xa2\x02\n\x1bImageSegmentationAnnotation\x12o\n\x11\x61nnotation_colors\x18\x01 \x03(\x0b\x32T.google.cloud.datalabeling.v1beta1.ImageSegmentationAnnotation.AnnotationColorsEntry\x12\x11\n\tmime_type\x18\x02 \x01(\t\x12\x13\n\x0bimage_bytes\x18\x03 \x01(\x0c\x1aj\n\x15\x41nnotationColorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec:\x02\x38\x01"j\n\x1cTextClassificationAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec"\xbe\x01\n\x1eTextEntityExtractionAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12P\n\x12sequential_segment\x18\x02 \x01(\x0b\x32\x34.google.cloud.datalabeling.v1beta1.SequentialSegment"/\n\x11SequentialSegment\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05"w\n\x0bTimeSegment\x12\x34\n\x11start_time_offset\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x32\n\x0f\x65nd_time_offset\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\xb1\x01\n\x1dVideoClassificationAnnotation\x12\x44\n\x0ctime_segment\x18\x01 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TimeSegment\x12J\n\x0f\x61nnotation_spec\x18\x02 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec"\xfe\x01\n\x13ObjectTrackingFrame\x12H\n\rbounding_poly\x18\x01 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.BoundingPolyH\x00\x12]\n\x18normalized_bounding_poly\x18\x02 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.NormalizedBoundingPolyH\x00\x12.\n\x0btime_offset\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0e\n\x0c\x62ounded_area"\x89\x02\n\x1dVideoObjectTrackingAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x44\n\x0ctime_segment\x18\x02 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TimeSegment\x12V\n\x16object_tracking_frames\x18\x03 \x03(\x0b\x32\x36.google.cloud.datalabeling.v1beta1.ObjectTrackingFrame"\xa8\x01\n\x14VideoEventAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x44\n\x0ctime_segment\x18\x02 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TimeSegment"d\n\x12\x41nnotationMetadata\x12N\n\x11operator_metadata\x18\x02 \x01(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.OperatorMetadata"]\n\x10OperatorMetadata\x12\r\n\x05score\x18\x01 \x01(\x02\x12\x13\n\x0btotal_votes\x18\x02 \x01(\x05\x12\x13\n\x0blabel_votes\x18\x03 \x01(\x05\x12\x10\n\x08\x63omments\x18\x04 \x03(\t*C\n\x10\x41nnotationSource\x12!\n\x1d\x41NNOTATION_SOURCE_UNSPECIFIED\x10\x00\x12\x0c\n\x08OPERATOR\x10\x03*W\n\x13\x41nnotationSentiment\x12$\n ANNOTATION_SENTIMENT_UNSPECIFIED\x10\x00\x12\x0c\n\x08NEGATIVE\x10\x01\x12\x0c\n\x08POSITIVE\x10\x02*\x91\x04\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fIMAGE_CLASSIFICATION_ANNOTATION\x10\x01\x12!\n\x1dIMAGE_BOUNDING_BOX_ANNOTATION\x10\x02\x12*\n&IMAGE_ORIENTED_BOUNDING_BOX_ANNOTATION\x10\r\x12"\n\x1eIMAGE_BOUNDING_POLY_ANNOTATION\x10\n\x12\x1d\n\x19IMAGE_POLYLINE_ANNOTATION\x10\x0b\x12!\n\x1dIMAGE_SEGMENTATION_ANNOTATION\x10\x0c\x12)\n%VIDEO_SHOTS_CLASSIFICATION_ANNOTATION\x10\x03\x12$\n VIDEO_OBJECT_TRACKING_ANNOTATION\x10\x04\x12%\n!VIDEO_OBJECT_DETECTION_ANNOTATION\x10\x05\x12\x1a\n\x16VIDEO_EVENT_ANNOTATION\x10\x06\x12"\n\x1eTEXT_CLASSIFICATION_ANNOTATION\x10\x08\x12%\n!TEXT_ENTITY_EXTRACTION_ANNOTATION\x10\t\x12%\n!GENERAL_CLASSIFICATION_ANNOTATION\x10\x0e\x42x\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\n8google/cloud/datalabeling_v1beta1/proto/annotation.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto\x1a\x41google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x1a\x1egoogle/protobuf/duration.proto"\xe2\x02\n\nAnnotation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12N\n\x11\x61nnotation_source\x18\x02 \x01(\x0e\x32\x33.google.cloud.datalabeling.v1beta1.AnnotationSource\x12L\n\x10\x61nnotation_value\x18\x03 \x01(\x0b\x32\x32.google.cloud.datalabeling.v1beta1.AnnotationValue\x12R\n\x13\x61nnotation_metadata\x18\x04 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.AnnotationMetadata\x12T\n\x14\x61nnotation_sentiment\x18\x06 \x01(\x0e\x32\x36.google.cloud.datalabeling.v1beta1.AnnotationSentiment"\xd1\x07\n\x0f\x41nnotationValue\x12k\n\x1fimage_classification_annotation\x18\x01 \x01(\x0b\x32@.google.cloud.datalabeling.v1beta1.ImageClassificationAnnotationH\x00\x12h\n\x1eimage_bounding_poly_annotation\x18\x02 \x01(\x0b\x32>.google.cloud.datalabeling.v1beta1.ImageBoundingPolyAnnotationH\x00\x12_\n\x19image_polyline_annotation\x18\x08 \x01(\x0b\x32:.google.cloud.datalabeling.v1beta1.ImagePolylineAnnotationH\x00\x12g\n\x1dimage_segmentation_annotation\x18\t \x01(\x0b\x32>.google.cloud.datalabeling.v1beta1.ImageSegmentationAnnotationH\x00\x12i\n\x1etext_classification_annotation\x18\x03 \x01(\x0b\x32?.google.cloud.datalabeling.v1beta1.TextClassificationAnnotationH\x00\x12n\n!text_entity_extraction_annotation\x18\n \x01(\x0b\x32\x41.google.cloud.datalabeling.v1beta1.TextEntityExtractionAnnotationH\x00\x12k\n\x1fvideo_classification_annotation\x18\x04 \x01(\x0b\x32@.google.cloud.datalabeling.v1beta1.VideoClassificationAnnotationH\x00\x12l\n video_object_tracking_annotation\x18\x05 \x01(\x0b\x32@.google.cloud.datalabeling.v1beta1.VideoObjectTrackingAnnotationH\x00\x12Y\n\x16video_event_annotation\x18\x06 \x01(\x0b\x32\x37.google.cloud.datalabeling.v1beta1.VideoEventAnnotationH\x00\x42\x0c\n\nvalue_type"k\n\x1dImageClassificationAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec"\x1e\n\x06Vertex\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05"(\n\x10NormalizedVertex\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02"K\n\x0c\x42oundingPoly\x12;\n\x08vertices\x18\x01 \x03(\x0b\x32).google.cloud.datalabeling.v1beta1.Vertex"j\n\x16NormalizedBoundingPoly\x12P\n\x13normalized_vertices\x18\x01 \x03(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.NormalizedVertex"\xa2\x02\n\x1bImageBoundingPolyAnnotation\x12H\n\rbounding_poly\x18\x02 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.BoundingPolyH\x00\x12]\n\x18normalized_bounding_poly\x18\x03 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.NormalizedBoundingPolyH\x00\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpecB\x0e\n\x0c\x62ounded_area"G\n\x08Polyline\x12;\n\x08vertices\x18\x01 \x03(\x0b\x32).google.cloud.datalabeling.v1beta1.Vertex"f\n\x12NormalizedPolyline\x12P\n\x13normalized_vertices\x18\x01 \x03(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.NormalizedVertex"\x84\x02\n\x17ImagePolylineAnnotation\x12?\n\x08polyline\x18\x02 \x01(\x0b\x32+.google.cloud.datalabeling.v1beta1.PolylineH\x00\x12T\n\x13normalized_polyline\x18\x03 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.NormalizedPolylineH\x00\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpecB\x06\n\x04poly"\xa2\x02\n\x1bImageSegmentationAnnotation\x12o\n\x11\x61nnotation_colors\x18\x01 \x03(\x0b\x32T.google.cloud.datalabeling.v1beta1.ImageSegmentationAnnotation.AnnotationColorsEntry\x12\x11\n\tmime_type\x18\x02 \x01(\t\x12\x13\n\x0bimage_bytes\x18\x03 \x01(\x0c\x1aj\n\x15\x41nnotationColorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec:\x02\x38\x01"j\n\x1cTextClassificationAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec"\xbe\x01\n\x1eTextEntityExtractionAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12P\n\x12sequential_segment\x18\x02 \x01(\x0b\x32\x34.google.cloud.datalabeling.v1beta1.SequentialSegment"/\n\x11SequentialSegment\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05"w\n\x0bTimeSegment\x12\x34\n\x11start_time_offset\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x32\n\x0f\x65nd_time_offset\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\xb1\x01\n\x1dVideoClassificationAnnotation\x12\x44\n\x0ctime_segment\x18\x01 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TimeSegment\x12J\n\x0f\x61nnotation_spec\x18\x02 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec"\xfe\x01\n\x13ObjectTrackingFrame\x12H\n\rbounding_poly\x18\x01 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.BoundingPolyH\x00\x12]\n\x18normalized_bounding_poly\x18\x02 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.NormalizedBoundingPolyH\x00\x12.\n\x0btime_offset\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0e\n\x0c\x62ounded_area"\x89\x02\n\x1dVideoObjectTrackingAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x44\n\x0ctime_segment\x18\x02 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TimeSegment\x12V\n\x16object_tracking_frames\x18\x03 \x03(\x0b\x32\x36.google.cloud.datalabeling.v1beta1.ObjectTrackingFrame"\xa8\x01\n\x14VideoEventAnnotation\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x44\n\x0ctime_segment\x18\x02 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TimeSegment"d\n\x12\x41nnotationMetadata\x12N\n\x11operator_metadata\x18\x02 \x01(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.OperatorMetadata"]\n\x10OperatorMetadata\x12\r\n\x05score\x18\x01 \x01(\x02\x12\x13\n\x0btotal_votes\x18\x02 \x01(\x05\x12\x13\n\x0blabel_votes\x18\x03 \x01(\x05\x12\x10\n\x08\x63omments\x18\x04 \x03(\t*C\n\x10\x41nnotationSource\x12!\n\x1d\x41NNOTATION_SOURCE_UNSPECIFIED\x10\x00\x12\x0c\n\x08OPERATOR\x10\x03*W\n\x13\x41nnotationSentiment\x12$\n ANNOTATION_SENTIMENT_UNSPECIFIED\x10\x00\x12\x0c\n\x08NEGATIVE\x10\x01\x12\x0c\n\x08POSITIVE\x10\x02*\x91\x04\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fIMAGE_CLASSIFICATION_ANNOTATION\x10\x01\x12!\n\x1dIMAGE_BOUNDING_BOX_ANNOTATION\x10\x02\x12*\n&IMAGE_ORIENTED_BOUNDING_BOX_ANNOTATION\x10\r\x12"\n\x1eIMAGE_BOUNDING_POLY_ANNOTATION\x10\n\x12\x1d\n\x19IMAGE_POLYLINE_ANNOTATION\x10\x0b\x12!\n\x1dIMAGE_SEGMENTATION_ANNOTATION\x10\x0c\x12)\n%VIDEO_SHOTS_CLASSIFICATION_ANNOTATION\x10\x03\x12$\n VIDEO_OBJECT_TRACKING_ANNOTATION\x10\x04\x12%\n!VIDEO_OBJECT_DETECTION_ANNOTATION\x10\x05\x12\x1a\n\x16VIDEO_EVENT_ANNOTATION\x10\x06\x12"\n\x1eTEXT_CLASSIFICATION_ANNOTATION\x10\x08\x12%\n!TEXT_ENTITY_EXTRACTION_ANNOTATION\x10\t\x12%\n!GENERAL_CLASSIFICATION_ANNOTATION\x10\x0e\x42x\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2.DESCRIPTOR, - google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_data__payloads__pb2.DESCRIPTOR, google_dot_protobuf_dot_duration__pb2.DESCRIPTOR, ], ) @@ -63,8 +61,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4560, - serialized_end=4627, + serialized_start=4526, + serialized_end=4593, ) _sym_db.RegisterEnumDescriptor(_ANNOTATIONSOURCE) @@ -91,8 +89,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4629, - serialized_end=4716, + serialized_start=4595, + serialized_end=4682, ) _sym_db.RegisterEnumDescriptor(_ANNOTATIONSENTIMENT) @@ -204,8 +202,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4719, - serialized_end=5248, + serialized_start=4685, + serialized_end=5214, ) _sym_db.RegisterEnumDescriptor(_ANNOTATIONTYPE) @@ -337,8 +335,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=286, - serialized_end=640, + serialized_start=252, + serialized_end=606, ) @@ -528,8 +526,8 @@ fields=[], ) ], - serialized_start=643, - serialized_end=1620, + serialized_start=609, + serialized_end=1586, ) @@ -567,8 +565,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1622, - serialized_end=1729, + serialized_start=1588, + serialized_end=1695, ) @@ -624,8 +622,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1731, - serialized_end=1761, + serialized_start=1697, + serialized_end=1727, ) @@ -681,8 +679,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1763, - serialized_end=1803, + serialized_start=1729, + serialized_end=1769, ) @@ -720,8 +718,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1805, - serialized_end=1880, + serialized_start=1771, + serialized_end=1846, ) @@ -759,8 +757,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1882, - serialized_end=1988, + serialized_start=1848, + serialized_end=1954, ) @@ -842,8 +840,8 @@ fields=[], ) ], - serialized_start=1991, - serialized_end=2281, + serialized_start=1957, + serialized_end=2247, ) @@ -881,8 +879,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2283, - serialized_end=2354, + serialized_start=2249, + serialized_end=2320, ) @@ -920,8 +918,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2356, - serialized_end=2458, + serialized_start=2322, + serialized_end=2424, ) @@ -1003,8 +1001,8 @@ fields=[], ) ], - serialized_start=2461, - serialized_end=2721, + serialized_start=2427, + serialized_end=2687, ) @@ -1060,8 +1058,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2908, - serialized_end=3014, + serialized_start=2874, + serialized_end=2980, ) _IMAGESEGMENTATIONANNOTATION = _descriptor.Descriptor( @@ -1134,8 +1132,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2724, - serialized_end=3014, + serialized_start=2690, + serialized_end=2980, ) @@ -1173,8 +1171,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3016, - serialized_end=3122, + serialized_start=2982, + serialized_end=3088, ) @@ -1230,8 +1228,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3125, - serialized_end=3315, + serialized_start=3091, + serialized_end=3281, ) @@ -1287,8 +1285,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3317, - serialized_end=3364, + serialized_start=3283, + serialized_end=3330, ) @@ -1344,8 +1342,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3366, - serialized_end=3485, + serialized_start=3332, + serialized_end=3451, ) @@ -1401,8 +1399,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3488, - serialized_end=3665, + serialized_start=3454, + serialized_end=3631, ) @@ -1484,8 +1482,8 @@ fields=[], ) ], - serialized_start=3668, - serialized_end=3922, + serialized_start=3634, + serialized_end=3888, ) @@ -1559,8 +1557,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3925, - serialized_end=4190, + serialized_start=3891, + serialized_end=4156, ) @@ -1616,8 +1614,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4193, - serialized_end=4361, + serialized_start=4159, + serialized_end=4327, ) @@ -1655,8 +1653,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4363, - serialized_end=4463, + serialized_start=4329, + serialized_end=4429, ) @@ -1748,8 +1746,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4465, - serialized_end=4558, + serialized_start=4431, + serialized_end=4524, ) _ANNOTATION.fields_by_name["annotation_source"].enum_type = _ANNOTATIONSOURCE @@ -2016,9 +2014,10 @@ dict( DESCRIPTOR=_ANNOTATION, __module__="google.cloud.datalabeling_v1beta1.proto.annotation_pb2", - __doc__="""Annotation for Example. Each example may have one or more annotations. - For example in image classification problem, each image might have one - or more labels. We call labels binded with this image an Annotation. + __doc__="""Annotation for Example. Each example may have one or more + annotations. For example in image classification problem, each image + might have one or more labels. We call labels binded with this image an + Annotation. Attributes: @@ -2177,8 +2176,8 @@ dict( DESCRIPTOR=_IMAGEBOUNDINGPOLYANNOTATION, __module__="google.cloud.datalabeling_v1beta1.proto.annotation_pb2", - __doc__="""Image bounding poly annotation. It represents a polygon including - bounding box in the image. + __doc__="""Image bounding poly annotation. It represents a polygon + including bounding box in the image. Attributes: @@ -2345,8 +2344,8 @@ dict( DESCRIPTOR=_TIMESEGMENT, __module__="google.cloud.datalabeling_v1beta1.proto.annotation_pb2", - __doc__="""A time period inside of an example that has a time dimension (e.g. - video). + __doc__="""A time period inside of an example that has a time + dimension (e.g. video). Attributes: @@ -2388,7 +2387,8 @@ dict( DESCRIPTOR=_OBJECTTRACKINGFRAME, __module__="google.cloud.datalabeling_v1beta1.proto.annotation_pb2", - __doc__="""Video frame level annotation for object detection and tracking. + __doc__="""Video frame level annotation for object detection and + tracking. Attributes: @@ -2470,7 +2470,8 @@ dict( DESCRIPTOR=_OPERATORMETADATA, __module__="google.cloud.datalabeling_v1beta1.proto.annotation_pb2", - __doc__="""General information useful for labels coming from contributors. + __doc__="""General information useful for labels coming from + contributors. Attributes: diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto index bd5413dc714d..71bc12a1a67c 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto @@ -18,28 +18,36 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling"; option java_multiple_files = true; option java_package = "com.google.cloud.datalabeling.v1beta1"; -// AnnotationSpecSet is a collection of label definitions. For example, in -// image classification tasks, we define a set of labels, this set is called -// AnnotationSpecSet. AnnotationSpecSet is immutable upon creation. +// An AnnotationSpecSet is a collection of label definitions. For example, in +// image classification tasks, you define a set of possible labels for images as +// an AnnotationSpecSet. An AnnotationSpecSet is immutable upon creation. message AnnotationSpecSet { - // Output only. AnnotationSpecSet resource name, format: - // projects/{project_id}/annotationSpecSets/{annotation_spec_set_id} + option (google.api.resource) = { + type: "datalabeling.googleapis.com/AnnotationSpecSet" + pattern: "projects/{project}/annotationSpecSets/{annotation_spec_set}" + }; + + // Output only. The AnnotationSpecSet resource name in the following format: + // + // "projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}" string name = 1; - // Required. The display name for AnnotationSpecSet defined by user. - // Maximum of 64 characters. + // Required. The display name for AnnotationSpecSet that you define when you + // create it. Maximum of 64 characters. string display_name = 2; // Optional. User-provided description of the annotation specification set. - // The description can be up to 10000 characters long. + // The description can be up to 10,000 characters long. string description = 3; - // Required. The actual spec set defined by the users. + // Required. The array of AnnotationSpecs that you define when you create the + // AnnotationSpecSet. These are the possible labels for the labeling task. repeated AnnotationSpec annotation_specs = 4; // Output only. The names of any related resources that are blocking changes @@ -47,12 +55,15 @@ message AnnotationSpecSet { repeated string blocking_resources = 5; } -// Container of information related to one annotation spec. +// Container of information related to one possible annotation that can be used +// in a labeling task. For example, an image classification task where images +// are labeled as `dog` or `cat` must reference an AnnotationSpec for `dog` and +// an AnnotationSpec for `cat`. message AnnotationSpec { // Required. The display name of the AnnotationSpec. Maximum of 64 characters. string display_name = 1; // Optional. User-provided description of the annotation specification. - // The description can be up to 10000 characters long. + // The description can be up to 10,000 characters long. string description = 2; } diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set_pb2.py index e1674fb539a9..7201902009ab 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/annotation_spec_set_pb2.py @@ -16,6 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 DESCRIPTOR = _descriptor.FileDescriptor( @@ -26,9 +27,12 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\nAgoogle/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto"\xb5\x01\n\x11\x41nnotationSpecSet\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12K\n\x10\x61nnotation_specs\x18\x04 \x03(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x1a\n\x12\x62locking_resources\x18\x05 \x03(\t";\n\x0e\x41nnotationSpec\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\tBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\nAgoogle/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto"\xa6\x02\n\x11\x41nnotationSpecSet\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12K\n\x10\x61nnotation_specs\x18\x04 \x03(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x1a\n\x12\x62locking_resources\x18\x05 \x03(\t:o\xea\x41l\n-datalabeling.googleapis.com/AnnotationSpecSet\x12;projects/{project}/annotationSpecSets/{annotation_spec_set}";\n\x0e\x41nnotationSpec\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\tBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), - dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR], + dependencies=[ + google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, + ], ) @@ -133,13 +137,15 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b( + "\352Al\n-datalabeling.googleapis.com/AnnotationSpecSet\022;projects/{project}/annotationSpecSets/{annotation_spec_set}" + ), is_extendable=False, syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=135, - serialized_end=316, + serialized_start=162, + serialized_end=456, ) @@ -195,8 +201,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=318, - serialized_end=377, + serialized_start=458, + serialized_end=517, ) _ANNOTATIONSPECSET.fields_by_name["annotation_specs"].message_type = _ANNOTATIONSPEC @@ -210,24 +216,28 @@ dict( DESCRIPTOR=_ANNOTATIONSPECSET, __module__="google.cloud.datalabeling_v1beta1.proto.annotation_spec_set_pb2", - __doc__="""AnnotationSpecSet is a collection of label definitions. For example, in - image classification tasks, we define a set of labels, this set is - called AnnotationSpecSet. AnnotationSpecSet is immutable upon creation. + __doc__="""An AnnotationSpecSet is a collection of label definitions. + For example, in image classification tasks, you define a set of possible + labels for images as an AnnotationSpecSet. An AnnotationSpecSet is + immutable upon creation. Attributes: name: - Output only. AnnotationSpecSet resource name, format: projects - /{project\_id}/annotationSpecSets/{annotation\_spec\_set\_id} + Output only. The AnnotationSpecSet resource name in the + following format: "projects/{project\_id}/annotationSpecSets/ + {annotation\_spec\_set\_id}" display_name: - Required. The display name for AnnotationSpecSet defined by - user. Maximum of 64 characters. + Required. The display name for AnnotationSpecSet that you + define when you create it. Maximum of 64 characters. description: Optional. User-provided description of the annotation - specification set. The description can be up to 10000 + specification set. The description can be up to 10,000 characters long. annotation_specs: - Required. The actual spec set defined by the users. + Required. The array of AnnotationSpecs that you define when + you create the AnnotationSpecSet. These are the possible + labels for the labeling task. blocking_resources: Output only. The names of any related resources that are blocking changes to the annotation spec set. @@ -243,7 +253,11 @@ dict( DESCRIPTOR=_ANNOTATIONSPEC, __module__="google.cloud.datalabeling_v1beta1.proto.annotation_spec_set_pb2", - __doc__="""Container of information related to one annotation spec. + __doc__="""Container of information related to one possible + annotation that can be used in a labeling task. For example, an image + classification task where images are labeled as ``dog`` or ``cat`` must + reference an AnnotationSpec for ``dog`` and an AnnotationSpec for + ``cat``. Attributes: @@ -252,7 +266,7 @@ 64 characters. description: Optional. User-provided description of the annotation - specification. The description can be up to 10000 characters + specification. The description can be up to 10,000 characters long. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.AnnotationSpec) @@ -262,4 +276,5 @@ DESCRIPTOR._options = None +_ANNOTATIONSPECSET._options = None # @@protoc_insertion_point(module_scope) diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto index 8395206d9bea..7616bc2f7a4f 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto @@ -19,14 +19,14 @@ package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; import "google/api/client.proto"; -import "google/cloud/datalabeling/v1beta1/annotation.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; import "google/cloud/datalabeling/v1beta1/dataset.proto"; import "google/cloud/datalabeling/v1beta1/evaluation.proto"; import "google/cloud/datalabeling/v1beta1/evaluation_job.proto"; import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto"; import "google/cloud/datalabeling/v1beta1/instruction.proto"; -import "google/cloud/datalabeling/v1beta1/operations.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -37,8 +37,7 @@ option java_package = "com.google.cloud.datalabeling.v1beta1"; service DataLabelingService { option (google.api.default_host) = "datalabeling.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; // Creates dataset. If success return a Dataset resource. rpc CreateDataset(CreateDatasetRequest) returns (Dataset) { @@ -46,6 +45,7 @@ service DataLabelingService { post: "/v1beta1/{parent=projects/*}/datasets" body: "*" }; + option (google.api.method_signature) = "parent,dataset"; } // Gets dataset by resource name. @@ -53,6 +53,7 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{name=projects/*/datasets/*}" }; + option (google.api.method_signature) = "name"; } // Lists datasets under a project. Pagination is supported. @@ -60,6 +61,7 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{parent=projects/*}/datasets" }; + option (google.api.method_signature) = "parent,filter"; } // Deletes a dataset by resource name. @@ -67,6 +69,7 @@ service DataLabelingService { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/datasets/*}" }; + option (google.api.method_signature) = "name"; } // Imports data into dataset based on source locations defined in request. @@ -79,6 +82,11 @@ service DataLabelingService { post: "/v1beta1/{name=projects/*/datasets/*}:importData" body: "*" }; + option (google.api.method_signature) = "name,input_config"; + option (google.longrunning.operation_info) = { + response_type: "ImportDataOperationResponse" + metadata_type: "ImportDataOperationMetadata" + }; } // Exports data and annotations from dataset. @@ -87,6 +95,11 @@ service DataLabelingService { post: "/v1beta1/{name=projects/*/datasets/*}:exportData" body: "*" }; + option (google.api.method_signature) = "name,annotated_dataset,filter,output_config"; + option (google.longrunning.operation_info) = { + response_type: "ExportDataOperationResponse" + metadata_type: "ExportDataOperationMetadata" + }; } // Gets a data item in a dataset by resource name. This API can be @@ -95,6 +108,7 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{name=projects/*/datasets/*/dataItems/*}" }; + option (google.api.method_signature) = "name"; } // Lists data items in a dataset. This API can be called after data @@ -103,27 +117,27 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{parent=projects/*/datasets/*}/dataItems" }; + option (google.api.method_signature) = "parent,filter"; } // Gets an annotated dataset by resource name. - rpc GetAnnotatedDataset(GetAnnotatedDatasetRequest) - returns (AnnotatedDataset) { + rpc GetAnnotatedDataset(GetAnnotatedDatasetRequest) returns (AnnotatedDataset) { option (google.api.http) = { get: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}" }; + option (google.api.method_signature) = "name"; } // Lists annotated datasets for a dataset. Pagination is supported. - rpc ListAnnotatedDatasets(ListAnnotatedDatasetsRequest) - returns (ListAnnotatedDatasetsResponse) { + rpc ListAnnotatedDatasets(ListAnnotatedDatasetsRequest) returns (ListAnnotatedDatasetsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets" }; + option (google.api.method_signature) = "parent,filter"; } // Deletes an annotated dataset by resource name. - rpc DeleteAnnotatedDataset(DeleteAnnotatedDatasetRequest) - returns (google.protobuf.Empty) { + rpc DeleteAnnotatedDataset(DeleteAnnotatedDatasetRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}" }; @@ -136,6 +150,11 @@ service DataLabelingService { post: "/v1beta1/{parent=projects/*/datasets/*}/image:label" body: "*" }; + option (google.api.method_signature) = "parent,basic_config,feature"; + option (google.longrunning.operation_info) = { + response_type: "AnnotatedDataset" + metadata_type: "LabelOperationMetadata" + }; } // Starts a labeling task for video. The type of video labeling task is @@ -145,6 +164,11 @@ service DataLabelingService { post: "/v1beta1/{parent=projects/*/datasets/*}/video:label" body: "*" }; + option (google.api.method_signature) = "parent,basic_config,feature"; + option (google.longrunning.operation_info) = { + response_type: "AnnotatedDataset" + metadata_type: "LabelOperationMetadata" + }; } // Starts a labeling task for text. The type of text labeling task is @@ -154,6 +178,11 @@ service DataLabelingService { post: "/v1beta1/{parent=projects/*/datasets/*}/text:label" body: "*" }; + option (google.api.method_signature) = "parent,basic_config,feature"; + option (google.longrunning.operation_info) = { + response_type: "AnnotatedDataset" + metadata_type: "LabelOperationMetadata" + }; } // Gets an example by resource name, including both data and annotation. @@ -161,6 +190,7 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}" }; + option (google.api.method_signature) = "name,filter"; } // Lists examples in an annotated dataset. Pagination is supported. @@ -168,48 +198,53 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples" }; + option (google.api.method_signature) = "parent,filter"; } // Creates an annotation spec set by providing a set of labels. - rpc CreateAnnotationSpecSet(CreateAnnotationSpecSetRequest) - returns (AnnotationSpecSet) { + rpc CreateAnnotationSpecSet(CreateAnnotationSpecSetRequest) returns (AnnotationSpecSet) { option (google.api.http) = { post: "/v1beta1/{parent=projects/*}/annotationSpecSets" body: "*" }; + option (google.api.method_signature) = "parent,annotation_spec_set"; } // Gets an annotation spec set by resource name. - rpc GetAnnotationSpecSet(GetAnnotationSpecSetRequest) - returns (AnnotationSpecSet) { + rpc GetAnnotationSpecSet(GetAnnotationSpecSetRequest) returns (AnnotationSpecSet) { option (google.api.http) = { get: "/v1beta1/{name=projects/*/annotationSpecSets/*}" }; + option (google.api.method_signature) = "name"; } // Lists annotation spec sets for a project. Pagination is supported. - rpc ListAnnotationSpecSets(ListAnnotationSpecSetsRequest) - returns (ListAnnotationSpecSetsResponse) { + rpc ListAnnotationSpecSets(ListAnnotationSpecSetsRequest) returns (ListAnnotationSpecSetsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*}/annotationSpecSets" }; + option (google.api.method_signature) = "parent,filter"; } // Deletes an annotation spec set by resource name. - rpc DeleteAnnotationSpecSet(DeleteAnnotationSpecSetRequest) - returns (google.protobuf.Empty) { + rpc DeleteAnnotationSpecSet(DeleteAnnotationSpecSetRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/annotationSpecSets/*}" }; + option (google.api.method_signature) = "name"; } // Creates an instruction for how data should be labeled. - rpc CreateInstruction(CreateInstructionRequest) - returns (google.longrunning.Operation) { + rpc CreateInstruction(CreateInstructionRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1beta1/{parent=projects/*}/instructions" body: "*" }; + option (google.api.method_signature) = "parent,instruction"; + option (google.longrunning.operation_info) = { + response_type: "Instruction" + metadata_type: "CreateInstructionMetadata" + }; } // Gets an instruction by resource name. @@ -217,49 +252,51 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{name=projects/*/instructions/*}" }; + option (google.api.method_signature) = "name"; } // Lists instructions for a project. Pagination is supported. - rpc ListInstructions(ListInstructionsRequest) - returns (ListInstructionsResponse) { + rpc ListInstructions(ListInstructionsRequest) returns (ListInstructionsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*}/instructions" }; + option (google.api.method_signature) = "parent,filter"; } // Deletes an instruction object by resource name. - rpc DeleteInstruction(DeleteInstructionRequest) - returns (google.protobuf.Empty) { + rpc DeleteInstruction(DeleteInstructionRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/instructions/*}" }; + option (google.api.method_signature) = "name"; } - // Gets an evaluation by resource name. + // Gets an evaluation by resource name (to search, use + // [projects.evaluations.search][google.cloud.datalabeling.v1beta1.DataLabelingService.SearchEvaluations]). rpc GetEvaluation(GetEvaluationRequest) returns (Evaluation) { option (google.api.http) = { get: "/v1beta1/{name=projects/*/datasets/*/evaluations/*}" }; + option (google.api.method_signature) = "name"; } - // Searchs evaluations within a project. Supported filter: evaluation_job, - // evaluation_time. - rpc SearchEvaluations(SearchEvaluationsRequest) - returns (SearchEvaluationsResponse) { + // Searches [evaluations][google.cloud.datalabeling.v1beta1.Evaluation] within a project. + rpc SearchEvaluations(SearchEvaluationsRequest) returns (SearchEvaluationsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*}/evaluations:search" }; + option (google.api.method_signature) = "parent,filter"; } - // Searchs example comparisons in evaluation, in format of examples - // of both ground truth and prediction(s). It is represented as a search with - // evaluation id. - rpc SearchExampleComparisons(SearchExampleComparisonsRequest) - returns (SearchExampleComparisonsResponse) { + // Searches example comparisons from an evaluation. The return format is a + // list of example comparisons that show ground truth and prediction(s) for + // a single input. Search by providing an evaluation ID. + rpc SearchExampleComparisons(SearchExampleComparisonsRequest) returns (SearchExampleComparisonsResponse) { option (google.api.http) = { post: "/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search" body: "*" }; + option (google.api.method_signature) = "parent"; } // Creates an evaluation job. @@ -268,14 +305,21 @@ service DataLabelingService { post: "/v1beta1/{parent=projects/*}/evaluationJobs" body: "*" }; + option (google.api.method_signature) = "parent,job"; } - // Updates an evaluation job. + // Updates an evaluation job. You can only update certain fields of the job's + // [EvaluationJobConfig][google.cloud.datalabeling.v1beta1.EvaluationJobConfig]: `humanAnnotationConfig.instruction`, + // `exampleCount`, and `exampleSamplePercentage`. + // + // If you want to change any other aspect of the evaluation job, you must + // delete the job and create a new one. rpc UpdateEvaluationJob(UpdateEvaluationJobRequest) returns (EvaluationJob) { option (google.api.http) = { patch: "/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}" body: "evaluation_job" }; + option (google.api.method_signature) = "evaluation_job,update_mask"; } // Gets an evaluation job by resource name. @@ -283,43 +327,44 @@ service DataLabelingService { option (google.api.http) = { get: "/v1beta1/{name=projects/*/evaluationJobs/*}" }; + option (google.api.method_signature) = "name"; } - // Pauses an evaluation job. Pausing a evaluation job that is already in - // PAUSED state will be a no-op. - rpc PauseEvaluationJob(PauseEvaluationJobRequest) - returns (google.protobuf.Empty) { + // Pauses an evaluation job. Pausing an evaluation job that is already in a + // `PAUSED` state is a no-op. + rpc PauseEvaluationJob(PauseEvaluationJobRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v1beta1/{name=projects/*/evaluationJobs/*}:pause" body: "*" }; + option (google.api.method_signature) = "name"; } - // Resumes a paused evaluation job. Deleted evaluation job can't be resumed. - // Resuming a running evaluation job will be a no-op. - rpc ResumeEvaluationJob(ResumeEvaluationJobRequest) - returns (google.protobuf.Empty) { + // Resumes a paused evaluation job. A deleted evaluation job can't be resumed. + // Resuming a running or scheduled evaluation job is a no-op. + rpc ResumeEvaluationJob(ResumeEvaluationJobRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v1beta1/{name=projects/*/evaluationJobs/*}:resume" body: "*" }; + option (google.api.method_signature) = "name"; } // Stops and deletes an evaluation job. - rpc DeleteEvaluationJob(DeleteEvaluationJobRequest) - returns (google.protobuf.Empty) { + rpc DeleteEvaluationJob(DeleteEvaluationJobRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/evaluationJobs/*}" }; + option (google.api.method_signature) = "name"; } // Lists all evaluation jobs within a project with possible filters. // Pagination is supported. - rpc ListEvaluationJobs(ListEvaluationJobsRequest) - returns (ListEvaluationJobsResponse) { + rpc ListEvaluationJobs(ListEvaluationJobsRequest) returns (ListEvaluationJobsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*}/evaluationJobs" }; + option (google.api.method_signature) = "parent,filter"; } } @@ -327,38 +372,53 @@ service DataLabelingService { message CreateDatasetRequest { // Required. Dataset resource parent, format: // projects/{project_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Required. The dataset to be created. - Dataset dataset = 2; + Dataset dataset = 2 [(google.api.field_behavior) = REQUIRED]; } // Request message for GetDataSet. message GetDatasetRequest { // Required. Dataset resource name, format: // projects/{project_id}/datasets/{dataset_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; } // Request message for ListDataset. message ListDatasetsRequest { // Required. Dataset resource parent, format: // projects/{project_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Optional. Filter on dataset is not supported at this moment. - string filter = 2; + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. // Typically obtained by - // [ListDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDatasetsResponse.next_page_token] - // of the previous [DataLabelingService.ListDatasets] call. Returns the first - // page if empty. - string page_token = 4; + // [ListDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDatasetsResponse.next_page_token] of the previous + // [DataLabelingService.ListDatasets] call. + // Returns the first page if empty. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results of listing datasets within a project. @@ -374,17 +434,27 @@ message ListDatasetsResponse { message DeleteDatasetRequest { // Required. Dataset resource name, format: // projects/{project_id}/datasets/{dataset_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; } // Request message for ImportData API. message ImportDataRequest { // Required. Dataset resource name, format: // projects/{project_id}/datasets/{dataset_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; // Required. Specify the input source of the data. - InputConfig input_config = 2; + InputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; // Email of the user who started the import task and should be notified by // email. If empty no notification will be sent. @@ -395,20 +465,30 @@ message ImportDataRequest { message ExportDataRequest { // Required. Dataset resource name, format: // projects/{project_id}/datasets/{dataset_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; // Required. Annotated dataset resource name. DataItem in // Dataset and their annotations in specified annotated dataset will be // exported. It's in format of // projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ // {annotated_dataset_id} - string annotated_dataset = 2; + string annotated_dataset = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + } + ]; // Optional. Filter is not supported at this moment. - string filter = 3; + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; // Required. Specify the output destination. - OutputConfig output_config = 4; + OutputConfig output_config = 4 [(google.api.field_behavior) = REQUIRED]; // Email of the user who started the export task and should be notified by // email. If empty no notification will be sent. @@ -419,28 +499,38 @@ message ExportDataRequest { message GetDataItemRequest { // Required. The name of the data item to get, format: // projects/{project_id}/datasets/{dataset_id}/dataItems/{data_item_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/DataItem" + } + ]; } // Request message for ListDataItems. message ListDataItemsRequest { // Required. Name of the dataset to list data items, format: // projects/{project_id}/datasets/{dataset_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; // Optional. Filter is not supported at this moment. - string filter = 2; + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. // Typically obtained by - // [ListDataItemsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDataItemsResponse.next_page_token] - // of the previous [DataLabelingService.ListDataItems] call. Return first page - // if empty. - string page_token = 4; + // [ListDataItemsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDataItemsResponse.next_page_token] of the previous + // [DataLabelingService.ListDataItems] call. + // Return first page if empty. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results of listing data items in a dataset. @@ -457,28 +547,38 @@ message GetAnnotatedDatasetRequest { // Required. Name of the annotated dataset to get, format: // projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ // {annotated_dataset_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + } + ]; } // Request message for ListAnnotatedDatasets. message ListAnnotatedDatasetsRequest { // Required. Name of the dataset to list annotated datasets, format: // projects/{project_id}/datasets/{dataset_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; // Optional. Filter is not supported at this moment. - string filter = 2; + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. // Typically obtained by - // [ListAnnotatedDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotatedDatasetsResponse.next_page_token] - // of the previous [DataLabelingService.ListAnnotatedDatasets] call. Return - // first page if empty. - string page_token = 4; + // [ListAnnotatedDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotatedDatasetsResponse.next_page_token] of the previous + // [DataLabelingService.ListAnnotatedDatasets] call. + // Return first page if empty. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results of listing annotated datasets for a dataset. @@ -495,7 +595,12 @@ message DeleteAnnotatedDatasetRequest { // Required. Name of the annotated dataset to delete, format: // projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ // {annotated_dataset_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + } + ]; } // Request message for starting an image labeling task. @@ -553,13 +658,18 @@ message LabelImageRequest { // Required. Name of the dataset to request labeling task, format: // projects/{project_id}/datasets/{dataset_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; // Required. Basic human annotation config. - HumanAnnotationConfig basic_config = 2; + HumanAnnotationConfig basic_config = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The type of image labeling task. - Feature feature = 3; + Feature feature = 3 [(google.api.field_behavior) = REQUIRED]; } // Request message for LabelVideo. @@ -607,13 +717,18 @@ message LabelVideoRequest { // Required. Name of the dataset to request labeling task, format: // projects/{project_id}/datasets/{dataset_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; // Required. Basic human annotation config. - HumanAnnotationConfig basic_config = 2; + HumanAnnotationConfig basic_config = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The type of video labeling task. - Feature feature = 3; + Feature feature = 3 [(google.api.field_behavior) = REQUIRED]; } // Request message for LabelText. @@ -645,13 +760,18 @@ message LabelTextRequest { // Required. Name of the data set to request labeling task, format: // projects/{project_id}/datasets/{dataset_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; // Required. Basic human annotation config. - HumanAnnotationConfig basic_config = 2; + HumanAnnotationConfig basic_config = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The type of text labeling task. - Feature feature = 6; + Feature feature = 6 [(google.api.field_behavior) = REQUIRED]; } // Request message for GetExample @@ -659,35 +779,45 @@ message GetExampleRequest { // Required. Name of example, format: // projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ // {annotated_dataset_id}/examples/{example_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Example" + } + ]; // Optional. An expression for filtering Examples. Filter by // annotation_spec.display_name is supported. Format // "annotation_spec.display_name = {display_name}" - string filter = 2; + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request message for ListExamples. message ListExamplesRequest { // Required. Example resource parent. - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + } + ]; // Optional. An expression for filtering Examples. For annotated datasets that // have annotation spec set, filter by // annotation_spec.display_name is supported. Format // "annotation_spec.display_name = {display_name}" - string filter = 2; + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. // Typically obtained by - // [ListExamplesResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListExamplesResponse.next_page_token] - // of the previous [DataLabelingService.ListExamples] call. Return first page - // if empty. - string page_token = 4; + // [ListExamplesResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListExamplesResponse.next_page_token] of the previous + // [DataLabelingService.ListExamples] call. + // Return first page if empty. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results of listing Examples in and annotated dataset. @@ -703,40 +833,55 @@ message ListExamplesResponse { message CreateAnnotationSpecSetRequest { // Required. AnnotationSpecSet resource parent, format: // projects/{project_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Required. Annotation spec set to create. Annotation specs must be included. // Only one annotation spec will be accepted for annotation specs with same // display_name. - AnnotationSpecSet annotation_spec_set = 2; + AnnotationSpecSet annotation_spec_set = 2 [(google.api.field_behavior) = REQUIRED]; } // Request message for GetAnnotationSpecSet. message GetAnnotationSpecSetRequest { // Required. AnnotationSpecSet resource name, format: // projects/{project_id}/annotationSpecSets/{annotation_spec_set_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotationSpecSet" + } + ]; } // Request message for ListAnnotationSpecSets. message ListAnnotationSpecSetsRequest { // Required. Parent of AnnotationSpecSet resource, format: // projects/{project_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Optional. Filter is not supported at this moment. - string filter = 2; + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. // Typically obtained by - // [ListAnnotationSpecSetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsResponse.next_page_token] - // of the previous [DataLabelingService.ListAnnotationSpecSets] call. Return - // first page if empty. - string page_token = 4; + // [ListAnnotationSpecSetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsResponse.next_page_token] of the previous + // [DataLabelingService.ListAnnotationSpecSets] call. + // Return first page if empty. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results of listing annotation spec set under a project. @@ -752,52 +897,77 @@ message ListAnnotationSpecSetsResponse { message DeleteAnnotationSpecSetRequest { // Required. AnnotationSpec resource name, format: // `projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}`. - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotationSpecSet" + } + ]; } // Request message for CreateInstruction. message CreateInstructionRequest { // Required. Instruction resource parent, format: // projects/{project_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Required. Instruction of how to perform the labeling task. - Instruction instruction = 2; + Instruction instruction = 2 [(google.api.field_behavior) = REQUIRED]; } // Request message for GetInstruction. message GetInstructionRequest { // Required. Instruction resource name, format: // projects/{project_id}/instructions/{instruction_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Instruction" + } + ]; } // Request message for DeleteInstruction. message DeleteInstructionRequest { // Required. Instruction resource name, format: // projects/{project_id}/instructions/{instruction_id} - string name = 1; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Instruction" + } + ]; } // Request message for ListInstructions. message ListInstructionsRequest { // Required. Instruction resource parent, format: // projects/{project_id} - string parent = 1; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Optional. Filter is not supported at this moment. - string filter = 2; + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. // Typically obtained by - // [ListInstructionsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListInstructionsResponse.next_page_token] - // of the previous [DataLabelingService.ListInstructions] call. Return first - // page if empty. - string page_token = 4; + // [ListInstructionsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListInstructionsResponse.next_page_token] of the previous + // [DataLabelingService.ListInstructions] call. + // Return first page if empty. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results of listing instructions under a project. @@ -812,39 +982,77 @@ message ListInstructionsResponse { // Request message for GetEvaluation. message GetEvaluationRequest { // Required. Name of the evaluation. Format: - // 'projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}' - string name = 1; + // + // "projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}' + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Evaluation" + } + ]; } // Request message for SearchEvaluation. message SearchEvaluationsRequest { - // Required. Evaluation search parent. Format: - // projects/{project_id} - string parent = 1; - - // Optional. Support filtering by model id, job state, start and end time. - // Format: - // "evaluation_job.evaluation_job_id = {evaluation_job_id} AND - // evaluation_job.evaluation_job_run_time_start = {timestamp} AND - // evaluation_job.evaluation_job_run_time_end = {timestamp} AND - // annotation_spec.display_name = {display_name}" - string filter = 2; + // Required. Evaluation search parent (project ID). Format: + // "projects/{project_id}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Evaluation" + } + ]; + + // Optional. To search evaluations, you can filter by the following: + // + // * evaluation_job.evaluation_job_id (the last part of + // [EvaluationJob.name][google.cloud.datalabeling.v1beta1.EvaluationJob.name]) + // * evaluation_job.model_id (the {model_name} portion + // of [EvaluationJob.modelVersion][google.cloud.datalabeling.v1beta1.EvaluationJob.model_version]) + // * evaluation_job.evaluation_job_run_time_start (Minimum + // threshold for the + // [evaluationJobRunTime][google.cloud.datalabeling.v1beta1.Evaluation.evaluation_job_run_time] that created + // the evaluation) + // * evaluation_job.evaluation_job_run_time_end (Maximum + // threshold for the + // [evaluationJobRunTime][google.cloud.datalabeling.v1beta1.Evaluation.evaluation_job_run_time] that created + // the evaluation) + // * evaluation_job.job_state ([EvaluationJob.state][google.cloud.datalabeling.v1beta1.EvaluationJob.state]) + // * annotation_spec.display_name (the Evaluation contains a + // metric for the annotation spec with this + // [displayName][google.cloud.datalabeling.v1beta1.AnnotationSpec.display_name]) + // + // To filter by multiple critiera, use the `AND` operator or the `OR` + // operator. The following examples shows a string that filters by several + // critiera: + // + // "evaluation_job.evaluation_job_id = + // {evaluation_job_id} AND evaluation_job.model_id = + // {model_name} AND + // evaluation_job.evaluation_job_run_time_start = + // {timestamp_1} AND + // evaluation_job.evaluation_job_run_time_end = + // {timestamp_2} AND annotation_spec.display_name = + // {display_name}" + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. - // Typically obtained by - // [SearchEvaluationsResponse.next_page_token][google.cloud.datalabeling.v1beta1.SearchEvaluationsResponse.next_page_token] - // of the previous [DataLabelingService.SearchEvaluations] call. Return first - // page if empty. - string page_token = 4; + // Typically obtained by the + // [nextPageToken][google.cloud.datalabeling.v1beta1.SearchEvaluationsResponse.next_page_token] of the response + // to a previous search request. + // + // If you don't specify this field, the API call requests the first page of + // the search. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results of searching evaluations. message SearchEvaluationsResponse { - // The list of evaluations to return. + // The list of evaluations matching the search. repeated Evaluation evaluations = 1; // A token to retrieve next page of results. @@ -853,33 +1061,44 @@ message SearchEvaluationsResponse { // Request message of SearchExampleComparisons. message SearchExampleComparisonsRequest { - // Required. Name of the Evaluation resource to search example comparison - // from. Format: - // projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id} - string parent = 1; + // Required. Name of the [Evaluation][google.cloud.datalabeling.v1beta1.Evaluation] resource to search for example + // comparisons from. Format: + // + // "projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Evaluation" + } + ]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 2; + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. - // Typically obtained by - // [SearchExampleComparisons.next_page_token][] of the previous - // [DataLabelingService.SearchExampleComparisons] call. - // Return first page if empty. - string page_token = 3; + // Typically obtained by the + // [nextPageToken][SearchExampleComparisons.next_page_token] of the response + // to a previous search rquest. + // + // If you don't specify this field, the API call requests the first page of + // the search. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // Results of searching example comparisons. message SearchExampleComparisonsResponse { - // Example comparisons containing annotation comparison between groundtruth - // and predictions. + // Example comparisons comparing ground truth output and predictions for a + // specific input. message ExampleComparison { + // The ground truth output for the input. Example ground_truth_example = 1; + // Predictions by the model for the input. repeated Example model_created_examples = 2; } + // A list of example comparisons matching the search criteria. repeated ExampleComparison example_comparisons = 1; // A token to retrieve next page of results. @@ -888,72 +1107,119 @@ message SearchExampleComparisonsResponse { // Request message for CreateEvaluationJob. message CreateEvaluationJobRequest { - // Required. Evaluation job resource parent, format: - // projects/{project_id}. - string parent = 1; + // Required. Evaluation job resource parent. Format: + // "projects/{project_id}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Required. The evaluation job to create. - EvaluationJob job = 2; + EvaluationJob job = 2 [(google.api.field_behavior) = REQUIRED]; } // Request message for UpdateEvaluationJob. message UpdateEvaluationJobRequest { // Required. Evaluation job that is going to be updated. - EvaluationJob evaluation_job = 1; - - // Optional. Mask for which field in evaluation_job should be updated. - google.protobuf.FieldMask update_mask = 2; + EvaluationJob evaluation_job = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Mask for which fields to update. You can only provide the + // following fields: + // + // * `evaluationJobConfig.humanAnnotationConfig.instruction` + // * `evaluationJobConfig.exampleCount` + // * `evaluationJobConfig.exampleSamplePercentage` + // + // You can provide more than one of these fields by separating them with + // commas. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request message for GetEvaluationJob. message GetEvaluationJobRequest { // Required. Name of the evaluation job. Format: - // 'projects/{project_id}/evaluationJobs/{evaluation_job_id}' - string name = 1; + // + // "projects/{project_id}/evaluationJobs/{evaluation_job_id}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/EvaluationJob" + } + ]; } // Request message for PauseEvaluationJob. message PauseEvaluationJobRequest { // Required. Name of the evaluation job that is going to be paused. Format: - // 'projects/{project_id}/evaluationJobs/{evaluation_job_id}' - string name = 1; + // + // "projects/{project_id}/evaluationJobs/{evaluation_job_id}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/EvaluationJob" + } + ]; } // Request message ResumeEvaluationJob. message ResumeEvaluationJobRequest { // Required. Name of the evaluation job that is going to be resumed. Format: - // 'projects/{project_id}/evaluationJobs/{evaluation_job_id}' - string name = 1; + // + // "projects/{project_id}/evaluationJobs/{evaluation_job_id}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/EvaluationJob" + } + ]; } // Request message DeleteEvaluationJob. message DeleteEvaluationJobRequest { // Required. Name of the evaluation job that is going to be deleted. Format: - // 'projects/{project_id}/evaluationJobs/{evaluation_job_id}' - string name = 1; + // + // "projects/{project_id}/evaluationJobs/{evaluation_job_id}" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/EvaluationJob" + } + ]; } // Request message for ListEvaluationJobs. message ListEvaluationJobsRequest { - // Required. Evaluation resource parent. Format: - // "projects/{project_id}" - string parent = 1; - - // Optional. Only support filter by model id and job state. Format: - // "evaluation_job.model_id = {model_id} AND evaluation_job.state = - // {EvaluationJob::State}" - string filter = 2; + // Required. Evaluation job resource parent. Format: + // "projects/{project_id}" + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Optional. You can filter the jobs to list by model_id (also known as + // model_name, as described in + // [EvaluationJob.modelVersion][google.cloud.datalabeling.v1beta1.EvaluationJob.model_version]) or by + // evaluation job state (as described in [EvaluationJob.state][google.cloud.datalabeling.v1beta1.EvaluationJob.state]). To filter + // by both criteria, use the `AND` operator or the `OR` operator. For example, + // you can use the following string for your filter: + // "evaluation_job.model_id = {model_name} AND + // evaluation_job.state = {evaluation_job_state}" + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. Requested page size. Server may return fewer results than // requested. Default value is 100. - int32 page_size = 3; + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results for the server to return. - // Typically obtained by - // [ListEvaluationJobs.next_page_token][] of the previous - // [DataLabelingService.ListEvaluationJobs] call. - // Return first page if empty. - string page_token = 4; + // Typically obtained by the + // [nextPageToken][google.cloud.datalabeling.v1beta1.ListEvaluationJobsResponse.next_page_token] in the response + // to the previous request. The request returns the first page if this is + // empty. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; } // Results for listing evaluation jobs. diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2.py index 87f44e316714..258d5a0c7dfd 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2.py @@ -17,9 +17,8 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import client_pb2 as google_dot_api_dot_client__pb2 -from google.cloud.datalabeling_v1beta1.proto import ( - annotation_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__pb2, -) +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.cloud.datalabeling_v1beta1.proto import ( annotation_spec_set_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2, ) @@ -38,9 +37,6 @@ from google.cloud.datalabeling_v1beta1.proto import ( instruction_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_instruction__pb2, ) -from google.cloud.datalabeling_v1beta1.proto import ( - operations_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_operations__pb2, -) from google.longrunning import ( operations_pb2 as google_dot_longrunning_dot_operations__pb2, ) @@ -56,19 +52,19 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\nCgoogle/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x38google/cloud/datalabeling_v1beta1/proto/annotation.proto\x1a\x41google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x1a\x35google/cloud/datalabeling_v1beta1/proto/dataset.proto\x1a\x38google/cloud/datalabeling_v1beta1/proto/evaluation.proto\x1a\x82\xd3\xe4\x93\x02\x38"3/v1beta1/{parent=projects/*/datasets/*}/image:label:\x01*\x12\xa1\x01\n\nLabelVideo\x12\x34.google.cloud.datalabeling.v1beta1.LabelVideoRequest\x1a\x1d.google.longrunning.Operation">\x82\xd3\xe4\x93\x02\x38"3/v1beta1/{parent=projects/*/datasets/*}/video:label:\x01*\x12\x9e\x01\n\tLabelText\x12\x33.google.cloud.datalabeling.v1beta1.LabelTextRequest\x1a\x1d.google.longrunning.Operation"=\x82\xd3\xe4\x93\x02\x37"2/v1beta1/{parent=projects/*/datasets/*}/text:label:\x01*\x12\xbc\x01\n\nGetExample\x12\x34.google.cloud.datalabeling.v1beta1.GetExampleRequest\x1a*.google.cloud.datalabeling.v1beta1.Example"L\x82\xd3\xe4\x93\x02\x46\x12\x44/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}\x12\xcd\x01\n\x0cListExamples\x12\x36.google.cloud.datalabeling.v1beta1.ListExamplesRequest\x1a\x37.google.cloud.datalabeling.v1beta1.ListExamplesResponse"L\x82\xd3\xe4\x93\x02\x46\x12\x44/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples\x12\xce\x01\n\x17\x43reateAnnotationSpecSet\x12\x41.google.cloud.datalabeling.v1beta1.CreateAnnotationSpecSetRequest\x1a\x34.google.cloud.datalabeling.v1beta1.AnnotationSpecSet":\x82\xd3\xe4\x93\x02\x34"//v1beta1/{parent=projects/*}/annotationSpecSets:\x01*\x12\xc5\x01\n\x14GetAnnotationSpecSet\x12>.google.cloud.datalabeling.v1beta1.GetAnnotationSpecSetRequest\x1a\x34.google.cloud.datalabeling.v1beta1.AnnotationSpecSet"7\x82\xd3\xe4\x93\x02\x31\x12//v1beta1/{name=projects/*/annotationSpecSets/*}\x12\xd6\x01\n\x16ListAnnotationSpecSets\x12@.google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsRequest\x1a\x41.google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsResponse"7\x82\xd3\xe4\x93\x02\x31\x12//v1beta1/{parent=projects/*}/annotationSpecSets\x12\xad\x01\n\x17\x44\x65leteAnnotationSpecSet\x12\x41.google.cloud.datalabeling.v1beta1.DeleteAnnotationSpecSetRequest\x1a\x16.google.protobuf.Empty"7\x82\xd3\xe4\x93\x02\x31*//v1beta1/{name=projects/*/annotationSpecSets/*}\x12\xa5\x01\n\x11\x43reateInstruction\x12;.google.cloud.datalabeling.v1beta1.CreateInstructionRequest\x1a\x1d.google.longrunning.Operation"4\x82\xd3\xe4\x93\x02.")/v1beta1/{parent=projects/*}/instructions:\x01*\x12\xad\x01\n\x0eGetInstruction\x12\x38.google.cloud.datalabeling.v1beta1.GetInstructionRequest\x1a..google.cloud.datalabeling.v1beta1.Instruction"1\x82\xd3\xe4\x93\x02+\x12)/v1beta1/{name=projects/*/instructions/*}\x12\xbe\x01\n\x10ListInstructions\x12:.google.cloud.datalabeling.v1beta1.ListInstructionsRequest\x1a;.google.cloud.datalabeling.v1beta1.ListInstructionsResponse"1\x82\xd3\xe4\x93\x02+\x12)/v1beta1/{parent=projects/*}/instructions\x12\x9b\x01\n\x11\x44\x65leteInstruction\x12;.google.cloud.datalabeling.v1beta1.DeleteInstructionRequest\x1a\x16.google.protobuf.Empty"1\x82\xd3\xe4\x93\x02+*)/v1beta1/{name=projects/*/instructions/*}\x12\xb4\x01\n\rGetEvaluation\x12\x37.google.cloud.datalabeling.v1beta1.GetEvaluationRequest\x1a-.google.cloud.datalabeling.v1beta1.Evaluation";\x82\xd3\xe4\x93\x02\x35\x12\x33/v1beta1/{name=projects/*/datasets/*/evaluations/*}\x12\xc7\x01\n\x11SearchEvaluations\x12;.google.cloud.datalabeling.v1beta1.SearchEvaluationsRequest\x1a<.google.cloud.datalabeling.v1beta1.SearchEvaluationsResponse"7\x82\xd3\xe4\x93\x02\x31\x12//v1beta1/{parent=projects/*}/evaluations:search\x12\xff\x01\n\x18SearchExampleComparisons\x12\x42.google.cloud.datalabeling.v1beta1.SearchExampleComparisonsRequest\x1a\x43.google.cloud.datalabeling.v1beta1.SearchExampleComparisonsResponse"Z\x82\xd3\xe4\x93\x02T"O/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search:\x01*\x12\xbe\x01\n\x13\x43reateEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.CreateEvaluationJobRequest\x1a\x30.google.cloud.datalabeling.v1beta1.EvaluationJob"6\x82\xd3\xe4\x93\x02\x30"+/v1beta1/{parent=projects/*}/evaluationJobs:\x01*\x12\xda\x01\n\x13UpdateEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.UpdateEvaluationJobRequest\x1a\x30.google.cloud.datalabeling.v1beta1.EvaluationJob"R\x82\xd3\xe4\x93\x02L2:/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}:\x0e\x65valuation_job\x12\xb5\x01\n\x10GetEvaluationJob\x12:.google.cloud.datalabeling.v1beta1.GetEvaluationJobRequest\x1a\x30.google.cloud.datalabeling.v1beta1.EvaluationJob"3\x82\xd3\xe4\x93\x02-\x12+/v1beta1/{name=projects/*/evaluationJobs/*}\x12\xa8\x01\n\x12PauseEvaluationJob\x12<.google.cloud.datalabeling.v1beta1.PauseEvaluationJobRequest\x1a\x16.google.protobuf.Empty"<\x82\xd3\xe4\x93\x02\x36"1/v1beta1/{name=projects/*/evaluationJobs/*}:pause:\x01*\x12\xab\x01\n\x13ResumeEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.ResumeEvaluationJobRequest\x1a\x16.google.protobuf.Empty"=\x82\xd3\xe4\x93\x02\x37"2/v1beta1/{name=projects/*/evaluationJobs/*}:resume:\x01*\x12\xa1\x01\n\x13\x44\x65leteEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.DeleteEvaluationJobRequest\x1a\x16.google.protobuf.Empty"3\x82\xd3\xe4\x93\x02-*+/v1beta1/{name=projects/*/evaluationJobs/*}\x12\xc6\x01\n\x12ListEvaluationJobs\x12<.google.cloud.datalabeling.v1beta1.ListEvaluationJobsRequest\x1a=.google.cloud.datalabeling.v1beta1.ListEvaluationJobsResponse"3\x82\xd3\xe4\x93\x02-\x12+/v1beta1/{parent=projects/*}/evaluationJobs\x1aO\xca\x41\x1b\x64\x61talabeling.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\nCgoogle/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x41google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x1a\x35google/cloud/datalabeling_v1beta1/proto/dataset.proto\x1a\x38google/cloud/datalabeling_v1beta1/proto/evaluation.proto\x1a\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datalabeling.googleapis.com/Evaluation\x12\x13\n\x06\x66ilter\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"x\n\x19SearchEvaluationsResponse\x12\x42\n\x0b\x65valuations\x18\x01 \x03(\x0b\x32-.google.cloud.datalabeling.v1beta1.Evaluation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\x92\x01\n\x1fSearchExampleComparisonsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datalabeling.googleapis.com/Evaluation\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"\xdb\x02\n SearchExampleComparisonsResponse\x12r\n\x13\x65xample_comparisons\x18\x01 \x03(\x0b\x32U.google.cloud.datalabeling.v1beta1.SearchExampleComparisonsResponse.ExampleComparison\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x1a\xa9\x01\n\x11\x45xampleComparison\x12H\n\x14ground_truth_example\x18\x01 \x01(\x0b\x32*.google.cloud.datalabeling.v1beta1.Example\x12J\n\x16model_created_examples\x18\x02 \x03(\x0b\x32*.google.cloud.datalabeling.v1beta1.Example"\xa5\x01\n\x1a\x43reateEvaluationJobRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x42\n\x03job\x18\x02 \x01(\x0b\x32\x30.google.cloud.datalabeling.v1beta1.EvaluationJobB\x03\xe0\x41\x02"\xa1\x01\n\x1aUpdateEvaluationJobRequest\x12M\n\x0e\x65valuation_job\x18\x01 \x01(\x0b\x32\x30.google.cloud.datalabeling.v1beta1.EvaluationJobB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01"Z\n\x17GetEvaluationJobRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)datalabeling.googleapis.com/EvaluationJob"\\\n\x19PauseEvaluationJobRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)datalabeling.googleapis.com/EvaluationJob"]\n\x1aResumeEvaluationJobRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)datalabeling.googleapis.com/EvaluationJob"]\n\x1a\x44\x65leteEvaluationJobRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)datalabeling.googleapis.com/EvaluationJob"\xa6\x01\n\x19ListEvaluationJobsRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12\x13\n\x06\x66ilter\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"\x80\x01\n\x1aListEvaluationJobsResponse\x12I\n\x0f\x65valuation_jobs\x18\x01 \x03(\x0b\x32\x30.google.cloud.datalabeling.v1beta1.EvaluationJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xa6\x38\n\x13\x44\x61taLabelingService\x12\xb7\x01\n\rCreateDataset\x12\x37.google.cloud.datalabeling.v1beta1.CreateDatasetRequest\x1a*.google.cloud.datalabeling.v1beta1.Dataset"A\x82\xd3\xe4\x93\x02*"%/v1beta1/{parent=projects/*}/datasets:\x01*\xda\x41\x0eparent,dataset\x12\xa4\x01\n\nGetDataset\x12\x34.google.cloud.datalabeling.v1beta1.GetDatasetRequest\x1a*.google.cloud.datalabeling.v1beta1.Dataset"4\x82\xd3\xe4\x93\x02\'\x12%/v1beta1/{name=projects/*/datasets/*}\xda\x41\x04name\x12\xbe\x01\n\x0cListDatasets\x12\x36.google.cloud.datalabeling.v1beta1.ListDatasetsRequest\x1a\x37.google.cloud.datalabeling.v1beta1.ListDatasetsResponse"=\x82\xd3\xe4\x93\x02\'\x12%/v1beta1/{parent=projects/*}/datasets\xda\x41\rparent,filter\x12\x96\x01\n\rDeleteDataset\x12\x37.google.cloud.datalabeling.v1beta1.DeleteDatasetRequest\x1a\x16.google.protobuf.Empty"4\x82\xd3\xe4\x93\x02\'*%/v1beta1/{name=projects/*/datasets/*}\xda\x41\x04name\x12\xf0\x01\n\nImportData\x12\x34.google.cloud.datalabeling.v1beta1.ImportDataRequest\x1a\x1d.google.longrunning.Operation"\x8c\x01\x82\xd3\xe4\x93\x02\x35"0/v1beta1/{name=projects/*/datasets/*}:importData:\x01*\xda\x41\x11name,input_config\xca\x41:\n\x1bImportDataOperationResponse\x12\x1bImportDataOperationMetadata\x12\x8a\x02\n\nExportData\x12\x34.google.cloud.datalabeling.v1beta1.ExportDataRequest\x1a\x1d.google.longrunning.Operation"\xa6\x01\x82\xd3\xe4\x93\x02\x35"0/v1beta1/{name=projects/*/datasets/*}:exportData:\x01*\xda\x41+name,annotated_dataset,filter,output_config\xca\x41:\n\x1b\x45xportDataOperationResponse\x12\x1b\x45xportDataOperationMetadata\x12\xb3\x01\n\x0bGetDataItem\x12\x35.google.cloud.datalabeling.v1beta1.GetDataItemRequest\x1a+.google.cloud.datalabeling.v1beta1.DataItem"@\x82\xd3\xe4\x93\x02\x33\x12\x31/v1beta1/{name=projects/*/datasets/*/dataItems/*}\xda\x41\x04name\x12\xcd\x01\n\rListDataItems\x12\x37.google.cloud.datalabeling.v1beta1.ListDataItemsRequest\x1a\x38.google.cloud.datalabeling.v1beta1.ListDataItemsResponse"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v1beta1/{parent=projects/*/datasets/*}/dataItems\xda\x41\rparent,filter\x12\xd3\x01\n\x13GetAnnotatedDataset\x12=.google.cloud.datalabeling.v1beta1.GetAnnotatedDatasetRequest\x1a\x33.google.cloud.datalabeling.v1beta1.AnnotatedDataset"H\x82\xd3\xe4\x93\x02;\x12\x39/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}\xda\x41\x04name\x12\xed\x01\n\x15ListAnnotatedDatasets\x12?.google.cloud.datalabeling.v1beta1.ListAnnotatedDatasetsRequest\x1a@.google.cloud.datalabeling.v1beta1.ListAnnotatedDatasetsResponse"Q\x82\xd3\xe4\x93\x02;\x12\x39/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets\xda\x41\rparent,filter\x12\xb5\x01\n\x16\x44\x65leteAnnotatedDataset\x12@.google.cloud.datalabeling.v1beta1.DeleteAnnotatedDatasetRequest\x1a\x16.google.protobuf.Empty"A\x82\xd3\xe4\x93\x02;*9/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}\x12\xed\x01\n\nLabelImage\x12\x34.google.cloud.datalabeling.v1beta1.LabelImageRequest\x1a\x1d.google.longrunning.Operation"\x89\x01\x82\xd3\xe4\x93\x02\x38"3/v1beta1/{parent=projects/*/datasets/*}/image:label:\x01*\xda\x41\x1bparent,basic_config,feature\xca\x41*\n\x10\x41nnotatedDataset\x12\x16LabelOperationMetadata\x12\xed\x01\n\nLabelVideo\x12\x34.google.cloud.datalabeling.v1beta1.LabelVideoRequest\x1a\x1d.google.longrunning.Operation"\x89\x01\x82\xd3\xe4\x93\x02\x38"3/v1beta1/{parent=projects/*/datasets/*}/video:label:\x01*\xda\x41\x1bparent,basic_config,feature\xca\x41*\n\x10\x41nnotatedDataset\x12\x16LabelOperationMetadata\x12\xea\x01\n\tLabelText\x12\x33.google.cloud.datalabeling.v1beta1.LabelTextRequest\x1a\x1d.google.longrunning.Operation"\x88\x01\x82\xd3\xe4\x93\x02\x37"2/v1beta1/{parent=projects/*/datasets/*}/text:label:\x01*\xda\x41\x1bparent,basic_config,feature\xca\x41*\n\x10\x41nnotatedDataset\x12\x16LabelOperationMetadata\x12\xca\x01\n\nGetExample\x12\x34.google.cloud.datalabeling.v1beta1.GetExampleRequest\x1a*.google.cloud.datalabeling.v1beta1.Example"Z\x82\xd3\xe4\x93\x02\x46\x12\x44/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}\xda\x41\x0bname,filter\x12\xdd\x01\n\x0cListExamples\x12\x36.google.cloud.datalabeling.v1beta1.ListExamplesRequest\x1a\x37.google.cloud.datalabeling.v1beta1.ListExamplesResponse"\\\x82\xd3\xe4\x93\x02\x46\x12\x44/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples\xda\x41\rparent,filter\x12\xeb\x01\n\x17\x43reateAnnotationSpecSet\x12\x41.google.cloud.datalabeling.v1beta1.CreateAnnotationSpecSetRequest\x1a\x34.google.cloud.datalabeling.v1beta1.AnnotationSpecSet"W\x82\xd3\xe4\x93\x02\x34"//v1beta1/{parent=projects/*}/annotationSpecSets:\x01*\xda\x41\x1aparent,annotation_spec_set\x12\xcc\x01\n\x14GetAnnotationSpecSet\x12>.google.cloud.datalabeling.v1beta1.GetAnnotationSpecSetRequest\x1a\x34.google.cloud.datalabeling.v1beta1.AnnotationSpecSet">\x82\xd3\xe4\x93\x02\x31\x12//v1beta1/{name=projects/*/annotationSpecSets/*}\xda\x41\x04name\x12\xe6\x01\n\x16ListAnnotationSpecSets\x12@.google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsRequest\x1a\x41.google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsResponse"G\x82\xd3\xe4\x93\x02\x31\x12//v1beta1/{parent=projects/*}/annotationSpecSets\xda\x41\rparent,filter\x12\xb4\x01\n\x17\x44\x65leteAnnotationSpecSet\x12\x41.google.cloud.datalabeling.v1beta1.DeleteAnnotationSpecSetRequest\x1a\x16.google.protobuf.Empty">\x82\xd3\xe4\x93\x02\x31*//v1beta1/{name=projects/*/annotationSpecSets/*}\xda\x41\x04name\x12\xe5\x01\n\x11\x43reateInstruction\x12;.google.cloud.datalabeling.v1beta1.CreateInstructionRequest\x1a\x1d.google.longrunning.Operation"t\x82\xd3\xe4\x93\x02.")/v1beta1/{parent=projects/*}/instructions:\x01*\xda\x41\x12parent,instruction\xca\x41(\n\x0bInstruction\x12\x19\x43reateInstructionMetadata\x12\xb4\x01\n\x0eGetInstruction\x12\x38.google.cloud.datalabeling.v1beta1.GetInstructionRequest\x1a..google.cloud.datalabeling.v1beta1.Instruction"8\x82\xd3\xe4\x93\x02+\x12)/v1beta1/{name=projects/*/instructions/*}\xda\x41\x04name\x12\xce\x01\n\x10ListInstructions\x12:.google.cloud.datalabeling.v1beta1.ListInstructionsRequest\x1a;.google.cloud.datalabeling.v1beta1.ListInstructionsResponse"A\x82\xd3\xe4\x93\x02+\x12)/v1beta1/{parent=projects/*}/instructions\xda\x41\rparent,filter\x12\xa2\x01\n\x11\x44\x65leteInstruction\x12;.google.cloud.datalabeling.v1beta1.DeleteInstructionRequest\x1a\x16.google.protobuf.Empty"8\x82\xd3\xe4\x93\x02+*)/v1beta1/{name=projects/*/instructions/*}\xda\x41\x04name\x12\xbb\x01\n\rGetEvaluation\x12\x37.google.cloud.datalabeling.v1beta1.GetEvaluationRequest\x1a-.google.cloud.datalabeling.v1beta1.Evaluation"B\x82\xd3\xe4\x93\x02\x35\x12\x33/v1beta1/{name=projects/*/datasets/*/evaluations/*}\xda\x41\x04name\x12\xd7\x01\n\x11SearchEvaluations\x12;.google.cloud.datalabeling.v1beta1.SearchEvaluationsRequest\x1a<.google.cloud.datalabeling.v1beta1.SearchEvaluationsResponse"G\x82\xd3\xe4\x93\x02\x31\x12//v1beta1/{parent=projects/*}/evaluations:search\xda\x41\rparent,filter\x12\x88\x02\n\x18SearchExampleComparisons\x12\x42.google.cloud.datalabeling.v1beta1.SearchExampleComparisonsRequest\x1a\x43.google.cloud.datalabeling.v1beta1.SearchExampleComparisonsResponse"c\x82\xd3\xe4\x93\x02T"O/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search:\x01*\xda\x41\x06parent\x12\xcb\x01\n\x13\x43reateEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.CreateEvaluationJobRequest\x1a\x30.google.cloud.datalabeling.v1beta1.EvaluationJob"C\x82\xd3\xe4\x93\x02\x30"+/v1beta1/{parent=projects/*}/evaluationJobs:\x01*\xda\x41\nparent,job\x12\xf7\x01\n\x13UpdateEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.UpdateEvaluationJobRequest\x1a\x30.google.cloud.datalabeling.v1beta1.EvaluationJob"o\x82\xd3\xe4\x93\x02L2:/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}:\x0e\x65valuation_job\xda\x41\x1a\x65valuation_job,update_mask\x12\xbc\x01\n\x10GetEvaluationJob\x12:.google.cloud.datalabeling.v1beta1.GetEvaluationJobRequest\x1a\x30.google.cloud.datalabeling.v1beta1.EvaluationJob":\x82\xd3\xe4\x93\x02-\x12+/v1beta1/{name=projects/*/evaluationJobs/*}\xda\x41\x04name\x12\xaf\x01\n\x12PauseEvaluationJob\x12<.google.cloud.datalabeling.v1beta1.PauseEvaluationJobRequest\x1a\x16.google.protobuf.Empty"C\x82\xd3\xe4\x93\x02\x36"1/v1beta1/{name=projects/*/evaluationJobs/*}:pause:\x01*\xda\x41\x04name\x12\xb2\x01\n\x13ResumeEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.ResumeEvaluationJobRequest\x1a\x16.google.protobuf.Empty"D\x82\xd3\xe4\x93\x02\x37"2/v1beta1/{name=projects/*/evaluationJobs/*}:resume:\x01*\xda\x41\x04name\x12\xa8\x01\n\x13\x44\x65leteEvaluationJob\x12=.google.cloud.datalabeling.v1beta1.DeleteEvaluationJobRequest\x1a\x16.google.protobuf.Empty":\x82\xd3\xe4\x93\x02-*+/v1beta1/{name=projects/*/evaluationJobs/*}\xda\x41\x04name\x12\xd6\x01\n\x12ListEvaluationJobs\x12<.google.cloud.datalabeling.v1beta1.ListEvaluationJobsRequest\x1a=.google.cloud.datalabeling.v1beta1.ListEvaluationJobsResponse"C\x82\xd3\xe4\x93\x02-\x12+/v1beta1/{parent=projects/*}/evaluationJobs\xda\x41\rparent,filter\x1aO\xca\x41\x1b\x64\x61talabeling.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, google_dot_api_dot_client__pb2.DESCRIPTOR, - google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__pb2.DESCRIPTOR, + google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_evaluation__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_evaluation__job__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_human__annotation__config__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_instruction__pb2.DESCRIPTOR, - google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_operations__pb2.DESCRIPTOR, google_dot_longrunning_dot_operations__pb2.DESCRIPTOR, google_dot_protobuf_dot_empty__pb2.DESCRIPTOR, google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR, @@ -114,8 +110,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2571, - serialized_end=2721, + serialized_start=3223, + serialized_end=3373, ) _sym_db.RegisterEnumDescriptor(_LABELIMAGEREQUEST_FEATURE) @@ -155,8 +151,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=3295, - serialized_end=3403, + serialized_start=4002, + serialized_end=4110, ) _sym_db.RegisterEnumDescriptor(_LABELVIDEOREQUEST_FEATURE) @@ -190,8 +186,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=3821, - serialized_end=3908, + serialized_start=4583, + serialized_end=4670, ) _sym_db.RegisterEnumDescriptor(_LABELTEXTREQUEST_FEATURE) @@ -218,7 +214,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -236,7 +234,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -248,8 +246,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=749, - serialized_end=848, + serialized_start=694, + serialized_end=851, ) @@ -275,7 +273,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ) ], @@ -287,8 +287,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=850, - serialized_end=883, + serialized_start=853, + serialized_end=931, ) @@ -314,7 +314,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -332,7 +334,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -350,7 +352,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -368,7 +370,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -380,8 +382,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=885, - serialized_end=977, + serialized_start=934, + serialized_end=1094, ) @@ -437,8 +439,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=979, - serialized_end=1088, + serialized_start=1096, + serialized_end=1205, ) @@ -464,7 +466,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ) ], @@ -476,8 +480,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1090, - serialized_end=1126, + serialized_start=1207, + serialized_end=1288, ) @@ -503,7 +507,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -521,7 +527,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -551,8 +557,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1129, - serialized_end=1260, + serialized_start=1291, + serialized_end=1472, ) @@ -578,7 +584,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -596,7 +604,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A.\n,datalabeling.googleapis.com/AnnotatedDataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -614,7 +624,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -632,7 +642,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -662,8 +672,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1263, - serialized_end=1439, + serialized_start=1475, + serialized_end=1760, ) @@ -689,7 +699,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A&\n$datalabeling.googleapis.com/DataItem" + ), file=DESCRIPTOR, ) ], @@ -701,8 +713,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1441, - serialized_end=1475, + serialized_start=1762, + serialized_end=1842, ) @@ -728,7 +740,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -746,7 +760,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -764,7 +778,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -782,7 +796,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -794,8 +808,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1477, - serialized_end=1570, + serialized_start=1845, + serialized_end=1998, ) @@ -851,8 +865,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1572, - serialized_end=1685, + serialized_start=2000, + serialized_end=2113, ) @@ -878,7 +892,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A.\n,datalabeling.googleapis.com/AnnotatedDataset" + ), file=DESCRIPTOR, ) ], @@ -890,8 +906,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1687, - serialized_end=1729, + serialized_start=2115, + serialized_end=2211, ) @@ -917,7 +933,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -935,7 +953,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -953,7 +971,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -971,7 +989,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -983,8 +1001,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1731, - serialized_end=1832, + serialized_start=2214, + serialized_end=2375, ) @@ -1040,8 +1058,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1835, - serialized_end=1972, + serialized_start=2378, + serialized_end=2515, ) @@ -1067,7 +1085,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A.\n,datalabeling.googleapis.com/AnnotatedDataset" + ), file=DESCRIPTOR, ) ], @@ -1079,8 +1099,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1974, - serialized_end=2019, + serialized_start=2517, + serialized_end=2616, ) @@ -1178,7 +1198,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1196,7 +1218,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1214,7 +1236,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -1234,8 +1256,8 @@ fields=[], ) ], - serialized_start=2022, - serialized_end=2739, + serialized_start=2619, + serialized_end=3391, ) @@ -1333,7 +1355,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1351,7 +1375,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1369,7 +1393,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -1389,8 +1413,8 @@ fields=[], ) ], - serialized_start=2742, - serialized_end=3421, + serialized_start=3394, + serialized_end=4128, ) @@ -1452,7 +1476,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Dataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1470,7 +1496,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1488,7 +1514,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -1508,8 +1534,8 @@ fields=[], ) ], - serialized_start=3424, - serialized_end=3926, + serialized_start=4131, + serialized_end=4688, ) @@ -1535,7 +1561,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A%\n#datalabeling.googleapis.com/Example" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1553,7 +1581,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -1565,8 +1593,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3928, - serialized_end=3977, + serialized_start=4690, + serialized_end=4789, ) @@ -1592,7 +1620,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A.\n,datalabeling.googleapis.com/AnnotatedDataset" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1610,7 +1640,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1628,7 +1658,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1646,7 +1676,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -1658,8 +1688,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3979, - serialized_end=4071, + serialized_start=4792, + serialized_end=4953, ) @@ -1715,8 +1745,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4073, - serialized_end=4182, + serialized_start=4955, + serialized_end=5064, ) @@ -1742,7 +1772,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1760,7 +1792,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -1772,8 +1804,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4185, - serialized_end=4316, + serialized_start=5067, + serialized_end=5256, ) @@ -1799,7 +1831,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A/\n-datalabeling.googleapis.com/AnnotationSpecSet" + ), file=DESCRIPTOR, ) ], @@ -1811,8 +1845,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4318, - serialized_end=4361, + serialized_start=5258, + serialized_end=5356, ) @@ -1838,7 +1872,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1856,7 +1892,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1874,7 +1910,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -1892,7 +1928,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -1904,8 +1940,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4363, - serialized_end=4465, + serialized_start=5359, + serialized_end=5529, ) @@ -1961,8 +1997,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4468, - serialized_end=4609, + serialized_start=5532, + serialized_end=5673, ) @@ -1988,7 +2024,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A/\n-datalabeling.googleapis.com/AnnotationSpecSet" + ), file=DESCRIPTOR, ) ], @@ -2000,8 +2038,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4611, - serialized_end=4657, + serialized_start=5675, + serialized_end=5776, ) @@ -2027,7 +2065,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2045,7 +2085,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -2057,8 +2097,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4659, - serialized_end=4770, + serialized_start=5779, + serialized_end=5948, ) @@ -2084,7 +2124,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A)\n'datalabeling.googleapis.com/Instruction" + ), file=DESCRIPTOR, ) ], @@ -2096,8 +2138,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4772, - serialized_end=4809, + serialized_start=5950, + serialized_end=6036, ) @@ -2123,7 +2165,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A)\n'datalabeling.googleapis.com/Instruction" + ), file=DESCRIPTOR, ) ], @@ -2135,8 +2179,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4811, - serialized_end=4851, + serialized_start=6038, + serialized_end=6127, ) @@ -2162,7 +2206,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2180,7 +2226,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2198,7 +2244,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2216,7 +2262,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -2228,8 +2274,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4853, - serialized_end=4949, + serialized_start=6130, + serialized_end=6294, ) @@ -2285,8 +2331,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4951, - serialized_end=5072, + serialized_start=6296, + serialized_end=6417, ) @@ -2312,7 +2358,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A(\n&datalabeling.googleapis.com/Evaluation" + ), file=DESCRIPTOR, ) ], @@ -2324,8 +2372,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5074, - serialized_end=5110, + serialized_start=6419, + serialized_end=6503, ) @@ -2351,7 +2399,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A(\n&datalabeling.googleapis.com/Evaluation" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2369,7 +2419,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2387,7 +2437,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2405,7 +2455,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -2417,8 +2467,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5112, - serialized_end=5209, + serialized_start=6506, + serialized_end=6666, ) @@ -2474,8 +2524,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5211, - serialized_end=5331, + serialized_start=6668, + serialized_end=6788, ) @@ -2501,7 +2551,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A(\n&datalabeling.googleapis.com/Evaluation" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2519,7 +2571,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2537,7 +2589,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -2549,8 +2601,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5333, - serialized_end=5421, + serialized_start=6791, + serialized_end=6937, ) @@ -2606,8 +2658,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5602, - serialized_end=5771, + serialized_start=7118, + serialized_end=7287, ) _SEARCHEXAMPLECOMPARISONSRESPONSE = _descriptor.Descriptor( @@ -2662,8 +2714,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5424, - serialized_end=5771, + serialized_start=6940, + serialized_end=7287, ) @@ -2689,7 +2741,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2707,7 +2761,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -2719,8 +2773,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5773, - serialized_end=5880, + serialized_start=7290, + serialized_end=7455, ) @@ -2746,7 +2800,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2764,7 +2818,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -2776,8 +2830,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5883, - serialized_end=6034, + serialized_start=7458, + serialized_end=7619, ) @@ -2803,7 +2857,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A+\n)datalabeling.googleapis.com/EvaluationJob" + ), file=DESCRIPTOR, ) ], @@ -2815,8 +2871,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=6036, - serialized_end=6075, + serialized_start=7621, + serialized_end=7711, ) @@ -2842,7 +2898,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A+\n)datalabeling.googleapis.com/EvaluationJob" + ), file=DESCRIPTOR, ) ], @@ -2854,8 +2912,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=6077, - serialized_end=6118, + serialized_start=7713, + serialized_end=7805, ) @@ -2881,7 +2939,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A+\n)datalabeling.googleapis.com/EvaluationJob" + ), file=DESCRIPTOR, ) ], @@ -2893,8 +2953,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=6120, - serialized_end=6162, + serialized_start=7807, + serialized_end=7900, ) @@ -2920,7 +2980,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A+\n)datalabeling.googleapis.com/EvaluationJob" + ), file=DESCRIPTOR, ) ], @@ -2932,8 +2994,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=6164, - serialized_end=6206, + serialized_start=7902, + serialized_end=7995, ) @@ -2959,7 +3021,9 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b( + "\340A\002\372A-\n+cloudresourcemanager.googleapis.com/Project" + ), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2977,7 +3041,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -2995,7 +3059,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -3013,7 +3077,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -3025,8 +3089,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=6208, - serialized_end=6306, + serialized_start=7998, + serialized_end=8164, ) @@ -3082,8 +3146,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=6309, - serialized_end=6437, + serialized_start=8167, + serialized_end=8295, ) _CREATEDATASETREQUEST.fields_by_name[ @@ -4148,8 +4212,8 @@ Attributes: name: - Required. Name of the evaluation. Format: 'projects/{project\_ - id}/datasets/{dataset\_id}/evaluations/{evaluation\_id}' + Required. Name of the evaluation. Format: "projects/{project\ + _id}/datasets/{dataset\_id}/evaluations/{evaluation\_id}' """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.GetEvaluationRequest) ), @@ -4167,26 +4231,46 @@ Attributes: parent: - Required. Evaluation search parent. Format: - projects/{project\_id} + Required. Evaluation search parent (project ID). Format: + "projects/{project\_id}" filter: - Optional. Support filtering by model id, job state, start and - end time. Format: "evaluation\_job.evaluation\_job\_id = - {evaluation\_job\_id} AND - evaluation\_job.evaluation\_job\_run\_time\_start = - {timestamp} AND - evaluation\_job.evaluation\_job\_run\_time\_end = {timestamp} - AND annotation\_spec.display\_name = {display\_name}" + Optional. To search evaluations, you can filter by the + following: - evaluation\_job.evaluation\_job\_id (the last + part of [EvaluationJob.name][google.cloud.datalabeling.v1be + ta1.EvaluationJob.name]) - evaluation\_job.model\_id (the + {model\_name} portion of [EvaluationJob.modelVersion][googl + e.cloud.datalabeling.v1beta1.EvaluationJob.model\_version]) - + evaluation\_job.evaluation\_job\_run\_time\_start (Minimum + threshold for the [evaluationJobRunTime][google.cloud.da + talabeling.v1beta1.Evaluation.evaluation\_job\_run\_time] + that created the evaluation) - + evaluation\_job.evaluation\_job\_run\_time\_end (Maximum + threshold for the [evaluationJobRunTime][google.cloud.da + talabeling.v1beta1.Evaluation.evaluation\_job\_run\_time] + that created the evaluation) - evaluation\_job.job\_state + ([EvaluationJob.state][google.cloud.datalabeling.v1beta1.Evalu + ationJob.state]) - annotation\_spec.display\_name (the + Evaluation contains a metric for the annotation spec with + this [displayName][google.cloud.datalabeling.v1beta1.Annota + tionSpec.display\_name]) To filter by multiple critiera, use + the ``AND`` operator or the ``OR`` operator. The following + examples shows a string that filters by several critiera: + "evaluation\_job.evaluation\_job\_id = {evaluation\_job\_id} + AND evaluation\ *job.model\_id = {model\_name} AND + evaluation*\ job.evaluation\_job\_run\_time\_start = + {timestamp\_1} AND evaluation\ + *job.evaluation\_job\_run\_time\_end = {timestamp\_2} AND + annotation*\ spec.display\_name = {display\_name}" page_size: Optional. Requested page size. Server may return fewer results than requested. Default value is 100. page_token: Optional. A token identifying a page of results for the server - to return. Typically obtained by [SearchEvaluationsResponse.ne - xt\_page\_token][google.cloud.datalabeling.v1beta1.SearchEvalu - ationsResponse.next\_page\_token] of the previous - [DataLabelingService.SearchEvaluations] call. Return first - page if empty. + to return. Typically obtained by the [nextPageToken][google.cl + oud.datalabeling.v1beta1.SearchEvaluationsResponse.next\_page\ + _token] of the response to a previous search request. If you + don't specify this field, the API call requests the first page + of the search. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.SearchEvaluationsRequest) ), @@ -4204,7 +4288,7 @@ Attributes: evaluations: - The list of evaluations to return. + The list of evaluations matching the search. next_page_token: A token to retrieve next page of results. """, @@ -4224,18 +4308,21 @@ Attributes: parent: - Required. Name of the Evaluation resource to search example - comparison from. Format: projects/{project\_id}/datasets/{data - set\_id}/evaluations/{evaluation\_id} + Required. Name of the + [Evaluation][google.cloud.datalabeling.v1beta1.Evaluation] + resource to search for example comparisons from. Format: "pro + jects/{project\_id}/datasets/{dataset\_id}/evaluations/{evalua + tion\_id}" page_size: Optional. Requested page size. Server may return fewer results than requested. Default value is 100. page_token: Optional. A token identifying a page of results for the server - to return. Typically obtained by - [SearchExampleComparisons.next\_page\_token][] of the previous - [DataLabelingService.SearchExampleComparisons] call. Return - first page if empty. + to return. Typically obtained by the + [nextPageToken][SearchExampleComparisons.next\_page\_token] of + the response to a previous search rquest. If you don't + specify this field, the API call requests the first page of + the search. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.SearchExampleComparisonsRequest) ), @@ -4252,8 +4339,15 @@ dict( DESCRIPTOR=_SEARCHEXAMPLECOMPARISONSRESPONSE_EXAMPLECOMPARISON, __module__="google.cloud.datalabeling_v1beta1.proto.data_labeling_service_pb2", - __doc__="""Example comparisons containing annotation comparison between groundtruth - and predictions. + __doc__="""Example comparisons comparing ground truth output and + predictions for a specific input. + + + Attributes: + ground_truth_example: + The ground truth output for the input. + model_created_examples: + Predictions by the model for the input. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.SearchExampleComparisonsResponse.ExampleComparison) ), @@ -4264,6 +4358,8 @@ Attributes: + example_comparisons: + A list of example comparisons matching the search criteria. next_page_token: A token to retrieve next page of results. """, @@ -4284,8 +4380,8 @@ Attributes: parent: - Required. Evaluation job resource parent, format: - projects/{project\_id}. + Required. Evaluation job resource parent. Format: + "projects/{project\_id}" job: Required. The evaluation job to create. """, @@ -4307,8 +4403,13 @@ evaluation_job: Required. Evaluation job that is going to be updated. update_mask: - Optional. Mask for which field in evaluation\_job should be - updated. + Optional. Mask for which fields to update. You can only + provide the following fields: - + ``evaluationJobConfig.humanAnnotationConfig.instruction`` - + ``evaluationJobConfig.exampleCount`` - + ``evaluationJobConfig.exampleSamplePercentage`` You can + provide more than one of these fields by separating them with + commas. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.UpdateEvaluationJobRequest) ), @@ -4327,7 +4428,7 @@ Attributes: name: Required. Name of the evaluation job. Format: - 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.GetEvaluationJobRequest) ), @@ -4347,7 +4448,7 @@ name: Required. Name of the evaluation job that is going to be paused. Format: - 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.PauseEvaluationJobRequest) ), @@ -4367,7 +4468,7 @@ name: Required. Name of the evaluation job that is going to be resumed. Format: - 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.ResumeEvaluationJobRequest) ), @@ -4387,7 +4488,7 @@ name: Required. Name of the evaluation job that is going to be deleted. Format: - 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.DeleteEvaluationJobRequest) ), @@ -4405,21 +4506,28 @@ Attributes: parent: - Required. Evaluation resource parent. Format: + Required. Evaluation job resource parent. Format: "projects/{project\_id}" filter: - Optional. Only support filter by model id and job state. - Format: "evaluation\_job.model\_id = {model\_id} AND - evaluation\_job.state = {EvaluationJob::State}" + Optional. You can filter the jobs to list by model\_id (also + known as model\_name, as described in [EvaluationJob.modelVers + ion][google.cloud.datalabeling.v1beta1.EvaluationJob.model\_ve + rsion]) or by evaluation job state (as described in [Evaluatio + nJob.state][google.cloud.datalabeling.v1beta1.EvaluationJob.st + ate]). To filter by both criteria, use the ``AND`` operator or + the ``OR`` operator. For example, you can use the following + string for your filter: "evaluation*job.model\_id = + {model\_name} AND evaluation*\ job.state = + {evaluation\_job\_state}" page_size: Optional. Requested page size. Server may return fewer results than requested. Default value is 100. page_token: Optional. A token identifying a page of results for the server - to return. Typically obtained by - [ListEvaluationJobs.next\_page\_token][] of the previous - [DataLabelingService.ListEvaluationJobs] call. Return first - page if empty. + to return. Typically obtained by the [nextPageToken][google.cl + oud.datalabeling.v1beta1.ListEvaluationJobsResponse.next\_page + \_token] in the response to the previous request. The request + returns the first page if this is empty. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.ListEvaluationJobsRequest) ), @@ -4448,6 +4556,82 @@ DESCRIPTOR._options = None +_CREATEDATASETREQUEST.fields_by_name["parent"]._options = None +_CREATEDATASETREQUEST.fields_by_name["dataset"]._options = None +_GETDATASETREQUEST.fields_by_name["name"]._options = None +_LISTDATASETSREQUEST.fields_by_name["parent"]._options = None +_LISTDATASETSREQUEST.fields_by_name["filter"]._options = None +_LISTDATASETSREQUEST.fields_by_name["page_size"]._options = None +_LISTDATASETSREQUEST.fields_by_name["page_token"]._options = None +_DELETEDATASETREQUEST.fields_by_name["name"]._options = None +_IMPORTDATAREQUEST.fields_by_name["name"]._options = None +_IMPORTDATAREQUEST.fields_by_name["input_config"]._options = None +_EXPORTDATAREQUEST.fields_by_name["name"]._options = None +_EXPORTDATAREQUEST.fields_by_name["annotated_dataset"]._options = None +_EXPORTDATAREQUEST.fields_by_name["filter"]._options = None +_EXPORTDATAREQUEST.fields_by_name["output_config"]._options = None +_GETDATAITEMREQUEST.fields_by_name["name"]._options = None +_LISTDATAITEMSREQUEST.fields_by_name["parent"]._options = None +_LISTDATAITEMSREQUEST.fields_by_name["filter"]._options = None +_LISTDATAITEMSREQUEST.fields_by_name["page_size"]._options = None +_LISTDATAITEMSREQUEST.fields_by_name["page_token"]._options = None +_GETANNOTATEDDATASETREQUEST.fields_by_name["name"]._options = None +_LISTANNOTATEDDATASETSREQUEST.fields_by_name["parent"]._options = None +_LISTANNOTATEDDATASETSREQUEST.fields_by_name["filter"]._options = None +_LISTANNOTATEDDATASETSREQUEST.fields_by_name["page_size"]._options = None +_LISTANNOTATEDDATASETSREQUEST.fields_by_name["page_token"]._options = None +_DELETEANNOTATEDDATASETREQUEST.fields_by_name["name"]._options = None +_LABELIMAGEREQUEST.fields_by_name["parent"]._options = None +_LABELIMAGEREQUEST.fields_by_name["basic_config"]._options = None +_LABELIMAGEREQUEST.fields_by_name["feature"]._options = None +_LABELVIDEOREQUEST.fields_by_name["parent"]._options = None +_LABELVIDEOREQUEST.fields_by_name["basic_config"]._options = None +_LABELVIDEOREQUEST.fields_by_name["feature"]._options = None +_LABELTEXTREQUEST.fields_by_name["parent"]._options = None +_LABELTEXTREQUEST.fields_by_name["basic_config"]._options = None +_LABELTEXTREQUEST.fields_by_name["feature"]._options = None +_GETEXAMPLEREQUEST.fields_by_name["name"]._options = None +_GETEXAMPLEREQUEST.fields_by_name["filter"]._options = None +_LISTEXAMPLESREQUEST.fields_by_name["parent"]._options = None +_LISTEXAMPLESREQUEST.fields_by_name["filter"]._options = None +_LISTEXAMPLESREQUEST.fields_by_name["page_size"]._options = None +_LISTEXAMPLESREQUEST.fields_by_name["page_token"]._options = None +_CREATEANNOTATIONSPECSETREQUEST.fields_by_name["parent"]._options = None +_CREATEANNOTATIONSPECSETREQUEST.fields_by_name["annotation_spec_set"]._options = None +_GETANNOTATIONSPECSETREQUEST.fields_by_name["name"]._options = None +_LISTANNOTATIONSPECSETSREQUEST.fields_by_name["parent"]._options = None +_LISTANNOTATIONSPECSETSREQUEST.fields_by_name["filter"]._options = None +_LISTANNOTATIONSPECSETSREQUEST.fields_by_name["page_size"]._options = None +_LISTANNOTATIONSPECSETSREQUEST.fields_by_name["page_token"]._options = None +_DELETEANNOTATIONSPECSETREQUEST.fields_by_name["name"]._options = None +_CREATEINSTRUCTIONREQUEST.fields_by_name["parent"]._options = None +_CREATEINSTRUCTIONREQUEST.fields_by_name["instruction"]._options = None +_GETINSTRUCTIONREQUEST.fields_by_name["name"]._options = None +_DELETEINSTRUCTIONREQUEST.fields_by_name["name"]._options = None +_LISTINSTRUCTIONSREQUEST.fields_by_name["parent"]._options = None +_LISTINSTRUCTIONSREQUEST.fields_by_name["filter"]._options = None +_LISTINSTRUCTIONSREQUEST.fields_by_name["page_size"]._options = None +_LISTINSTRUCTIONSREQUEST.fields_by_name["page_token"]._options = None +_GETEVALUATIONREQUEST.fields_by_name["name"]._options = None +_SEARCHEVALUATIONSREQUEST.fields_by_name["parent"]._options = None +_SEARCHEVALUATIONSREQUEST.fields_by_name["filter"]._options = None +_SEARCHEVALUATIONSREQUEST.fields_by_name["page_size"]._options = None +_SEARCHEVALUATIONSREQUEST.fields_by_name["page_token"]._options = None +_SEARCHEXAMPLECOMPARISONSREQUEST.fields_by_name["parent"]._options = None +_SEARCHEXAMPLECOMPARISONSREQUEST.fields_by_name["page_size"]._options = None +_SEARCHEXAMPLECOMPARISONSREQUEST.fields_by_name["page_token"]._options = None +_CREATEEVALUATIONJOBREQUEST.fields_by_name["parent"]._options = None +_CREATEEVALUATIONJOBREQUEST.fields_by_name["job"]._options = None +_UPDATEEVALUATIONJOBREQUEST.fields_by_name["evaluation_job"]._options = None +_UPDATEEVALUATIONJOBREQUEST.fields_by_name["update_mask"]._options = None +_GETEVALUATIONJOBREQUEST.fields_by_name["name"]._options = None +_PAUSEEVALUATIONJOBREQUEST.fields_by_name["name"]._options = None +_RESUMEEVALUATIONJOBREQUEST.fields_by_name["name"]._options = None +_DELETEEVALUATIONJOBREQUEST.fields_by_name["name"]._options = None +_LISTEVALUATIONJOBSREQUEST.fields_by_name["parent"]._options = None +_LISTEVALUATIONJOBSREQUEST.fields_by_name["filter"]._options = None +_LISTEVALUATIONJOBSREQUEST.fields_by_name["page_size"]._options = None +_LISTEVALUATIONJOBSREQUEST.fields_by_name["page_token"]._options = None _DATALABELINGSERVICE = _descriptor.ServiceDescriptor( name="DataLabelingService", @@ -4457,8 +4641,8 @@ serialized_options=_b( "\312A\033datalabeling.googleapis.com\322A.https://www.googleapis.com/auth/cloud-platform" ), - serialized_start=6440, - serialized_end=12834, + serialized_start=8298, + serialized_end=15504, methods=[ _descriptor.MethodDescriptor( name="CreateDataset", @@ -4468,7 +4652,7 @@ input_type=_CREATEDATASETREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2._DATASET, serialized_options=_b( - '\202\323\344\223\002*"%/v1beta1/{parent=projects/*}/datasets:\001*' + '\202\323\344\223\002*"%/v1beta1/{parent=projects/*}/datasets:\001*\332A\016parent,dataset' ), ), _descriptor.MethodDescriptor( @@ -4479,7 +4663,7 @@ input_type=_GETDATASETREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2._DATASET, serialized_options=_b( - "\202\323\344\223\002'\022%/v1beta1/{name=projects/*/datasets/*}" + "\202\323\344\223\002'\022%/v1beta1/{name=projects/*/datasets/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4490,7 +4674,7 @@ input_type=_LISTDATASETSREQUEST, output_type=_LISTDATASETSRESPONSE, serialized_options=_b( - "\202\323\344\223\002'\022%/v1beta1/{parent=projects/*}/datasets" + "\202\323\344\223\002'\022%/v1beta1/{parent=projects/*}/datasets\332A\rparent,filter" ), ), _descriptor.MethodDescriptor( @@ -4501,7 +4685,7 @@ input_type=_DELETEDATASETREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=_b( - "\202\323\344\223\002'*%/v1beta1/{name=projects/*/datasets/*}" + "\202\323\344\223\002'*%/v1beta1/{name=projects/*/datasets/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4512,7 +4696,7 @@ input_type=_IMPORTDATAREQUEST, output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, serialized_options=_b( - '\202\323\344\223\0025"0/v1beta1/{name=projects/*/datasets/*}:importData:\001*' + '\202\323\344\223\0025"0/v1beta1/{name=projects/*/datasets/*}:importData:\001*\332A\021name,input_config\312A:\n\033ImportDataOperationResponse\022\033ImportDataOperationMetadata' ), ), _descriptor.MethodDescriptor( @@ -4523,7 +4707,7 @@ input_type=_EXPORTDATAREQUEST, output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, serialized_options=_b( - '\202\323\344\223\0025"0/v1beta1/{name=projects/*/datasets/*}:exportData:\001*' + '\202\323\344\223\0025"0/v1beta1/{name=projects/*/datasets/*}:exportData:\001*\332A+name,annotated_dataset,filter,output_config\312A:\n\033ExportDataOperationResponse\022\033ExportDataOperationMetadata' ), ), _descriptor.MethodDescriptor( @@ -4534,7 +4718,7 @@ input_type=_GETDATAITEMREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2._DATAITEM, serialized_options=_b( - "\202\323\344\223\0023\0221/v1beta1/{name=projects/*/datasets/*/dataItems/*}" + "\202\323\344\223\0023\0221/v1beta1/{name=projects/*/datasets/*/dataItems/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4545,7 +4729,7 @@ input_type=_LISTDATAITEMSREQUEST, output_type=_LISTDATAITEMSRESPONSE, serialized_options=_b( - "\202\323\344\223\0023\0221/v1beta1/{parent=projects/*/datasets/*}/dataItems" + "\202\323\344\223\0023\0221/v1beta1/{parent=projects/*/datasets/*}/dataItems\332A\rparent,filter" ), ), _descriptor.MethodDescriptor( @@ -4556,7 +4740,7 @@ input_type=_GETANNOTATEDDATASETREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2._ANNOTATEDDATASET, serialized_options=_b( - "\202\323\344\223\002;\0229/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}" + "\202\323\344\223\002;\0229/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4567,7 +4751,7 @@ input_type=_LISTANNOTATEDDATASETSREQUEST, output_type=_LISTANNOTATEDDATASETSRESPONSE, serialized_options=_b( - "\202\323\344\223\002;\0229/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets" + "\202\323\344\223\002;\0229/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets\332A\rparent,filter" ), ), _descriptor.MethodDescriptor( @@ -4589,7 +4773,7 @@ input_type=_LABELIMAGEREQUEST, output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, serialized_options=_b( - '\202\323\344\223\0028"3/v1beta1/{parent=projects/*/datasets/*}/image:label:\001*' + '\202\323\344\223\0028"3/v1beta1/{parent=projects/*/datasets/*}/image:label:\001*\332A\033parent,basic_config,feature\312A*\n\020AnnotatedDataset\022\026LabelOperationMetadata' ), ), _descriptor.MethodDescriptor( @@ -4600,7 +4784,7 @@ input_type=_LABELVIDEOREQUEST, output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, serialized_options=_b( - '\202\323\344\223\0028"3/v1beta1/{parent=projects/*/datasets/*}/video:label:\001*' + '\202\323\344\223\0028"3/v1beta1/{parent=projects/*/datasets/*}/video:label:\001*\332A\033parent,basic_config,feature\312A*\n\020AnnotatedDataset\022\026LabelOperationMetadata' ), ), _descriptor.MethodDescriptor( @@ -4611,7 +4795,7 @@ input_type=_LABELTEXTREQUEST, output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, serialized_options=_b( - '\202\323\344\223\0027"2/v1beta1/{parent=projects/*/datasets/*}/text:label:\001*' + '\202\323\344\223\0027"2/v1beta1/{parent=projects/*/datasets/*}/text:label:\001*\332A\033parent,basic_config,feature\312A*\n\020AnnotatedDataset\022\026LabelOperationMetadata' ), ), _descriptor.MethodDescriptor( @@ -4622,7 +4806,7 @@ input_type=_GETEXAMPLEREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2._EXAMPLE, serialized_options=_b( - "\202\323\344\223\002F\022D/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}" + "\202\323\344\223\002F\022D/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}\332A\013name,filter" ), ), _descriptor.MethodDescriptor( @@ -4633,7 +4817,7 @@ input_type=_LISTEXAMPLESREQUEST, output_type=_LISTEXAMPLESRESPONSE, serialized_options=_b( - "\202\323\344\223\002F\022D/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples" + "\202\323\344\223\002F\022D/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples\332A\rparent,filter" ), ), _descriptor.MethodDescriptor( @@ -4644,7 +4828,7 @@ input_type=_CREATEANNOTATIONSPECSETREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2._ANNOTATIONSPECSET, serialized_options=_b( - '\202\323\344\223\0024"//v1beta1/{parent=projects/*}/annotationSpecSets:\001*' + '\202\323\344\223\0024"//v1beta1/{parent=projects/*}/annotationSpecSets:\001*\332A\032parent,annotation_spec_set' ), ), _descriptor.MethodDescriptor( @@ -4655,7 +4839,7 @@ input_type=_GETANNOTATIONSPECSETREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2._ANNOTATIONSPECSET, serialized_options=_b( - "\202\323\344\223\0021\022//v1beta1/{name=projects/*/annotationSpecSets/*}" + "\202\323\344\223\0021\022//v1beta1/{name=projects/*/annotationSpecSets/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4666,7 +4850,7 @@ input_type=_LISTANNOTATIONSPECSETSREQUEST, output_type=_LISTANNOTATIONSPECSETSRESPONSE, serialized_options=_b( - "\202\323\344\223\0021\022//v1beta1/{parent=projects/*}/annotationSpecSets" + "\202\323\344\223\0021\022//v1beta1/{parent=projects/*}/annotationSpecSets\332A\rparent,filter" ), ), _descriptor.MethodDescriptor( @@ -4677,7 +4861,7 @@ input_type=_DELETEANNOTATIONSPECSETREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=_b( - "\202\323\344\223\0021*//v1beta1/{name=projects/*/annotationSpecSets/*}" + "\202\323\344\223\0021*//v1beta1/{name=projects/*/annotationSpecSets/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4688,7 +4872,7 @@ input_type=_CREATEINSTRUCTIONREQUEST, output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, serialized_options=_b( - '\202\323\344\223\002.")/v1beta1/{parent=projects/*}/instructions:\001*' + '\202\323\344\223\002.")/v1beta1/{parent=projects/*}/instructions:\001*\332A\022parent,instruction\312A(\n\013Instruction\022\031CreateInstructionMetadata' ), ), _descriptor.MethodDescriptor( @@ -4699,7 +4883,7 @@ input_type=_GETINSTRUCTIONREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_instruction__pb2._INSTRUCTION, serialized_options=_b( - "\202\323\344\223\002+\022)/v1beta1/{name=projects/*/instructions/*}" + "\202\323\344\223\002+\022)/v1beta1/{name=projects/*/instructions/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4710,7 +4894,7 @@ input_type=_LISTINSTRUCTIONSREQUEST, output_type=_LISTINSTRUCTIONSRESPONSE, serialized_options=_b( - "\202\323\344\223\002+\022)/v1beta1/{parent=projects/*}/instructions" + "\202\323\344\223\002+\022)/v1beta1/{parent=projects/*}/instructions\332A\rparent,filter" ), ), _descriptor.MethodDescriptor( @@ -4721,7 +4905,7 @@ input_type=_DELETEINSTRUCTIONREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=_b( - "\202\323\344\223\002+*)/v1beta1/{name=projects/*/instructions/*}" + "\202\323\344\223\002+*)/v1beta1/{name=projects/*/instructions/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4732,7 +4916,7 @@ input_type=_GETEVALUATIONREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_evaluation__pb2._EVALUATION, serialized_options=_b( - "\202\323\344\223\0025\0223/v1beta1/{name=projects/*/datasets/*/evaluations/*}" + "\202\323\344\223\0025\0223/v1beta1/{name=projects/*/datasets/*/evaluations/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4743,7 +4927,7 @@ input_type=_SEARCHEVALUATIONSREQUEST, output_type=_SEARCHEVALUATIONSRESPONSE, serialized_options=_b( - "\202\323\344\223\0021\022//v1beta1/{parent=projects/*}/evaluations:search" + "\202\323\344\223\0021\022//v1beta1/{parent=projects/*}/evaluations:search\332A\rparent,filter" ), ), _descriptor.MethodDescriptor( @@ -4754,7 +4938,7 @@ input_type=_SEARCHEXAMPLECOMPARISONSREQUEST, output_type=_SEARCHEXAMPLECOMPARISONSRESPONSE, serialized_options=_b( - '\202\323\344\223\002T"O/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search:\001*' + '\202\323\344\223\002T"O/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search:\001*\332A\006parent' ), ), _descriptor.MethodDescriptor( @@ -4765,7 +4949,7 @@ input_type=_CREATEEVALUATIONJOBREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_evaluation__job__pb2._EVALUATIONJOB, serialized_options=_b( - '\202\323\344\223\0020"+/v1beta1/{parent=projects/*}/evaluationJobs:\001*' + '\202\323\344\223\0020"+/v1beta1/{parent=projects/*}/evaluationJobs:\001*\332A\nparent,job' ), ), _descriptor.MethodDescriptor( @@ -4776,7 +4960,7 @@ input_type=_UPDATEEVALUATIONJOBREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_evaluation__job__pb2._EVALUATIONJOB, serialized_options=_b( - "\202\323\344\223\002L2:/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}:\016evaluation_job" + "\202\323\344\223\002L2:/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}:\016evaluation_job\332A\032evaluation_job,update_mask" ), ), _descriptor.MethodDescriptor( @@ -4787,7 +4971,7 @@ input_type=_GETEVALUATIONJOBREQUEST, output_type=google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_evaluation__job__pb2._EVALUATIONJOB, serialized_options=_b( - "\202\323\344\223\002-\022+/v1beta1/{name=projects/*/evaluationJobs/*}" + "\202\323\344\223\002-\022+/v1beta1/{name=projects/*/evaluationJobs/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4798,7 +4982,7 @@ input_type=_PAUSEEVALUATIONJOBREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=_b( - '\202\323\344\223\0026"1/v1beta1/{name=projects/*/evaluationJobs/*}:pause:\001*' + '\202\323\344\223\0026"1/v1beta1/{name=projects/*/evaluationJobs/*}:pause:\001*\332A\004name' ), ), _descriptor.MethodDescriptor( @@ -4809,7 +4993,7 @@ input_type=_RESUMEEVALUATIONJOBREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=_b( - '\202\323\344\223\0027"2/v1beta1/{name=projects/*/evaluationJobs/*}:resume:\001*' + '\202\323\344\223\0027"2/v1beta1/{name=projects/*/evaluationJobs/*}:resume:\001*\332A\004name' ), ), _descriptor.MethodDescriptor( @@ -4820,7 +5004,7 @@ input_type=_DELETEEVALUATIONJOBREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=_b( - "\202\323\344\223\002-*+/v1beta1/{name=projects/*/evaluationJobs/*}" + "\202\323\344\223\002-*+/v1beta1/{name=projects/*/evaluationJobs/*}\332A\004name" ), ), _descriptor.MethodDescriptor( @@ -4831,7 +5015,7 @@ input_type=_LISTEVALUATIONJOBSREQUEST, output_type=_LISTEVALUATIONJOBSRESPONSE, serialized_options=_b( - "\202\323\344\223\002-\022+/v1beta1/{parent=projects/*}/evaluationJobs" + "\202\323\344\223\002-\022+/v1beta1/{parent=projects/*}/evaluationJobs\332A\rparent,filter" ), ), ], diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2_grpc.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2_grpc.py index 679841fb13e9..0fd76723ce2f 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2_grpc.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2_grpc.py @@ -389,24 +389,24 @@ def DeleteInstruction(self, request, context): raise NotImplementedError("Method not implemented!") def GetEvaluation(self, request, context): - """Gets an evaluation by resource name. + """Gets an evaluation by resource name (to search, use + [projects.evaluations.search][google.cloud.datalabeling.v1beta1.DataLabelingService.SearchEvaluations]). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") raise NotImplementedError("Method not implemented!") def SearchEvaluations(self, request, context): - """Searchs evaluations within a project. Supported filter: evaluation_job, - evaluation_time. + """Searches [evaluations][google.cloud.datalabeling.v1beta1.Evaluation] within a project. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") raise NotImplementedError("Method not implemented!") def SearchExampleComparisons(self, request, context): - """Searchs example comparisons in evaluation, in format of examples - of both ground truth and prediction(s). It is represented as a search with - evaluation id. + """Searches example comparisons from an evaluation. The return format is a + list of example comparisons that show ground truth and prediction(s) for + a single input. Search by providing an evaluation ID. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -420,7 +420,12 @@ def CreateEvaluationJob(self, request, context): raise NotImplementedError("Method not implemented!") def UpdateEvaluationJob(self, request, context): - """Updates an evaluation job. + """Updates an evaluation job. You can only update certain fields of the job's + [EvaluationJobConfig][google.cloud.datalabeling.v1beta1.EvaluationJobConfig]: `humanAnnotationConfig.instruction`, + `exampleCount`, and `exampleSamplePercentage`. + + If you want to change any other aspect of the evaluation job, you must + delete the job and create a new one. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -434,16 +439,16 @@ def GetEvaluationJob(self, request, context): raise NotImplementedError("Method not implemented!") def PauseEvaluationJob(self, request, context): - """Pauses an evaluation job. Pausing a evaluation job that is already in - PAUSED state will be a no-op. + """Pauses an evaluation job. Pausing an evaluation job that is already in a + `PAUSED` state is a no-op. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") raise NotImplementedError("Method not implemented!") def ResumeEvaluationJob(self, request, context): - """Resumes a paused evaluation job. Deleted evaluation job can't be resumed. - Resuming a running evaluation job will be a no-op. + """Resumes a paused evaluation job. A deleted evaluation job can't be resumed. + Resuming a running or scheduled evaluation job is a no-op. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset.proto index 02117c94dde6..a0bc9a433f4c 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset.proto @@ -18,7 +18,9 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/annotation.proto"; +import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; import "google/cloud/datalabeling/v1beta1/data_payloads.proto"; import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto"; import "google/protobuf/timestamp.proto"; @@ -30,18 +32,26 @@ option java_package = "com.google.cloud.datalabeling.v1beta1"; enum DataType { DATA_TYPE_UNSPECIFIED = 0; + // Allowed for continuous evaluation. IMAGE = 1; VIDEO = 2; + // Allowed for continuous evaluation. TEXT = 4; + // Allowed for continuous evaluation. GENERAL_DATA = 6; } // Dataset is the resource to hold your data. You can request multiple labeling // tasks for a dataset while each one will generate an AnnotatedDataset. message Dataset { + option (google.api.resource) = { + type: "datalabeling.googleapis.com/Dataset" + pattern: "projects/{project}/datasets/{dataset}" + }; + // Output only. Dataset resource name, format is: // projects/{project_id}/datasets/{dataset_id} string name = 1; @@ -82,20 +92,22 @@ message InputConfig { // Source located in Cloud Storage. GcsSource gcs_source = 2; + // Source located in BigQuery. You must specify this field if you are using + // this InputConfig in an [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob]. BigQuerySource bigquery_source = 5; } // Required. Data type must be specifed when user tries to import data. DataType data_type = 1; - // Optional. If input contains annotation, user needs to specify the - // type and metadata of the annotation when creating it as an annotated - // dataset. + // Optional. The type of annotation to be performed on this data. You must + // specify this field if you are using this InputConfig in an + // [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob]. AnnotationType annotation_type = 3; - // Optional. Metadata about annotations in the input. Each annotation type may - // have different metadata. - // Metadata for classification problem. + // Optional. Metadata about annotations for the input. You must specify this + // field if you are using this InputConfig in an [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob] for a + // model version that performs classification. ClassificationMetadata classification_metadata = 4; } @@ -123,10 +135,24 @@ message GcsSource { string mime_type = 2; } -// The BigQuery location for the input content. +// The BigQuery location for input data. If used in an [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob], this +// is where the service saves the prediction input and output sampled from the +// model version. message BigQuerySource { - // Required. BigQuery URI to a table, up to 2000 characters long. - // Accepted forms: BigQuery gs path e.g. bq://projectId.bqDatasetId.bqTableId + // Required. BigQuery URI to a table, up to 2,000 characters long. If you + // specify the URI of a table that does not exist, Data Labeling Service + // creates a table at the URI with the correct schema when you create your + // [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob]. If you specify the URI of a table that already exists, + // it must have the + // [correct + // schema](/ml-engine/docs/continuous-evaluation/create-job#table-schema). + // + // Provide the table URI in the following format: + // + // "bq://{your_project_id}/{your_dataset_name}/{your_table_name}" + // + // [Learn + // more](/ml-engine/docs/continuous-evaluation/create-job#table-schema). string input_uri = 1; } @@ -164,6 +190,11 @@ message GcsFolderDestination { // DataItem is a piece of data, without annotation. For example, an image. message DataItem { + option (google.api.resource) = { + type: "datalabeling.googleapis.com/DataItem" + pattern: "projects/{project}/datasets/{dataset}/dataItems/{data_item}" + }; + // Output only. oneof payload { // The image payload, a container of the image bytes/uri. @@ -185,6 +216,11 @@ message DataItem { // labeling task will generate an AnnotatedDataset under the Dataset that the // task is requested for. message AnnotatedDataset { + option (google.api.resource) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + pattern: "projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}" + }; + // Output only. AnnotatedDataset resource name in format of: // projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ // {annotated_dataset_id} @@ -281,6 +317,11 @@ message AnnotatedDatasetMetadata { // An Example is a piece of data and its annotation. For example, an image with // label "house". message Example { + option (google.api.resource) = { + type: "datalabeling.googleapis.com/Example" + pattern: "projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}/examples/{example}" + }; + // Output only. The data part of Example. oneof payload { // The image payload, a container of the image bytes/uri. diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset_pb2.py index a983254ed40d..8f798fa61518 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/dataset_pb2.py @@ -17,9 +17,13 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.cloud.datalabeling_v1beta1.proto import ( annotation_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__pb2, ) +from google.cloud.datalabeling_v1beta1.proto import ( + annotation_spec_set_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2, +) from google.cloud.datalabeling_v1beta1.proto import ( data_payloads_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_data__payloads__pb2, ) @@ -37,11 +41,13 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\n5google/cloud/datalabeling_v1beta1/proto/dataset.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x38google/cloud/datalabeling_v1beta1/proto/annotation.proto\x1a;google/cloud/datalabeling_v1beta1/proto/data_payloads.proto\x1a\x45google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xef\x01\n\x07\x44\x61taset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\rinput_configs\x18\x05 \x03(\x0b\x32..google.cloud.datalabeling.v1beta1.InputConfig\x12\x1a\n\x12\x62locking_resources\x18\x06 \x03(\t\x12\x17\n\x0f\x64\x61ta_item_count\x18\x07 \x01(\x03"\xf1\x03\n\x0bInputConfig\x12H\n\rtext_metadata\x18\x06 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.TextMetadataH\x00\x12\x42\n\ngcs_source\x18\x02 \x01(\x0b\x32,.google.cloud.datalabeling.v1beta1.GcsSourceH\x01\x12L\n\x0f\x62igquery_source\x18\x05 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.BigQuerySourceH\x01\x12>\n\tdata_type\x18\x01 \x01(\x0e\x32+.google.cloud.datalabeling.v1beta1.DataType\x12J\n\x0f\x61nnotation_type\x18\x03 \x01(\x0e\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationType\x12Z\n\x17\x63lassification_metadata\x18\x04 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.ClassificationMetadataB\x14\n\x12\x64\x61ta_type_metadataB\x08\n\x06source"%\n\x0cTextMetadata\x12\x15\n\rlanguage_code\x18\x01 \x01(\t"0\n\x16\x43lassificationMetadata\x12\x16\n\x0eis_multi_label\x18\x01 \x01(\x08"1\n\tGcsSource\x12\x11\n\tinput_uri\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t"#\n\x0e\x42igQuerySource\x12\x11\n\tinput_uri\x18\x01 \x01(\t"\xc6\x01\n\x0cOutputConfig\x12L\n\x0fgcs_destination\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.GcsDestinationH\x00\x12Y\n\x16gcs_folder_destination\x18\x02 \x01(\x0b\x32\x37.google.cloud.datalabeling.v1beta1.GcsFolderDestinationH\x00\x42\r\n\x0b\x64\x65stination"7\n\x0eGcsDestination\x12\x12\n\noutput_uri\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t"1\n\x14GcsFolderDestination\x12\x19\n\x11output_folder_uri\x18\x01 \x01(\t"\xff\x01\n\x08\x44\x61taItem\x12H\n\rimage_payload\x18\x02 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.ImagePayloadH\x00\x12\x46\n\x0ctext_payload\x18\x03 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TextPayloadH\x00\x12H\n\rvideo_payload\x18\x04 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.VideoPayloadH\x00\x12\x0c\n\x04name\x18\x01 \x01(\tB\t\n\x07payload"\xff\x03\n\x10\x41nnotatedDataset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\t \x01(\t\x12N\n\x11\x61nnotation_source\x18\x03 \x01(\x0e\x32\x33.google.cloud.datalabeling.v1beta1.AnnotationSource\x12J\n\x0f\x61nnotation_type\x18\x08 \x01(\x0e\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationType\x12\x15\n\rexample_count\x18\x04 \x01(\x03\x12\x1f\n\x17\x63ompleted_example_count\x18\x05 \x01(\x03\x12\x42\n\x0blabel_stats\x18\x06 \x01(\x0b\x32-.google.cloud.datalabeling.v1beta1.LabelStats\x12/\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12M\n\x08metadata\x18\n \x01(\x0b\x32;.google.cloud.datalabeling.v1beta1.AnnotatedDatasetMetadata\x12\x1a\n\x12\x62locking_resources\x18\x0b \x03(\t"\x99\x01\n\nLabelStats\x12V\n\rexample_count\x18\x01 \x03(\x0b\x32?.google.cloud.datalabeling.v1beta1.LabelStats.ExampleCountEntry\x1a\x33\n\x11\x45xampleCountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01"\xa2\x08\n\x18\x41nnotatedDatasetMetadata\x12\x63\n\x1bimage_classification_config\x18\x02 \x01(\x0b\x32<.google.cloud.datalabeling.v1beta1.ImageClassificationConfigH\x00\x12U\n\x14\x62ounding_poly_config\x18\x03 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.BoundingPolyConfigH\x00\x12L\n\x0fpolyline_config\x18\x04 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.PolylineConfigH\x00\x12T\n\x13segmentation_config\x18\x05 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.SegmentationConfigH\x00\x12\x63\n\x1bvideo_classification_config\x18\x06 \x01(\x0b\x32<.google.cloud.datalabeling.v1beta1.VideoClassificationConfigH\x00\x12[\n\x17object_detection_config\x18\x07 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.ObjectDetectionConfigH\x00\x12Y\n\x16object_tracking_config\x18\x08 \x01(\x0b\x32\x37.google.cloud.datalabeling.v1beta1.ObjectTrackingConfigH\x00\x12\x46\n\x0c\x65vent_config\x18\t \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.EventConfigH\x00\x12\x61\n\x1atext_classification_config\x18\n \x01(\x0b\x32;.google.cloud.datalabeling.v1beta1.TextClassificationConfigH\x00\x12\x66\n\x1dtext_entity_extraction_config\x18\x0b \x01(\x0b\x32=.google.cloud.datalabeling.v1beta1.TextEntityExtractionConfigH\x00\x12Y\n\x17human_annotation_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfigB\x1b\n\x19\x61nnotation_request_config"\xc2\x02\n\x07\x45xample\x12H\n\rimage_payload\x18\x02 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.ImagePayloadH\x00\x12\x46\n\x0ctext_payload\x18\x06 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TextPayloadH\x00\x12H\n\rvideo_payload\x18\x07 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.VideoPayloadH\x00\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x42\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32-.google.cloud.datalabeling.v1beta1.AnnotationB\t\n\x07payload*W\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x12\x08\n\x04TEXT\x10\x04\x12\x10\n\x0cGENERAL_DATA\x10\x06\x42x\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\n5google/cloud/datalabeling_v1beta1/proto/dataset.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto\x1a\x38google/cloud/datalabeling_v1beta1/proto/annotation.proto\x1a\x41google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x1a;google/cloud/datalabeling_v1beta1/proto/data_payloads.proto\x1a\x45google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xc0\x02\n\x07\x44\x61taset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\rinput_configs\x18\x05 \x03(\x0b\x32..google.cloud.datalabeling.v1beta1.InputConfig\x12\x1a\n\x12\x62locking_resources\x18\x06 \x03(\t\x12\x17\n\x0f\x64\x61ta_item_count\x18\x07 \x01(\x03:O\xea\x41L\n#datalabeling.googleapis.com/Dataset\x12%projects/{project}/datasets/{dataset}"\xf1\x03\n\x0bInputConfig\x12H\n\rtext_metadata\x18\x06 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.TextMetadataH\x00\x12\x42\n\ngcs_source\x18\x02 \x01(\x0b\x32,.google.cloud.datalabeling.v1beta1.GcsSourceH\x01\x12L\n\x0f\x62igquery_source\x18\x05 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.BigQuerySourceH\x01\x12>\n\tdata_type\x18\x01 \x01(\x0e\x32+.google.cloud.datalabeling.v1beta1.DataType\x12J\n\x0f\x61nnotation_type\x18\x03 \x01(\x0e\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationType\x12Z\n\x17\x63lassification_metadata\x18\x04 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.ClassificationMetadataB\x14\n\x12\x64\x61ta_type_metadataB\x08\n\x06source"%\n\x0cTextMetadata\x12\x15\n\rlanguage_code\x18\x01 \x01(\t"0\n\x16\x43lassificationMetadata\x12\x16\n\x0eis_multi_label\x18\x01 \x01(\x08"1\n\tGcsSource\x12\x11\n\tinput_uri\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t"#\n\x0e\x42igQuerySource\x12\x11\n\tinput_uri\x18\x01 \x01(\t"\xc6\x01\n\x0cOutputConfig\x12L\n\x0fgcs_destination\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.GcsDestinationH\x00\x12Y\n\x16gcs_folder_destination\x18\x02 \x01(\x0b\x32\x37.google.cloud.datalabeling.v1beta1.GcsFolderDestinationH\x00\x42\r\n\x0b\x64\x65stination"7\n\x0eGcsDestination\x12\x12\n\noutput_uri\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t"1\n\x14GcsFolderDestination\x12\x19\n\x11output_folder_uri\x18\x01 \x01(\t"\xe7\x02\n\x08\x44\x61taItem\x12H\n\rimage_payload\x18\x02 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.ImagePayloadH\x00\x12\x46\n\x0ctext_payload\x18\x03 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TextPayloadH\x00\x12H\n\rvideo_payload\x18\x04 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.VideoPayloadH\x00\x12\x0c\n\x04name\x18\x01 \x01(\t:f\xea\x41\x63\n$datalabeling.googleapis.com/DataItem\x12;projects/{project}/datasets/{dataset}/dataItems/{data_item}B\t\n\x07payload"\xff\x04\n\x10\x41nnotatedDataset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\t \x01(\t\x12N\n\x11\x61nnotation_source\x18\x03 \x01(\x0e\x32\x33.google.cloud.datalabeling.v1beta1.AnnotationSource\x12J\n\x0f\x61nnotation_type\x18\x08 \x01(\x0e\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationType\x12\x15\n\rexample_count\x18\x04 \x01(\x03\x12\x1f\n\x17\x63ompleted_example_count\x18\x05 \x01(\x03\x12\x42\n\x0blabel_stats\x18\x06 \x01(\x0b\x32-.google.cloud.datalabeling.v1beta1.LabelStats\x12/\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12M\n\x08metadata\x18\n \x01(\x0b\x32;.google.cloud.datalabeling.v1beta1.AnnotatedDatasetMetadata\x12\x1a\n\x12\x62locking_resources\x18\x0b \x03(\t:~\xea\x41{\n,datalabeling.googleapis.com/AnnotatedDataset\x12Kprojects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}"\x99\x01\n\nLabelStats\x12V\n\rexample_count\x18\x01 \x03(\x0b\x32?.google.cloud.datalabeling.v1beta1.LabelStats.ExampleCountEntry\x1a\x33\n\x11\x45xampleCountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01"\xa2\x08\n\x18\x41nnotatedDatasetMetadata\x12\x63\n\x1bimage_classification_config\x18\x02 \x01(\x0b\x32<.google.cloud.datalabeling.v1beta1.ImageClassificationConfigH\x00\x12U\n\x14\x62ounding_poly_config\x18\x03 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.BoundingPolyConfigH\x00\x12L\n\x0fpolyline_config\x18\x04 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.PolylineConfigH\x00\x12T\n\x13segmentation_config\x18\x05 \x01(\x0b\x32\x35.google.cloud.datalabeling.v1beta1.SegmentationConfigH\x00\x12\x63\n\x1bvideo_classification_config\x18\x06 \x01(\x0b\x32<.google.cloud.datalabeling.v1beta1.VideoClassificationConfigH\x00\x12[\n\x17object_detection_config\x18\x07 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.ObjectDetectionConfigH\x00\x12Y\n\x16object_tracking_config\x18\x08 \x01(\x0b\x32\x37.google.cloud.datalabeling.v1beta1.ObjectTrackingConfigH\x00\x12\x46\n\x0c\x65vent_config\x18\t \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.EventConfigH\x00\x12\x61\n\x1atext_classification_config\x18\n \x01(\x0b\x32;.google.cloud.datalabeling.v1beta1.TextClassificationConfigH\x00\x12\x66\n\x1dtext_entity_extraction_config\x18\x0b \x01(\x0b\x32=.google.cloud.datalabeling.v1beta1.TextEntityExtractionConfigH\x00\x12Y\n\x17human_annotation_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfigB\x1b\n\x19\x61nnotation_request_config"\xce\x03\n\x07\x45xample\x12H\n\rimage_payload\x18\x02 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.ImagePayloadH\x00\x12\x46\n\x0ctext_payload\x18\x06 \x01(\x0b\x32..google.cloud.datalabeling.v1beta1.TextPayloadH\x00\x12H\n\rvideo_payload\x18\x07 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.VideoPayloadH\x00\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x42\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32-.google.cloud.datalabeling.v1beta1.Annotation:\x89\x01\xea\x41\x85\x01\n#datalabeling.googleapis.com/Example\x12^projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}/examples/{example}B\t\n\x07payload*W\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05IMAGE\x10\x01\x12\t\n\x05VIDEO\x10\x02\x12\x08\n\x04TEXT\x10\x04\x12\x10\n\x0cGENERAL_DATA\x10\x06\x42x\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__pb2.DESCRIPTOR, + google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_data__payloads__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_human__annotation__config__pb2.DESCRIPTOR, google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR, @@ -76,8 +82,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=3887, - serialized_end=3974, + serialized_start=4434, + serialized_end=4521, ) _sym_db.RegisterEnumDescriptor(_DATATYPE) @@ -226,13 +232,15 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b( + "\352AL\n#datalabeling.googleapis.com/Dataset\022%projects/{project}/datasets/{dataset}" + ), is_extendable=False, syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=346, - serialized_end=585, + serialized_start=440, + serialized_end=760, ) @@ -375,8 +383,8 @@ fields=[], ), ], - serialized_start=588, - serialized_end=1085, + serialized_start=763, + serialized_end=1260, ) @@ -414,8 +422,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1087, - serialized_end=1124, + serialized_start=1262, + serialized_end=1299, ) @@ -453,8 +461,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1126, - serialized_end=1174, + serialized_start=1301, + serialized_end=1349, ) @@ -510,8 +518,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1176, - serialized_end=1225, + serialized_start=1351, + serialized_end=1400, ) @@ -549,8 +557,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1227, - serialized_end=1262, + serialized_start=1402, + serialized_end=1437, ) @@ -614,8 +622,8 @@ fields=[], ) ], - serialized_start=1265, - serialized_end=1463, + serialized_start=1440, + serialized_end=1638, ) @@ -671,8 +679,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1465, - serialized_end=1520, + serialized_start=1640, + serialized_end=1695, ) @@ -710,8 +718,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1522, - serialized_end=1571, + serialized_start=1697, + serialized_end=1746, ) @@ -798,7 +806,9 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b( + "\352Ac\n$datalabeling.googleapis.com/DataItem\022;projects/{project}/datasets/{dataset}/dataItems/{data_item}" + ), is_extendable=False, syntax="proto3", extension_ranges=[], @@ -811,8 +821,8 @@ fields=[], ) ], - serialized_start=1574, - serialized_end=1829, + serialized_start=1749, + serialized_end=2108, ) @@ -1025,13 +1035,15 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b( + "\352A{\n,datalabeling.googleapis.com/AnnotatedDataset\022Kprojects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}" + ), is_extendable=False, syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1832, - serialized_end=2343, + serialized_start=2111, + serialized_end=2750, ) @@ -1087,8 +1099,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2448, - serialized_end=2499, + serialized_start=2855, + serialized_end=2906, ) _LABELSTATS = _descriptor.Descriptor( @@ -1125,8 +1137,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2346, - serialized_end=2499, + serialized_start=2753, + serialized_end=2906, ) @@ -1352,8 +1364,8 @@ fields=[], ) ], - serialized_start=2502, - serialized_end=3560, + serialized_start=2909, + serialized_end=3967, ) @@ -1458,7 +1470,9 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b( + "\352A\205\001\n#datalabeling.googleapis.com/Example\022^projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}/examples/{example}" + ), is_extendable=False, syntax="proto3", extension_ranges=[], @@ -1471,8 +1485,8 @@ fields=[], ) ], - serialized_start=3563, - serialized_end=3885, + serialized_start=3970, + serialized_end=4432, ) _DATASET.fields_by_name[ @@ -1771,8 +1785,8 @@ dict( DESCRIPTOR=_DATASET, __module__="google.cloud.datalabeling_v1beta1.proto.dataset_pb2", - __doc__="""Dataset is the resource to hold your data. You can request multiple - labeling tasks for a dataset while each one will generate an + __doc__="""Dataset is the resource to hold your data. You can request + multiple labeling tasks for a dataset while each one will generate an AnnotatedDataset. @@ -1810,7 +1824,8 @@ dict( DESCRIPTOR=_INPUTCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.dataset_pb2", - __doc__="""The configuration of input data, including data type, location, etc. + __doc__="""The configuration of input data, including data type, + location, etc. Attributes: @@ -1822,17 +1837,23 @@ Required. Where the data is from. gcs_source: Source located in Cloud Storage. + bigquery_source: + Source located in BigQuery. You must specify this field if you + are using this InputConfig in an [EvaluationJob][google.cloud. + datalabeling.v1beta1.EvaluationJob]. data_type: Required. Data type must be specifed when user tries to import data. annotation_type: - Optional. If input contains annotation, user needs to specify - the type and metadata of the annotation when creating it as an - annotated dataset. + Optional. The type of annotation to be performed on this data. + You must specify this field if you are using this InputConfig + in an [EvaluationJob][google.cloud.datalabeling.v1beta1.Evalua + tionJob]. classification_metadata: - Optional. Metadata about annotations in the input. Each - annotation type may have different metadata. Metadata for - classification problem. + Optional. Metadata about annotations for the input. You must + specify this field if you are using this InputConfig in an [Ev + aluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob] + for a model version that performs classification. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.InputConfig) ), @@ -1904,14 +1925,25 @@ dict( DESCRIPTOR=_BIGQUERYSOURCE, __module__="google.cloud.datalabeling_v1beta1.proto.dataset_pb2", - __doc__="""The BigQuery location for the input content. + __doc__="""The BigQuery location for input data. If used in an + [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob], this + is where the service saves the prediction input and output sampled from + the model version. Attributes: input_uri: - Required. BigQuery URI to a table, up to 2000 characters long. - Accepted forms: BigQuery gs path e.g. - bq://projectId.bqDatasetId.bqTableId + Required. BigQuery URI to a table, up to 2,000 characters + long. If you specify the URI of a table that does not exist, + Data Labeling Service creates a table at the URI with the + correct schema when you create your [EvaluationJob][google.clo + ud.datalabeling.v1beta1.EvaluationJob]. If you specify the URI + of a table that already exists, it must have the `correct + schema `__. Provide the table URI in the following + format: "bq://{your\_project\_id}/{your\_dataset\_name}/{your + \_table\_name}" `Learn more `__. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.BigQuerySource) ), @@ -1948,7 +1980,8 @@ dict( DESCRIPTOR=_GCSDESTINATION, __module__="google.cloud.datalabeling_v1beta1.proto.dataset_pb2", - __doc__="""Export destination of the data.Only gcs path is allowed in output\_uri. + __doc__="""Export destination of the data.Only gcs path is allowed in + output\_uri. Attributes: @@ -1987,7 +2020,8 @@ dict( DESCRIPTOR=_DATAITEM, __module__="google.cloud.datalabeling_v1beta1.proto.dataset_pb2", - __doc__="""DataItem is a piece of data, without annotation. For example, an image. + __doc__="""DataItem is a piece of data, without annotation. For + example, an image. Attributes: @@ -2014,9 +2048,9 @@ dict( DESCRIPTOR=_ANNOTATEDDATASET, __module__="google.cloud.datalabeling_v1beta1.proto.dataset_pb2", - __doc__="""AnnotatedDataset is a set holding annotations for data in a Dataset. - Each labeling task will generate an AnnotatedDataset under the Dataset - that the task is requested for. + __doc__="""AnnotatedDataset is a set holding annotations for data in + a Dataset. Each labeling task will generate an AnnotatedDataset under + the Dataset that the task is requested for. Attributes: @@ -2137,8 +2171,8 @@ dict( DESCRIPTOR=_EXAMPLE, __module__="google.cloud.datalabeling_v1beta1.proto.dataset_pb2", - __doc__="""An Example is a piece of data and its annotation. For example, an image - with label "house". + __doc__="""An Example is a piece of data and its annotation. For + example, an image with label "house". Attributes: @@ -2165,5 +2199,9 @@ DESCRIPTOR._options = None +_DATASET._options = None +_DATAITEM._options = None +_ANNOTATEDDATASET._options = None _LABELSTATS_EXAMPLECOUNTENTRY._options = None +_EXAMPLE._options = None # @@protoc_insertion_point(module_scope) diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation.proto index ad1e975a30b2..fde0366d31dc 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation.proto @@ -18,6 +18,7 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/annotation.proto"; import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto"; import "google/protobuf/timestamp.proto"; @@ -26,51 +27,72 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1 option java_multiple_files = true; option java_package = "com.google.cloud.datalabeling.v1beta1"; -// Describes an evaluation between 2 annotated datasets. Created by an -// evaluation plan. +// Describes an evaluation between a machine learning model's predictions and +// ground truth labels. Created when an [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob] runs successfully. message Evaluation { - // Resource name of an evaluation. - // Format: - // 'projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}' + option (google.api.resource) = { + type: "datalabeling.googleapis.com/Evaluation" + pattern: "projects/{project}/datasets/{dataset}/evaluations/{evaluation}" + }; + + // Output only. Resource name of an evaluation. The name has the following + // format: + // + // "projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}' string name = 1; - // Options used in evaluation plan for creating the evaluation. + // Output only. Options used in the evaluation job that created this + // evaluation. EvaluationConfig config = 2; - // Output only. Timestamp when the evaluation plan triggered this evaluation - // flow. + // Output only. Timestamp for when the evaluation job that created this + // evaluation ran. google.protobuf.Timestamp evaluation_job_run_time = 3; - // Output only. Timestamp when this model evaluation was created. + // Output only. Timestamp for when this evaluation was created. google.protobuf.Timestamp create_time = 4; - // Output only. Metrics of the evaluation. + // Output only. Metrics comparing predictions to ground truth labels. EvaluationMetrics evaluation_metrics = 5; - // Type of the annotation to compute metrics for in the groundtruth and - // annotation labeled dataset. Required for creation. + // Output only. Type of task that the model version being evaluated performs, + // as defined in the + // + // [evaluationJobConfig.inputConfig.annotationType][google.cloud.datalabeling.v1beta1.EvaluationJobConfig.input_config] + // field of the evaluation job that created this evaluation. AnnotationType annotation_type = 6; - // Output only. Count of items in groundtruth dataset included in this - // evaluation. Will be unset if annotation type is not applicable. + // Output only. The number of items in the ground truth dataset that were used + // for this evaluation. Only populated when the evaulation is for certain + // AnnotationTypes. int64 evaluated_item_count = 7; } +// Configuration details used for calculating evaluation metrics and creating an +// [Evaluation][google.cloud.datalabeling.v1beta1.Evaluation]. message EvaluationConfig { // Vertical specific options for general metrics. oneof vertical_option { + // Only specify this field if the related model performs image object + // detection (`IMAGE_BOUNDING_BOX_ANNOTATION`). Describes how to evaluate + // bounding boxes. BoundingBoxEvaluationOptions bounding_box_evaluation_options = 1; } } // Options regarding evaluation between bounding boxes. message BoundingBoxEvaluationOptions { - // Minimize IoU required to consider 2 bounding boxes are matched. + // Minimum + // [intersection-over-union + // + // (IOU)](/vision/automl/object-detection/docs/evaluate#intersection-over-union) + // required for 2 bounding boxes to be considered a match. This must be a + // number between 0 and 1. float iou_threshold = 1; } message EvaluationMetrics { - // Common metrics covering most genernal cases. + // Common metrics covering most general cases. oneof metrics { ClassificationMetrics classification_metrics = 1; @@ -78,13 +100,17 @@ message EvaluationMetrics { } } +// Metrics calculated for a classification model. message ClassificationMetrics { - // Precision-recall curve. + // Precision-recall curve based on ground truth labels, predicted labels, and + // scores for the predicted labels. PrCurve pr_curve = 1; + // Confusion matrix of predicted labels vs. ground truth labels. ConfusionMatrix confusion_matrix = 2; } +// Metrics calculated for an image object detection (bounding box) model. message ObjectDetectionMetrics { // Precision-recall curve. PrCurve pr_curve = 1; @@ -92,8 +118,18 @@ message ObjectDetectionMetrics { message PrCurve { message ConfidenceMetricsEntry { - // Threshold used for this entry, for example, IoU threshold for bounding - // box problem, or detection threshold for classification. + // Threshold used for this entry. + // + // For classification tasks, this is a classification threshold: a + // predicted label is categorized as positive or negative (in the context of + // this point on the PR curve) based on whether the label's score meets this + // threshold. + // + // For image object detection (bounding box) tasks, this is the + // [intersection-over-union + // + // (IOU)](/vision/automl/object-detection/docs/evaluate#intersection-over-union) + // threshold for the context of this point on the PR curve. float confidence_threshold = 1; // Recall value. @@ -111,10 +147,7 @@ message PrCurve { // Precision value for entries with label that has highest score. float precision_at1 = 6; - // The harmonic mean of - // [recall_at1][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.recall_at1] - // and - // [precision_at1][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.precision_at1]. + // The harmonic mean of [recall_at1][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.recall_at1] and [precision_at1][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.precision_at1]. float f1_score_at1 = 7; // Recall value for entries with label that has highest 5 scores. @@ -123,43 +156,48 @@ message PrCurve { // Precision value for entries with label that has highest 5 scores. float precision_at5 = 9; - // The harmonic mean of - // [recall_at5][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.recall_at5] - // and - // [precision_at5][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.precision_at5]. + // The harmonic mean of [recall_at5][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.recall_at5] and [precision_at5][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.precision_at5]. float f1_score_at5 = 10; } - // PR curve against which annotation spec. Could be empty. + // The annotation spec of the label for which the precision-recall curve + // calculated. If this field is empty, that means the precision-recall curve + // is an aggregate curve for all labels. AnnotationSpec annotation_spec = 1; - // Area under precision recall curve. + // Area under the precision-recall curve. Not to be confused with area under + // a receiver operating characteristic (ROC) curve. float area_under_curve = 2; - // entries to draw PR graph. + // Entries that make up the precision-recall graph. Each entry is a "point" on + // the graph drawn for a different `confidence_threshold`. repeated ConfidenceMetricsEntry confidence_metrics_entries = 3; - // mean average prcision of this curve. + // Mean average prcision of this curve. float mean_average_precision = 4; } -// Confusion matrix of the model running the classification. Not applicable -// when label filtering is specified in evaluation option. +// Confusion matrix of the model running the classification. Only applicable +// when the metrics entry aggregates multiple labels. Not applicable when the +// entry is for a single label. message ConfusionMatrix { message ConfusionMatrixEntry { - // The predicted annotation spec. + // The annotation spec of a predicted label. AnnotationSpec annotation_spec = 1; - // Number of items being predicted as this label. + // Number of items predicted to have this label. (The ground truth label for + // these items is the `Row.annotationSpec` of this entry's parent.) int32 item_count = 2; } - // A row in the confusion matrix. + // A row in the confusion matrix. Each entry in this row has the same + // ground truth label. message Row { - // the original annotation spec of this row. + // The annotation spec of the ground truth label for this row. AnnotationSpec annotation_spec = 1; - // Info describing predicted label distribution. + // A list of the confusion matrix entries. One entry for each possible + // predicted label. repeated ConfusionMatrixEntry entries = 2; } diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job.proto index ad642464347d..49270feea45d 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job.proto @@ -18,6 +18,7 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/dataset.proto"; import "google/cloud/datalabeling/v1beta1/evaluation.proto"; import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto"; @@ -28,124 +29,244 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1 option java_multiple_files = true; option java_package = "com.google.cloud.datalabeling.v1beta1"; -// Defines an evaluation job that is triggered periodically to generate -// evaluations. +// Defines an evaluation job that runs periodically to generate +// [Evaluations][google.cloud.datalabeling.v1beta1.Evaluation]. [Creating an evaluation +// job](/ml-engine/docs/continuous-evaluation/create-job) is the starting point +// for using continuous evaluation. message EvaluationJob { + option (google.api.resource) = { + type: "datalabeling.googleapis.com/EvaluationJob" + pattern: "projects/{project}/evaluationJobs/{evaluation_job}" + }; + // State of the job. enum State { STATE_UNSPECIFIED = 0; + // The job is scheduled to run at the [configured interval][google.cloud.datalabeling.v1beta1.EvaluationJob.schedule]. You + // can [pause][google.cloud.datalabeling.v1beta1.DataLabelingService.PauseEvaluationJob] or + // [delete][google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteEvaluationJob] the job. + // + // When the job is in this state, it samples prediction input and output + // from your model version into your BigQuery table as predictions occur. SCHEDULED = 1; + // The job is currently running. When the job runs, Data Labeling Service + // does several things: + // + // 1. If you have configured your job to use Data Labeling Service for + // ground truth labeling, the service creates a + // [Dataset][google.cloud.datalabeling.v1beta1.Dataset] and a labeling task for all data sampled + // since the last time the job ran. Human labelers provide ground truth + // labels for your data. Human labeling may take hours, or even days, + // depending on how much data has been sampled. The job remains in the + // `RUNNING` state during this time, and it can even be running multiple + // times in parallel if it gets triggered again (for example 24 hours + // later) before the earlier run has completed. When human labelers have + // finished labeling the data, the next step occurs. + //

+ // If you have configured your job to provide your own ground truth + // labels, Data Labeling Service still creates a [Dataset][google.cloud.datalabeling.v1beta1.Dataset] for newly + // sampled data, but it expects that you have already added ground truth + // labels to the BigQuery table by this time. The next step occurs + // immediately. + // + // 2. Data Labeling Service creates an [Evaluation][google.cloud.datalabeling.v1beta1.Evaluation] by comparing your + // model version's predictions with the ground truth labels. + // + // If the job remains in this state for a long time, it continues to sample + // prediction data into your BigQuery table and will run again at the next + // interval, even if it causes the job to run multiple times in parallel. RUNNING = 2; + // The job is not sampling prediction input and output into your BigQuery + // table and it will not run according to its schedule. You can + // [resume][google.cloud.datalabeling.v1beta1.DataLabelingService.ResumeEvaluationJob] the job. PAUSED = 3; + // The job has this state right before it is deleted. STOPPED = 4; } - // Format: 'projects/{project_id}/evaluationJobs/{evaluation_job_id}' + // Output only. After you create a job, Data Labeling Service assigns a name + // to the job with the following format: + // + // "projects/{project_id}/evaluationJobs/{evaluation_job_id}" string name = 1; - // Description of the job. The description can be up to - // 25000 characters long. + // Required. Description of the job. The description can be up to 25,000 + // characters long. string description = 2; + // Output only. Describes the current state of the job. State state = 3; - // Describes the schedule on which the job will be executed. Minimum schedule - // unit is 1 day. + // Required. Describes the interval at which the job runs. This interval must + // be at least 1 day, and it is rounded to the nearest day. For example, if + // you specify a 50-hour interval, the job runs every 2 days. // - // The schedule can be either of the following types: - // * [Crontab](http://en.wikipedia.org/wiki/Cron#Overview) - // * English-like + // You can provide the schedule in + // [crontab format](/scheduler/docs/configuring/cron-job-schedules) or in an + // [English-like + // format](/appengine/docs/standard/python/config/cronref#schedule_format). // - // [schedule](https: - // //cloud.google.com/scheduler/docs/configuring/cron-job-schedules) + // Regardless of what you specify, the job will run at 10:00 AM UTC. Only the + // interval from this schedule is used, not the specific time of day. string schedule = 4; - // The versioned model that is being evaluated here. - // Only one job is allowed for each model name. - // Format: 'projects/*/models/*/versions/*' + // Required. The [AI Platform Prediction model + // version](/ml-engine/docs/prediction-overview) to be evaluated. Prediction + // input and output is sampled from this model version. When creating an + // evaluation job, specify the model version in the following format: + // + // "projects/{project_id}/models/{model_name}/versions/{version_name}" + // + // There can only be one evaluation job per model version. string model_version = 5; - // Detailed config for running this eval job. + // Required. Configuration details for the evaluation job. EvaluationJobConfig evaluation_job_config = 6; - // Name of the AnnotationSpecSet. + // Required. Name of the [AnnotationSpecSet][google.cloud.datalabeling.v1beta1.AnnotationSpecSet] describing all the + // labels that your machine learning model outputs. You must create this + // resource before you create an evaluation job and provide its name in the + // following format: + // + // "projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}" string annotation_spec_set = 7; - // If a human annotation should be requested when some data don't have ground - // truth. + // Required. Whether you want Data Labeling Service to provide ground truth + // labels for prediction input. If you want the service to assign human + // labelers to annotate your data, set this to `true`. If you want to provide + // your own ground truth labels in the evaluation job's BigQuery table, set + // this to `false`. bool label_missing_ground_truth = 8; - // Output only. Any attempts with errors happening in evaluation job runs each - // time will be recorded here incrementally. + // Output only. Every time the evaluation job runs and an error occurs, the + // failed attempt is appended to this array. repeated Attempt attempts = 9; - // Timestamp when this evaluation job was created. + // Output only. Timestamp of when this evaluation job was created. google.protobuf.Timestamp create_time = 10; } +// Configures specific details of how a continuous evaluation job works. Provide +// this configuration when you create an EvaluationJob. message EvaluationJobConfig { - // config specific to different supported human annotation use cases. + // Required. Details for how you want human reviewers to provide ground truth + // labels. oneof human_annotation_request_config { + // Specify this field if your model version performs image classification or + // general classification. + // + // `annotationSpecSet` in this configuration must match + // [EvaluationJob.annotationSpecSet][google.cloud.datalabeling.v1beta1.EvaluationJob.annotation_spec_set]. + // `allowMultiLabel` in this configuration must match + // `classificationMetadata.isMultiLabel` in [input_config][google.cloud.datalabeling.v1beta1.EvaluationJobConfig.input_config]. ImageClassificationConfig image_classification_config = 4; + // Specify this field if your model version performs image object detection + // (bounding box detection). + // + // `annotationSpecSet` in this configuration must match + // [EvaluationJob.annotationSpecSet][google.cloud.datalabeling.v1beta1.EvaluationJob.annotation_spec_set]. BoundingPolyConfig bounding_poly_config = 5; - VideoClassificationConfig video_classification_config = 6; - - ObjectDetectionConfig object_detection_config = 7; - + // Specify this field if your model version performs text classification. + // + // `annotationSpecSet` in this configuration must match + // [EvaluationJob.annotationSpecSet][google.cloud.datalabeling.v1beta1.EvaluationJob.annotation_spec_set]. + // `allowMultiLabel` in this configuration must match + // `classificationMetadata.isMultiLabel` in [input_config][google.cloud.datalabeling.v1beta1.EvaluationJobConfig.input_config]. TextClassificationConfig text_classification_config = 8; - - ObjectTrackingConfig object_tracking_config = 12; } - // Input config for data, gcs_source in the config will be the root path for - // data. Data should be organzied chronically under that path. + // Rquired. Details for the sampled prediction input. Within this + // configuration, there are requirements for several fields: + // + // * `dataType` must be one of `IMAGE`, `TEXT`, or `GENERAL_DATA`. + // * `annotationType` must be one of `IMAGE_CLASSIFICATION_ANNOTATION`, + // `TEXT_CLASSIFICATION_ANNOTATION`, `GENERAL_CLASSIFICATION_ANNOTATION`, + // or `IMAGE_BOUNDING_BOX_ANNOTATION` (image object detection). + // * If your machine learning model performs classification, you must specify + // `classificationMetadata.isMultiLabel`. + // * You must specify `bigquerySource` (not `gcsSource`). InputConfig input_config = 1; - // Config used to create evaluation. + // Required. Details for calculating evaluation metrics and creating + // [Evaulations][google.cloud.datalabeling.v1beta1.Evaluation]. If your model version performs image object + // detection, you must specify the `boundingBoxEvaluationOptions` field within + // this configuration. Otherwise, provide an empty object for this + // configuration. EvaluationConfig evaluation_config = 2; + // Optional. Details for human annotation of your data. If you set + // [labelMissingGroundTruth][google.cloud.datalabeling.v1beta1.EvaluationJob.label_missing_ground_truth] to + // `true` for this evaluation job, then you must specify this field. If you + // plan to provide your own ground truth labels, then omit this field. + // + // Note that you must create an [Instruction][google.cloud.datalabeling.v1beta1.Instruction] resource before you can + // specify this field. Provide the name of the instruction resource in the + // `instruction` field within this configuration. HumanAnnotationConfig human_annotation_config = 3; - // Mappings between reserved keys for bigquery import and customized tensor - // names. Key is the reserved key, value is tensor name in the bigquery table. - // Different annotation type has different required key mapping. See user - // manual for more details: + // Required. Prediction keys that tell Data Labeling Service where to find the + // data for evaluation in your BigQuery table. When the service samples + // prediction input and output from your model version and saves it to + // BigQuery, the data gets stored as JSON strings in the BigQuery table. These + // keys tell Data Labeling Service how to parse the JSON. + // + // You can provide the following entries in this field: + // + // * `data_json_key`: the data key for prediction input. You must provide + // either this key or `reference_json_key`. + // * `reference_json_key`: the data reference key for prediction input. You + // must provide either this key or `data_json_key`. + // * `label_json_key`: the label key for prediction output. Required. + // * `label_score_json_key`: the score key for prediction output. Required. + // * `bounding_box_json_key`: the bounding box key for prediction output. + // Required if your model version perform image object detection. // - // https: - // //docs.google.com/document/d/1bg1meMIBGY - // // 9I5QEoFoHSX6u9LsZQYBSmPt6E9SxqHZc/edit#heading=h.tfyjhxhvsqem + // Learn [how to configure prediction + // keys](/ml-engine/docs/continuous-evaluation/create-job#prediction-keys). map bigquery_import_keys = 9; - // Max number of examples to collect in each period. + // Required. The maximum number of predictions to sample and save to BigQuery + // during each [evaluation interval][google.cloud.datalabeling.v1beta1.EvaluationJob.schedule]. This limit + // overrides `example_sample_percentage`: even if the service has not sampled + // enough predictions to fulfill `example_sample_perecentage` during an + // interval, it stops sampling predictions when it meets this limit. int32 example_count = 10; - // Percentage of examples to collect in each period. 0.1 means 10% of total - // examples will be collected, and 0.0 means no collection. + // Required. Fraction of predictions to sample and save to BigQuery during + // each [evaluation interval][google.cloud.datalabeling.v1beta1.EvaluationJob.schedule]. For example, 0.1 means + // 10% of predictions served by your model version get saved to BigQuery. double example_sample_percentage = 11; - // Alert config for the evaluation job. The alert will be triggered when its - // criteria is met. + // Optional. Configuration details for evaluation job alerts. Specify this + // field if you want to receive email alerts if the evaluation job finds that + // your predictions have low mean average precision during a run. EvaluationJobAlertConfig evaluation_job_alert_config = 13; } +// Provides details for how an evaluation job sends email alerts based on the +// results of a run. message EvaluationJobAlertConfig { - // Required. Email of the user who will be receiving the alert. + // Required. An email address to send alerts to. string email = 1; - // If a single evaluation run's aggregate mean average precision is - // lower than this threshold, the alert will be triggered. + // Required. A number between 0 and 1 that describes a minimum mean average + // precision threshold. When the evaluation job runs, if it calculates that + // your model version's predictions from the recent interval have + // [meanAveragePrecision][google.cloud.datalabeling.v1beta1.PrCurve.mean_average_precision] below this + // threshold, then it sends an alert to your specified email. double min_acceptable_mean_average_precision = 2; } -// Records a failed attempt. +// Records a failed evaluation job run. message Attempt { google.protobuf.Timestamp attempt_time = 1; + // Details of errors that occurred. repeated google.rpc.Status partial_failures = 2; } diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2.py index ac1522440268..b9a42700b433 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2.py @@ -16,6 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.cloud.datalabeling_v1beta1.proto import ( dataset_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2, ) @@ -37,10 +38,11 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\n`__ is the + starting point for using continuous evaluation. Attributes: name: - Format: - 'projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}' + Output only. After you create a job, Data Labeling Service + assigns a name to the job with the following format: + "projects/{project\_id}/evaluationJobs/{evaluation\_job\_id}" description: - Description of the job. The description can be up to 25000 - characters long. + Required. Description of the job. The description can be up to + 25,000 characters long. + state: + Output only. Describes the current state of the job. schedule: - Describes the schedule on which the job will be executed. - Minimum schedule unit is 1 day. The schedule can be either of - the following types: \* `Crontab - `__ \* English- - like `schedule - `__ + Required. Describes the interval at which the job runs. This + interval must be at least 1 day, and it is rounded to the + nearest day. For example, if you specify a 50-hour interval, + the job runs every 2 days. You can provide the schedule in + `crontab format `__ or in an `English-like format `__. Regardless + of what you specify, the job will run at 10:00 AM UTC. Only + the interval from this schedule is used, not the specific time + of day. model_version: - The versioned model that is being evaluated here. Only one job - is allowed for each model name. Format: - 'projects/*/models/*/versions/\*' + Required. The `AI Platform Prediction model version `__ to be evaluated. + Prediction input and output is sampled from this model + version. When creating an evaluation job, specify the model + version in the following format: "projects/{project\_id}/mode + ls/{model\_name}/versions/{version\_name}" There can only be + one evaluation job per model version. evaluation_job_config: - Detailed config for running this eval job. + Required. Configuration details for the evaluation job. annotation_spec_set: - Name of the AnnotationSpecSet. + Required. Name of the [AnnotationSpecSet][google.cloud.datalab + eling.v1beta1.AnnotationSpecSet] describing all the labels + that your machine learning model outputs. You must create this + resource before you create an evaluation job and provide its + name in the following format: "projects/{project\_id}/annotat + ionSpecSets/{annotation\_spec\_set\_id}" label_missing_ground_truth: - If a human annotation should be requested when some data don't - have ground truth. + Required. Whether you want Data Labeling Service to provide + ground truth labels for prediction input. If you want the + service to assign human labelers to annotate your data, set + this to ``true``. If you want to provide your own ground truth + labels in the evaluation job's BigQuery table, set this to + ``false``. attempts: - Output only. Any attempts with errors happening in evaluation - job runs each time will be recorded here incrementally. + Output only. Every time the evaluation job runs and an error + occurs, the failed attempt is appended to this array. create_time: - Timestamp when this evaluation job was created. + Output only. Timestamp of when this evaluation job was + created. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.EvaluationJob) ), @@ -900,33 +834,108 @@ ), DESCRIPTOR=_EVALUATIONJOBCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_job_pb2", - __doc__=""" - Attributes: + __doc__="""Configures specific details of how a continuous evaluation + job works. Provide this configuration when you create an EvaluationJob. + + + Attributes: human_annotation_request_config: - config specific to different supported human annotation use - cases. + Required. Details for how you want human reviewers to provide + ground truth labels. + image_classification_config: + Specify this field if your model version performs image + classification or general classification. + ``annotationSpecSet`` in this configuration must match [Evalua + tionJob.annotationSpecSet][google.cloud.datalabeling.v1beta1.E + valuationJob.annotation\_spec\_set]. ``allowMultiLabel`` in + this configuration must match + ``classificationMetadata.isMultiLabel`` in [input\_config][goo + gle.cloud.datalabeling.v1beta1.EvaluationJobConfig.input\_conf + ig]. + bounding_poly_config: + Specify this field if your model version performs image object + detection (bounding box detection). ``annotationSpecSet`` in + this configuration must match [EvaluationJob.annotationSpecSet + ][google.cloud.datalabeling.v1beta1.EvaluationJob.annotation\_ + spec\_set]. + text_classification_config: + Specify this field if your model version performs text + classification. ``annotationSpecSet`` in this configuration + must match [EvaluationJob.annotationSpecSet][google.cloud.data + labeling.v1beta1.EvaluationJob.annotation\_spec\_set]. + ``allowMultiLabel`` in this configuration must match + ``classificationMetadata.isMultiLabel`` in [input\_config][goo + gle.cloud.datalabeling.v1beta1.EvaluationJobConfig.input\_conf + ig]. input_config: - Input config for data, gcs\_source in the config will be the - root path for data. Data should be organzied chronically under - that path. + Rquired. Details for the sampled prediction input. Within this + configuration, there are requirements for several fields: - + ``dataType`` must be one of ``IMAGE``, ``TEXT``, or + ``GENERAL_DATA``. - ``annotationType`` must be one of + ``IMAGE_CLASSIFICATION_ANNOTATION``, + ``TEXT_CLASSIFICATION_ANNOTATION``, + ``GENERAL_CLASSIFICATION_ANNOTATION``, or + ``IMAGE_BOUNDING_BOX_ANNOTATION`` (image object detection). - + If your machine learning model performs classification, you + must specify ``classificationMetadata.isMultiLabel``. - + You must specify ``bigquerySource`` (not ``gcsSource``). evaluation_config: - Config used to create evaluation. + Required. Details for calculating evaluation metrics and + creating + [Evaulations][google.cloud.datalabeling.v1beta1.Evaluation]. + If your model version performs image object detection, you + must specify the ``boundingBoxEvaluationOptions`` field within + this configuration. Otherwise, provide an empty object for + this configuration. + human_annotation_config: + Optional. Details for human annotation of your data. If you + set [labelMissingGroundTruth][google.cloud.datalabeling.v1beta + 1.EvaluationJob.label\_missing\_ground\_truth] to ``true`` for + this evaluation job, then you must specify this field. If you + plan to provide your own ground truth labels, then omit this + field. Note that you must create an + [Instruction][google.cloud.datalabeling.v1beta1.Instruction] + resource before you can specify this field. Provide the name + of the instruction resource in the ``instruction`` field + within this configuration. bigquery_import_keys: - Mappings between reserved keys for bigquery import and - customized tensor names. Key is the reserved key, value is - tensor name in the bigquery table. Different annotation type - has different required key mapping. See user manual for more - details: https: //docs.google.com/document/d/1bg1meMIBGY // - 9I5QEoFoHSX6u9LsZQYBSmPt6E9SxqHZc/edit#heading=h.tfyjhxhvsqem + Required. Prediction keys that tell Data Labeling Service + where to find the data for evaluation in your BigQuery table. + When the service samples prediction input and output from your + model version and saves it to BigQuery, the data gets stored + as JSON strings in the BigQuery table. These keys tell Data + Labeling Service how to parse the JSON. You can provide the + following entries in this field: - ``data_json_key``: the + data key for prediction input. You must provide either this + key or ``reference_json_key``. - ``reference_json_key``: the + data reference key for prediction input. You must provide + either this key or ``data_json_key``. - ``label_json_key``: + the label key for prediction output. Required. - + ``label_score_json_key``: the score key for prediction output. + Required. - ``bounding_box_json_key``: the bounding box key + for prediction output. Required if your model version + perform image object detection. Learn `how to configure + prediction keys `__. example_count: - Max number of examples to collect in each period. + Required. The maximum number of predictions to sample and save + to BigQuery during each [evaluation interval][google.cloud.dat + alabeling.v1beta1.EvaluationJob.schedule]. This limit + overrides ``example_sample_percentage``: even if the service + has not sampled enough predictions to fulfill + ``example_sample_perecentage`` during an interval, it stops + sampling predictions when it meets this limit. example_sample_percentage: - Percentage of examples to collect in each period. 0.1 means - 10% of total examples will be collected, and 0.0 means no - collection. + Required. Fraction of predictions to sample and save to + BigQuery during each [evaluation interval][google.cloud.datala + beling.v1beta1.EvaluationJob.schedule]. For example, 0.1 means + 10% of predictions served by your model version get saved to + BigQuery. evaluation_job_alert_config: - Alert config for the evaluation job. The alert will be - triggered when its criteria is met. + Optional. Configuration details for evaluation job alerts. + Specify this field if you want to receive email alerts if the + evaluation job finds that your predictions have low mean + average precision during a run. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.EvaluationJobConfig) ), @@ -940,13 +949,21 @@ dict( DESCRIPTOR=_EVALUATIONJOBALERTCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_job_pb2", - __doc__=""" - Attributes: + __doc__="""Provides details for how an evaluation job sends email + alerts based on the results of a run. + + + Attributes: email: - Required. Email of the user who will be receiving the alert. + Required. An email address to send alerts to. min_acceptable_mean_average_precision: - If a single evaluation run's aggregate mean average precision - is lower than this threshold, the alert will be triggered. + Required. A number between 0 and 1 that describes a minimum + mean average precision threshold. When the evaluation job + runs, if it calculates that your model version's predictions + from the recent interval have [meanAveragePrecision][google.cl + oud.datalabeling.v1beta1.PrCurve.mean\_average\_precision] + below this threshold, then it sends an alert to your specified + email. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.EvaluationJobAlertConfig) ), @@ -959,7 +976,12 @@ dict( DESCRIPTOR=_ATTEMPT, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_job_pb2", - __doc__="""Records a failed attempt. + __doc__="""Records a failed evaluation job run. + + + Attributes: + partial_failures: + Details of errors that occurred. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.Attempt) ), @@ -968,5 +990,6 @@ DESCRIPTOR._options = None +_EVALUATIONJOB._options = None _EVALUATIONJOBCONFIG_BIGQUERYIMPORTKEYSENTRY._options = None # @@protoc_insertion_point(module_scope) diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_pb2.py index d3f231f6d05c..8fb904186b20 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/evaluation_pb2.py @@ -16,6 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.cloud.datalabeling_v1beta1.proto import ( annotation_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__pb2, ) @@ -33,10 +34,11 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\n8google/cloud/datalabeling_v1beta1/proto/evaluation.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x38google/cloud/datalabeling_v1beta1/proto/annotation.proto\x1a\x41google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\x89\x03\n\nEvaluation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x43\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.EvaluationConfig\x12;\n\x17\x65valuation_job_run_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12P\n\x12\x65valuation_metrics\x18\x05 \x01(\x0b\x32\x34.google.cloud.datalabeling.v1beta1.EvaluationMetrics\x12J\n\x0f\x61nnotation_type\x18\x06 \x01(\x0e\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationType\x12\x1c\n\x14\x65valuated_item_count\x18\x07 \x01(\x03"\x91\x01\n\x10\x45valuationConfig\x12j\n\x1f\x62ounding_box_evaluation_options\x18\x01 \x01(\x0b\x32?.google.cloud.datalabeling.v1beta1.BoundingBoxEvaluationOptionsH\x00\x42\x11\n\x0fvertical_option"5\n\x1c\x42oundingBoxEvaluationOptions\x12\x15\n\riou_threshold\x18\x01 \x01(\x02"\xd9\x01\n\x11\x45valuationMetrics\x12Z\n\x16\x63lassification_metrics\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.ClassificationMetricsH\x00\x12]\n\x18object_detection_metrics\x18\x02 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.ObjectDetectionMetricsH\x00\x42\t\n\x07metrics"\xa3\x01\n\x15\x43lassificationMetrics\x12<\n\x08pr_curve\x18\x01 \x01(\x0b\x32*.google.cloud.datalabeling.v1beta1.PrCurve\x12L\n\x10\x63onfusion_matrix\x18\x02 \x01(\x0b\x32\x32.google.cloud.datalabeling.v1beta1.ConfusionMatrix"V\n\x16ObjectDetectionMetrics\x12<\n\x08pr_curve\x18\x01 \x01(\x0b\x32*.google.cloud.datalabeling.v1beta1.PrCurve"\xe6\x03\n\x07PrCurve\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x18\n\x10\x61rea_under_curve\x18\x02 \x01(\x02\x12\x65\n\x1a\x63onfidence_metrics_entries\x18\x03 \x03(\x0b\x32\x41.google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry\x12\x1e\n\x16mean_average_precision\x18\x04 \x01(\x02\x1a\xed\x01\n\x16\x43onfidenceMetricsEntry\x12\x1c\n\x14\x63onfidence_threshold\x18\x01 \x01(\x02\x12\x0e\n\x06recall\x18\x02 \x01(\x02\x12\x11\n\tprecision\x18\x03 \x01(\x02\x12\x10\n\x08\x66\x31_score\x18\x04 \x01(\x02\x12\x12\n\nrecall_at1\x18\x05 \x01(\x02\x12\x15\n\rprecision_at1\x18\x06 \x01(\x02\x12\x14\n\x0c\x66\x31_score_at1\x18\x07 \x01(\x02\x12\x12\n\nrecall_at5\x18\x08 \x01(\x02\x12\x15\n\rprecision_at5\x18\t \x01(\x02\x12\x14\n\x0c\x66\x31_score_at5\x18\n \x01(\x02"\xfc\x02\n\x0f\x43onfusionMatrix\x12\x43\n\x03row\x18\x01 \x03(\x0b\x32\x36.google.cloud.datalabeling.v1beta1.ConfusionMatrix.Row\x1av\n\x14\x43onfusionMatrixEntry\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x12\n\nitem_count\x18\x02 \x01(\x05\x1a\xab\x01\n\x03Row\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12X\n\x07\x65ntries\x18\x02 \x03(\x0b\x32G.google.cloud.datalabeling.v1beta1.ConfusionMatrix.ConfusionMatrixEntryBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\n8google/cloud/datalabeling_v1beta1/proto/evaluation.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto\x1a\x38google/cloud/datalabeling_v1beta1/proto/annotation.proto\x1a\x41google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xf6\x03\n\nEvaluation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x43\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x33.google.cloud.datalabeling.v1beta1.EvaluationConfig\x12;\n\x17\x65valuation_job_run_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12P\n\x12\x65valuation_metrics\x18\x05 \x01(\x0b\x32\x34.google.cloud.datalabeling.v1beta1.EvaluationMetrics\x12J\n\x0f\x61nnotation_type\x18\x06 \x01(\x0e\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationType\x12\x1c\n\x14\x65valuated_item_count\x18\x07 \x01(\x03:k\xea\x41h\n&datalabeling.googleapis.com/Evaluation\x12>projects/{project}/datasets/{dataset}/evaluations/{evaluation}"\x91\x01\n\x10\x45valuationConfig\x12j\n\x1f\x62ounding_box_evaluation_options\x18\x01 \x01(\x0b\x32?.google.cloud.datalabeling.v1beta1.BoundingBoxEvaluationOptionsH\x00\x42\x11\n\x0fvertical_option"5\n\x1c\x42oundingBoxEvaluationOptions\x12\x15\n\riou_threshold\x18\x01 \x01(\x02"\xd9\x01\n\x11\x45valuationMetrics\x12Z\n\x16\x63lassification_metrics\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.ClassificationMetricsH\x00\x12]\n\x18object_detection_metrics\x18\x02 \x01(\x0b\x32\x39.google.cloud.datalabeling.v1beta1.ObjectDetectionMetricsH\x00\x42\t\n\x07metrics"\xa3\x01\n\x15\x43lassificationMetrics\x12<\n\x08pr_curve\x18\x01 \x01(\x0b\x32*.google.cloud.datalabeling.v1beta1.PrCurve\x12L\n\x10\x63onfusion_matrix\x18\x02 \x01(\x0b\x32\x32.google.cloud.datalabeling.v1beta1.ConfusionMatrix"V\n\x16ObjectDetectionMetrics\x12<\n\x08pr_curve\x18\x01 \x01(\x0b\x32*.google.cloud.datalabeling.v1beta1.PrCurve"\xe6\x03\n\x07PrCurve\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x18\n\x10\x61rea_under_curve\x18\x02 \x01(\x02\x12\x65\n\x1a\x63onfidence_metrics_entries\x18\x03 \x03(\x0b\x32\x41.google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry\x12\x1e\n\x16mean_average_precision\x18\x04 \x01(\x02\x1a\xed\x01\n\x16\x43onfidenceMetricsEntry\x12\x1c\n\x14\x63onfidence_threshold\x18\x01 \x01(\x02\x12\x0e\n\x06recall\x18\x02 \x01(\x02\x12\x11\n\tprecision\x18\x03 \x01(\x02\x12\x10\n\x08\x66\x31_score\x18\x04 \x01(\x02\x12\x12\n\nrecall_at1\x18\x05 \x01(\x02\x12\x15\n\rprecision_at1\x18\x06 \x01(\x02\x12\x14\n\x0c\x66\x31_score_at1\x18\x07 \x01(\x02\x12\x12\n\nrecall_at5\x18\x08 \x01(\x02\x12\x15\n\rprecision_at5\x18\t \x01(\x02\x12\x14\n\x0c\x66\x31_score_at5\x18\n \x01(\x02"\xfc\x02\n\x0f\x43onfusionMatrix\x12\x43\n\x03row\x18\x01 \x03(\x0b\x32\x36.google.cloud.datalabeling.v1beta1.ConfusionMatrix.Row\x1av\n\x14\x43onfusionMatrixEntry\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12\x12\n\nitem_count\x18\x02 \x01(\x05\x1a\xab\x01\n\x03Row\x12J\n\x0f\x61nnotation_spec\x18\x01 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.AnnotationSpec\x12X\n\x07\x65ntries\x18\x02 \x03(\x0b\x32G.google.cloud.datalabeling.v1beta1.ConfusionMatrix.ConfusionMatrixEntryBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_annotation__spec__set__pb2.DESCRIPTOR, google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR, @@ -181,13 +183,15 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b( + "\352Ah\n&datalabeling.googleapis.com/Evaluation\022>projects/{project}/datasets/{dataset}/evaluations/{evaluation}" + ), is_extendable=False, syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=284, - serialized_end=677, + serialized_start=311, + serialized_end=813, ) @@ -233,8 +237,8 @@ fields=[], ) ], - serialized_start=680, - serialized_end=825, + serialized_start=816, + serialized_end=961, ) @@ -272,8 +276,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=827, - serialized_end=880, + serialized_start=963, + serialized_end=1016, ) @@ -337,8 +341,8 @@ fields=[], ) ], - serialized_start=883, - serialized_end=1100, + serialized_start=1019, + serialized_end=1236, ) @@ -394,8 +398,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1103, - serialized_end=1266, + serialized_start=1239, + serialized_end=1402, ) @@ -433,8 +437,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1268, - serialized_end=1354, + serialized_start=1404, + serialized_end=1490, ) @@ -634,8 +638,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1606, - serialized_end=1843, + serialized_start=1742, + serialized_end=1979, ) _PRCURVE = _descriptor.Descriptor( @@ -726,8 +730,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1357, - serialized_end=1843, + serialized_start=1493, + serialized_end=1979, ) @@ -783,8 +787,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1934, - serialized_end=2052, + serialized_start=2070, + serialized_end=2188, ) _CONFUSIONMATRIX_ROW = _descriptor.Descriptor( @@ -839,8 +843,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2055, - serialized_end=2226, + serialized_start=2191, + serialized_end=2362, ) _CONFUSIONMATRIX = _descriptor.Descriptor( @@ -877,8 +881,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1846, - serialized_end=2226, + serialized_start=1982, + serialized_end=2362, ) _EVALUATION.fields_by_name["config"].message_type = _EVALUATIONCONFIG @@ -969,31 +973,38 @@ dict( DESCRIPTOR=_EVALUATION, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_pb2", - __doc__="""Describes an evaluation between 2 annotated datasets. Created by an - evaluation plan. + __doc__="""Describes an evaluation between a machine learning model's + predictions and ground truth labels. Created when an + [EvaluationJob][google.cloud.datalabeling.v1beta1.EvaluationJob] runs + successfully. Attributes: name: - Resource name of an evaluation. Format: 'projects/{project\_id - }/datasets/{dataset\_id}/evaluations/{evaluation\_id}' + Output only. Resource name of an evaluation. The name has the + following format: "projects/{project\_id}/datasets/{dataset\_ + id}/evaluations/{evaluation\_id}' config: - Options used in evaluation plan for creating the evaluation. + Output only. Options used in the evaluation job that created + this evaluation. evaluation_job_run_time: - Output only. Timestamp when the evaluation plan triggered this - evaluation flow. + Output only. Timestamp for when the evaluation job that + created this evaluation ran. create_time: - Output only. Timestamp when this model evaluation was created. + Output only. Timestamp for when this evaluation was created. evaluation_metrics: - Output only. Metrics of the evaluation. + Output only. Metrics comparing predictions to ground truth + labels. annotation_type: - Type of the annotation to compute metrics for in the - groundtruth and annotation labeled dataset. Required for - creation. + Output only. Type of task that the model version being + evaluated performs, as defined in the [evaluationJobConfig.in + putConfig.annotationType][google.cloud.datalabeling.v1beta1.Ev + aluationJobConfig.input\_config] field of the evaluation job + that created this evaluation. evaluated_item_count: - Output only. Count of items in groundtruth dataset included in - this evaluation. Will be unset if annotation type is not - applicable. + Output only. The number of items in the ground truth dataset + that were used for this evaluation. Only populated when the + evaulation is for certain AnnotationTypes. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.Evaluation) ), @@ -1006,10 +1017,18 @@ dict( DESCRIPTOR=_EVALUATIONCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_pb2", - __doc__=""" - Attributes: + __doc__="""Configuration details used for calculating evaluation + metrics and creating an + [Evaluation][google.cloud.datalabeling.v1beta1.Evaluation]. + + + Attributes: vertical_option: Vertical specific options for general metrics. + bounding_box_evaluation_options: + Only specify this field if the related model performs image + object detection (``IMAGE_BOUNDING_BOX_ANNOTATION``). + Describes how to evaluate bounding boxes. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.EvaluationConfig) ), @@ -1027,8 +1046,11 @@ Attributes: iou_threshold: - Minimize IoU required to consider 2 bounding boxes are - matched. + Minimum [intersection-over-union + (IOU)](/vision/automl/object- + detection/docs/evaluate#intersection-over-union) required for + 2 bounding boxes to be considered a match. This must be a + number between 0 and 1. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.BoundingBoxEvaluationOptions) ), @@ -1044,7 +1066,7 @@ __doc__=""" Attributes: metrics: - Common metrics covering most genernal cases. + Common metrics covering most general cases. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.EvaluationMetrics) ), @@ -1057,10 +1079,15 @@ dict( DESCRIPTOR=_CLASSIFICATIONMETRICS, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_pb2", - __doc__=""" - Attributes: + __doc__="""Metrics calculated for a classification model. + + + Attributes: pr_curve: - Precision-recall curve. + Precision-recall curve based on ground truth labels, predicted + labels, and scores for the predicted labels. + confusion_matrix: + Confusion matrix of predicted labels vs. ground truth labels. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.ClassificationMetrics) ), @@ -1073,8 +1100,11 @@ dict( DESCRIPTOR=_OBJECTDETECTIONMETRICS, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_pb2", - __doc__=""" - Attributes: + __doc__="""Metrics calculated for an image object detection (bounding + box) model. + + + Attributes: pr_curve: Precision-recall curve. """, @@ -1096,9 +1126,15 @@ __doc__=""" Attributes: confidence_threshold: - Threshold used for this entry, for example, IoU threshold for - bounding box problem, or detection threshold for - classification. + Threshold used for this entry. For classification tasks, this + is a classification threshold: a predicted label is + categorized as positive or negative (in the context of this + point on the PR curve) based on whether the label's score + meets this threshold. For image object detection (bounding + box) tasks, this is the [intersection-over-union + (IOU)](/vision/automl/object- + detection/docs/evaluate#intersection-over-union) threshold for + the context of this point on the PR curve. recall: Recall value. precision: @@ -1133,13 +1169,19 @@ __doc__=""" Attributes: annotation_spec: - PR curve against which annotation spec. Could be empty. + The annotation spec of the label for which the precision- + recall curve calculated. If this field is empty, that means + the precision-recall curve is an aggregate curve for all + labels. area_under_curve: - Area under precision recall curve. + Area under the precision-recall curve. Not to be confused with + area under a receiver operating characteristic (ROC) curve. confidence_metrics_entries: - entries to draw PR graph. + Entries that make up the precision-recall graph. Each entry is + a "point" on the graph drawn for a different + ``confidence_threshold``. mean_average_precision: - mean average prcision of this curve. + Mean average prcision of this curve. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.PrCurve) ), @@ -1160,9 +1202,11 @@ __doc__=""" Attributes: annotation_spec: - The predicted annotation spec. + The annotation spec of a predicted label. item_count: - Number of items being predicted as this label. + Number of items predicted to have this label. (The ground + truth label for these items is the ``Row.annotationSpec`` of + this entry's parent.) """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.ConfusionMatrix.ConfusionMatrixEntry) ), @@ -1173,22 +1217,26 @@ dict( DESCRIPTOR=_CONFUSIONMATRIX_ROW, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_pb2", - __doc__="""A row in the confusion matrix. + __doc__="""A row in the confusion matrix. Each entry in this row has + the same ground truth label. Attributes: annotation_spec: - the original annotation spec of this row. + The annotation spec of the ground truth label for this row. entries: - Info describing predicted label distribution. + A list of the confusion matrix entries. One entry for each + possible predicted label. """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.ConfusionMatrix.Row) ), ), DESCRIPTOR=_CONFUSIONMATRIX, __module__="google.cloud.datalabeling_v1beta1.proto.evaluation_pb2", - __doc__="""Confusion matrix of the model running the classification. Not applicable - when label filtering is specified in evaluation option. + __doc__="""Confusion matrix of the model running the classification. Only + applicable when the metrics entry aggregates multiple labels. Not + applicable when the entry is for a single label. + """, # @@protoc_insertion_point(class_scope:google.cloud.datalabeling.v1beta1.ConfusionMatrix) ), @@ -1199,4 +1247,5 @@ DESCRIPTOR._options = None +_EVALUATION._options = None # @@protoc_insertion_point(module_scope) diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto index 67f3c81efd06..5658bb9b80c9 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto @@ -18,6 +18,7 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling"; @@ -40,44 +41,44 @@ enum StringAggregationType { // Configuration for how human labeling task should be done. message HumanAnnotationConfig { // Required. Instruction resource name. - string instruction = 1; + string instruction = 1 [(google.api.field_behavior) = REQUIRED]; // Required. A human-readable name for AnnotatedDataset defined by // users. Maximum of 64 characters // . - string annotated_dataset_display_name = 2; + string annotated_dataset_display_name = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. A human-readable description for AnnotatedDataset. // The description can be up to 10000 characters long. - string annotated_dataset_description = 3; + string annotated_dataset_description = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. A human-readable label used to logically group labeling tasks. // This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`. - string label_group = 4; + string label_group = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. The Language of this question, as a // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). // Default value is en-US. // Only need to set this when task is language related. For example, French // text classification. - string language_code = 5; + string language_code = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Replication of questions. Each question will be sent to up to // this number of contributors to label. Aggregated answers will be returned. // Default is set to 1. // For image related labeling, valid values are 1, 3, 5. - int32 replica_count = 6; + int32 replica_count = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Maximum duration for contributors to answer a question. Default - // is 1800 seconds. - google.protobuf.Duration question_duration = 7; + // Optional. Maximum duration for contributors to answer a question. Maximum + // is 3600 seconds. Default is 3600 seconds. + google.protobuf.Duration question_duration = 7 [(google.api.field_behavior) = OPTIONAL]; // Optional. If you want your own labeling contributors to manage and work on // this labeling request, you can set these contributors here. We will give // them access to the question types in crowdcompute. Note that these // emails must be registered in crowdcompute worker UI: // https://crowd-compute.appspot.com/ - repeated string contributor_emails = 9; + repeated string contributor_emails = 9 [(google.api.field_behavior) = OPTIONAL]; // Email of the user who started the labeling task and should be notified by // email. If empty no notification will be sent. @@ -87,39 +88,39 @@ message HumanAnnotationConfig { // Config for image classification human labeling task. message ImageClassificationConfig { // Required. Annotation spec set resource name. - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. If allow_multi_label is true, contributors are able to choose // multiple labels for one image. - bool allow_multi_label = 2; + bool allow_multi_label = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The type of how to aggregate answers. - StringAggregationType answer_aggregation_type = 3; + StringAggregationType answer_aggregation_type = 3 [(google.api.field_behavior) = OPTIONAL]; } // Config for image bounding poly (and bounding box) human labeling task. message BoundingPolyConfig { // Required. Annotation spec set resource name. - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Instruction message showed on contributors UI. - string instruction_message = 2; + string instruction_message = 2 [(google.api.field_behavior) = OPTIONAL]; } // Config for image polyline human labeling task. message PolylineConfig { // Required. Annotation spec set resource name. - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Instruction message showed on contributors UI. - string instruction_message = 2; + string instruction_message = 2 [(google.api.field_behavior) = OPTIONAL]; } // Config for image segmentation message SegmentationConfig { // Required. Annotation spec set resource name. format: // projects/{project_id}/annotationSpecSets/{annotation_spec_set_id} - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; // Instruction message showed on labelers UI. string instruction_message = 2; @@ -134,11 +135,11 @@ message VideoClassificationConfig { // Annotation spec set with the setting of allowing multi labels or not. message AnnotationSpecSetConfig { // Required. Annotation spec set resource name. - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. If allow_multi_label is true, contributors are able to // choose multiple labels from one annotation spec set. - bool allow_multi_label = 2; + bool allow_multi_label = 2 [(google.api.field_behavior) = OPTIONAL]; } // Required. The list of annotation spec set configs. @@ -147,10 +148,10 @@ message VideoClassificationConfig { // in each AnnotationSpecSet will be shown in a group to contributors. // Contributors can select one or more (depending on whether to allow multi // label) from each group. - repeated AnnotationSpecSetConfig annotation_spec_set_configs = 1; + repeated AnnotationSpecSetConfig annotation_spec_set_configs = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. Option to apply shot detection on the video. - bool apply_shot_detection = 2; + bool apply_shot_detection = 2 [(google.api.field_behavior) = OPTIONAL]; } // Config for video object detection human labeling task. @@ -160,16 +161,16 @@ message VideoClassificationConfig { // extraction frame rate. message ObjectDetectionConfig { // Required. Annotation spec set resource name. - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Number of frames per second to be extracted from the video. - double extraction_frame_rate = 3; + double extraction_frame_rate = 3 [(google.api.field_behavior) = REQUIRED]; } // Config for video object tracking human labeling task. message ObjectTrackingConfig { // Required. Annotation spec set resource name. - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; } // Config for video event human labeling task. @@ -177,20 +178,20 @@ message EventConfig { // Required. The list of annotation spec set resource name. Similar to video // classification, we support selecting event from multiple AnnotationSpecSet // at the same time. - repeated string annotation_spec_sets = 1; + repeated string annotation_spec_sets = 1 [(google.api.field_behavior) = REQUIRED]; } // Config for text classification human labeling task. message TextClassificationConfig { // Optional. If allow_multi_label is true, contributors are able to choose // multiple labels for one text segment. - bool allow_multi_label = 1; + bool allow_multi_label = 1 [(google.api.field_behavior) = OPTIONAL]; // Required. Annotation spec set resource name. - string annotation_spec_set = 2; + string annotation_spec_set = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. Configs for sentiment selection. - SentimentConfig sentiment_config = 3; + SentimentConfig sentiment_config = 3 [(google.api.field_behavior) = OPTIONAL]; } // Config for setting up sentiments. @@ -204,5 +205,5 @@ message SentimentConfig { // Config for text entity extraction human labeling task. message TextEntityExtractionConfig { // Required. Annotation spec set resource name. - string annotation_spec_set = 1; + string annotation_spec_set = 1 [(google.api.field_behavior) = REQUIRED]; } diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config_pb2.py index 12361dce1684..26b57cca48a8 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/human_annotation_config_pb2.py @@ -17,6 +17,7 @@ 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.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 @@ -28,10 +29,11 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\nEgoogle/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto"\xac\x02\n\x15HumanAnnotationConfig\x12\x13\n\x0binstruction\x18\x01 \x01(\t\x12&\n\x1e\x61nnotated_dataset_display_name\x18\x02 \x01(\t\x12%\n\x1d\x61nnotated_dataset_description\x18\x03 \x01(\t\x12\x13\n\x0blabel_group\x18\x04 \x01(\t\x12\x15\n\rlanguage_code\x18\x05 \x01(\t\x12\x15\n\rreplica_count\x18\x06 \x01(\x05\x12\x34\n\x11question_duration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1a\n\x12\x63ontributor_emails\x18\t \x03(\t\x12\x1a\n\x12user_email_address\x18\n \x01(\t"\xae\x01\n\x19ImageClassificationConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t\x12\x19\n\x11\x61llow_multi_label\x18\x02 \x01(\x08\x12Y\n\x17\x61nswer_aggregation_type\x18\x03 \x01(\x0e\x32\x38.google.cloud.datalabeling.v1beta1.StringAggregationType"N\n\x12\x42oundingPolyConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t\x12\x1b\n\x13instruction_message\x18\x02 \x01(\t"J\n\x0ePolylineConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t\x12\x1b\n\x13instruction_message\x18\x02 \x01(\t"N\n\x12SegmentationConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t\x12\x1b\n\x13instruction_message\x18\x02 \x01(\t"\x87\x02\n\x19VideoClassificationConfig\x12y\n\x1b\x61nnotation_spec_set_configs\x18\x01 \x03(\x0b\x32T.google.cloud.datalabeling.v1beta1.VideoClassificationConfig.AnnotationSpecSetConfig\x12\x1c\n\x14\x61pply_shot_detection\x18\x02 \x01(\x08\x1aQ\n\x17\x41nnotationSpecSetConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t\x12\x19\n\x11\x61llow_multi_label\x18\x02 \x01(\x08"S\n\x15ObjectDetectionConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t\x12\x1d\n\x15\x65xtraction_frame_rate\x18\x03 \x01(\x01"3\n\x14ObjectTrackingConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t"+\n\x0b\x45ventConfig\x12\x1c\n\x14\x61nnotation_spec_sets\x18\x01 \x03(\t"\xa0\x01\n\x18TextClassificationConfig\x12\x19\n\x11\x61llow_multi_label\x18\x01 \x01(\x08\x12\x1b\n\x13\x61nnotation_spec_set\x18\x02 \x01(\t\x12L\n\x10sentiment_config\x18\x03 \x01(\x0b\x32\x32.google.cloud.datalabeling.v1beta1.SentimentConfig";\n\x0fSentimentConfig\x12(\n enable_label_sentiment_selection\x18\x01 \x01(\x08"9\n\x1aTextEntityExtractionConfig\x12\x1b\n\x13\x61nnotation_spec_set\x18\x01 \x01(\t*{\n\x15StringAggregationType\x12\'\n#STRING_AGGREGATION_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rMAJORITY_VOTE\x10\x01\x12\x12\n\x0eUNANIMOUS_VOTE\x10\x02\x12\x12\n\x0eNO_AGGREGATION\x10\x03\x42x\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\nEgoogle/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto"\xd4\x02\n\x15HumanAnnotationConfig\x12\x18\n\x0binstruction\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12+\n\x1e\x61nnotated_dataset_display_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12*\n\x1d\x61nnotated_dataset_description\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0blabel_group\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rlanguage_code\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rreplica_count\x18\x06 \x01(\x05\x42\x03\xe0\x41\x01\x12\x39\n\x11question_duration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12\x1f\n\x12\x63ontributor_emails\x18\t \x03(\tB\x03\xe0\x41\x01\x12\x1a\n\x12user_email_address\x18\n \x01(\t"\xbd\x01\n\x19ImageClassificationConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x61llow_multi_label\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12^\n\x17\x61nswer_aggregation_type\x18\x03 \x01(\x0e\x32\x38.google.cloud.datalabeling.v1beta1.StringAggregationTypeB\x03\xe0\x41\x01"X\n\x12\x42oundingPolyConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12 \n\x13instruction_message\x18\x02 \x01(\tB\x03\xe0\x41\x01"T\n\x0ePolylineConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12 \n\x13instruction_message\x18\x02 \x01(\tB\x03\xe0\x41\x01"S\n\x12SegmentationConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x13instruction_message\x18\x02 \x01(\t"\x9b\x02\n\x19VideoClassificationConfig\x12~\n\x1b\x61nnotation_spec_set_configs\x18\x01 \x03(\x0b\x32T.google.cloud.datalabeling.v1beta1.VideoClassificationConfig.AnnotationSpecSetConfigB\x03\xe0\x41\x02\x12!\n\x14\x61pply_shot_detection\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x1a[\n\x17\x41nnotationSpecSetConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x61llow_multi_label\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01"]\n\x15ObjectDetectionConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12"\n\x15\x65xtraction_frame_rate\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02"8\n\x14ObjectTrackingConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02"0\n\x0b\x45ventConfig\x12!\n\x14\x61nnotation_spec_sets\x18\x01 \x03(\tB\x03\xe0\x41\x02"\xaf\x01\n\x18TextClassificationConfig\x12\x1e\n\x11\x61llow_multi_label\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x12 \n\x13\x61nnotation_spec_set\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12Q\n\x10sentiment_config\x18\x03 \x01(\x0b\x32\x32.google.cloud.datalabeling.v1beta1.SentimentConfigB\x03\xe0\x41\x01";\n\x0fSentimentConfig\x12(\n enable_label_sentiment_selection\x18\x01 \x01(\x08">\n\x1aTextEntityExtractionConfig\x12 \n\x13\x61nnotation_spec_set\x18\x01 \x01(\tB\x03\xe0\x41\x02*{\n\x15StringAggregationType\x12\'\n#STRING_AGGREGATION_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rMAJORITY_VOTE\x10\x01\x12\x12\n\x0eUNANIMOUS_VOTE\x10\x02\x12\x12\n\x0eNO_AGGREGATION\x10\x03\x42x\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, google_dot_protobuf_dot_duration__pb2.DESCRIPTOR, ], ) @@ -61,8 +63,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=1618, - serialized_end=1741, + serialized_start=1791, + serialized_end=1914, ) _sym_db.RegisterEnumDescriptor(_STRINGAGGREGATIONTYPE) @@ -95,7 +97,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -113,7 +115,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -131,7 +133,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -149,7 +151,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -167,7 +169,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -185,7 +187,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -203,7 +205,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -221,7 +223,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -251,8 +253,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=171, - serialized_end=471, + serialized_start=204, + serialized_end=544, ) @@ -278,7 +280,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -296,7 +298,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -314,7 +316,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -326,8 +328,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=474, - serialized_end=648, + serialized_start=547, + serialized_end=736, ) @@ -353,7 +355,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -371,7 +373,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -383,8 +385,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=650, - serialized_end=728, + serialized_start=738, + serialized_end=826, ) @@ -410,7 +412,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -428,7 +430,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -440,8 +442,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=730, - serialized_end=804, + serialized_start=828, + serialized_end=912, ) @@ -467,7 +469,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -497,8 +499,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=806, - serialized_end=884, + serialized_start=914, + serialized_end=997, ) @@ -524,7 +526,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -542,7 +544,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -554,8 +556,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1069, - serialized_end=1150, + serialized_start=1192, + serialized_end=1283, ) _VIDEOCLASSIFICATIONCONFIG = _descriptor.Descriptor( @@ -580,7 +582,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -598,7 +600,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -610,8 +612,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=887, - serialized_end=1150, + serialized_start=1000, + serialized_end=1283, ) @@ -637,7 +639,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -655,7 +657,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), ], @@ -667,8 +669,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1152, - serialized_end=1235, + serialized_start=1285, + serialized_end=1378, ) @@ -694,7 +696,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ) ], @@ -706,8 +708,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1237, - serialized_end=1288, + serialized_start=1380, + serialized_end=1436, ) @@ -733,7 +735,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ) ], @@ -745,8 +747,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1290, - serialized_end=1333, + serialized_start=1438, + serialized_end=1486, ) @@ -772,7 +774,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -790,7 +792,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -808,7 +810,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\001"), file=DESCRIPTOR, ), ], @@ -820,8 +822,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1336, - serialized_end=1496, + serialized_start=1489, + serialized_end=1664, ) @@ -859,8 +861,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1498, - serialized_end=1557, + serialized_start=1666, + serialized_end=1725, ) @@ -886,7 +888,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\340A\002"), file=DESCRIPTOR, ) ], @@ -898,8 +900,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1559, - serialized_end=1616, + serialized_start=1727, + serialized_end=1789, ) _HUMANANNOTATIONCONFIG.fields_by_name[ @@ -972,7 +974,7 @@ related labeling, valid values are 1, 3, 5. question_duration: Optional. Maximum duration for contributors to answer a - question. Default is 1800 seconds. + question. Maximum is 3600 seconds. Default is 3600 seconds. contributor_emails: Optional. If you want your own labeling contributors to manage and work on this labeling request, you can set these @@ -1018,7 +1020,8 @@ dict( DESCRIPTOR=_BOUNDINGPOLYCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.human_annotation_config_pb2", - __doc__="""Config for image bounding poly (and bounding box) human labeling task. + __doc__="""Config for image bounding poly (and bounding box) human + labeling task. Attributes: @@ -1083,7 +1086,8 @@ dict( DESCRIPTOR=_VIDEOCLASSIFICATIONCONFIG_ANNOTATIONSPECSETCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.human_annotation_config_pb2", - __doc__="""Annotation spec set with the setting of allowing multi labels or not. + __doc__="""Annotation spec set with the setting of allowing multi + labels or not. Attributes: @@ -1098,10 +1102,10 @@ ), DESCRIPTOR=_VIDEOCLASSIFICATIONCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.human_annotation_config_pb2", - __doc__="""Config for video classification human labeling task. Currently two types - of video classification are supported: 1. Assign labels on the entire - video. 2. Split the video into multiple video clips based on camera - shot, and assign labels on each video clip. + __doc__="""Config for video classification human labeling task. + Currently two types of video classification are supported: 1. Assign + labels on the entire video. 2. Split the video into multiple video clips + based on camera shot, and assign labels on each video clip. Attributes: @@ -1127,11 +1131,11 @@ dict( DESCRIPTOR=_OBJECTDETECTIONCONFIG, __module__="google.cloud.datalabeling_v1beta1.proto.human_annotation_config_pb2", - __doc__="""Config for video object detection human labeling task. Object detection - will be conducted on the images extracted from the video, and those - objects will be labeled with bounding boxes. User need to specify the - number of images to be extracted per second as the extraction frame - rate. + __doc__="""Config for video object detection human labeling task. + Object detection will be conducted on the images extracted from the + video, and those objects will be labeled with bounding boxes. User need + to specify the number of images to be extracted per second as the + extraction frame rate. Attributes: @@ -1247,4 +1251,36 @@ DESCRIPTOR._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["instruction"]._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["annotated_dataset_display_name"]._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["annotated_dataset_description"]._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["label_group"]._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["language_code"]._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["replica_count"]._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["question_duration"]._options = None +_HUMANANNOTATIONCONFIG.fields_by_name["contributor_emails"]._options = None +_IMAGECLASSIFICATIONCONFIG.fields_by_name["annotation_spec_set"]._options = None +_IMAGECLASSIFICATIONCONFIG.fields_by_name["allow_multi_label"]._options = None +_IMAGECLASSIFICATIONCONFIG.fields_by_name["answer_aggregation_type"]._options = None +_BOUNDINGPOLYCONFIG.fields_by_name["annotation_spec_set"]._options = None +_BOUNDINGPOLYCONFIG.fields_by_name["instruction_message"]._options = None +_POLYLINECONFIG.fields_by_name["annotation_spec_set"]._options = None +_POLYLINECONFIG.fields_by_name["instruction_message"]._options = None +_SEGMENTATIONCONFIG.fields_by_name["annotation_spec_set"]._options = None +_VIDEOCLASSIFICATIONCONFIG_ANNOTATIONSPECSETCONFIG.fields_by_name[ + "annotation_spec_set" +]._options = None +_VIDEOCLASSIFICATIONCONFIG_ANNOTATIONSPECSETCONFIG.fields_by_name[ + "allow_multi_label" +]._options = None +_VIDEOCLASSIFICATIONCONFIG.fields_by_name["annotation_spec_set_configs"]._options = None +_VIDEOCLASSIFICATIONCONFIG.fields_by_name["apply_shot_detection"]._options = None +_OBJECTDETECTIONCONFIG.fields_by_name["annotation_spec_set"]._options = None +_OBJECTDETECTIONCONFIG.fields_by_name["extraction_frame_rate"]._options = None +_OBJECTTRACKINGCONFIG.fields_by_name["annotation_spec_set"]._options = None +_EVENTCONFIG.fields_by_name["annotation_spec_sets"]._options = None +_TEXTCLASSIFICATIONCONFIG.fields_by_name["allow_multi_label"]._options = None +_TEXTCLASSIFICATIONCONFIG.fields_by_name["annotation_spec_set"]._options = None +_TEXTCLASSIFICATIONCONFIG.fields_by_name["sentiment_config"]._options = None +_TEXTENTITYEXTRACTIONCONFIG.fields_by_name["annotation_spec_set"]._options = None # @@protoc_insertion_point(module_scope) diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction.proto index 6cb7b50f3156..50839614a547 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction.proto @@ -18,6 +18,7 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/dataset.proto"; import "google/protobuf/timestamp.proto"; @@ -26,12 +27,13 @@ option java_multiple_files = true; option java_package = "com.google.cloud.datalabeling.v1beta1"; // Instruction of how to perform the labeling task for human operators. -// Currently two types of instruction are supported - CSV file and PDF. -// One of the two types instruction must be provided. -// CSV file is only supported for image classification task. Instructions for -// other task should be provided as PDF. -// For image classification, CSV and PDF can be provided at the same time. +// Currently only PDF instruction is supported. message Instruction { + option (google.api.resource) = { + type: "datalabeling.googleapis.com/Instruction" + pattern: "projects/{project}/instructions/{instruction}" + }; + // Output only. Instruction resource name, format: // projects/{project_id}/instructions/{instruction_id} string name = 1; @@ -52,15 +54,14 @@ message Instruction { // Required. The data type of this instruction. DataType data_type = 6; - // One of CSV or PDF instruction is required. + // Deprecated: this instruction format is not supported any more. // Instruction from a CSV file, such as for classification task. // The CSV file should have exact two columns, in the following format: // // * The first column is labeled data, such as an image reference, text. // * The second column is comma separated labels associated with data. - CsvInstruction csv_instruction = 7; + CsvInstruction csv_instruction = 7 [deprecated = true]; - // One of CSV or PDF instruction is required. // Instruction from a PDF document. The PDF should be in a Cloud Storage // bucket. PdfInstruction pdf_instruction = 9; @@ -70,6 +71,7 @@ message Instruction { repeated string blocking_resources = 10; } +// Deprecated: this instruction format is not supported any more. // Instruction from a CSV file. message CsvInstruction { // CSV file for the instruction. Only gcs path is allowed. diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction_pb2.py index 7365416f6704..f6d0e0bf4ae8 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/instruction_pb2.py @@ -16,6 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.cloud.datalabeling_v1beta1.proto import ( dataset_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2, ) @@ -30,10 +31,11 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\n9google/cloud/datalabeling_v1beta1/proto/instruction.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x35google/cloud/datalabeling_v1beta1/proto/dataset.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\x9c\x03\n\x0bInstruction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\tdata_type\x18\x06 \x01(\x0e\x32+.google.cloud.datalabeling.v1beta1.DataType\x12J\n\x0f\x63sv_instruction\x18\x07 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.CsvInstruction\x12J\n\x0fpdf_instruction\x18\t \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.PdfInstruction\x12\x1a\n\x12\x62locking_resources\x18\n \x03(\t"&\n\x0e\x43svInstruction\x12\x14\n\x0cgcs_file_uri\x18\x01 \x01(\t"&\n\x0ePdfInstruction\x12\x14\n\x0cgcs_file_uri\x18\x01 \x01(\tBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\n9google/cloud/datalabeling_v1beta1/proto/instruction.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto\x1a\x35google/cloud/datalabeling_v1beta1/proto/dataset.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xfd\x03\n\x0bInstruction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\tdata_type\x18\x06 \x01(\x0e\x32+.google.cloud.datalabeling.v1beta1.DataType\x12N\n\x0f\x63sv_instruction\x18\x07 \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.CsvInstructionB\x02\x18\x01\x12J\n\x0fpdf_instruction\x18\t \x01(\x0b\x32\x31.google.cloud.datalabeling.v1beta1.PdfInstruction\x12\x1a\n\x12\x62locking_resources\x18\n \x03(\t:[\xea\x41X\n\'datalabeling.googleapis.com/Instruction\x12-projects/{project}/instructions/{instruction}"&\n\x0e\x43svInstruction\x12\x14\n\x0cgcs_file_uri\x18\x01 \x01(\t"&\n\x0ePdfInstruction\x12\x14\n\x0cgcs_file_uri\x18\x01 \x01(\tBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2.DESCRIPTOR, google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR, ], @@ -170,7 +172,7 @@ containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, + serialized_options=_b("\030\001"), file=DESCRIPTOR, ), _descriptor.FieldDescriptor( @@ -213,13 +215,15 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b( + "\352AX\n'datalabeling.googleapis.com/Instruction\022-projects/{project}/instructions/{instruction}" + ), is_extendable=False, syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=215, - serialized_end=627, + serialized_start=242, + serialized_end=751, ) @@ -257,8 +261,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=629, - serialized_end=667, + serialized_start=753, + serialized_end=791, ) @@ -296,8 +300,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=669, - serialized_end=707, + serialized_start=793, + serialized_end=831, ) _INSTRUCTION.fields_by_name[ @@ -324,12 +328,8 @@ dict( DESCRIPTOR=_INSTRUCTION, __module__="google.cloud.datalabeling_v1beta1.proto.instruction_pb2", - __doc__="""Instruction of how to perform the labeling task for human operators. - Currently two types of instruction are supported - CSV file and PDF. One - of the two types instruction must be provided. CSV file is only - supported for image classification task. Instructions for other task - should be provided as PDF. For image classification, CSV and PDF can be - provided at the same time. + __doc__="""Instruction of how to perform the labeling task for human + operators. Currently only PDF instruction is supported. Attributes: @@ -349,15 +349,15 @@ data_type: Required. The data type of this instruction. csv_instruction: - One of CSV or PDF instruction is required. Instruction from a - CSV file, such as for classification task. The CSV file should - have exact two columns, in the following format: - The first - column is labeled data, such as an image reference, text. - - The second column is comma separated labels associated with - data. + Deprecated: this instruction format is not supported any more. + Instruction from a CSV file, such as for classification task. + The CSV file should have exact two columns, in the following + format: - The first column is labeled data, such as an image + reference, text. - The second column is comma separated + labels associated with data. pdf_instruction: - One of CSV or PDF instruction is required. Instruction from a - PDF document. The PDF should be in a Cloud Storage bucket. + Instruction from a PDF document. The PDF should be in a Cloud + Storage bucket. blocking_resources: Output only. The names of any related resources that are blocking changes to the instruction. @@ -373,7 +373,8 @@ dict( DESCRIPTOR=_CSVINSTRUCTION, __module__="google.cloud.datalabeling_v1beta1.proto.instruction_pb2", - __doc__="""Instruction from a CSV file. + __doc__="""Deprecated: this instruction format is not supported any + more. Instruction from a CSV file. Attributes: @@ -405,4 +406,6 @@ DESCRIPTOR._options = None +_INSTRUCTION.fields_by_name["csv_instruction"]._options = None +_INSTRUCTION._options = None # @@protoc_insertion_point(module_scope) diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations.proto b/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations.proto index 80371d0e2322..7f0692443860 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations.proto +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations.proto @@ -18,6 +18,7 @@ syntax = "proto3"; package google.cloud.datalabeling.v1beta1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; import "google/cloud/datalabeling/v1beta1/dataset.proto"; import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto"; import "google/protobuf/timestamp.proto"; @@ -42,7 +43,7 @@ message ImportDataOperationResponse { // Response used for ExportDataset longrunning operation. message ExportDataOperationResponse { // Ouptut only. The name of dataset. - // "projects/*/datasets/*/Datasets/*" + // "projects/*/datasets/*" string dataset = 1; // Output only. Total number of examples requested to export @@ -60,7 +61,7 @@ message ExportDataOperationResponse { // Metadata of an ImportData operation. message ImportDataOperationMetadata { - // Ouptut only. The name of imported dataset. + // Output only. The name of imported dataset. // "projects/*/datasets/*" string dataset = 1; @@ -76,7 +77,7 @@ message ImportDataOperationMetadata { // Metadata of an ExportData operation. message ExportDataOperationMetadata { // Output only. The name of dataset to be exported. - // "projects/*/datasets/*/Datasets/*" + // "projects/*/datasets/*" string dataset = 1; // Output only. Partial failures encountered. @@ -89,7 +90,7 @@ message ExportDataOperationMetadata { } // Metadata of a labeling operation, such as LabelImage or LabelVideo. -// Next tag: 18 +// Next tag: 20 message LabelOperationMetadata { // Ouptut only. Details of specific label operation. oneof details { @@ -103,8 +104,7 @@ message LabelOperationMetadata { LabelImageBoundingPolyOperationMetadata image_bounding_poly_details = 11; // Details of label image oriented bounding box operation. - LabelImageOrientedBoundingBoxOperationMetadata - image_oriented_bounding_box_details = 14; + LabelImageOrientedBoundingBoxOperationMetadata image_oriented_bounding_box_details = 14; // Details of label image polyline operation. LabelImagePolylineOperationMetadata image_polyline_details = 12; @@ -116,8 +116,7 @@ message LabelOperationMetadata { LabelVideoClassificationOperationMetadata video_classification_details = 5; // Details of label video object detection operation. - LabelVideoObjectDetectionOperationMetadata video_object_detection_details = - 6; + LabelVideoObjectDetectionOperationMetadata video_object_detection_details = 6; // Details of label video object tracking operation. LabelVideoObjectTrackingOperationMetadata video_object_tracking_details = 7; @@ -129,8 +128,7 @@ message LabelOperationMetadata { LabelTextClassificationOperationMetadata text_classification_details = 9; // Details of label text entity extraction operation. - LabelTextEntityExtractionOperationMetadata text_entity_extraction_details = - 13; + LabelTextEntityExtractionOperationMetadata text_entity_extraction_details = 13; } // Output only. Progress of label operation. Range: [0, 100]. diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations_pb2.py b/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations_pb2.py index 78c02a3477c0..9c7f6f6cff98 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations_pb2.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/proto/operations_pb2.py @@ -16,6 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.cloud.datalabeling_v1beta1.proto import ( dataset_pb2 as google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2, ) @@ -34,10 +35,11 @@ "\n%com.google.cloud.datalabeling.v1beta1P\001ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling" ), serialized_pb=_b( - '\n8google/cloud/datalabeling_v1beta1/proto/operations.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x35google/cloud/datalabeling_v1beta1/proto/dataset.proto\x1a\x45google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto"Y\n\x1bImportDataOperationResponse\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\x12\x14\n\x0cimport_count\x18\x03 \x01(\x05"\xe5\x01\n\x1b\x45xportDataOperationResponse\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\x12\x14\n\x0c\x65xport_count\x18\x03 \x01(\x05\x12\x42\n\x0blabel_stats\x18\x04 \x01(\x0b\x32-.google.cloud.datalabeling.v1beta1.LabelStats\x12\x46\n\routput_config\x18\x05 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.OutputConfig"\x8d\x01\n\x1bImportDataOperationMetadata\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\x8d\x01\n\x1b\x45xportDataOperationMetadata\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\x8c\x0c\n\x16LabelOperationMetadata\x12t\n\x1cimage_classification_details\x18\x03 \x01(\x0b\x32L.google.cloud.datalabeling.v1beta1.LabelImageClassificationOperationMetadataH\x00\x12o\n\x1aimage_bounding_box_details\x18\x04 \x01(\x0b\x32I.google.cloud.datalabeling.v1beta1.LabelImageBoundingBoxOperationMetadataH\x00\x12q\n\x1bimage_bounding_poly_details\x18\x0b \x01(\x0b\x32J.google.cloud.datalabeling.v1beta1.LabelImageBoundingPolyOperationMetadataH\x00\x12\x80\x01\n#image_oriented_bounding_box_details\x18\x0e \x01(\x0b\x32Q.google.cloud.datalabeling.v1beta1.LabelImageOrientedBoundingBoxOperationMetadataH\x00\x12h\n\x16image_polyline_details\x18\x0c \x01(\x0b\x32\x46.google.cloud.datalabeling.v1beta1.LabelImagePolylineOperationMetadataH\x00\x12p\n\x1aimage_segmentation_details\x18\x0f \x01(\x0b\x32J.google.cloud.datalabeling.v1beta1.LabelImageSegmentationOperationMetadataH\x00\x12t\n\x1cvideo_classification_details\x18\x05 \x01(\x0b\x32L.google.cloud.datalabeling.v1beta1.LabelVideoClassificationOperationMetadataH\x00\x12w\n\x1evideo_object_detection_details\x18\x06 \x01(\x0b\x32M.google.cloud.datalabeling.v1beta1.LabelVideoObjectDetectionOperationMetadataH\x00\x12u\n\x1dvideo_object_tracking_details\x18\x07 \x01(\x0b\x32L.google.cloud.datalabeling.v1beta1.LabelVideoObjectTrackingOperationMetadataH\x00\x12\x62\n\x13video_event_details\x18\x08 \x01(\x0b\x32\x43.google.cloud.datalabeling.v1beta1.LabelVideoEventOperationMetadataH\x00\x12r\n\x1btext_classification_details\x18\t \x01(\x0b\x32K.google.cloud.datalabeling.v1beta1.LabelTextClassificationOperationMetadataH\x00\x12w\n\x1etext_entity_extraction_details\x18\r \x01(\x0b\x32M.google.cloud.datalabeling.v1beta1.LabelTextEntityExtractionOperationMetadataH\x00\x12\x18\n\x10progress_percent\x18\x01 \x01(\x05\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\t\n\x07\x64\x65tails"{\n)LabelImageClassificationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"x\n&LabelImageBoundingBoxOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"\x80\x01\n.LabelImageOrientedBoundingBoxOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"y\n\'LabelImageBoundingPolyOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"u\n#LabelImagePolylineOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"y\n\'LabelImageSegmentationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"{\n)LabelVideoClassificationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"|\n*LabelVideoObjectDetectionOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"{\n)LabelVideoObjectTrackingOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"r\n LabelVideoEventOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"z\n(LabelTextClassificationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"|\n*LabelTextEntityExtractionOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"\x8f\x01\n\x19\x43reateInstructionMetadata\x12\x13\n\x0binstruction\x18\x01 \x01(\t\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' + '\n8google/cloud/datalabeling_v1beta1/proto/operations.proto\x12!google.cloud.datalabeling.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto\x1a\x35google/cloud/datalabeling_v1beta1/proto/dataset.proto\x1a\x45google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto"Y\n\x1bImportDataOperationResponse\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\x12\x14\n\x0cimport_count\x18\x03 \x01(\x05"\xe5\x01\n\x1b\x45xportDataOperationResponse\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\x12\x14\n\x0c\x65xport_count\x18\x03 \x01(\x05\x12\x42\n\x0blabel_stats\x18\x04 \x01(\x0b\x32-.google.cloud.datalabeling.v1beta1.LabelStats\x12\x46\n\routput_config\x18\x05 \x01(\x0b\x32/.google.cloud.datalabeling.v1beta1.OutputConfig"\x8d\x01\n\x1bImportDataOperationMetadata\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\x8d\x01\n\x1b\x45xportDataOperationMetadata\x12\x0f\n\x07\x64\x61taset\x18\x01 \x01(\t\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\x8c\x0c\n\x16LabelOperationMetadata\x12t\n\x1cimage_classification_details\x18\x03 \x01(\x0b\x32L.google.cloud.datalabeling.v1beta1.LabelImageClassificationOperationMetadataH\x00\x12o\n\x1aimage_bounding_box_details\x18\x04 \x01(\x0b\x32I.google.cloud.datalabeling.v1beta1.LabelImageBoundingBoxOperationMetadataH\x00\x12q\n\x1bimage_bounding_poly_details\x18\x0b \x01(\x0b\x32J.google.cloud.datalabeling.v1beta1.LabelImageBoundingPolyOperationMetadataH\x00\x12\x80\x01\n#image_oriented_bounding_box_details\x18\x0e \x01(\x0b\x32Q.google.cloud.datalabeling.v1beta1.LabelImageOrientedBoundingBoxOperationMetadataH\x00\x12h\n\x16image_polyline_details\x18\x0c \x01(\x0b\x32\x46.google.cloud.datalabeling.v1beta1.LabelImagePolylineOperationMetadataH\x00\x12p\n\x1aimage_segmentation_details\x18\x0f \x01(\x0b\x32J.google.cloud.datalabeling.v1beta1.LabelImageSegmentationOperationMetadataH\x00\x12t\n\x1cvideo_classification_details\x18\x05 \x01(\x0b\x32L.google.cloud.datalabeling.v1beta1.LabelVideoClassificationOperationMetadataH\x00\x12w\n\x1evideo_object_detection_details\x18\x06 \x01(\x0b\x32M.google.cloud.datalabeling.v1beta1.LabelVideoObjectDetectionOperationMetadataH\x00\x12u\n\x1dvideo_object_tracking_details\x18\x07 \x01(\x0b\x32L.google.cloud.datalabeling.v1beta1.LabelVideoObjectTrackingOperationMetadataH\x00\x12\x62\n\x13video_event_details\x18\x08 \x01(\x0b\x32\x43.google.cloud.datalabeling.v1beta1.LabelVideoEventOperationMetadataH\x00\x12r\n\x1btext_classification_details\x18\t \x01(\x0b\x32K.google.cloud.datalabeling.v1beta1.LabelTextClassificationOperationMetadataH\x00\x12w\n\x1etext_entity_extraction_details\x18\r \x01(\x0b\x32M.google.cloud.datalabeling.v1beta1.LabelTextEntityExtractionOperationMetadataH\x00\x12\x18\n\x10progress_percent\x18\x01 \x01(\x05\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\t\n\x07\x64\x65tails"{\n)LabelImageClassificationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"x\n&LabelImageBoundingBoxOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"\x80\x01\n.LabelImageOrientedBoundingBoxOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"y\n\'LabelImageBoundingPolyOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"u\n#LabelImagePolylineOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"y\n\'LabelImageSegmentationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"{\n)LabelVideoClassificationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"|\n*LabelVideoObjectDetectionOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"{\n)LabelVideoObjectTrackingOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"r\n LabelVideoEventOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"z\n(LabelTextClassificationOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"|\n*LabelTextEntityExtractionOperationMetadata\x12N\n\x0c\x62\x61sic_config\x18\x01 \x01(\x0b\x32\x38.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig"\x8f\x01\n\x19\x43reateInstructionMetadata\x12\x13\n\x0binstruction\x18\x01 \x01(\t\x12,\n\x10partial_failures\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBx\n%com.google.cloud.datalabeling.v1beta1P\x01ZMgoogle.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabelingb\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_dataset__pb2.DESCRIPTOR, google_dot_cloud_dot_datalabeling__v1beta1_dot_proto_dot_human__annotation__config__pb2.DESCRIPTOR, google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR, @@ -116,8 +118,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=309, - serialized_end=398, + serialized_start=336, + serialized_end=425, ) @@ -227,8 +229,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=401, - serialized_end=630, + serialized_start=428, + serialized_end=657, ) @@ -302,8 +304,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=633, - serialized_end=774, + serialized_start=660, + serialized_end=801, ) @@ -377,8 +379,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=777, - serialized_end=918, + serialized_start=804, + serialized_end=945, ) @@ -676,8 +678,8 @@ fields=[], ) ], - serialized_start=921, - serialized_end=2469, + serialized_start=948, + serialized_end=2496, ) @@ -715,8 +717,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2471, - serialized_end=2594, + serialized_start=2498, + serialized_end=2621, ) @@ -754,8 +756,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2596, - serialized_end=2716, + serialized_start=2623, + serialized_end=2743, ) @@ -793,8 +795,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2719, - serialized_end=2847, + serialized_start=2746, + serialized_end=2874, ) @@ -832,8 +834,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2849, - serialized_end=2970, + serialized_start=2876, + serialized_end=2997, ) @@ -871,8 +873,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2972, - serialized_end=3089, + serialized_start=2999, + serialized_end=3116, ) @@ -910,8 +912,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3091, - serialized_end=3212, + serialized_start=3118, + serialized_end=3239, ) @@ -949,8 +951,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3214, - serialized_end=3337, + serialized_start=3241, + serialized_end=3364, ) @@ -988,8 +990,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3339, - serialized_end=3463, + serialized_start=3366, + serialized_end=3490, ) @@ -1027,8 +1029,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3465, - serialized_end=3588, + serialized_start=3492, + serialized_end=3615, ) @@ -1066,8 +1068,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3590, - serialized_end=3704, + serialized_start=3617, + serialized_end=3731, ) @@ -1105,8 +1107,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3706, - serialized_end=3828, + serialized_start=3733, + serialized_end=3855, ) @@ -1144,8 +1146,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3830, - serialized_end=3954, + serialized_start=3857, + serialized_end=3981, ) @@ -1219,8 +1221,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3957, - serialized_end=4100, + serialized_start=3984, + serialized_end=4127, ) _EXPORTDATAOPERATIONRESPONSE.fields_by_name[ @@ -1512,8 +1514,7 @@ Attributes: dataset: - Ouptut only. The name of dataset. - "projects/*/datasets/*/Datasets/\*" + Ouptut only. The name of dataset. "projects/*/datasets/*" total_count: Output only. Total number of examples requested to export export_count: @@ -1540,7 +1541,7 @@ Attributes: dataset: - Ouptut only. The name of imported dataset. + Output only. The name of imported dataset. "projects/*/datasets/*" partial_failures: Output only. Partial failures encountered. E.g. single files @@ -1567,7 +1568,7 @@ Attributes: dataset: Output only. The name of dataset to be exported. - "projects/*/datasets/*/Datasets/\*" + "projects/*/datasets/*" partial_failures: Output only. Partial failures encountered. E.g. single files that couldn't be read. Status details field will contain @@ -1587,8 +1588,8 @@ dict( DESCRIPTOR=_LABELOPERATIONMETADATA, __module__="google.cloud.datalabeling_v1beta1.proto.operations_pb2", - __doc__="""Metadata of a labeling operation, such as LabelImage or LabelVideo. Next - tag: 18 + __doc__="""Metadata of a labeling operation, such as LabelImage or + LabelVideo. Next tag: 20 Attributes: @@ -1674,7 +1675,8 @@ dict( DESCRIPTOR=_LABELIMAGEORIENTEDBOUNDINGBOXOPERATIONMETADATA, __module__="google.cloud.datalabeling_v1beta1.proto.operations_pb2", - __doc__="""Details of a LabelImageOrientedBoundingBox operation metadata. + __doc__="""Details of a LabelImageOrientedBoundingBox operation + metadata. Attributes: diff --git a/datalabeling/google/cloud/datalabeling_v1beta1/types.py b/datalabeling/google/cloud/datalabeling_v1beta1/types.py index 45aef871a7c1..6d9d3134d5ab 100644 --- a/datalabeling/google/cloud/datalabeling_v1beta1/types.py +++ b/datalabeling/google/cloud/datalabeling_v1beta1/types.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/datalabeling/synth.metadata b/datalabeling/synth.metadata index 95de4906de7c..68b8751eed0d 100644 --- a/datalabeling/synth.metadata +++ b/datalabeling/synth.metadata @@ -1,19 +1,20 @@ { - "updateTime": "2020-01-03T13:16:22.088624Z", + "updateTime": "2020-01-29T13:20:15.730609Z", "sources": [ { "generator": { "name": "artman", - "version": "0.43.0", - "dockerImage": "googleapis/artman@sha256:264654a37596a44b0668b8ce6ac41082d713f6ee150b3fc6425fa78cc64e4f20" + "version": "0.44.4", + "dockerImage": "googleapis/artman@sha256:19e945954fc960a4bdfee6cb34695898ab21a8cf0bac063ee39b91f00a1faec8" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "4d45a6399e9444fbddaeb1c86aabfde210723714", - "internalRef": "287908369" + "sha": "cf3b61102ed5f36b827bc82ec39be09525f018c8", + "internalRef": "292034635", + "log": "cf3b61102ed5f36b827bc82ec39be09525f018c8\n Fix to protos for v1p1beta1 release of Cloud Security Command Center\n\nPiperOrigin-RevId: 292034635\n\n4e1cfaa7c0fede9e65d64213ca3da1b1255816c0\nUpdate the public proto to support UTF-8 encoded id for CatalogService API, increase the ListCatalogItems deadline to 300s and some minor documentation change\n\nPiperOrigin-RevId: 292030970\n\n9c483584f8fd5a1b862ae07973f4cc7bb3e46648\nasset: add annotations to v1p1beta1\n\nPiperOrigin-RevId: 292009868\n\ne19209fac29731d0baf6d9ac23da1164f7bdca24\nAdd the google.rpc.context.AttributeContext message to the open source\ndirectories.\n\nPiperOrigin-RevId: 291999930\n\nae5662960573f279502bf98a108a35ba1175e782\noslogin API: move file level option on top of the file to avoid protobuf.js bug.\n\nPiperOrigin-RevId: 291990506\n\neba3897fff7c49ed85d3c47fc96fe96e47f6f684\nAdd cc_proto_library and cc_grpc_library targets for Spanner and IAM protos.\n\nPiperOrigin-RevId: 291988651\n\n8e981acfd9b97ea2f312f11bbaa7b6c16e412dea\nBeta launch for PersonDetection and FaceDetection features.\n\nPiperOrigin-RevId: 291821782\n\n994e067fae3b21e195f7da932b08fff806d70b5d\nasset: add annotations to v1p2beta1\n\nPiperOrigin-RevId: 291815259\n\n244e1d2c89346ca2e0701b39e65552330d68545a\nAdd Playable Locations service\n\nPiperOrigin-RevId: 291806349\n\n909f8f67963daf45dd88d020877fb9029b76788d\nasset: add annotations to v1beta2\n\nPiperOrigin-RevId: 291805301\n\n3c39a1d6e23c1ef63c7fba4019c25e76c40dfe19\nKMS: add file-level message for CryptoKeyPath, it is defined in gapic yaml but not\nin proto files.\n\nPiperOrigin-RevId: 291420695\n\nc6f3f350b8387f8d1b85ed4506f30187ebaaddc3\ncontaineranalysis: update v1beta1 and bazel build with annotations\n\nPiperOrigin-RevId: 291401900\n\n92887d74b44e4e636252b7b8477d0d2570cd82db\nfix: fix the location of grpc config file.\n\nPiperOrigin-RevId: 291396015\n\ne26cab8afd19d396b929039dac5d874cf0b5336c\nexpr: add default_host and method_signature annotations to CelService\n\nPiperOrigin-RevId: 291240093\n\n06093ae3952441c34ec176d1f7431b8765cec0be\nirm: fix v1alpha2 bazel build by adding missing proto imports\n\nPiperOrigin-RevId: 291227940\n\na8a2514af326e4673063f9a3c9d0ef1091c87e6c\nAdd proto annotation for cloud/irm API\n\nPiperOrigin-RevId: 291217859\n\n8d16f76de065f530d395a4c7eabbf766d6a120fd\nGenerate Memcache v1beta2 API protos and gRPC ServiceConfig files\n\nPiperOrigin-RevId: 291008516\n\n3af1dabd93df9a9f17bf3624d3b875c11235360b\ngrafeas: Add containeranalysis default_host to Grafeas service\n\nPiperOrigin-RevId: 290965849\n\nbe2663fa95e31cba67d0cd62611a6674db9f74b7\nfix(google/maps/roads): add missing opening bracket\n\nPiperOrigin-RevId: 290964086\n\nfacc26550a0af0696e0534bc9cae9df14275aa7c\nUpdating v2 protos with the latest inline documentation (in comments) and adding a per-service .yaml file.\n\nPiperOrigin-RevId: 290952261\n\ncda99c1f7dc5e4ca9b1caeae1dc330838cbc1461\nChange api_name to 'asset' for v1p1beta1\n\nPiperOrigin-RevId: 290800639\n\n94e9e90c303a820ce40643d9129e7f0d2054e8a1\nAdds Google Maps Road service\n\nPiperOrigin-RevId: 290795667\n\na3b23dcb2eaecce98c600c7d009451bdec52dbda\nrpc: new message ErrorInfo, other comment updates\n\nPiperOrigin-RevId: 290781668\n\n26420ef4e46c37f193c0fbe53d6ebac481de460e\nAdd proto definition for Org Policy v1.\n\nPiperOrigin-RevId: 290771923\n\n7f0dab8177cf371ae019a082e2512de7ac102888\nPublish Routes Preferred API v1 service definitions.\n\nPiperOrigin-RevId: 290326986\n\nad6e508d0728e1d1bca6e3f328cd562718cb772d\nFix: Qualify resource type references with \"jobs.googleapis.com/\"\n\nPiperOrigin-RevId: 290285762\n\n58e770d568a2b78168ddc19a874178fee8265a9d\ncts client library\n\nPiperOrigin-RevId: 290146169\n\naf9daa4c3b4c4a8b7133b81588dd9ffd37270af2\nAdd more programming language options to public proto\n\nPiperOrigin-RevId: 290144091\n\nd9f2bbf2df301ef84641d4cec7c828736a0bd907\ntalent: add missing resource.proto dep to Bazel build target\n\nPiperOrigin-RevId: 290143164\n\n3b3968237451d027b42471cd28884a5a1faed6c7\nAnnotate Talent API.\nAdd gRPC service config for retry.\nUpdate bazel file with google.api.resource dependency.\n\nPiperOrigin-RevId: 290125172\n\n0735b4b096872960568d1f366bfa75b7b0e1f1a3\nWeekly library update.\n\nPiperOrigin-RevId: 289939042\n\n8760d3d9a4543d7f9c0d1c7870aca08b116e4095\nWeekly library update.\n\nPiperOrigin-RevId: 289939020\n\n8607df842f782a901805187e02fff598145b0b0e\nChange Talent API timeout to 30s.\n\nPiperOrigin-RevId: 289912621\n\n908155991fe32570653bcb72ecfdcfc896642f41\nAdd Recommendations AI V1Beta1\n\nPiperOrigin-RevId: 289901914\n\n5c9a8c2bebd8b71aa66d1cc473edfaac837a2c78\nAdding no-arg method signatures for ListBillingAccounts and ListServices\n\nPiperOrigin-RevId: 289891136\n\n50b0e8286ac988b0593bd890eb31fef6ea2f5767\nlongrunning: add grpc service config and default_host annotation to operations.proto\n\nPiperOrigin-RevId: 289876944\n\n6cac27dabe51c54807b0401698c32d34998948a9\n Updating default deadline for Cloud Security Command Center's v1 APIs.\n\nPiperOrigin-RevId: 289875412\n\nd99df0d67057a233c711187e0689baa4f8e6333d\nFix: Correct spelling in C# namespace option\n\nPiperOrigin-RevId: 289709813\n\n2fa8d48165cc48e35b0c62e6f7bdade12229326c\nfeat: Publish Recommender v1 to GitHub.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 289619243\n\n9118db63d1ab493a2e44a3b4973fde810a835c49\nfirestore: don't retry reads that fail with Aborted\n\nFor transaction reads that fail with ABORTED, we need to rollback and start a new transaction. Our current configuration makes it so that GAPIC retries ABORTED reads multiple times without making any progress. Instead, we should retry at the transaction level.\n\nPiperOrigin-RevId: 289532382\n\n1dbfd3fe4330790b1e99c0bb20beb692f1e20b8a\nFix bazel build\nAdd other langauges (Java was already there) for bigquery/storage/v1alpha2 api.\n\nPiperOrigin-RevId: 289519766\n\nc06599cdd7d11f8d3fd25f8d3249e5bb1a3d5d73\nInitial commit of google.cloud.policytroubleshooter API, The API helps in troubleshooting GCP policies. Refer https://cloud.google.com/iam/docs/troubleshooting-access for more information\n\nPiperOrigin-RevId: 289491444\n\nfce7d80fa16ea241e87f7bc33d68595422e94ecd\nDo not pass samples option for Artman config of recommender v1 API.\n\nPiperOrigin-RevId: 289477403\n\nef179e8c61436297e6bb124352e47e45c8c80cb1\nfix: Address missing Bazel dependency.\n\nBazel builds stopped working in 06ec6d5 because\nthe google/longrunning/operations.proto file took\nan import from google/api/client.proto, but that\nimport was not added to BUILD.bazel.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 289446074\n\n8841655b242c84fd691d77d7bcf21b61044f01ff\nMigrate Data Labeling v1beta1 to GAPIC v2.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 289446026\n\n06ec6d5d053fff299eaa6eaa38afdd36c5e2fc68\nAdd annotations to google.longrunning.v1\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 289413169\n\n0480cf40be1d3cc231f4268a2fdb36a8dd60e641\nMigrate IAM Admin v1 to GAPIC v2.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 289411084\n\n1017173e9adeb858587639af61889ad970c728b1\nSpecify a C# namespace for BigQuery Connection v1beta1\n\nPiperOrigin-RevId: 289396763\n\nb08714b378e8e5b0c4ecdde73f92c36d6303b4b6\nfix: Integrate latest proto-docs-plugin fix.\nFixes dialogflow v2\n\nPiperOrigin-RevId: 289189004\n\n51217a67e79255ee1f2e70a6a3919df082513327\nCreate BUILD file for recommender v1\n\nPiperOrigin-RevId: 289183234\n\nacacd87263c0a60e458561b8b8ce9f67c760552a\nGenerate recommender v1 API protos and gRPC ServiceConfig files\n\nPiperOrigin-RevId: 289177510\n\n9d2f7133b97720b1fa3601f6dcd30760ba6d8a1e\nFix kokoro build script\n\nPiperOrigin-RevId: 289166315\n\nc43a67530d2a47a0220cad20ca8de39b3fbaf2c5\ncloudtasks: replace missing RPC timeout config for v2beta2 and v2beta3\n\nPiperOrigin-RevId: 289162391\n\n4cefc229a9197236fc0adf02d69b71c0c5cf59de\nSynchronize new proto/yaml changes.\n\nPiperOrigin-RevId: 289158456\n\n56f263fe959c50786dab42e3c61402d32d1417bd\nCatalog API: Adding config necessary to build client libraries\n\nPiperOrigin-RevId: 289149879\n\n4543762b23a57fc3c53d409efc3a9affd47b6ab3\nFix Bazel build\nbilling/v1 and dialogflow/v2 remain broken (not bazel-related issues).\nBilling has wrong configuration, dialogflow failure is caused by a bug in documentation plugin.\n\nPiperOrigin-RevId: 289140194\n\nc9dce519127b97e866ca133a01157f4ce27dcceb\nUpdate Bigtable docs\n\nPiperOrigin-RevId: 289114419\n\n802c5c5f2bf94c3facb011267d04e71942e0d09f\nMigrate DLP to proto annotations (but not GAPIC v2).\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 289102579\n\n6357f30f2ec3cff1d8239d18b707ff9d438ea5da\nRemove gRPC configuration file that was in the wrong place.\n\nPiperOrigin-RevId: 289096111\n\n360a8792ed62f944109d7e22d613a04a010665b4\n Protos for v1p1beta1 release of Cloud Security Command Center\n\nPiperOrigin-RevId: 289011995\n\na79211c20c4f2807eec524d00123bf7c06ad3d6e\nRoll back containeranalysis v1 to GAPIC v1.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 288999068\n\n9e60345ba603e03484a8aaa33ce5ffa19c1c652b\nPublish Routes Preferred API v1 proto definitions.\n\nPiperOrigin-RevId: 288941399\n\nd52885b642ad2aa1f42b132ee62dbf49a73e1e24\nMigrate the service management API to GAPIC v2.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 288909426\n\n6ace586805c08896fef43e28a261337fcf3f022b\ncloudtasks: replace missing RPC timeout config\n\nPiperOrigin-RevId: 288783603\n\n51d906cabee4876b12497054b15b05d4a50ad027\nImport of Grafeas from Github.\n\nUpdate BUILD.bazel accordingly.\n\nPiperOrigin-RevId: 288783426\n\n5ef42bcd363ba0440f0ee65b3c80b499e9067ede\nMigrate Recommender v1beta1 to GAPIC v2.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 288713066\n\n94f986afd365b7d7e132315ddcd43d7af0e652fb\nMigrate Container Analysis v1 to GAPIC v2.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 288708382\n\n7a751a279184970d3b6ba90e4dd4d22a382a0747\nRemove Container Analysis v1alpha1 (nobody publishes it).\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 288707473\n\n3c0d9c71242e70474b2b640e15bb0a435fd06ff0\nRemove specious annotation from BigQuery Data Transfer before\nanyone accidentally does anything that uses it.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 288701604\n\n1af307a4764bd415ef942ac5187fa1def043006f\nMigrate BigQuery Connection to GAPIC v2.\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 288698681\n\n08b488e0660c59842a7dee0e3e2b65d9e3a514a9\nExposing cloud_catalog.proto (This API is already available through REST)\n\nPiperOrigin-RevId: 288625007\n\na613482977e11ac09fa47687a5d1b5a01efcf794\nUpdate the OS Login v1beta API description to render better in the UI.\n\nPiperOrigin-RevId: 288547940\n\n5e182b8d9943f1b17008d69d4c7e865dc83641a7\nUpdate the OS Login API description to render better in the UI.\n\nPiperOrigin-RevId: 288546443\n\ncb79155f596e0396dd900da93872be7066f6340d\nFix: Add a resource annotation for Agent\nFix: Correct the service name in annotations for Intent and SessionEntityType\n\nPiperOrigin-RevId: 288441307\n\nf7f6e9daec3315fd47cb638789bd8415bf4a27cc\nAdded cloud asset api v1p1beta1\n\nPiperOrigin-RevId: 288427239\n\nf2880f5b342c6345f3dcaad24fcb3c6ca9483654\nBilling account API: Adding config necessary to build client libraries\n\nPiperOrigin-RevId: 288351810\n\ndc250ffe071729f8f8bef9d6fd0fbbeb0254c666\nFix: Remove incorrect resource annotations in requests\n\nPiperOrigin-RevId: 288321208\n\n91ef2d9dd69807b0b79555f22566fb2d81e49ff9\nAdd GAPIC annotations to Cloud KMS (but do not migrate the GAPIC config yet).\n\nCommitter: @lukesneeringer\nPiperOrigin-RevId: 287999179\n\n" } }, { @@ -38,3346 +39,70 @@ ], "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": "LICENSE" - }, - { - "path": "synth.metadata" - }, - { - "path": ".gitignore" - }, - { - "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": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/register.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/install_lib.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/build_ext.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/py36compat.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/install_egg_info.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/egg_info.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__init__.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/upload.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/test.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/easy_install.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/saveopts.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/build_py.py" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/easy_install.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/alias.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install_lib.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/bdist_wininst.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/upload_docs.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/rotate.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/sdist.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/build_ext.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/develop.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/register.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/test.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/dist_info.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/egg_info.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install_scripts.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/setopt.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/saveopts.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/py36compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/upload.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/build_py.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/command/__pycache__/build_clib.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py31compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py27compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/package_index.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/dist.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py33compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/extension.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/version.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/unicode_utils.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/installer.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/msvc.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/site-patch.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/namespaces.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/dep_util.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/glob.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/launch.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/__init__.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/monkey.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/errors.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/depends.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/py34compat.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/_imp.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/windows_support.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/archive_util.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/config.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/sandbox.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/build_meta.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-36.pyc" - }, - { - "path": ".nox/blacken/lib/python3.6/site-packages/setuptools/__pycache__/ssl_support.cpython-36.pyc" - }, - { - "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": ".coveragerc" }, { - "path": ".nox/blacken/bin/python3.6" + "path": ".flake8" }, { - "path": ".nox/blacken/bin/activate_this.py" + "path": ".gitignore" }, { - "path": ".nox/blacken/bin/activate.csh" + "path": ".repo-metadata.json" }, { - "path": ".nox/blacken/bin/python-config" + "path": "CHANGELOG.md" }, { - "path": ".nox/blacken/bin/black" + "path": "LICENSE" }, { - "path": ".nox/blacken/bin/activate.ps1" + "path": "MANIFEST.in" }, { - "path": ".nox/blacken/bin/pip3.6" + "path": "README.rst" }, { - "path": ".nox/blacken/bin/activate.xsh" + "path": "docs/README.rst" }, { - "path": ".nox/blacken/bin/activate.fish" + "path": "docs/_static/custom.css" }, { - "path": ".nox/blacken/bin/python" + "path": "docs/_templates/layout.html" }, { - "path": ".nox/blacken/bin/activate" + "path": "docs/changelog.md" }, { - "path": ".nox/blacken/bin/easy_install-3.6" + "path": "docs/conf.py" }, { - "path": ".nox/blacken/bin/easy_install" + "path": "docs/gapic/v1beta1/api.rst" }, { - "path": ".nox/blacken/bin/pip3" + "path": "docs/gapic/v1beta1/types.rst" }, { - "path": ".nox/blacken/bin/pip" + "path": "docs/index.rst" }, { - "path": "tests/unit/gapic/v1beta1/test_data_labeling_service_client_v1beta1.py" + "path": "google/__init__.py" }, { - "path": "google/__init__.py" + "path": "google/cloud/__init__.py" }, { "path": "google/cloud/datalabeling.py" }, { - "path": "google/cloud/__init__.py" + "path": "google/cloud/datalabeling_v1beta1/__init__.py" }, { - "path": "google/cloud/datalabeling_v1beta1/__init__.py" + "path": "google/cloud/datalabeling_v1beta1/gapic/__init__.py" }, { - "path": "google/cloud/datalabeling_v1beta1/types.py" + "path": "google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client.py" }, { "path": "google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client_config.py" @@ -3385,32 +110,23 @@ { "path": "google/cloud/datalabeling_v1beta1/gapic/enums.py" }, - { - "path": "google/cloud/datalabeling_v1beta1/gapic/__init__.py" - }, - { - "path": "google/cloud/datalabeling_v1beta1/gapic/data_labeling_service_client.py" - }, - { - "path": "google/cloud/datalabeling_v1beta1/gapic/transports/data_labeling_service_grpc_transport.py" - }, { "path": "google/cloud/datalabeling_v1beta1/gapic/transports/__init__.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/instruction_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/gapic/transports/data_labeling_service_grpc_transport.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/__init__.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/data_payloads.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/annotation.proto" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2_grpc.py" + "path": "google/cloud/datalabeling_v1beta1/proto/annotation_pb2.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/proto/annotation_pb2_grpc.py" }, { "path": "google/cloud/datalabeling_v1beta1/proto/annotation_spec_set.proto" @@ -3419,40 +135,28 @@ "path": "google/cloud/datalabeling_v1beta1/proto/annotation_spec_set_pb2.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/dataset.proto" - }, - { - "path": "google/cloud/datalabeling_v1beta1/proto/operations_pb2_grpc.py" - }, - { - "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_pb2_grpc.py" - }, - { - "path": "google/cloud/datalabeling_v1beta1/proto/operations.proto" - }, - { - "path": "google/cloud/datalabeling_v1beta1/proto/operations_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/proto/annotation_spec_set_pb2_grpc.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/evaluation.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/data_labeling_service.proto" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/annotation_spec_set_pb2_grpc.py" + "path": "google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/annotation_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2_grpc.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/annotation.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/data_payloads.proto" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/proto/data_payloads_pb2.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/proto/data_payloads_pb2_grpc.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/data_payloads_pb2_grpc.py" + "path": "google/cloud/datalabeling_v1beta1/proto/dataset.proto" }, { "path": "google/cloud/datalabeling_v1beta1/proto/dataset_pb2.py" @@ -3461,25 +165,28 @@ "path": "google/cloud/datalabeling_v1beta1/proto/dataset_pb2_grpc.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/human_annotation_config_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/proto/evaluation.proto" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/data_labeling_service_pb2_grpc.py" + "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_job.proto" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/annotation_pb2_grpc.py" + "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_job.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_job_pb2_grpc.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/__init__.py" + "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_pb2.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/data_payloads_pb2.py" + "path": "google/cloud/datalabeling_v1beta1/proto/evaluation_pb2_grpc.py" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/instruction_pb2_grpc.py" + "path": "google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto" + }, + { + "path": "google/cloud/datalabeling_v1beta1/proto/human_annotation_config_pb2.py" }, { "path": "google/cloud/datalabeling_v1beta1/proto/human_annotation_config_pb2_grpc.py" @@ -3488,61 +195,61 @@ "path": "google/cloud/datalabeling_v1beta1/proto/instruction.proto" }, { - "path": "google/cloud/datalabeling_v1beta1/proto/human_annotation_config.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/instruction_pb2.py" }, { - "path": "google/__pycache__/__init__.cpython-36.pyc" + "path": "google/cloud/datalabeling_v1beta1/proto/instruction_pb2_grpc.py" }, { - "path": "protos/data_labeling_service.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/operations.proto" }, { - "path": "protos/annotation_spec_set.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/operations_pb2.py" }, { - "path": "protos/dataset.proto" + "path": "google/cloud/datalabeling_v1beta1/proto/operations_pb2_grpc.py" }, { - "path": "protos/operations.proto" + "path": "google/cloud/datalabeling_v1beta1/types.py" }, { - "path": "protos/annotation.proto" + "path": "noxfile.py" }, { - "path": "protos/instruction.proto" + "path": "protos/annotation.proto" }, { - "path": "protos/human_annotation_config.proto" + "path": "protos/annotation_spec_set.proto" }, { - "path": "__pycache__/synth.cpython-36.pyc" + "path": "protos/data_labeling_service.proto" }, { - "path": "__pycache__/noxfile.cpython-36.pyc" + "path": "protos/dataset.proto" }, { - "path": "docs/conf.py" + "path": "protos/human_annotation_config.proto" }, { - "path": "docs/changelog.md" + "path": "protos/instruction.proto" }, { - "path": "docs/index.rst" + "path": "protos/operations.proto" }, { - "path": "docs/README.rst" + "path": "setup.cfg" }, { - "path": "docs/_static/custom.css" + "path": "setup.py" }, { - "path": "docs/_templates/layout.html" + "path": "synth.metadata" }, { - "path": "docs/gapic/v1beta1/types.rst" + "path": "synth.py" }, { - "path": "docs/gapic/v1beta1/api.rst" + "path": "tests/unit/gapic/v1beta1/test_data_labeling_service_client_v1beta1.py" } ] } \ No newline at end of file diff --git a/datalabeling/tests/unit/gapic/v1beta1/test_data_labeling_service_client_v1beta1.py b/datalabeling/tests/unit/gapic/v1beta1/test_data_labeling_service_client_v1beta1.py index dbc214ba0f26..48ffdc63c4a6 100644 --- a/datalabeling/tests/unit/gapic/v1beta1/test_data_labeling_service_client_v1beta1.py +++ b/datalabeling/tests/unit/gapic/v1beta1/test_data_labeling_service_client_v1beta1.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright 2019 Google LLC +# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -35,7 +35,6 @@ ) from google.longrunning import operations_pb2 as longrunning_operations_pb2 from google.protobuf import empty_pb2 -from google.protobuf import field_mask_pb2 class MultiCallableStub(object): @@ -337,7 +336,9 @@ def test_export_data(self): # Setup Request name = client.dataset_path("[PROJECT]", "[DATASET]") - annotated_dataset = "annotatedDataset-1407812655" + annotated_dataset = client.annotated_dataset_path( + "[PROJECT]", "[DATASET]", "[ANNOTATED_DATASET]" + ) output_config = {} response = client.export_data(name, annotated_dataset, output_config) @@ -368,7 +369,9 @@ def test_export_data_exception(self): # Setup Request name = client.dataset_path("[PROJECT]", "[DATASET]") - annotated_dataset = "annotatedDataset-1407812655" + annotated_dataset = client.annotated_dataset_path( + "[PROJECT]", "[DATASET]", "[ANNOTATED_DATASET]" + ) output_config = {} response = client.export_data(name, annotated_dataset, output_config) @@ -565,6 +568,43 @@ def test_list_annotated_datasets_exception(self): with pytest.raises(CustomException): list(paged_list_response) + def test_delete_annotated_dataset(self): + channel = ChannelStub() + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datalabeling_v1beta1.DataLabelingServiceClient() + + # Setup Request + name = client.annotated_dataset_path( + "[PROJECT]", "[DATASET]", "[ANNOTATED_DATASET]" + ) + + client.delete_annotated_dataset(name) + + assert len(channel.requests) == 1 + expected_request = data_labeling_service_pb2.DeleteAnnotatedDatasetRequest( + name=name + ) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_delete_annotated_dataset_exception(self): + # Mock the API response + 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 = datalabeling_v1beta1.DataLabelingServiceClient() + + # Setup request + name = client.annotated_dataset_path( + "[PROJECT]", "[DATASET]", "[ANNOTATED_DATASET]" + ) + + with pytest.raises(CustomException): + client.delete_annotated_dataset(name) + def test_label_image(self): # Setup Expected Response name = "name3373707" @@ -1287,10 +1327,9 @@ def test_search_evaluations(self): client = datalabeling_v1beta1.DataLabelingServiceClient() # Setup Request - parent = client.project_path("[PROJECT]") - filter_ = "filter-1274492040" + parent = client.evaluation_path("[PROJECT]", "[DATASET]", "[EVALUATION]") - paged_list_response = client.search_evaluations(parent, filter_) + paged_list_response = client.search_evaluations(parent) resources = list(paged_list_response) assert len(resources) == 1 @@ -1298,7 +1337,7 @@ def test_search_evaluations(self): assert len(channel.requests) == 1 expected_request = data_labeling_service_pb2.SearchEvaluationsRequest( - parent=parent, filter=filter_ + parent=parent ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -1311,10 +1350,9 @@ def test_search_evaluations_exception(self): client = datalabeling_v1beta1.DataLabelingServiceClient() # Setup request - parent = client.project_path("[PROJECT]") - filter_ = "filter-1274492040" + parent = client.evaluation_path("[PROJECT]", "[DATASET]", "[EVALUATION]") - paged_list_response = client.search_evaluations(parent, filter_) + paged_list_response = client.search_evaluations(parent) with pytest.raises(CustomException): list(paged_list_response) @@ -1449,14 +1487,13 @@ def test_update_evaluation_job(self): # Setup Request evaluation_job = {} - update_mask = {} - response = client.update_evaluation_job(evaluation_job, update_mask) + response = client.update_evaluation_job(evaluation_job) assert expected_response == response assert len(channel.requests) == 1 expected_request = data_labeling_service_pb2.UpdateEvaluationJobRequest( - evaluation_job=evaluation_job, update_mask=update_mask + evaluation_job=evaluation_job ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -1471,10 +1508,9 @@ def test_update_evaluation_job_exception(self): # Setup request evaluation_job = {} - update_mask = {} with pytest.raises(CustomException): - client.update_evaluation_job(evaluation_job, update_mask) + client.update_evaluation_job(evaluation_job) def test_get_evaluation_job(self): # Setup Expected Response @@ -1647,9 +1683,8 @@ def test_list_evaluation_jobs(self): # Setup Request parent = client.project_path("[PROJECT]") - filter_ = "filter-1274492040" - paged_list_response = client.list_evaluation_jobs(parent, filter_) + paged_list_response = client.list_evaluation_jobs(parent) resources = list(paged_list_response) assert len(resources) == 1 @@ -1657,7 +1692,7 @@ def test_list_evaluation_jobs(self): assert len(channel.requests) == 1 expected_request = data_labeling_service_pb2.ListEvaluationJobsRequest( - parent=parent, filter=filter_ + parent=parent ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -1671,33 +1706,7 @@ def test_list_evaluation_jobs_exception(self): # Setup request parent = client.project_path("[PROJECT]") - filter_ = "filter-1274492040" - paged_list_response = client.list_evaluation_jobs(parent, filter_) + paged_list_response = client.list_evaluation_jobs(parent) with pytest.raises(CustomException): list(paged_list_response) - - def test_delete_annotated_dataset(self): - channel = ChannelStub() - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datalabeling_v1beta1.DataLabelingServiceClient() - - client.delete_annotated_dataset() - - assert len(channel.requests) == 1 - expected_request = data_labeling_service_pb2.DeleteAnnotatedDatasetRequest() - actual_request = channel.requests[0][1] - assert expected_request == actual_request - - def test_delete_annotated_dataset_exception(self): - # Mock the API response - 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 = datalabeling_v1beta1.DataLabelingServiceClient() - - with pytest.raises(CustomException): - client.delete_annotated_dataset()