From 5e18259a5c76e3b39a90efc1ebc17c5b25ab1b0b Mon Sep 17 00:00:00 2001 From: brandon Date: Fri, 21 Feb 2025 15:14:08 -0800 Subject: [PATCH 1/4] unclear text responses have a null text value --- generated/.openapi-generator/FILES | 8 + generated/README.md | 4 + generated/docs/ActionsApi.md | 1 + generated/docs/PayloadTemplate.md | 12 + generated/docs/PayloadTemplateRequest.md | 12 + generated/docs/TextModeConfiguration.md | 12 + generated/docs/TextRecognitionResult.md | 2 +- generated/docs/WebhookAction.md | 1 + generated/docs/WebhookActionRequest.md | 1 + .../model/detector_creation_input_request.py | 2 + .../model/label_value_request.py | 3 - .../model/payload_template.py | 274 +++++++++++++++++ .../model/payload_template_request.py | 278 ++++++++++++++++++ .../model/text_mode_configuration.py | 273 +++++++++++++++++ .../model/text_recognition_result.py | 9 +- .../model/webhook_action.py | 22 ++ .../model/webhook_action_request.py | 22 ++ .../models/__init__.py | 3 + generated/model.py | 18 +- generated/test/test_payload_template.py | 35 +++ .../test/test_payload_template_request.py | 35 +++ .../test/test_text_mode_configuration.py | 35 +++ spec/public-api.yaml | 34 ++- 23 files changed, 1084 insertions(+), 12 deletions(-) create mode 100644 generated/docs/PayloadTemplate.md create mode 100644 generated/docs/PayloadTemplateRequest.md create mode 100644 generated/docs/TextModeConfiguration.md create mode 100644 generated/groundlight_openapi_client/model/payload_template.py create mode 100644 generated/groundlight_openapi_client/model/payload_template_request.py create mode 100644 generated/groundlight_openapi_client/model/text_mode_configuration.py create mode 100644 generated/test/test_payload_template.py create mode 100644 generated/test/test_payload_template_request.py create mode 100644 generated/test/test_text_mode_configuration.py diff --git a/generated/.openapi-generator/FILES b/generated/.openapi-generator/FILES index 5b99bab8..737a2ee0 100644 --- a/generated/.openapi-generator/FILES +++ b/generated/.openapi-generator/FILES @@ -42,6 +42,8 @@ docs/PaginatedDetectorList.md docs/PaginatedImageQueryList.md docs/PaginatedRuleList.md docs/PatchedDetectorRequest.md +docs/PayloadTemplate.md +docs/PayloadTemplateRequest.md docs/ROI.md docs/ROIRequest.md docs/ResultTypeEnum.md @@ -50,6 +52,7 @@ docs/RuleRequest.md docs/SnoozeTimeUnitEnum.md docs/SourceEnum.md docs/StatusEnum.md +docs/TextModeConfiguration.md docs/TextRecognitionResult.md docs/UserApi.md docs/VerbEnum.md @@ -106,6 +109,8 @@ groundlight_openapi_client/model/paginated_detector_list.py groundlight_openapi_client/model/paginated_image_query_list.py groundlight_openapi_client/model/paginated_rule_list.py groundlight_openapi_client/model/patched_detector_request.py +groundlight_openapi_client/model/payload_template.py +groundlight_openapi_client/model/payload_template_request.py groundlight_openapi_client/model/result_type_enum.py groundlight_openapi_client/model/roi.py groundlight_openapi_client/model/roi_request.py @@ -114,6 +119,7 @@ groundlight_openapi_client/model/rule_request.py groundlight_openapi_client/model/snooze_time_unit_enum.py groundlight_openapi_client/model/source_enum.py groundlight_openapi_client/model/status_enum.py +groundlight_openapi_client/model/text_mode_configuration.py groundlight_openapi_client/model/text_recognition_result.py groundlight_openapi_client/model/verb_enum.py groundlight_openapi_client/model/webhook_action.py @@ -126,4 +132,6 @@ setup.cfg setup.py test-requirements.txt test/__init__.py +test/test_payload_template.py +test/test_payload_template_request.py tox.ini diff --git a/generated/README.md b/generated/README.md index accfe08f..32c53279 100644 --- a/generated/README.md +++ b/generated/README.md @@ -94,6 +94,7 @@ rule_request = RuleRequest( WebhookActionRequest( url="url_example", include_image=True, + payload_template=None, ), ], ) # RuleRequest | @@ -171,6 +172,8 @@ Class | Method | HTTP request | Description - [PaginatedImageQueryList](docs/PaginatedImageQueryList.md) - [PaginatedRuleList](docs/PaginatedRuleList.md) - [PatchedDetectorRequest](docs/PatchedDetectorRequest.md) + - [PayloadTemplate](docs/PayloadTemplate.md) + - [PayloadTemplateRequest](docs/PayloadTemplateRequest.md) - [ROI](docs/ROI.md) - [ROIRequest](docs/ROIRequest.md) - [ResultTypeEnum](docs/ResultTypeEnum.md) @@ -179,6 +182,7 @@ Class | Method | HTTP request | Description - [SnoozeTimeUnitEnum](docs/SnoozeTimeUnitEnum.md) - [SourceEnum](docs/SourceEnum.md) - [StatusEnum](docs/StatusEnum.md) + - [TextModeConfiguration](docs/TextModeConfiguration.md) - [TextRecognitionResult](docs/TextRecognitionResult.md) - [VerbEnum](docs/VerbEnum.md) - [WebhookAction](docs/WebhookAction.md) diff --git a/generated/docs/ActionsApi.md b/generated/docs/ActionsApi.md index 62acb205..9bf52c09 100644 --- a/generated/docs/ActionsApi.md +++ b/generated/docs/ActionsApi.md @@ -69,6 +69,7 @@ with groundlight_openapi_client.ApiClient(configuration) as api_client: WebhookActionRequest( url="url_example", include_image=True, + payload_template=None, ), ], ) # RuleRequest | diff --git a/generated/docs/PayloadTemplate.md b/generated/docs/PayloadTemplate.md new file mode 100644 index 00000000..a2c716c0 --- /dev/null +++ b/generated/docs/PayloadTemplate.md @@ -0,0 +1,12 @@ +# PayloadTemplate + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**template** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/generated/docs/PayloadTemplateRequest.md b/generated/docs/PayloadTemplateRequest.md new file mode 100644 index 00000000..ff584274 --- /dev/null +++ b/generated/docs/PayloadTemplateRequest.md @@ -0,0 +1,12 @@ +# PayloadTemplateRequest + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**template** | **str** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/generated/docs/TextModeConfiguration.md b/generated/docs/TextModeConfiguration.md new file mode 100644 index 00000000..01bcfdf1 --- /dev/null +++ b/generated/docs/TextModeConfiguration.md @@ -0,0 +1,12 @@ +# TextModeConfiguration + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value_max_length** | **int** | | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/generated/docs/TextRecognitionResult.md b/generated/docs/TextRecognitionResult.md index d50b80df..6258a200 100644 --- a/generated/docs/TextRecognitionResult.md +++ b/generated/docs/TextRecognitionResult.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**text** | **str** | | +**text** | **str, none_type** | | **truncated** | **bool** | | **confidence** | **float, none_type** | | [optional] **source** | **str** | | [optional] diff --git a/generated/docs/WebhookAction.md b/generated/docs/WebhookAction.md index 639f1f7a..a1f6cf2b 100644 --- a/generated/docs/WebhookAction.md +++ b/generated/docs/WebhookAction.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **url** | **str** | | **include_image** | **bool** | | [optional] +**payload_template** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/generated/docs/WebhookActionRequest.md b/generated/docs/WebhookActionRequest.md index 411d192d..e3b1c59e 100644 --- a/generated/docs/WebhookActionRequest.md +++ b/generated/docs/WebhookActionRequest.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **url** | **str** | | **include_image** | **bool** | | [optional] +**payload_template** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/generated/groundlight_openapi_client/model/detector_creation_input_request.py b/generated/groundlight_openapi_client/model/detector_creation_input_request.py index 8ac281c7..ee4d485a 100644 --- a/generated/groundlight_openapi_client/model/detector_creation_input_request.py +++ b/generated/groundlight_openapi_client/model/detector_creation_input_request.py @@ -33,10 +33,12 @@ def lazy_import(): from groundlight_openapi_client.model.count_mode_configuration import CountModeConfiguration from groundlight_openapi_client.model.mode_enum import ModeEnum from groundlight_openapi_client.model.multi_class_mode_configuration import MultiClassModeConfiguration + from groundlight_openapi_client.model.text_mode_configuration import TextModeConfiguration globals()["CountModeConfiguration"] = CountModeConfiguration globals()["ModeEnum"] = ModeEnum globals()["MultiClassModeConfiguration"] = MultiClassModeConfiguration + globals()["TextModeConfiguration"] = TextModeConfiguration class DetectorCreationInputRequest(ModelNormal): diff --git a/generated/groundlight_openapi_client/model/label_value_request.py b/generated/groundlight_openapi_client/model/label_value_request.py index 362d870c..6a25d37f 100644 --- a/generated/groundlight_openapi_client/model/label_value_request.py +++ b/generated/groundlight_openapi_client/model/label_value_request.py @@ -62,9 +62,6 @@ class LabelValueRequest(ModelNormal): allowed_values = {} validations = { - ("label",): { - "min_length": 1, - }, ("image_query_id",): { "min_length": 1, }, diff --git a/generated/groundlight_openapi_client/model/payload_template.py b/generated/groundlight_openapi_client/model/payload_template.py new file mode 100644 index 00000000..2cf74e03 --- /dev/null +++ b/generated/groundlight_openapi_client/model/payload_template.py @@ -0,0 +1,274 @@ +""" + Groundlight API + + Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 + + The version of the OpenAPI document: 0.18.2 + Contact: support@groundlight.ai + Generated by: https://openapi-generator.tech +""" + +import re # noqa: F401 +import sys # noqa: F401 + +from groundlight_openapi_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel, +) +from groundlight_openapi_client.exceptions import ApiAttributeError + + +class PayloadTemplate(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = {} + + validations = {} + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + none_type, + ) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + "template": (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + attribute_map = { + "template": "template", # noqa: E501 + } + + read_only_vars = {} + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, template, *args, **kwargs): # noqa: E501 + """PayloadTemplate - a model defined in OpenAPI + + Args: + template (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop("_check_type", True) + _spec_property_naming = kwargs.pop("_spec_property_naming", False) + _path_to_item = kwargs.pop("_path_to_item", ()) + _configuration = kwargs.pop("_configuration", None) + _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." + % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template = template + for var_name, var_value in kwargs.items(): + if ( + var_name not in self.attribute_map + and self._configuration is not None + and self._configuration.discard_unknown_keys + and self.additional_properties_type is None + ): + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + "_data_store", + "_check_type", + "_spec_property_naming", + "_path_to_item", + "_configuration", + "_visited_composed_classes", + ]) + + @convert_js_args_to_python_args + def __init__(self, template, *args, **kwargs): # noqa: E501 + """PayloadTemplate - a model defined in OpenAPI + + Args: + template (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop("_check_type", True) + _spec_property_naming = kwargs.pop("_spec_property_naming", False) + _path_to_item = kwargs.pop("_path_to_item", ()) + _configuration = kwargs.pop("_configuration", None) + _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." + % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template = template + for var_name, var_value in kwargs.items(): + if ( + var_name not in self.attribute_map + and self._configuration is not None + and self._configuration.discard_unknown_keys + and self.additional_properties_type is None + ): + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError( + f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + "class with read only attributes." + ) diff --git a/generated/groundlight_openapi_client/model/payload_template_request.py b/generated/groundlight_openapi_client/model/payload_template_request.py new file mode 100644 index 00000000..7e34645e --- /dev/null +++ b/generated/groundlight_openapi_client/model/payload_template_request.py @@ -0,0 +1,278 @@ +""" + Groundlight API + + Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 + + The version of the OpenAPI document: 0.18.2 + Contact: support@groundlight.ai + Generated by: https://openapi-generator.tech +""" + +import re # noqa: F401 +import sys # noqa: F401 + +from groundlight_openapi_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel, +) +from groundlight_openapi_client.exceptions import ApiAttributeError + + +class PayloadTemplateRequest(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = {} + + validations = { + ("template",): { + "min_length": 1, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + none_type, + ) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + "template": (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + attribute_map = { + "template": "template", # noqa: E501 + } + + read_only_vars = {} + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, template, *args, **kwargs): # noqa: E501 + """PayloadTemplateRequest - a model defined in OpenAPI + + Args: + template (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop("_check_type", True) + _spec_property_naming = kwargs.pop("_spec_property_naming", False) + _path_to_item = kwargs.pop("_path_to_item", ()) + _configuration = kwargs.pop("_configuration", None) + _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." + % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template = template + for var_name, var_value in kwargs.items(): + if ( + var_name not in self.attribute_map + and self._configuration is not None + and self._configuration.discard_unknown_keys + and self.additional_properties_type is None + ): + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + "_data_store", + "_check_type", + "_spec_property_naming", + "_path_to_item", + "_configuration", + "_visited_composed_classes", + ]) + + @convert_js_args_to_python_args + def __init__(self, template, *args, **kwargs): # noqa: E501 + """PayloadTemplateRequest - a model defined in OpenAPI + + Args: + template (str): + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop("_check_type", True) + _spec_property_naming = kwargs.pop("_spec_property_naming", False) + _path_to_item = kwargs.pop("_path_to_item", ()) + _configuration = kwargs.pop("_configuration", None) + _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." + % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.template = template + for var_name, var_value in kwargs.items(): + if ( + var_name not in self.attribute_map + and self._configuration is not None + and self._configuration.discard_unknown_keys + and self.additional_properties_type is None + ): + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError( + f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + "class with read only attributes." + ) diff --git a/generated/groundlight_openapi_client/model/text_mode_configuration.py b/generated/groundlight_openapi_client/model/text_mode_configuration.py new file mode 100644 index 00000000..ee4c4e73 --- /dev/null +++ b/generated/groundlight_openapi_client/model/text_mode_configuration.py @@ -0,0 +1,273 @@ +""" + Groundlight API + + Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 + + The version of the OpenAPI document: 0.18.2 + Contact: support@groundlight.ai + Generated by: https://openapi-generator.tech +""" + +import re # noqa: F401 +import sys # noqa: F401 + +from groundlight_openapi_client.model_utils import ( # noqa: F401 + ApiTypeError, + ModelComposed, + ModelNormal, + ModelSimple, + cached_property, + change_keys_js_to_python, + convert_js_args_to_python_args, + date, + datetime, + file_type, + none_type, + validate_get_composed_info, + OpenApiModel, +) +from groundlight_openapi_client.exceptions import ApiAttributeError + + +class TextModeConfiguration(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = {} + + validations = { + ("value_max_length",): { + "inclusive_maximum": 250, + "inclusive_minimum": 1, + }, + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + return ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + none_type, + ) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + return { + "value_max_length": (int,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + attribute_map = { + "value_max_length": "value_max_length", # noqa: E501 + } + + read_only_vars = {} + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 + """TextModeConfiguration - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + value_max_length (int): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop("_check_type", True) + _spec_property_naming = kwargs.pop("_spec_property_naming", False) + _path_to_item = kwargs.pop("_path_to_item", ()) + _configuration = kwargs.pop("_configuration", None) + _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." + % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if ( + var_name not in self.attribute_map + and self._configuration is not None + and self._configuration.discard_unknown_keys + and self.additional_properties_type is None + ): + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + "_data_store", + "_check_type", + "_spec_property_naming", + "_path_to_item", + "_configuration", + "_visited_composed_classes", + ]) + + @convert_js_args_to_python_args + def __init__(self, *args, **kwargs): # noqa: E501 + """TextModeConfiguration - a model defined in OpenAPI + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + value_max_length (int): [optional] # noqa: E501 + """ + + _check_type = kwargs.pop("_check_type", True) + _spec_property_naming = kwargs.pop("_spec_property_naming", False) + _path_to_item = kwargs.pop("_path_to_item", ()) + _configuration = kwargs.pop("_configuration", None) + _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) + + if args: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." + % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + for var_name, var_value in kwargs.items(): + if ( + var_name not in self.attribute_map + and self._configuration is not None + and self._configuration.discard_unknown_keys + and self.additional_properties_type is None + ): + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError( + f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + "class with read only attributes." + ) diff --git a/generated/groundlight_openapi_client/model/text_recognition_result.py b/generated/groundlight_openapi_client/model/text_recognition_result.py index ca44ff65..cddca732 100644 --- a/generated/groundlight_openapi_client/model/text_recognition_result.py +++ b/generated/groundlight_openapi_client/model/text_recognition_result.py @@ -101,7 +101,10 @@ def openapi_types(): and the value is attribute type. """ return { - "text": (str,), # noqa: E501 + "text": ( + str, + none_type, + ), # noqa: E501 "truncated": (bool,), # noqa: E501 "confidence": ( float, @@ -131,7 +134,7 @@ def _from_openapi_data(cls, text, truncated, *args, **kwargs): # noqa: E501 """TextRecognitionResult - a model defined in OpenAPI Args: - text (str): + text (str, none_type): truncated (bool): Keyword Args: @@ -223,7 +226,7 @@ def __init__(self, text, truncated, *args, **kwargs): # noqa: E501 """TextRecognitionResult - a model defined in OpenAPI Args: - text (str): + text (str, none_type): truncated (bool): Keyword Args: diff --git a/generated/groundlight_openapi_client/model/webhook_action.py b/generated/groundlight_openapi_client/model/webhook_action.py index 826b3312..d272aad8 100644 --- a/generated/groundlight_openapi_client/model/webhook_action.py +++ b/generated/groundlight_openapi_client/model/webhook_action.py @@ -29,6 +29,12 @@ from groundlight_openapi_client.exceptions import ApiAttributeError +def lazy_import(): + from groundlight_openapi_client.model.payload_template import PayloadTemplate + + globals()["PayloadTemplate"] = PayloadTemplate + + class WebhookAction(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -67,6 +73,7 @@ def additional_properties_type(): This must be a method because a model may have properties that are of type self, this must run after the class is loaded """ + lazy_import() return ( bool, date, @@ -91,9 +98,21 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() return { "url": (str,), # noqa: E501 "include_image": (bool,), # noqa: E501 + "payload_template": ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + none_type, + ), # noqa: E501 } @cached_property @@ -103,6 +122,7 @@ def discriminator(): attribute_map = { "url": "url", # noqa: E501 "include_image": "include_image", # noqa: E501 + "payload_template": "payload_template", # noqa: E501 } read_only_vars = {} @@ -149,6 +169,7 @@ def _from_openapi_data(cls, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 + payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) @@ -238,6 +259,7 @@ def __init__(self, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 + payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) diff --git a/generated/groundlight_openapi_client/model/webhook_action_request.py b/generated/groundlight_openapi_client/model/webhook_action_request.py index 9990e3e0..053d1a77 100644 --- a/generated/groundlight_openapi_client/model/webhook_action_request.py +++ b/generated/groundlight_openapi_client/model/webhook_action_request.py @@ -29,6 +29,12 @@ from groundlight_openapi_client.exceptions import ApiAttributeError +def lazy_import(): + from groundlight_openapi_client.model.payload_template_request import PayloadTemplateRequest + + globals()["PayloadTemplateRequest"] = PayloadTemplateRequest + + class WebhookActionRequest(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -68,6 +74,7 @@ def additional_properties_type(): This must be a method because a model may have properties that are of type self, this must run after the class is loaded """ + lazy_import() return ( bool, date, @@ -92,9 +99,21 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ + lazy_import() return { "url": (str,), # noqa: E501 "include_image": (bool,), # noqa: E501 + "payload_template": ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + none_type, + ), # noqa: E501 } @cached_property @@ -104,6 +123,7 @@ def discriminator(): attribute_map = { "url": "url", # noqa: E501 "include_image": "include_image", # noqa: E501 + "payload_template": "payload_template", # noqa: E501 } read_only_vars = {} @@ -150,6 +170,7 @@ def _from_openapi_data(cls, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 + payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) @@ -239,6 +260,7 @@ def __init__(self, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 + payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) diff --git a/generated/groundlight_openapi_client/models/__init__.py b/generated/groundlight_openapi_client/models/__init__.py index 3528a1aa..dc3f8705 100644 --- a/generated/groundlight_openapi_client/models/__init__.py +++ b/generated/groundlight_openapi_client/models/__init__.py @@ -43,6 +43,8 @@ from groundlight_openapi_client.model.paginated_image_query_list import PaginatedImageQueryList from groundlight_openapi_client.model.paginated_rule_list import PaginatedRuleList from groundlight_openapi_client.model.patched_detector_request import PatchedDetectorRequest +from groundlight_openapi_client.model.payload_template import PayloadTemplate +from groundlight_openapi_client.model.payload_template_request import PayloadTemplateRequest from groundlight_openapi_client.model.roi import ROI from groundlight_openapi_client.model.roi_request import ROIRequest from groundlight_openapi_client.model.result_type_enum import ResultTypeEnum @@ -51,6 +53,7 @@ from groundlight_openapi_client.model.snooze_time_unit_enum import SnoozeTimeUnitEnum from groundlight_openapi_client.model.source_enum import SourceEnum from groundlight_openapi_client.model.status_enum import StatusEnum +from groundlight_openapi_client.model.text_mode_configuration import TextModeConfiguration from groundlight_openapi_client.model.text_recognition_result import TextRecognitionResult from groundlight_openapi_client.model.verb_enum import VerbEnum from groundlight_openapi_client.model.webhook_action import WebhookAction diff --git a/generated/model.py b/generated/model.py index 2a6062f9..a624049c 100644 --- a/generated/model.py +++ b/generated/model.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: public-api.yaml -# timestamp: 2025-02-08T00:46:39+00:00 +# timestamp: 2025-02-21T23:12:56+00:00 from __future__ import annotations @@ -109,6 +109,14 @@ class NoteRequest(BaseModel): image: Optional[bytes] = None +class PayloadTemplate(BaseModel): + template: str + + +class PayloadTemplateRequest(BaseModel): + template: constr(min_length=1) + + class ROI(BaseModel): """ Mixin for serializers to handle data in the StrictBaseModel format @@ -198,11 +206,13 @@ class VerbEnum(str, Enum): class WebhookAction(BaseModel): url: AnyUrl include_image: Optional[bool] = None + payload_template: Optional[PayloadTemplate] = None class WebhookActionRequest(BaseModel): url: AnyUrl include_image: Optional[bool] = None + payload_template: Optional[PayloadTemplateRequest] = None class Source(str, Enum): @@ -241,7 +251,7 @@ class MultiClassificationResult(BaseModel): class TextRecognitionResult(BaseModel): confidence: Optional[confloat(ge=0.0, le=1.0)] = None source: Optional[Source] = None - text: str + text: Optional[str] = Field(...) truncated: bool @@ -256,7 +266,7 @@ class MultiClassModeConfiguration(BaseModel): class TextModeConfiguration(BaseModel): - pass + value_max_length: Optional[conint(ge=1, le=250)] = None class ChannelEnum(str, Enum): @@ -411,7 +421,7 @@ class LabelValue(BaseModel): class LabelValueRequest(BaseModel): - label: constr(min_length=1) + label: str image_query_id: constr(min_length=1) rois: Optional[List[ROIRequest]] = None diff --git a/generated/test/test_payload_template.py b/generated/test/test_payload_template.py new file mode 100644 index 00000000..7d4af2fd --- /dev/null +++ b/generated/test/test_payload_template.py @@ -0,0 +1,35 @@ +""" + Groundlight API + + Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 + + The version of the OpenAPI document: 0.18.2 + Contact: support@groundlight.ai + Generated by: https://openapi-generator.tech +""" + +import sys +import unittest + +import groundlight_openapi_client +from groundlight_openapi_client.model.payload_template import PayloadTemplate + + +class TestPayloadTemplate(unittest.TestCase): + """PayloadTemplate unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testPayloadTemplate(self): + """Test PayloadTemplate""" + # FIXME: construct object with mandatory attributes with example values + # model = PayloadTemplate() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/generated/test/test_payload_template_request.py b/generated/test/test_payload_template_request.py new file mode 100644 index 00000000..312fc15c --- /dev/null +++ b/generated/test/test_payload_template_request.py @@ -0,0 +1,35 @@ +""" + Groundlight API + + Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 + + The version of the OpenAPI document: 0.18.2 + Contact: support@groundlight.ai + Generated by: https://openapi-generator.tech +""" + +import sys +import unittest + +import groundlight_openapi_client +from groundlight_openapi_client.model.payload_template_request import PayloadTemplateRequest + + +class TestPayloadTemplateRequest(unittest.TestCase): + """PayloadTemplateRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testPayloadTemplateRequest(self): + """Test PayloadTemplateRequest""" + # FIXME: construct object with mandatory attributes with example values + # model = PayloadTemplateRequest() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/generated/test/test_text_mode_configuration.py b/generated/test/test_text_mode_configuration.py new file mode 100644 index 00000000..81ba287d --- /dev/null +++ b/generated/test/test_text_mode_configuration.py @@ -0,0 +1,35 @@ +""" + Groundlight API + + Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 + + The version of the OpenAPI document: 0.18.2 + Contact: support@groundlight.ai + Generated by: https://openapi-generator.tech +""" + +import sys +import unittest + +import groundlight_openapi_client +from groundlight_openapi_client.model.text_mode_configuration import TextModeConfiguration + + +class TestTextModeConfiguration(unittest.TestCase): + """TextModeConfiguration unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTextModeConfiguration(self): + """Test TextModeConfiguration""" + # FIXME: construct object with mandatory attributes with example values + # model = TextModeConfiguration() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/spec/public-api.yaml b/spec/public-api.yaml index 78f51142..14687cf5 100644 --- a/spec/public-api.yaml +++ b/spec/public-api.yaml @@ -1077,7 +1077,6 @@ components: label: type: string writeOnly: true - minLength: 1 image_query_id: type: string writeOnly: true @@ -1238,6 +1237,21 @@ components: * `STANDARD` - STANDARD * `NO_HUMAN_LABELING` - NO_HUMAN_LABELING x-internal: true + PayloadTemplate: + type: object + properties: + template: + type: string + required: + - template + PayloadTemplateRequest: + type: object + properties: + template: + type: string + minLength: 1 + required: + - template ROI: type: object description: Mixin for serializers to handle data in the StrictBaseModel format @@ -1422,6 +1436,10 @@ components: maxLength: 200 include_image: type: boolean + payload_template: + allOf: + - $ref: '#/components/schemas/PayloadTemplate' + nullable: true required: - url WebhookActionRequest: @@ -1434,6 +1452,10 @@ components: maxLength: 200 include_image: type: boolean + payload_template: + allOf: + - $ref: '#/components/schemas/PayloadTemplateRequest' + nullable: true required: - url BinaryClassificationResult: @@ -1505,6 +1527,7 @@ components: - ALGORITHM label: type: string + nullable: false required: - label TextRecognitionResult: @@ -1526,6 +1549,7 @@ components: - ALGORITHM text: type: string + nullable: true truncated: type: boolean required: @@ -1541,6 +1565,7 @@ components: nullable: false class_name: type: string + nullable: false required: - class_name MultiClassModeConfiguration: @@ -1550,6 +1575,7 @@ components: type: array items: type: string + nullable: false num_classes: type: integer nullable: false @@ -1557,6 +1583,12 @@ components: - class_names TextModeConfiguration: type: object + properties: + value_max_length: + type: integer + minimum: 1 + maximum: 250 + nullable: false ChannelEnum: type: string enum: From 9d6f9549a6ba9e7b69d57890f6e9c2c002b9e013 Mon Sep 17 00:00:00 2001 From: brandon Date: Fri, 21 Feb 2025 15:16:43 -0800 Subject: [PATCH 2/4] bump pyproject version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 39f82da0..5f072ae2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ packages = [ {include = "**/*.py", from = "src"}, ] readme = "README.md" -version = "0.22.0" +version = "0.22.1" [tool.poetry.dependencies] # For certifi, use ">=" instead of "^" since it upgrades its "major version" every year, not really following semver From b31a91b4161d64460d4219396d78b3994b216eda Mon Sep 17 00:00:00 2001 From: brandon Date: Fri, 21 Feb 2025 16:15:00 -0800 Subject: [PATCH 3/4] Save the webhook payloads for their own PR --- generated/.openapi-generator/FILES | 6 - generated/README.md | 3 - generated/docs/ActionsApi.md | 1 - generated/docs/PayloadTemplate.md | 12 - generated/docs/PayloadTemplateRequest.md | 12 - generated/docs/WebhookAction.md | 1 - generated/docs/WebhookActionRequest.md | 1 - .../model/payload_template.py | 274 ----------------- .../model/payload_template_request.py | 278 ------------------ .../model/webhook_action.py | 22 -- .../model/webhook_action_request.py | 22 -- .../models/__init__.py | 2 - generated/model.py | 12 +- spec/public-api.yaml | 23 -- 14 files changed, 1 insertion(+), 668 deletions(-) delete mode 100644 generated/docs/PayloadTemplate.md delete mode 100644 generated/docs/PayloadTemplateRequest.md delete mode 100644 generated/groundlight_openapi_client/model/payload_template.py delete mode 100644 generated/groundlight_openapi_client/model/payload_template_request.py diff --git a/generated/.openapi-generator/FILES b/generated/.openapi-generator/FILES index 737a2ee0..10087712 100644 --- a/generated/.openapi-generator/FILES +++ b/generated/.openapi-generator/FILES @@ -42,8 +42,6 @@ docs/PaginatedDetectorList.md docs/PaginatedImageQueryList.md docs/PaginatedRuleList.md docs/PatchedDetectorRequest.md -docs/PayloadTemplate.md -docs/PayloadTemplateRequest.md docs/ROI.md docs/ROIRequest.md docs/ResultTypeEnum.md @@ -109,8 +107,6 @@ groundlight_openapi_client/model/paginated_detector_list.py groundlight_openapi_client/model/paginated_image_query_list.py groundlight_openapi_client/model/paginated_rule_list.py groundlight_openapi_client/model/patched_detector_request.py -groundlight_openapi_client/model/payload_template.py -groundlight_openapi_client/model/payload_template_request.py groundlight_openapi_client/model/result_type_enum.py groundlight_openapi_client/model/roi.py groundlight_openapi_client/model/roi_request.py @@ -132,6 +128,4 @@ setup.cfg setup.py test-requirements.txt test/__init__.py -test/test_payload_template.py -test/test_payload_template_request.py tox.ini diff --git a/generated/README.md b/generated/README.md index 32c53279..62304432 100644 --- a/generated/README.md +++ b/generated/README.md @@ -94,7 +94,6 @@ rule_request = RuleRequest( WebhookActionRequest( url="url_example", include_image=True, - payload_template=None, ), ], ) # RuleRequest | @@ -172,8 +171,6 @@ Class | Method | HTTP request | Description - [PaginatedImageQueryList](docs/PaginatedImageQueryList.md) - [PaginatedRuleList](docs/PaginatedRuleList.md) - [PatchedDetectorRequest](docs/PatchedDetectorRequest.md) - - [PayloadTemplate](docs/PayloadTemplate.md) - - [PayloadTemplateRequest](docs/PayloadTemplateRequest.md) - [ROI](docs/ROI.md) - [ROIRequest](docs/ROIRequest.md) - [ResultTypeEnum](docs/ResultTypeEnum.md) diff --git a/generated/docs/ActionsApi.md b/generated/docs/ActionsApi.md index 9bf52c09..62acb205 100644 --- a/generated/docs/ActionsApi.md +++ b/generated/docs/ActionsApi.md @@ -69,7 +69,6 @@ with groundlight_openapi_client.ApiClient(configuration) as api_client: WebhookActionRequest( url="url_example", include_image=True, - payload_template=None, ), ], ) # RuleRequest | diff --git a/generated/docs/PayloadTemplate.md b/generated/docs/PayloadTemplate.md deleted file mode 100644 index a2c716c0..00000000 --- a/generated/docs/PayloadTemplate.md +++ /dev/null @@ -1,12 +0,0 @@ -# PayloadTemplate - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**template** | **str** | | -**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/generated/docs/PayloadTemplateRequest.md b/generated/docs/PayloadTemplateRequest.md deleted file mode 100644 index ff584274..00000000 --- a/generated/docs/PayloadTemplateRequest.md +++ /dev/null @@ -1,12 +0,0 @@ -# PayloadTemplateRequest - - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**template** | **str** | | -**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/generated/docs/WebhookAction.md b/generated/docs/WebhookAction.md index a1f6cf2b..639f1f7a 100644 --- a/generated/docs/WebhookAction.md +++ b/generated/docs/WebhookAction.md @@ -6,7 +6,6 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **url** | **str** | | **include_image** | **bool** | | [optional] -**payload_template** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/generated/docs/WebhookActionRequest.md b/generated/docs/WebhookActionRequest.md index e3b1c59e..411d192d 100644 --- a/generated/docs/WebhookActionRequest.md +++ b/generated/docs/WebhookActionRequest.md @@ -6,7 +6,6 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **url** | **str** | | **include_image** | **bool** | | [optional] -**payload_template** | **bool, date, datetime, dict, float, int, list, str, none_type** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/generated/groundlight_openapi_client/model/payload_template.py b/generated/groundlight_openapi_client/model/payload_template.py deleted file mode 100644 index 2cf74e03..00000000 --- a/generated/groundlight_openapi_client/model/payload_template.py +++ /dev/null @@ -1,274 +0,0 @@ -""" - Groundlight API - - Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 - - The version of the OpenAPI document: 0.18.2 - Contact: support@groundlight.ai - Generated by: https://openapi-generator.tech -""" - -import re # noqa: F401 -import sys # noqa: F401 - -from groundlight_openapi_client.model_utils import ( # noqa: F401 - ApiTypeError, - ModelComposed, - ModelNormal, - ModelSimple, - cached_property, - change_keys_js_to_python, - convert_js_args_to_python_args, - date, - datetime, - file_type, - none_type, - validate_get_composed_info, - OpenApiModel, -) -from groundlight_openapi_client.exceptions import ApiAttributeError - - -class PayloadTemplate(ModelNormal): - """NOTE: This class is auto generated by OpenAPI Generator. - Ref: https://openapi-generator.tech - - Do not edit the class manually. - - Attributes: - allowed_values (dict): The key is the tuple path to the attribute - and the for var_name this is (var_name,). The value is a dict - with a capitalized key describing the allowed value and an allowed - value. These dicts store the allowed enum values. - attribute_map (dict): The key is attribute name - and the value is json key in definition. - discriminator_value_class_map (dict): A dict to go from the discriminator - variable value to the discriminator class name. - validations (dict): The key is the tuple path to the attribute - and the for var_name this is (var_name,). The value is a dict - that stores validations for max_length, min_length, max_items, - min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, - inclusive_minimum, and regex. - additional_properties_type (tuple): A tuple of classes accepted - as additional properties values. - """ - - allowed_values = {} - - validations = {} - - @cached_property - def additional_properties_type(): - """ - This must be a method because a model may have properties that are - of type self, this must run after the class is loaded - """ - return ( - bool, - date, - datetime, - dict, - float, - int, - list, - str, - none_type, - ) # noqa: E501 - - _nullable = False - - @cached_property - def openapi_types(): - """ - This must be a method because a model may have properties that are - of type self, this must run after the class is loaded - - Returns - openapi_types (dict): The key is attribute name - and the value is attribute type. - """ - return { - "template": (str,), # noqa: E501 - } - - @cached_property - def discriminator(): - return None - - attribute_map = { - "template": "template", # noqa: E501 - } - - read_only_vars = {} - - _composed_schemas = {} - - @classmethod - @convert_js_args_to_python_args - def _from_openapi_data(cls, template, *args, **kwargs): # noqa: E501 - """PayloadTemplate - a model defined in OpenAPI - - Args: - template (str): - - Keyword Args: - _check_type (bool): if True, values for parameters in openapi_types - will be type checked and a TypeError will be - raised if the wrong type is input. - Defaults to True - _path_to_item (tuple/list): This is a list of keys or values to - drill down to the model in received_data - when deserializing a response - _spec_property_naming (bool): True if the variable names in the input data - are serialized names, as specified in the OpenAPI document. - False if the variable names in the input data - are pythonic names, e.g. snake case (default) - _configuration (Configuration): the instance to use when - deserializing a file_type parameter. - If passed, type conversion is attempted - If omitted no type conversion is done. - _visited_composed_classes (tuple): This stores a tuple of - classes that we have traveled through so that - if we see that class again we will not use its - discriminator again. - When traveling through a discriminator, the - composed schema that is - is traveled through is added to this set. - For example if Animal has a discriminator - petType and we pass in "Dog", and the class Dog - allOf includes Animal, we move through Animal - once using the discriminator, and pick Dog. - Then in Dog, we will make an instance of the - Animal class but this time we won't travel - through its discriminator because we passed in - _visited_composed_classes = (Animal,) - """ - - _check_type = kwargs.pop("_check_type", True) - _spec_property_naming = kwargs.pop("_spec_property_naming", False) - _path_to_item = kwargs.pop("_path_to_item", ()) - _configuration = kwargs.pop("_configuration", None) - _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) - - self = super(OpenApiModel, cls).__new__(cls) - - if args: - raise ApiTypeError( - "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." - % ( - args, - self.__class__.__name__, - ), - path_to_item=_path_to_item, - valid_classes=(self.__class__,), - ) - - self._data_store = {} - self._check_type = _check_type - self._spec_property_naming = _spec_property_naming - self._path_to_item = _path_to_item - self._configuration = _configuration - self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - - self.template = template - for var_name, var_value in kwargs.items(): - if ( - var_name not in self.attribute_map - and self._configuration is not None - and self._configuration.discard_unknown_keys - and self.additional_properties_type is None - ): - # discard variable. - continue - setattr(self, var_name, var_value) - return self - - required_properties = set([ - "_data_store", - "_check_type", - "_spec_property_naming", - "_path_to_item", - "_configuration", - "_visited_composed_classes", - ]) - - @convert_js_args_to_python_args - def __init__(self, template, *args, **kwargs): # noqa: E501 - """PayloadTemplate - a model defined in OpenAPI - - Args: - template (str): - - Keyword Args: - _check_type (bool): if True, values for parameters in openapi_types - will be type checked and a TypeError will be - raised if the wrong type is input. - Defaults to True - _path_to_item (tuple/list): This is a list of keys or values to - drill down to the model in received_data - when deserializing a response - _spec_property_naming (bool): True if the variable names in the input data - are serialized names, as specified in the OpenAPI document. - False if the variable names in the input data - are pythonic names, e.g. snake case (default) - _configuration (Configuration): the instance to use when - deserializing a file_type parameter. - If passed, type conversion is attempted - If omitted no type conversion is done. - _visited_composed_classes (tuple): This stores a tuple of - classes that we have traveled through so that - if we see that class again we will not use its - discriminator again. - When traveling through a discriminator, the - composed schema that is - is traveled through is added to this set. - For example if Animal has a discriminator - petType and we pass in "Dog", and the class Dog - allOf includes Animal, we move through Animal - once using the discriminator, and pick Dog. - Then in Dog, we will make an instance of the - Animal class but this time we won't travel - through its discriminator because we passed in - _visited_composed_classes = (Animal,) - """ - - _check_type = kwargs.pop("_check_type", True) - _spec_property_naming = kwargs.pop("_spec_property_naming", False) - _path_to_item = kwargs.pop("_path_to_item", ()) - _configuration = kwargs.pop("_configuration", None) - _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) - - if args: - raise ApiTypeError( - "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." - % ( - args, - self.__class__.__name__, - ), - path_to_item=_path_to_item, - valid_classes=(self.__class__,), - ) - - self._data_store = {} - self._check_type = _check_type - self._spec_property_naming = _spec_property_naming - self._path_to_item = _path_to_item - self._configuration = _configuration - self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - - self.template = template - for var_name, var_value in kwargs.items(): - if ( - var_name not in self.attribute_map - and self._configuration is not None - and self._configuration.discard_unknown_keys - and self.additional_properties_type is None - ): - # discard variable. - continue - setattr(self, var_name, var_value) - if var_name in self.read_only_vars: - raise ApiAttributeError( - f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " - "class with read only attributes." - ) diff --git a/generated/groundlight_openapi_client/model/payload_template_request.py b/generated/groundlight_openapi_client/model/payload_template_request.py deleted file mode 100644 index 7e34645e..00000000 --- a/generated/groundlight_openapi_client/model/payload_template_request.py +++ /dev/null @@ -1,278 +0,0 @@ -""" - Groundlight API - - Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 - - The version of the OpenAPI document: 0.18.2 - Contact: support@groundlight.ai - Generated by: https://openapi-generator.tech -""" - -import re # noqa: F401 -import sys # noqa: F401 - -from groundlight_openapi_client.model_utils import ( # noqa: F401 - ApiTypeError, - ModelComposed, - ModelNormal, - ModelSimple, - cached_property, - change_keys_js_to_python, - convert_js_args_to_python_args, - date, - datetime, - file_type, - none_type, - validate_get_composed_info, - OpenApiModel, -) -from groundlight_openapi_client.exceptions import ApiAttributeError - - -class PayloadTemplateRequest(ModelNormal): - """NOTE: This class is auto generated by OpenAPI Generator. - Ref: https://openapi-generator.tech - - Do not edit the class manually. - - Attributes: - allowed_values (dict): The key is the tuple path to the attribute - and the for var_name this is (var_name,). The value is a dict - with a capitalized key describing the allowed value and an allowed - value. These dicts store the allowed enum values. - attribute_map (dict): The key is attribute name - and the value is json key in definition. - discriminator_value_class_map (dict): A dict to go from the discriminator - variable value to the discriminator class name. - validations (dict): The key is the tuple path to the attribute - and the for var_name this is (var_name,). The value is a dict - that stores validations for max_length, min_length, max_items, - min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, - inclusive_minimum, and regex. - additional_properties_type (tuple): A tuple of classes accepted - as additional properties values. - """ - - allowed_values = {} - - validations = { - ("template",): { - "min_length": 1, - }, - } - - @cached_property - def additional_properties_type(): - """ - This must be a method because a model may have properties that are - of type self, this must run after the class is loaded - """ - return ( - bool, - date, - datetime, - dict, - float, - int, - list, - str, - none_type, - ) # noqa: E501 - - _nullable = False - - @cached_property - def openapi_types(): - """ - This must be a method because a model may have properties that are - of type self, this must run after the class is loaded - - Returns - openapi_types (dict): The key is attribute name - and the value is attribute type. - """ - return { - "template": (str,), # noqa: E501 - } - - @cached_property - def discriminator(): - return None - - attribute_map = { - "template": "template", # noqa: E501 - } - - read_only_vars = {} - - _composed_schemas = {} - - @classmethod - @convert_js_args_to_python_args - def _from_openapi_data(cls, template, *args, **kwargs): # noqa: E501 - """PayloadTemplateRequest - a model defined in OpenAPI - - Args: - template (str): - - Keyword Args: - _check_type (bool): if True, values for parameters in openapi_types - will be type checked and a TypeError will be - raised if the wrong type is input. - Defaults to True - _path_to_item (tuple/list): This is a list of keys or values to - drill down to the model in received_data - when deserializing a response - _spec_property_naming (bool): True if the variable names in the input data - are serialized names, as specified in the OpenAPI document. - False if the variable names in the input data - are pythonic names, e.g. snake case (default) - _configuration (Configuration): the instance to use when - deserializing a file_type parameter. - If passed, type conversion is attempted - If omitted no type conversion is done. - _visited_composed_classes (tuple): This stores a tuple of - classes that we have traveled through so that - if we see that class again we will not use its - discriminator again. - When traveling through a discriminator, the - composed schema that is - is traveled through is added to this set. - For example if Animal has a discriminator - petType and we pass in "Dog", and the class Dog - allOf includes Animal, we move through Animal - once using the discriminator, and pick Dog. - Then in Dog, we will make an instance of the - Animal class but this time we won't travel - through its discriminator because we passed in - _visited_composed_classes = (Animal,) - """ - - _check_type = kwargs.pop("_check_type", True) - _spec_property_naming = kwargs.pop("_spec_property_naming", False) - _path_to_item = kwargs.pop("_path_to_item", ()) - _configuration = kwargs.pop("_configuration", None) - _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) - - self = super(OpenApiModel, cls).__new__(cls) - - if args: - raise ApiTypeError( - "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." - % ( - args, - self.__class__.__name__, - ), - path_to_item=_path_to_item, - valid_classes=(self.__class__,), - ) - - self._data_store = {} - self._check_type = _check_type - self._spec_property_naming = _spec_property_naming - self._path_to_item = _path_to_item - self._configuration = _configuration - self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - - self.template = template - for var_name, var_value in kwargs.items(): - if ( - var_name not in self.attribute_map - and self._configuration is not None - and self._configuration.discard_unknown_keys - and self.additional_properties_type is None - ): - # discard variable. - continue - setattr(self, var_name, var_value) - return self - - required_properties = set([ - "_data_store", - "_check_type", - "_spec_property_naming", - "_path_to_item", - "_configuration", - "_visited_composed_classes", - ]) - - @convert_js_args_to_python_args - def __init__(self, template, *args, **kwargs): # noqa: E501 - """PayloadTemplateRequest - a model defined in OpenAPI - - Args: - template (str): - - Keyword Args: - _check_type (bool): if True, values for parameters in openapi_types - will be type checked and a TypeError will be - raised if the wrong type is input. - Defaults to True - _path_to_item (tuple/list): This is a list of keys or values to - drill down to the model in received_data - when deserializing a response - _spec_property_naming (bool): True if the variable names in the input data - are serialized names, as specified in the OpenAPI document. - False if the variable names in the input data - are pythonic names, e.g. snake case (default) - _configuration (Configuration): the instance to use when - deserializing a file_type parameter. - If passed, type conversion is attempted - If omitted no type conversion is done. - _visited_composed_classes (tuple): This stores a tuple of - classes that we have traveled through so that - if we see that class again we will not use its - discriminator again. - When traveling through a discriminator, the - composed schema that is - is traveled through is added to this set. - For example if Animal has a discriminator - petType and we pass in "Dog", and the class Dog - allOf includes Animal, we move through Animal - once using the discriminator, and pick Dog. - Then in Dog, we will make an instance of the - Animal class but this time we won't travel - through its discriminator because we passed in - _visited_composed_classes = (Animal,) - """ - - _check_type = kwargs.pop("_check_type", True) - _spec_property_naming = kwargs.pop("_spec_property_naming", False) - _path_to_item = kwargs.pop("_path_to_item", ()) - _configuration = kwargs.pop("_configuration", None) - _visited_composed_classes = kwargs.pop("_visited_composed_classes", ()) - - if args: - raise ApiTypeError( - "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." - % ( - args, - self.__class__.__name__, - ), - path_to_item=_path_to_item, - valid_classes=(self.__class__,), - ) - - self._data_store = {} - self._check_type = _check_type - self._spec_property_naming = _spec_property_naming - self._path_to_item = _path_to_item - self._configuration = _configuration - self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - - self.template = template - for var_name, var_value in kwargs.items(): - if ( - var_name not in self.attribute_map - and self._configuration is not None - and self._configuration.discard_unknown_keys - and self.additional_properties_type is None - ): - # discard variable. - continue - setattr(self, var_name, var_value) - if var_name in self.read_only_vars: - raise ApiAttributeError( - f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " - "class with read only attributes." - ) diff --git a/generated/groundlight_openapi_client/model/webhook_action.py b/generated/groundlight_openapi_client/model/webhook_action.py index d272aad8..826b3312 100644 --- a/generated/groundlight_openapi_client/model/webhook_action.py +++ b/generated/groundlight_openapi_client/model/webhook_action.py @@ -29,12 +29,6 @@ from groundlight_openapi_client.exceptions import ApiAttributeError -def lazy_import(): - from groundlight_openapi_client.model.payload_template import PayloadTemplate - - globals()["PayloadTemplate"] = PayloadTemplate - - class WebhookAction(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -73,7 +67,6 @@ def additional_properties_type(): This must be a method because a model may have properties that are of type self, this must run after the class is loaded """ - lazy_import() return ( bool, date, @@ -98,21 +91,9 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ - lazy_import() return { "url": (str,), # noqa: E501 "include_image": (bool,), # noqa: E501 - "payload_template": ( - bool, - date, - datetime, - dict, - float, - int, - list, - str, - none_type, - ), # noqa: E501 } @cached_property @@ -122,7 +103,6 @@ def discriminator(): attribute_map = { "url": "url", # noqa: E501 "include_image": "include_image", # noqa: E501 - "payload_template": "payload_template", # noqa: E501 } read_only_vars = {} @@ -169,7 +149,6 @@ def _from_openapi_data(cls, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 - payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) @@ -259,7 +238,6 @@ def __init__(self, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 - payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) diff --git a/generated/groundlight_openapi_client/model/webhook_action_request.py b/generated/groundlight_openapi_client/model/webhook_action_request.py index 053d1a77..9990e3e0 100644 --- a/generated/groundlight_openapi_client/model/webhook_action_request.py +++ b/generated/groundlight_openapi_client/model/webhook_action_request.py @@ -29,12 +29,6 @@ from groundlight_openapi_client.exceptions import ApiAttributeError -def lazy_import(): - from groundlight_openapi_client.model.payload_template_request import PayloadTemplateRequest - - globals()["PayloadTemplateRequest"] = PayloadTemplateRequest - - class WebhookActionRequest(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -74,7 +68,6 @@ def additional_properties_type(): This must be a method because a model may have properties that are of type self, this must run after the class is loaded """ - lazy_import() return ( bool, date, @@ -99,21 +92,9 @@ def openapi_types(): openapi_types (dict): The key is attribute name and the value is attribute type. """ - lazy_import() return { "url": (str,), # noqa: E501 "include_image": (bool,), # noqa: E501 - "payload_template": ( - bool, - date, - datetime, - dict, - float, - int, - list, - str, - none_type, - ), # noqa: E501 } @cached_property @@ -123,7 +104,6 @@ def discriminator(): attribute_map = { "url": "url", # noqa: E501 "include_image": "include_image", # noqa: E501 - "payload_template": "payload_template", # noqa: E501 } read_only_vars = {} @@ -170,7 +150,6 @@ def _from_openapi_data(cls, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 - payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) @@ -260,7 +239,6 @@ def __init__(self, url, *args, **kwargs): # noqa: E501 through its discriminator because we passed in _visited_composed_classes = (Animal,) include_image (bool): [optional] # noqa: E501 - payload_template (bool, date, datetime, dict, float, int, list, str, none_type): [optional] # noqa: E501 """ _check_type = kwargs.pop("_check_type", True) diff --git a/generated/groundlight_openapi_client/models/__init__.py b/generated/groundlight_openapi_client/models/__init__.py index dc3f8705..6a064903 100644 --- a/generated/groundlight_openapi_client/models/__init__.py +++ b/generated/groundlight_openapi_client/models/__init__.py @@ -43,8 +43,6 @@ from groundlight_openapi_client.model.paginated_image_query_list import PaginatedImageQueryList from groundlight_openapi_client.model.paginated_rule_list import PaginatedRuleList from groundlight_openapi_client.model.patched_detector_request import PatchedDetectorRequest -from groundlight_openapi_client.model.payload_template import PayloadTemplate -from groundlight_openapi_client.model.payload_template_request import PayloadTemplateRequest from groundlight_openapi_client.model.roi import ROI from groundlight_openapi_client.model.roi_request import ROIRequest from groundlight_openapi_client.model.result_type_enum import ResultTypeEnum diff --git a/generated/model.py b/generated/model.py index a624049c..e767d70b 100644 --- a/generated/model.py +++ b/generated/model.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: public-api.yaml -# timestamp: 2025-02-21T23:12:56+00:00 +# timestamp: 2025-02-22T00:13:41+00:00 from __future__ import annotations @@ -109,14 +109,6 @@ class NoteRequest(BaseModel): image: Optional[bytes] = None -class PayloadTemplate(BaseModel): - template: str - - -class PayloadTemplateRequest(BaseModel): - template: constr(min_length=1) - - class ROI(BaseModel): """ Mixin for serializers to handle data in the StrictBaseModel format @@ -206,13 +198,11 @@ class VerbEnum(str, Enum): class WebhookAction(BaseModel): url: AnyUrl include_image: Optional[bool] = None - payload_template: Optional[PayloadTemplate] = None class WebhookActionRequest(BaseModel): url: AnyUrl include_image: Optional[bool] = None - payload_template: Optional[PayloadTemplateRequest] = None class Source(str, Enum): diff --git a/spec/public-api.yaml b/spec/public-api.yaml index 14687cf5..9476a17c 100644 --- a/spec/public-api.yaml +++ b/spec/public-api.yaml @@ -1237,21 +1237,6 @@ components: * `STANDARD` - STANDARD * `NO_HUMAN_LABELING` - NO_HUMAN_LABELING x-internal: true - PayloadTemplate: - type: object - properties: - template: - type: string - required: - - template - PayloadTemplateRequest: - type: object - properties: - template: - type: string - minLength: 1 - required: - - template ROI: type: object description: Mixin for serializers to handle data in the StrictBaseModel format @@ -1436,10 +1421,6 @@ components: maxLength: 200 include_image: type: boolean - payload_template: - allOf: - - $ref: '#/components/schemas/PayloadTemplate' - nullable: true required: - url WebhookActionRequest: @@ -1452,10 +1433,6 @@ components: maxLength: 200 include_image: type: boolean - payload_template: - allOf: - - $ref: '#/components/schemas/PayloadTemplateRequest' - nullable: true required: - url BinaryClassificationResult: From f4689660720f5ff2cf634b6ec9550a6f5baa72c8 Mon Sep 17 00:00:00 2001 From: brandon Date: Fri, 21 Feb 2025 16:32:46 -0800 Subject: [PATCH 4/4] remove generated tests --- generated/test/test_payload_template.py | 35 ------------------- .../test/test_payload_template_request.py | 35 ------------------- 2 files changed, 70 deletions(-) delete mode 100644 generated/test/test_payload_template.py delete mode 100644 generated/test/test_payload_template_request.py diff --git a/generated/test/test_payload_template.py b/generated/test/test_payload_template.py deleted file mode 100644 index 7d4af2fd..00000000 --- a/generated/test/test_payload_template.py +++ /dev/null @@ -1,35 +0,0 @@ -""" - Groundlight API - - Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 - - The version of the OpenAPI document: 0.18.2 - Contact: support@groundlight.ai - Generated by: https://openapi-generator.tech -""" - -import sys -import unittest - -import groundlight_openapi_client -from groundlight_openapi_client.model.payload_template import PayloadTemplate - - -class TestPayloadTemplate(unittest.TestCase): - """PayloadTemplate unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPayloadTemplate(self): - """Test PayloadTemplate""" - # FIXME: construct object with mandatory attributes with example values - # model = PayloadTemplate() # noqa: E501 - pass - - -if __name__ == "__main__": - unittest.main() diff --git a/generated/test/test_payload_template_request.py b/generated/test/test_payload_template_request.py deleted file mode 100644 index 312fc15c..00000000 --- a/generated/test/test_payload_template_request.py +++ /dev/null @@ -1,35 +0,0 @@ -""" - Groundlight API - - Groundlight makes it simple to understand images. You can easily create computer vision detectors just by describing what you want to know using natural language. # noqa: E501 - - The version of the OpenAPI document: 0.18.2 - Contact: support@groundlight.ai - Generated by: https://openapi-generator.tech -""" - -import sys -import unittest - -import groundlight_openapi_client -from groundlight_openapi_client.model.payload_template_request import PayloadTemplateRequest - - -class TestPayloadTemplateRequest(unittest.TestCase): - """PayloadTemplateRequest unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testPayloadTemplateRequest(self): - """Test PayloadTemplateRequest""" - # FIXME: construct object with mandatory attributes with example values - # model = PayloadTemplateRequest() # noqa: E501 - pass - - -if __name__ == "__main__": - unittest.main()