diff --git a/.flake8 b/.flake8 deleted file mode 100644 index 81cdf2c..0000000 --- a/.flake8 +++ /dev/null @@ -1,7 +0,0 @@ -[flake8] -# E501 is the "Line too long" error and is disabled since we use the black code formatter. -# W504 is the "line break before binary operator" error and is disabled since we use -# the black code formatter. -# W503 is disabled by default, but must be disabled explicitly when using `ignore`. -# F401 is "unused import", which is hard to fix without modifying the templates -ignore = E501, W503, W504, F401 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 65c6539..933a496 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,11 +6,6 @@ repos: - id: end-of-file-fixer - id: trailing-whitespace - id: name-tests-test - - repo: https://github.com/pycqa/flake8 - rev: "4.0.1" - hooks: - - id: flake8 - args: ["--config=.flake8"] - repo: https://github.com/psf/black rev: 24.4.2 hooks: diff --git a/CHANGELOG.md b/CHANGELOG.md index b049740..ad9cf91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.4.0] - 2025-05-16 + +### Removed + +- Removes `Patch::Estimate.create_hotel_estimate` method + +## [2.3.1] - 2025-04-28 + +### Removed + +- Removes `patch.estimates.create_ecommerce_estimate` method + +[2.3.0] 2025-01-10 + +### Removed + +- Removes `patch.estimates.create_ethereum_estimate` method +- Removes `patch.estimates.create_shipping_estimate` method +- Removes `patch.estimates.create_vehicle_estimate` method + ## [2.1.1] - 2023-04-18 ### Added diff --git a/patch_api/__init__.py b/patch_api/__init__.py index 1a30ab7..17fe4d9 100644 --- a/patch_api/__init__.py +++ b/patch_api/__init__.py @@ -1,7 +1,5 @@ # coding: utf-8 -# flake8: noqa - """ Patch API V2 @@ -15,7 +13,7 @@ from __future__ import absolute_import -__version__ = "2.3.1" +__version__ = "2.4.0" # import ApiClient from patch_api.api_client import ApiClient diff --git a/patch_api/api/__init__.py b/patch_api/api/__init__.py index 3505903..f25d081 100644 --- a/patch_api/api/__init__.py +++ b/patch_api/api/__init__.py @@ -1,7 +1,5 @@ from __future__ import absolute_import -# flake8: noqa - # import apis into api package from patch_api.api.estimates_api import EstimatesApi from patch_api.api.order_line_items_api import OrderLineItemsApi diff --git a/patch_api/api/estimates_api.py b/patch_api/api/estimates_api.py index fea9c0f..5a129b1 100644 --- a/patch_api/api/estimates_api.py +++ b/patch_api/api/estimates_api.py @@ -683,204 +683,6 @@ def create_flight_estimate_with_http_info( collection_formats=collection_formats, ) - def create_hotel_estimate( - self, create_hotel_estimate_request={}, **kwargs - ): # noqa: E501 - """Create a hotel estimate. # noqa: E501 - - Creates a hotel estimate for the amount of CO2 to be compensated. An order in the `draft` state may be created based on the parameters. # noqa: E501 - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_hotel_estimate(create_hotel_estimate_request, async_req=True) - >>> result = thread.get() - - :param async_req bool: execute request asynchronously - :param CreateHotelEstimateRequest create_hotel_estimate_request: (required) - :param int patch_version: - :param _preload_content: if False, the urllib3.HTTPResponse object will - be returned without reading/decoding response - data. Default is True. - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :return: EstimateResponse - If the method is called asynchronously, - returns the request thread. - """ - kwargs["_return_http_data_only"] = True - return self.create_hotel_estimate_with_http_info( - create_hotel_estimate_request, **kwargs - ) # noqa: E501 - - def create_hotel_estimate_with_http_info( - self, create_hotel_estimate_request, **kwargs - ): # noqa: E501 - """Create a hotel estimate. # noqa: E501 - - Creates a hotel estimate for the amount of CO2 to be compensated. An order in the `draft` state may be created based on the parameters. # noqa: E501 - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.create_hotel_estimate_with_http_info(create_hotel_estimate_request, async_req=True) - >>> result = thread.get() - - :param async_req bool: execute request asynchronously - :param CreateHotelEstimateRequest create_hotel_estimate_request: (required) - :param int patch_version: - :param _return_http_data_only: response data without head status code - and headers - :param _preload_content: if False, the urllib3.HTTPResponse object will - be returned without reading/decoding response - data. Default is True. - :param _request_timeout: timeout setting for this request. If one - number provided, it will be total request - timeout. It can also be a pair (tuple) of - (connection, read) timeouts. - :return: tuple(EstimateResponse, status_code(int), headers(HTTPHeaderDict)) - If the method is called asynchronously, - returns the request thread. - """ - - local_var_params = locals() - - all_params = ["create_hotel_estimate_request", "patch_version"] # noqa: E501 - all_params.append("async_req") - all_params.append("_return_http_data_only") - all_params.append("_preload_content") - all_params.append("_request_timeout") - all_params.append("mass_g") - all_params.append("total_price_cents_usd") - all_params.append("project_id") - all_params.append("metadata") - all_params.append("distance_m") - all_params.append("transportation_method") - all_params.append("package_mass_g") - all_params.append("create_order") - all_params.append("make") - all_params.append("model") - all_params.append("year") - all_params.append("transaction_value_btc_sats") - all_params.append("transaction_value_eth_gwei") - all_params.append("gas_used") - all_params.append("transaction_value_btc_sats") - all_params.append("average_daily_balance_btc_sats") - all_params.append("average_daily_balance_eth_gwei") - all_params.append("timestamp") - all_params.append("origin_airport") - all_params.append("destination_airport") - all_params.append("aircraft_code") - all_params.append("cabin_class") - all_params.append("passenger_count") - all_params.append("state") - all_params.append("country_code") - all_params.append("city") - all_params.append("region") - all_params.append("star_rating") - all_params.append("number_of_nights") - all_params.append("number_of_rooms") - all_params.append("vintage_year") - all_params.append("total_price") - all_params.append("currency") - all_params.append("amount") - all_params.append("unit") - all_params.append("issued_to") - all_params.append("cargo_type") - all_params.append("container_size_code") - all_params.append("destination_country_code") - all_params.append("destination_locode") - all_params.append("destination_postal_code") - all_params.append("emissions_scope") - all_params.append("freight_mass_g") - all_params.append("freight_volume_cubic_m") - all_params.append("fuel_type") - all_params.append("number_of_containers") - all_params.append("origin_country_code") - all_params.append("origin_locode") - all_params.append("origin_postal_code") - all_params.append("truck_weight_t") - all_params.append("vessel_imo") - all_params.append("vintage_start_year") - all_params.append("vintage_end_year") - - for key, val in six.iteritems(local_var_params["kwargs"]): - if key not in all_params: - raise ApiTypeError( - "Got an unexpected keyword argument '%s'" - " to method create_hotel_estimate" % key - ) - local_var_params[key] = val - del local_var_params["kwargs"] - # verify the required parameter 'create_hotel_estimate_request' is set - if ( - "create_hotel_estimate_request" not in local_var_params - or local_var_params["create_hotel_estimate_request"] is None - ): - raise ApiValueError( - "Missing the required parameter `create_hotel_estimate_request` when calling `create_hotel_estimate`" - ) # noqa: E501 - - collection_formats = {} - - path_params = {} - - query_params = [] - - # do not add duplicate keys to query_params list - existing_keys = [] - for param in query_params: - existing_keys.append(param[0]) - - for key in kwargs: - if key not in existing_keys: - query_params.append([key, kwargs.get(key)]) - - header_params = {} - if "patch_version" in local_var_params: - header_params["Patch-Version"] = local_var_params[ - "patch_version" - ] # noqa: E501 - - form_params = [] - local_var_files = {} - - body_params = None - if "create_hotel_estimate_request" in local_var_params: - body_params = local_var_params["create_hotel_estimate_request"] - # HTTP header `Accept` - header_params["Accept"] = self.api_client.select_header_accept( - ["application/json"] - ) # noqa: E501 - - # HTTP header `Content-Type` - header_params["Content-Type"] = ( - self.api_client.select_header_content_type( # noqa: E501 - ["application/json"] - ) - ) # noqa: E501 - - # Authentication setting - auth_settings = ["bearer_auth"] # noqa: E501 - - return self.api_client.call_api( - "/v1/estimates/hotel", - "POST", - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type="EstimateResponse", # noqa: E501 - auth_settings=auth_settings, - async_req=local_var_params.get("async_req"), - _return_http_data_only=local_var_params.get( - "_return_http_data_only" - ), # noqa: E501 - _preload_content=local_var_params.get("_preload_content", True), - _request_timeout=local_var_params.get("_request_timeout"), - collection_formats=collection_formats, - ) - def create_mass_estimate( self, create_mass_estimate_request={}, **kwargs ): # noqa: E501 diff --git a/patch_api/api_client.py b/patch_api/api_client.py index 325bb1d..d1bfdaf 100644 --- a/patch_api/api_client.py +++ b/patch_api/api_client.py @@ -1,12 +1,12 @@ # coding: utf-8 """ -Patch API V2 + Patch API V2 -The core API used to integrate with Patch's service # noqa: E501 + The core API used to integrate with Patch's service # noqa: E501 -The version of the OpenAPI document: 2 -Contact: engineering@usepatch.com -Generated by: https://openapi-generator.tech + The version of the OpenAPI document: 2 + Contact: engineering@usepatch.com + Generated by: https://openapi-generator.tech """ from __future__ import absolute_import @@ -92,7 +92,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = "patch-python/2.3.1" + self.user_agent = "patch-python/2.4.0" # Set default Patch-Version self.patch_version = 2 @@ -130,6 +130,9 @@ def user_agent(self): def user_agent(self, value): self.default_headers["User-Agent"] = value + def set_default_header(self, header_name, header_value): + self.default_headers[header_name] = header_value + @property def patch_version(self): """API version for this API client""" diff --git a/patch_api/configuration.py b/patch_api/configuration.py index 08c270a..64fefdd 100644 --- a/patch_api/configuration.py +++ b/patch_api/configuration.py @@ -341,7 +341,7 @@ def to_debug_report(self): "OS: {env}\n" "Python Version: {pyversion}\n" "Version of the API: 2\n" - "SDK Package Version: 2.3.1".format(env=sys.platform, pyversion=sys.version) + "SDK Package Version: 2.4.0".format(env=sys.platform, pyversion=sys.version) ) def get_host_settings(self): diff --git a/patch_api/exceptions.py b/patch_api/exceptions.py index b744b51..e83f916 100644 --- a/patch_api/exceptions.py +++ b/patch_api/exceptions.py @@ -82,6 +82,7 @@ def __init__(self, msg, path_to_item=None): class ApiException(OpenApiException): + def __init__(self, status=None, reason=None, http_resp=None): if http_resp: self.status = http_resp.status diff --git a/patch_api/models/__init__.py b/patch_api/models/__init__.py index 0d61121..79f4d84 100644 --- a/patch_api/models/__init__.py +++ b/patch_api/models/__init__.py @@ -1,6 +1,5 @@ # coding: utf-8 -# flake8: noqa """ Patch API V2 @@ -22,7 +21,6 @@ CreateBitcoinEstimateRequest, ) from patch_api.models.create_flight_estimate_request import CreateFlightEstimateRequest -from patch_api.models.create_hotel_estimate_request import CreateHotelEstimateRequest from patch_api.models.create_mass_estimate_request import CreateMassEstimateRequest from patch_api.models.create_order_line_item_request import CreateOrderLineItemRequest from patch_api.models.create_order_request import CreateOrderRequest diff --git a/patch_api/models/create_hotel_estimate_request.py b/patch_api/models/create_hotel_estimate_request.py deleted file mode 100644 index dc85d50..0000000 --- a/patch_api/models/create_hotel_estimate_request.py +++ /dev/null @@ -1,322 +0,0 @@ -# coding: utf-8 - -""" - Patch API V2 - - The core API used to integrate with Patch's service # noqa: E501 - - The version of the OpenAPI document: 2 - Contact: engineering@usepatch.com - Generated by: https://openapi-generator.tech -""" - - -import pprint -import re # noqa: F401 - -import six - -from patch_api.configuration import Configuration - - -class CreateHotelEstimateRequest(object): - """NOTE: This class is auto generated by OpenAPI Generator. - Ref: https://openapi-generator.tech - - Do not edit the class manually. - """ - - """ - Attributes: - openapi_types (dict): The key is attribute name - and the value is attribute type. - attribute_map (dict): The key is attribute name - and the value is json key in definition. - """ - openapi_types = { - "country_code": "str", - "city": "str", - "region": "str", - "star_rating": "int", - "number_of_nights": "int", - "number_of_rooms": "int", - "project_id": "str", - "create_order": "bool", - } - - attribute_map = { - "country_code": "country_code", - "city": "city", - "region": "region", - "star_rating": "star_rating", - "number_of_nights": "number_of_nights", - "number_of_rooms": "number_of_rooms", - "project_id": "project_id", - "create_order": "create_order", - } - - def __init__( - self, - country_code=None, - city=None, - region=None, - star_rating=None, - number_of_nights=None, - number_of_rooms=None, - project_id=None, - create_order=False, - local_vars_configuration=None, - ): # noqa: E501 - """CreateHotelEstimateRequest - a model defined in OpenAPI""" # noqa: E501 - if local_vars_configuration is None: - local_vars_configuration = Configuration() - self.local_vars_configuration = local_vars_configuration - - self._country_code = None - self._city = None - self._region = None - self._star_rating = None - self._number_of_nights = None - self._number_of_rooms = None - self._project_id = None - self._create_order = None - self.discriminator = None - - self.country_code = country_code - if city is not None: - self.city = city - if region is not None: - self.region = region - if star_rating is not None: - self.star_rating = star_rating - if number_of_nights is not None: - self.number_of_nights = number_of_nights - if number_of_rooms is not None: - self.number_of_rooms = number_of_rooms - self.project_id = project_id - self.create_order = create_order - - @property - def country_code(self): - """Gets the country_code of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The country_code of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: str - """ - return self._country_code - - @country_code.setter - def country_code(self, country_code): - """Sets the country_code of this CreateHotelEstimateRequest. - - - :param country_code: The country_code of this CreateHotelEstimateRequest. # noqa: E501 - :type: str - """ - if ( - self.local_vars_configuration.client_side_validation - and country_code is None - ): # noqa: E501 - raise ValueError( - "Invalid value for `country_code`, must not be `None`" - ) # noqa: E501 - - self._country_code = country_code - - @property - def city(self): - """Gets the city of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The city of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: str - """ - return self._city - - @city.setter - def city(self, city): - """Sets the city of this CreateHotelEstimateRequest. - - - :param city: The city of this CreateHotelEstimateRequest. # noqa: E501 - :type: str - """ - - self._city = city - - @property - def region(self): - """Gets the region of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The region of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: str - """ - return self._region - - @region.setter - def region(self, region): - """Sets the region of this CreateHotelEstimateRequest. - - - :param region: The region of this CreateHotelEstimateRequest. # noqa: E501 - :type: str - """ - - self._region = region - - @property - def star_rating(self): - """Gets the star_rating of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The star_rating of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: int - """ - return self._star_rating - - @star_rating.setter - def star_rating(self, star_rating): - """Sets the star_rating of this CreateHotelEstimateRequest. - - - :param star_rating: The star_rating of this CreateHotelEstimateRequest. # noqa: E501 - :type: int - """ - - self._star_rating = star_rating - - @property - def number_of_nights(self): - """Gets the number_of_nights of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The number_of_nights of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: int - """ - return self._number_of_nights - - @number_of_nights.setter - def number_of_nights(self, number_of_nights): - """Sets the number_of_nights of this CreateHotelEstimateRequest. - - - :param number_of_nights: The number_of_nights of this CreateHotelEstimateRequest. # noqa: E501 - :type: int - """ - - self._number_of_nights = number_of_nights - - @property - def number_of_rooms(self): - """Gets the number_of_rooms of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The number_of_rooms of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: int - """ - return self._number_of_rooms - - @number_of_rooms.setter - def number_of_rooms(self, number_of_rooms): - """Sets the number_of_rooms of this CreateHotelEstimateRequest. - - - :param number_of_rooms: The number_of_rooms of this CreateHotelEstimateRequest. # noqa: E501 - :type: int - """ - - self._number_of_rooms = number_of_rooms - - @property - def project_id(self): - """Gets the project_id of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The project_id of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: str - """ - return self._project_id - - @project_id.setter - def project_id(self, project_id): - """Sets the project_id of this CreateHotelEstimateRequest. - - - :param project_id: The project_id of this CreateHotelEstimateRequest. # noqa: E501 - :type: str - """ - - self._project_id = project_id - - @property - def create_order(self): - """Gets the create_order of this CreateHotelEstimateRequest. # noqa: E501 - - - :return: The create_order of this CreateHotelEstimateRequest. # noqa: E501 - :rtype: bool - """ - return self._create_order - - @create_order.setter - def create_order(self, create_order): - """Sets the create_order of this CreateHotelEstimateRequest. - - - :param create_order: The create_order of this CreateHotelEstimateRequest. # noqa: E501 - :type: bool - """ - - self._create_order = create_order - - def to_dict(self): - """Returns the model properties as a dict""" - result = {} - - for attr, _ in six.iteritems(self.openapi_types): - value = getattr(self, attr) - if isinstance(value, list): - result[attr] = list( - map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value) - ) - elif hasattr(value, "to_dict"): - result[attr] = value.to_dict() - elif isinstance(value, dict): - result[attr] = dict( - map( - lambda item: ( - (item[0], item[1].to_dict()) - if hasattr(item[1], "to_dict") - else item - ), - value.items(), - ) - ) - else: - result[attr] = value - - return result - - def to_str(self): - """Returns the string representation of the model""" - return pprint.pformat(self.to_dict()) - - def __repr__(self): - """For `print` and `pprint`""" - return self.to_str() - - def __eq__(self, other): - """Returns true if both objects are equal""" - if not isinstance(other, CreateHotelEstimateRequest): - return False - - return self.to_dict() == other.to_dict() - - def __ne__(self, other): - """Returns true if both objects are not equal""" - if not isinstance(other, CreateHotelEstimateRequest): - return True - - return self.to_dict() != other.to_dict() diff --git a/patch_api/rest.py b/patch_api/rest.py index 96ef7bf..b3dec36 100644 --- a/patch_api/rest.py +++ b/patch_api/rest.py @@ -34,6 +34,7 @@ class RESTResponse(io.IOBase): + def __init__(self, resp): self.urllib3_response = resp self.status = resp.status @@ -50,6 +51,7 @@ def getheader(self, name, default=None): class RESTClientObject(object): + def __init__(self, api_key, configuration, pools_size=4, maxsize=None): # urllib3.PoolManager will pass all kw parameters to connectionpool # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501 diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 11433ee..0000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[flake8] -max-line-length=99 diff --git a/setup.py b/setup.py index cf1db65..1850ce0 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ from setuptools import setup, find_packages # noqa: H301 NAME = "patch-api" -VERSION = "2.3.1" +VERSION = "2.4.0" # To install the library, run the following # # python setup.py install diff --git a/test/test_estimates_api.py b/test/test_estimates_api.py index 25149c2..b38cac3 100644 --- a/test/test_estimates_api.py +++ b/test/test_estimates_api.py @@ -101,18 +101,6 @@ def test_create_bitcoin_estimate_transaction_value(self): estimate.data.mass_g, 200 ) # not setting an exact value since this is changing daily - def test_create_hotel_estimate(self): - """Test case for create_hotel_estimate - - Create an estimate based on a country code # noqa: E501 - """ - - estimate = self.api.create_hotel_estimate(country_code="US") - self.assertEqual(estimate.data.type, "hotel") - self.assertGreater( - estimate.data.mass_g, 15_000 - ) # not setting an exact value since this is changing daily - def test_create_air_shipping_estimate_airport_iatas(self): """Test case for create_air_shipping_estimate