diff --git a/shipday/carrier/carrier_request.py b/shipday/carrier/carrier_request.py index 66e4210..874ca5b 100644 --- a/shipday/carrier/carrier_request.py +++ b/shipday/carrier/carrier_request.py @@ -1,6 +1,6 @@ from collections import defaultdict -from shipday.exeptions.shipday_exeption import ShipdayException +from shipday.exceptions.shipday_exception import ShipdayException from shipday.utils.verifiers import verify_instance_of diff --git a/shipday/exceptions/__init__.py b/shipday/exceptions/__init__.py new file mode 100644 index 0000000..e6a8668 --- /dev/null +++ b/shipday/exceptions/__init__.py @@ -0,0 +1,2 @@ +from shipday.exceptions.shipday_exception import ShipdayException +from shipday.exceptions.ratelimit_exception import ShipdayRateLimitException diff --git a/shipday/exceptions/ratelimit_exception.py b/shipday/exceptions/ratelimit_exception.py new file mode 100644 index 0000000..bf3dad3 --- /dev/null +++ b/shipday/exceptions/ratelimit_exception.py @@ -0,0 +1,5 @@ +from shipday.exceptions.shipday_exception import ShipdayException + +class ShipdayRateLimitException(ShipdayException): + def __init__(self, message): + super().__init__(message) diff --git a/shipday/exeptions/shipday_exeption.py b/shipday/exceptions/shipday_exception.py similarity index 100% rename from shipday/exeptions/shipday_exeption.py rename to shipday/exceptions/shipday_exception.py diff --git a/shipday/exeptions/__init__.py b/shipday/exeptions/__init__.py deleted file mode 100644 index 6624eff..0000000 --- a/shipday/exeptions/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from shipday.exeptions.shipday_exeption import ShipdayException diff --git a/shipday/httpclient/shipdayclient.py b/shipday/httpclient/shipdayclient.py index 0be1421..f3d0df9 100644 --- a/shipday/httpclient/shipdayclient.py +++ b/shipday/httpclient/shipdayclient.py @@ -1,7 +1,10 @@ import json +from typing import Any import requests +from shipday.exceptions import ShipdayRateLimitException + class ShipdayClient: def __init__(self, *args, api_key, **kwargs, ): @@ -21,25 +24,33 @@ def __get_api_key_(self): def __create_url_(self, suffix: str) -> str: return self._base_url + suffix + def __check_status_(self, response: Any): + if response.status_code == 429: + raise ShipdayRateLimitException(response.text) + def set_api_key(self, api_key: str): self._api_key = api_key def get(self, suffix: str): url = self.__create_url_(suffix) response = requests.get(url, headers=self.__get_headers_()) + self.__check_status_(response) return response.json() def post(self, suffix: str, data: dict): url = self.__create_url_(suffix) response = requests.post(url, json.dumps(data), headers=self.__get_headers_()) + self.__check_status_(response) return response.json() def put(self, suffix: str, data: dict): url = self.__create_url_(suffix) response = requests.put(url, json.dumps(data), headers=self.__get_headers_()) + self.__check_status_(response) return response.json() def delete(self, suffix: str): url = self.__create_url_(suffix) response = requests.delete(url, headers=self.__get_headers_()) + self.__check_status_(response) return response diff --git a/shipday/order/order_info.py b/shipday/order/order_info.py index f675c56..908ee20 100644 --- a/shipday/order/order_info.py +++ b/shipday/order/order_info.py @@ -2,7 +2,7 @@ from datetime import datetime from typing import List -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order.customer import Customer from shipday.order.pickup import Pickup from shipday.order.order_item import OrderItem diff --git a/shipday/order/order_item.py b/shipday/order/order_item.py index 1312439..bc9dabc 100644 --- a/shipday/order/order_item.py +++ b/shipday/order/order_item.py @@ -1,7 +1,7 @@ import json from collections import defaultdict -from shipday.exeptions.shipday_exeption import ShipdayException +from shipday.exceptions.shipday_exception import ShipdayException from shipday.utils.verifiers import verify_instance_of, verify_none_or_instance_of diff --git a/shipday/order/order_query.py b/shipday/order/order_query.py index 52c9844..defa69e 100644 --- a/shipday/order/order_query.py +++ b/shipday/order/order_query.py @@ -1,7 +1,7 @@ import json from datetime import datetime -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order.order_status import OrderStatus from shipday.utils.verifiers import verify_none_or_instance_of from shipday.order.customer import Customer diff --git a/shipday/services/carrier_service.py b/shipday/services/carrier_service.py index 7ab12b3..32bbe63 100644 --- a/shipday/services/carrier_service.py +++ b/shipday/services/carrier_service.py @@ -1,5 +1,5 @@ from shipday.carrier import CarrierRequest -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.httpclient.shipdayclient import ShipdayClient diff --git a/shipday/services/on_demand_delivery_service.py b/shipday/services/on_demand_delivery_service.py index 44147c2..f2e1a2b 100644 --- a/shipday/services/on_demand_delivery_service.py +++ b/shipday/services/on_demand_delivery_service.py @@ -1,6 +1,6 @@ from shipday.bo import PodType from shipday.utils.verifiers import verify_instance_of, verify_none_or_instance_of -from shipday.exeptions.shipday_exeption import ShipdayException +from shipday.exceptions.shipday_exception import ShipdayException from shipday.httpclient.shipdayclient import ShipdayClient from shipday.order.address import Address from datetime import datetime diff --git a/shipday/services/order_service.py b/shipday/services/order_service.py index 9ca5123..7265b8e 100644 --- a/shipday/services/order_service.py +++ b/shipday/services/order_service.py @@ -1,4 +1,4 @@ -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.httpclient.shipdayclient import ShipdayClient from shipday.order import Order, OrderQuery from shipday.utils.verifiers import verify_instance_of diff --git a/shipday/shipday_object.py b/shipday/shipday_object.py index 1a886c0..d7404f2 100644 --- a/shipday/shipday_object.py +++ b/shipday/shipday_object.py @@ -1,4 +1,4 @@ -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.services import OrderService, CarrierService, OnDemandDeliveryService diff --git a/shipday/utils/verifiers.py b/shipday/utils/verifiers.py index 521efac..6655fb2 100644 --- a/shipday/utils/verifiers.py +++ b/shipday/utils/verifiers.py @@ -1,4 +1,4 @@ -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException def verify_none_or_instance_of(obj_type, variable, error_message): diff --git a/shipday/version.py b/shipday/version.py index 792e32f..204a96f 100644 --- a/shipday/version.py +++ b/shipday/version.py @@ -1 +1 @@ -VERSION = '1.4.4' +VERSION = '2.0.0' diff --git a/tests/test_carrier/test_carrier_request.py b/tests/test_carrier/test_carrier_request.py index 1167748..96e19bd 100644 --- a/tests/test_carrier/test_carrier_request.py +++ b/tests/test_carrier/test_carrier_request.py @@ -1,5 +1,5 @@ import pytest -from shipday.exeptions.shipday_exeption import ShipdayException +from shipday.exceptions.shipday_exception import ShipdayException from shipday.carrier.carrier_request import CarrierRequest diff --git a/tests/test_order/test_address.py b/tests/test_order/test_address.py index 25d0233..1a36ad5 100644 --- a/tests/test_order/test_address.py +++ b/tests/test_order/test_address.py @@ -1,6 +1,6 @@ import pytest -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order import Address diff --git a/tests/test_order/test_customer.py b/tests/test_order/test_customer.py index 4b271af..a21a641 100644 --- a/tests/test_order/test_customer.py +++ b/tests/test_order/test_customer.py @@ -1,6 +1,6 @@ import pytest -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order import Customer, Address diff --git a/tests/test_order/test_order_cost.py b/tests/test_order/test_order_cost.py index 1e343f2..80a2fc0 100644 --- a/tests/test_order/test_order_cost.py +++ b/tests/test_order/test_order_cost.py @@ -1,7 +1,7 @@ import pytest from itertools import combinations -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order import OrderCost diff --git a/tests/test_order/test_order_info.py b/tests/test_order/test_order_info.py index 7fbc743..b33a630 100644 --- a/tests/test_order/test_order_info.py +++ b/tests/test_order/test_order_info.py @@ -2,7 +2,7 @@ from datetime import datetime -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order import Order, Customer, Pickup, OrderItem, OrderCost, Address diff --git a/tests/test_order/test_order_item.py b/tests/test_order/test_order_item.py index 5f35b01..c90c8cd 100644 --- a/tests/test_order/test_order_item.py +++ b/tests/test_order/test_order_item.py @@ -1,6 +1,6 @@ import pytest -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order import OrderItem diff --git a/tests/test_order/test_order_query.py b/tests/test_order/test_order_query.py index 7b2e3f9..6b53ad4 100644 --- a/tests/test_order/test_order_query.py +++ b/tests/test_order/test_order_query.py @@ -4,7 +4,7 @@ from itertools import combinations -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order import OrderQuery, Customer, Pickup, OrderItem, OrderCost, Address, OrderStatus diff --git a/tests/test_order/test_pickup.py b/tests/test_order/test_pickup.py index 85c04e1..f5b9f66 100644 --- a/tests/test_order/test_pickup.py +++ b/tests/test_order/test_pickup.py @@ -1,6 +1,6 @@ import pytest -from shipday.exeptions import ShipdayException +from shipday.exceptions import ShipdayException from shipday.order import Pickup, Address diff --git a/tests/test_utils/test_verifiers.py b/tests/test_utils/test_verifiers.py index d2a0849..bbc424c 100644 --- a/tests/test_utils/test_verifiers.py +++ b/tests/test_utils/test_verifiers.py @@ -1,6 +1,6 @@ import pytest -from shipday.exeptions.shipday_exeption import ShipdayException +from shipday.exceptions.shipday_exception import ShipdayException from shipday.utils.verifiers import verify_instance_of, verify_none_or_instance_of, \ verify_not_negative, verify_none_or_not_negative, verify_none_or_within_range, verify_all_none_or_not diff --git a/tox.ini b/tox.ini index 8e6e543..90cd23f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,12 @@ [tox] envlist = - python3.6 - python3.7 python3.8 python3.9 python3.10 + python3.11 + python3.12 + python3.13 + python3.14 skip_missing_interpreters = true