Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/Utils/Requests/Request.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from pathlib import Path

from paddle_billing.Notifications.Requests import Headers
from paddle_billing.Notifications.Requests.Headers import Headers


class Request:
Expand Down
22 changes: 13 additions & 9 deletions paddle_billing/Client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from logging import Logger, getLogger
from requests import Response, RequestException, Session
from requests.adapters import HTTPAdapter
from typing import Any
from urllib3.util.retry import Retry
from urllib.parse import urljoin, urlencode
from uuid import uuid4
Expand Down Expand Up @@ -47,9 +48,9 @@ class Client:
def __init__(
self,
api_key: str,
options: Options = None,
http_client: Session = None,
logger: Logger = None,
options: Options | None = None,
http_client: Session | None = None,
logger: Logger | None = None,
retry_count: int = 3,
use_api_version: int = 1,
timeout: float = 60.0,
Expand Down Expand Up @@ -110,7 +111,7 @@ def logging_hook(self, response, *args, **kwargs):
self.log.debug(f"Response: {response.status_code} {response.text}")

@staticmethod
def serialize_json_payload(payload: dict | Operation) -> str:
def serialize_json_payload(payload: dict[str, Any] | Operation) -> str:
json_payload = json_dumps(payload, cls=PayloadEncoder)
final_json = json_payload if json_payload != "[]" else "{}"

Expand All @@ -120,7 +121,7 @@ def _make_request(
self,
method: str,
url: str,
payload: dict | Operation | None = None,
payload: dict[str, Any] | Operation | None = None,
) -> Response:
"""
Makes an actual API call to Paddle
Expand Down Expand Up @@ -157,7 +158,7 @@ def _make_request(
raise

@staticmethod
def format_uri_parameters(uri: str, parameters: HasParameters | dict) -> str:
def format_uri_parameters(uri: str, parameters: HasParameters | dict[str, str]) -> str:
if isinstance(parameters, HasParameters):
parameters = parameters.get_parameters()

Expand All @@ -167,19 +168,22 @@ def format_uri_parameters(uri: str, parameters: HasParameters | dict) -> str:

return uri

def get_raw(self, url: str, parameters: HasParameters | dict = None) -> Response:
def get_raw(self, url: str, parameters: HasParameters | dict[str, str] | None = None) -> Response:
url = Client.format_uri_parameters(url, parameters) if parameters else url

return self._make_request("GET", url, None)

def post_raw(
self, url: str, payload: dict | Operation | None = None, parameters: HasParameters | dict | None = None
self,
url: str,
payload: dict[str, str] | Operation | None = None,
parameters: HasParameters | dict[str, str] | None = None,
) -> Response:
url = Client.format_uri_parameters(url, parameters) if parameters else url

return self._make_request("POST", url, payload)

def patch_raw(self, url: str, payload: dict | Operation | None) -> Response:
def patch_raw(self, url: str, payload: dict[str, str] | Operation | None) -> Response:
return self._make_request("PATCH", url, payload)

def delete_raw(self, url: str) -> Response:
Expand Down
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Address.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import annotations
from dataclasses import dataclass
from datetime import datetime
from typing import Any

from paddle_billing.Entities.Entity import Entity
from paddle_billing.Entities.Shared import CountryCode, CustomData, ImportMeta, Status
Expand All @@ -24,7 +25,7 @@ class Address(Entity):
import_meta: ImportMeta | None

@staticmethod
def from_dict(data: dict) -> Address:
def from_dict(data: dict[str, Any]) -> Address:
return Address(
id=data["id"],
customer_id=data["customer_id"],
Expand Down
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Adjustment.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import annotations
from dataclasses import dataclass
from datetime import datetime
from typing import Any

from paddle_billing.Entities.Entity import Entity
from paddle_billing.Entities.Adjustments import AdjustmentItem, AdjustmentTaxRatesUsed
Expand Down Expand Up @@ -34,7 +35,7 @@ class Adjustment(Entity):
type: AdjustmentActionType

@staticmethod
def from_dict(data: dict) -> Adjustment:
def from_dict(data: dict[str, Any]) -> Adjustment:
return Adjustment(
id=data["id"],
action=Action(data["action"]),
Expand Down
3 changes: 2 additions & 1 deletion paddle_billing/Entities/AdjustmentCreditNote.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Any

from paddle_billing.Entities.Entity import Entity

Expand All @@ -9,5 +10,5 @@ class AdjustmentCreditNote(Entity):
url: str

@staticmethod
def from_dict(data: dict) -> AdjustmentCreditNote:
def from_dict(data: dict[str, Any]) -> AdjustmentCreditNote:
return AdjustmentCreditNote(data["url"])
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Any


@dataclass
Expand All @@ -9,7 +10,7 @@ class AdjustmentCustomerBalance:
used: str

@staticmethod
def from_dict(data: dict) -> AdjustmentCustomerBalance:
def from_dict(data: dict[str, Any]) -> AdjustmentCustomerBalance:
return AdjustmentCustomerBalance(
available=data["available"],
reserved=data["reserved"],
Expand Down
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Adjustments/AdjustmentItem.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Any

from paddle_billing.Entities.Shared import AdjustmentItemTotals, AdjustmentType, Proration

Expand All @@ -14,7 +15,7 @@ class AdjustmentItem:
totals: AdjustmentItemTotals

@staticmethod
def from_dict(data: dict) -> AdjustmentItem:
def from_dict(data: dict[str, Any]) -> AdjustmentItem:
return AdjustmentItem(
id=data["id"],
item_id=data["item_id"],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Any

from paddle_billing.Entities.Adjustments.AdjustmentTotals import AdjustmentTotals

Expand All @@ -10,7 +11,7 @@ class AdjustmentTaxRatesUsed:
totals: AdjustmentTotals

@staticmethod
def from_dict(data: dict) -> AdjustmentTaxRatesUsed:
def from_dict(data: dict[str, Any]) -> AdjustmentTaxRatesUsed:
return AdjustmentTaxRatesUsed(
tax_rate=data["tax_rate"],
totals=AdjustmentTotals.from_dict(data["totals"]),
Expand Down
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Adjustments/AdjustmentTotals.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Any


@dataclass
Expand All @@ -9,7 +10,7 @@ class AdjustmentTotals:
total: str

@staticmethod
def from_dict(data: dict) -> AdjustmentTotals:
def from_dict(data: dict[str, Any]) -> AdjustmentTotals:
return AdjustmentTotals(
subtotal=data["subtotal"],
tax=data["tax"],
Expand Down
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Business.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from __future__ import annotations
from dataclasses import dataclass
from datetime import datetime
from typing import Any

from paddle_billing.Entities.Entity import Entity
from paddle_billing.Entities.Shared import Contacts, CustomData, ImportMeta, Status
Expand All @@ -21,7 +22,7 @@ class Business(Entity):
import_meta: ImportMeta | None = None

@staticmethod
def from_dict(data: dict) -> Business:
def from_dict(data: dict[str, Any]) -> Business:
return Business(
id=data["id"],
customer_id=data["customer_id"],
Expand Down
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Collections/AddressCollection.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Address import Address
from paddle_billing.Entities.Collections.Collection import Collection
Expand All @@ -7,7 +8,7 @@

class AddressCollection(Collection[Address]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> AddressCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> AddressCollection:
items: list[Address] = [Address.from_dict(item) for item in items_data]

return AddressCollection(items, paginator)
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Adjustment import Adjustment
from paddle_billing.Entities.Collections.Collection import Collection
Expand All @@ -7,7 +8,7 @@

class AdjustmentCollection(Collection[Adjustment]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> AdjustmentCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> AdjustmentCollection:
items: list[Adjustment] = [Adjustment.from_dict(item) for item in items_data]

return AdjustmentCollection(items, paginator)
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Collections/BusinessCollection.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Business import Business
from paddle_billing.Entities.Collections.Collection import Collection
Expand All @@ -7,7 +8,7 @@

class BusinessCollection(Collection[Business]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> BusinessCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> BusinessCollection:

items: list[Business] = [Business.from_dict(item) for item in items_data]

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,7 @@

class CreditBalanceCollection(Collection[CreditBalance]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> CreditBalanceCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> CreditBalanceCollection:
items: list[CreditBalance] = [CreditBalance.from_dict(item) for item in items_data]

return CreditBalanceCollection(items, paginator)
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Collections/CustomerCollection.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,7 @@

class CustomerCollection(Collection[Customer]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> CustomerCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> CustomerCollection:
items: list[Customer] = [Customer.from_dict(item) for item in items_data]

return CustomerCollection(items, paginator)
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Collections/DiscountCollection.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,7 @@

class DiscountCollection(Collection[Discount]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> DiscountCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> DiscountCollection:
items: list[Discount] = [Discount.from_dict(item) for item in items_data]

return DiscountCollection(items, paginator)
3 changes: 2 additions & 1 deletion paddle_billing/Entities/Collections/EventCollection.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,7 @@

class EventCollection(Collection[Event]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> EventCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> EventCollection:
items: list[Event] = [Event.from_dict(item) for item in items_data]

return EventCollection(items, paginator)
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,7 @@

class EventTypeCollection(Collection[EventType]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> EventTypeCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> EventTypeCollection:
items: list[EventType] = [EventType.from_dict(item) for item in items_data]

return EventTypeCollection(items, paginator)
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,7 @@

class NotificationCollection(Collection[Notification]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> NotificationCollection:
def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> NotificationCollection:
items: list[Notification] = [Notification.from_dict(item) for item in items_data]

return NotificationCollection(items, paginator)
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,9 @@

class NotificationLogCollection(Collection[NotificationLog]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> NotificationLogCollection:
def from_list(
cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None
) -> NotificationLogCollection:
items: list[NotificationLog] = [NotificationLog.from_dict(item) for item in items_data]

return NotificationLogCollection(items, paginator)
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import annotations
from typing import Any

from paddle_billing.Entities.Collections.Collection import Collection
from paddle_billing.Entities.Collections.Paginator import Paginator
Expand All @@ -7,7 +8,9 @@

class NotificationSettingCollection(Collection[NotificationSetting]):
@classmethod
def from_list(cls, items_data: list, paginator: Paginator | None = None) -> NotificationSettingCollection:
def from_list(
cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None
) -> NotificationSettingCollection:
items: list[NotificationSetting] = [NotificationSetting.from_dict(item) for item in items_data]

return NotificationSettingCollection(items, paginator)
2 changes: 1 addition & 1 deletion paddle_billing/Entities/Collections/Paginator.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def __init__(self, client: "Client", pagination: "Pagination", mapper):
def has_more(self) -> bool:
return self._pagination.has_more

def next_page(self) -> "Collection":
def next_page(self) -> "Collection": # type: ignore
response = self._client.get_raw(self._pagination.next)
response_parser = ResponseParser(response)

Expand Down
Loading