From b8002c0b6abfbe4c1a7aa184be5ffa5e24ddccb7 Mon Sep 17 00:00:00 2001 From: Gilbert Yoder Date: Fri, 16 May 2025 10:12:11 -0700 Subject: [PATCH 1/4] Getting started --- examples/Utils/Requests/Request.py | 2 +- .../Resources/Reports/ReportsClient.py | 5 +++-- pyrightconfig.json | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 pyrightconfig.json diff --git a/examples/Utils/Requests/Request.py b/examples/Utils/Requests/Request.py index 8761d954..c352201a 100644 --- a/examples/Utils/Requests/Request.py +++ b/examples/Utils/Requests/Request.py @@ -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: diff --git a/paddle_billing/Resources/Reports/ReportsClient.py b/paddle_billing/Resources/Reports/ReportsClient.py index 867f6fa7..780ebd41 100644 --- a/paddle_billing/Resources/Reports/ReportsClient.py +++ b/paddle_billing/Resources/Reports/ReportsClient.py @@ -4,7 +4,8 @@ from paddle_billing.Entities.ReportCSV import ReportCSV from paddle_billing.Entities.Collections import Paginator, ReportCollection -from paddle_billing.Resources.Reports.Operations import CreateReport, ListReports +from paddle_billing.Resources.Reports.Operations import ListReports +from paddle_billing.Resources.Reports.Operations.CreateReport import Operation from typing import TYPE_CHECKING @@ -40,7 +41,7 @@ def get_report_csv(self, report_id: str) -> ReportCSV: return ReportCSV.from_dict(parser.get_data()) - def create(self, operation: CreateReport) -> Report: + def create(self, operation: Operation) -> Report: self.response = self.client.post_raw("/reports", operation) parser = ResponseParser(self.response) diff --git a/pyrightconfig.json b/pyrightconfig.json new file mode 100644 index 00000000..e58dce4f --- /dev/null +++ b/pyrightconfig.json @@ -0,0 +1,17 @@ +{ + "typeCheckingMode": "basic", + // "reportGeneralTypeIssues": false, + "reportUnknownVariableType": false, + "reportUnknownMemberType": false, + "reportUntypedFunctionDecorator": false, + "reportMissingTypeStubs": false, + "reportArgumentType": false, + "reportAssignmentType": false, + "reportAttributeAccessIssue": false, + "reportOperatorIssue": false, + "reportOptionalMemberAccess": false, + "reportOptionalSubscript": false, + "reportCallIssue": false, + "reportReturnType": false, + "reportOptionalIterable": false +} \ No newline at end of file From 30b31d3bc4302701e685e0c2e740fd896a1da6df Mon Sep 17 00:00:00 2001 From: Gilbert Yoder Date: Fri, 16 May 2025 14:22:45 -0700 Subject: [PATCH 2/4] Lots --- paddle_billing/Client.py | 8 +++---- .../Collections/TransactionCollection.py | 3 ++- .../Notifications/NotificationEvent.py | 2 ++ paddle_billing/Entities/Shared/CustomData.py | 7 ++++-- paddle_billing/Entities/Transaction.py | 5 ++-- paddle_billing/PaddleStrEnum.py | 4 ++-- .../Resources/Addresses/AddressesClient.py | 10 ++++---- .../Adjustments/AdjustmentsClient.py | 10 ++++---- .../Resources/Businesses/BusinessesClient.py | 10 ++++---- .../CustomerPortalSessionsClient.py | 2 +- .../Resources/Customers/CustomersClient.py | 16 ++++++------- .../Resources/Discounts/DiscountsClient.py | 10 ++++---- .../Resources/EventTypes/EventTypesClient.py | 2 +- .../Resources/Events/EventsClient.py | 4 ++-- .../IPAddresses/IPAddressesClient.py | 2 +- .../NotificationLogsClient.py | 4 ++-- .../Operations/ListNotificationLogs.py | 2 +- .../NotificationSettingsClient.py | 8 +++---- .../Notifications/NotificationsClient.py | 6 ++--- .../Operations/ListNotifications.py | 4 ++-- .../Operations/ListPaymentMethods.py | 4 ++-- .../PaymentMethods/PaymentMethodsClient.py | 6 ++--- .../Resources/Prices/Operations/ListPrices.py | 10 ++++---- .../Resources/Prices/PricesClient.py | 10 ++++---- .../PricingPreviews/PricingPreviewsClient.py | 2 +- .../Products/Operations/ListProducts.py | 12 +++++----- .../Resources/Products/ProductsClient.py | 10 ++++---- .../Reports/Operations/CreateReport.py | 5 ++-- .../Reports/Operations/ListReports.py | 2 +- .../Resources/Reports/ReportsClient.py | 10 ++++---- .../Operations/ListSimulationRunEvents.py | 2 +- .../SimulationRunEventsClient.py | 8 +++---- .../Operations/GetSimulationRun.py | 2 +- .../Operations/ListSimulationRuns.py | 4 ++-- .../SimulationRuns/SimulationRunsClient.py | 12 ++++++---- .../SimulationTypes/SimulationTypesClient.py | 2 +- .../Simulations/Operations/ListSimulations.py | 6 ++--- .../Simulations/SimulationsClient.py | 10 ++++---- .../Operations/ListSubscriptions.py | 12 +++++----- .../Subscriptions/SubscriptionsClient.py | 24 +++++++++---------- .../Operations/ListTransactions.py | 14 +++++------ .../Transactions/TransactionsClient.py | 20 +++++++--------- paddle_billing/ResponseParser.py | 19 +++++++++++---- pyrightconfig.json | 7 +----- 44 files changed, 172 insertions(+), 160 deletions(-) diff --git a/paddle_billing/Client.py b/paddle_billing/Client.py index bea6fa14..cacfc74d 100644 --- a/paddle_billing/Client.py +++ b/paddle_billing/Client.py @@ -47,9 +47,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, @@ -167,7 +167,7 @@ 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 | None = None) -> Response: url = Client.format_uri_parameters(url, parameters) if parameters else url return self._make_request("GET", url, None) diff --git a/paddle_billing/Entities/Collections/TransactionCollection.py b/paddle_billing/Entities/Collections/TransactionCollection.py index adbd8eb8..0879c49a 100644 --- a/paddle_billing/Entities/Collections/TransactionCollection.py +++ b/paddle_billing/Entities/Collections/TransactionCollection.py @@ -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 @@ -7,7 +8,7 @@ class TransactionCollection(Collection[Transaction]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> TransactionCollection: + def from_list(cls, items_data: list[Any], paginator: Paginator | None = None) -> TransactionCollection: items: list[Transaction] = [Transaction.from_dict(item) for item in items_data] return TransactionCollection(items, paginator) diff --git a/paddle_billing/Entities/Notifications/NotificationEvent.py b/paddle_billing/Entities/Notifications/NotificationEvent.py index 350390fa..0fb72616 100644 --- a/paddle_billing/Entities/Notifications/NotificationEvent.py +++ b/paddle_billing/Entities/Notifications/NotificationEvent.py @@ -40,5 +40,7 @@ def from_request(request: Request) -> NotificationEvent: raw_body = request.content.decode("utf-8") elif hasattr(request, "data"): raw_body = request.data.decode("utf-8") + else: + raise ValueError("Request does not have attr body, content, or data.") return NotificationEvent.from_dict(json.loads(raw_body)) diff --git a/paddle_billing/Entities/Shared/CustomData.py b/paddle_billing/Entities/Shared/CustomData.py index 6244f56e..e7d8c603 100644 --- a/paddle_billing/Entities/Shared/CustomData.py +++ b/paddle_billing/Entities/Shared/CustomData.py @@ -1,7 +1,10 @@ +from typing import Any + + class CustomData: - data: dict | list # JSON serializable Python types + data: dict[str, Any] | list[Any] # JSON serializable Python types - def __init__(self, data: dict | list): + def __init__(self, data: dict[str, Any] | list[Any]): self.data = data def to_json(self): diff --git a/paddle_billing/Entities/Transaction.py b/paddle_billing/Entities/Transaction.py index 7e924630..c82f5c56 100644 --- a/paddle_billing/Entities/Transaction.py +++ b/paddle_billing/Entities/Transaction.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Adjustment import Adjustment from paddle_billing.Entities.Entity import Entity @@ -53,7 +54,7 @@ class Transaction(Entity): billed_at: datetime | None address: Address | None = None adjustments: list[Adjustment] | None = None - adjustment_totals: list[TransactionAdjustmentsTotals] | None = None + adjustment_totals: TransactionAdjustmentsTotals | None = None business: Business | None = None customer: Customer | None = None discount: Discount | None = None @@ -61,7 +62,7 @@ class Transaction(Entity): revised_at: datetime | None = None @staticmethod - def from_dict(data: dict) -> Transaction: + def from_dict(data: dict[str, Any]) -> Transaction: return Transaction( address_id=data.get("address_id"), business_id=data.get("business_id"), diff --git a/paddle_billing/PaddleStrEnum.py b/paddle_billing/PaddleStrEnum.py index 18c5616b..fd14114d 100644 --- a/paddle_billing/PaddleStrEnum.py +++ b/paddle_billing/PaddleStrEnum.py @@ -30,8 +30,8 @@ def __getattr__(cls, name): class PaddleStrEnum: - value = None - name = None + value: str + name: str | None = None _members = None _iter_index = 0 diff --git a/paddle_billing/Resources/Addresses/AddressesClient.py b/paddle_billing/Resources/Addresses/AddressesClient.py index a00d4fbd..5e264fc6 100644 --- a/paddle_billing/Resources/Addresses/AddressesClient.py +++ b/paddle_billing/Resources/Addresses/AddressesClient.py @@ -17,7 +17,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, customer_id: str, operation: ListAddresses = None) -> AddressCollection: + def list(self, customer_id: str, operation: ListAddresses | None = None) -> AddressCollection: if operation is None: operation = ListAddresses() @@ -25,26 +25,26 @@ def list(self, customer_id: str, operation: ListAddresses = None) -> AddressColl parser = ResponseParser(self.response) return AddressCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), AddressCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), AddressCollection) ) def get(self, customer_id: str, address_id: str) -> Address: self.response = self.client.get_raw(f"/customers/{customer_id}/addresses/{address_id}") parser = ResponseParser(self.response) - return Address.from_dict(parser.get_data()) + return Address.from_dict(parser.get_dict()) def create(self, customer_id: str, operation: CreateAddress) -> Address: self.response = self.client.post_raw(f"/customers/{customer_id}/addresses", operation) parser = ResponseParser(self.response) - return Address.from_dict(parser.get_data()) + return Address.from_dict(parser.get_dict()) def update(self, customer_id: str, address_id: str, operation: UpdateAddress) -> Address: self.response = self.client.patch_raw(f"/customers/{customer_id}/addresses/{address_id}", operation) parser = ResponseParser(self.response) - return Address.from_dict(parser.get_data()) + return Address.from_dict(parser.get_dict()) def archive(self, customer_id: str, address_id: str) -> Address: return self.update(customer_id, address_id, UpdateAddress(status=Status.Archived)) diff --git a/paddle_billing/Resources/Adjustments/AdjustmentsClient.py b/paddle_billing/Resources/Adjustments/AdjustmentsClient.py index f263c39b..34b7d833 100644 --- a/paddle_billing/Resources/Adjustments/AdjustmentsClient.py +++ b/paddle_billing/Resources/Adjustments/AdjustmentsClient.py @@ -17,7 +17,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListAdjustments = None) -> AdjustmentCollection: + def list(self, operation: ListAdjustments | None = None) -> AdjustmentCollection: if operation is None: operation = ListAdjustments() @@ -25,17 +25,17 @@ def list(self, operation: ListAdjustments = None) -> AdjustmentCollection: parser = ResponseParser(self.response) return AdjustmentCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), AdjustmentCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), AdjustmentCollection) ) def create(self, operation: CreateAdjustment) -> Adjustment: self.response = self.client.post_raw("/adjustments", operation) parser = ResponseParser(self.response) - return Adjustment.from_dict(parser.get_data()) + return Adjustment.from_dict(parser.get_dict()) - def get_credit_note(self, adjustment_id: str, operation: GetCreditNote = None) -> AdjustmentCreditNote: + def get_credit_note(self, adjustment_id: str, operation: GetCreditNote | None = None) -> AdjustmentCreditNote: self.response = self.client.get_raw(f"/adjustments/{adjustment_id}/credit-note", operation) parser = ResponseParser(self.response) - return AdjustmentCreditNote.from_dict(parser.get_data()) + return AdjustmentCreditNote.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/Businesses/BusinessesClient.py b/paddle_billing/Resources/Businesses/BusinessesClient.py index 571fb494..0143b668 100644 --- a/paddle_billing/Resources/Businesses/BusinessesClient.py +++ b/paddle_billing/Resources/Businesses/BusinessesClient.py @@ -17,7 +17,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, customer_id: str, operation: ListBusinesses = None) -> BusinessCollection: + def list(self, customer_id: str, operation: ListBusinesses | None = None) -> BusinessCollection: if operation is None: operation = ListBusinesses() @@ -25,26 +25,26 @@ def list(self, customer_id: str, operation: ListBusinesses = None) -> BusinessCo parser = ResponseParser(self.response) return BusinessCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), BusinessCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), BusinessCollection) ) def get(self, customer_id: str, business_id: str) -> Business: self.response = self.client.get_raw(f"/customers/{customer_id}/businesses/{business_id}") parser = ResponseParser(self.response) - return Business.from_dict(parser.get_data()) + return Business.from_dict(parser.get_dict()) def create(self, customer_id: str, operation: CreateBusiness) -> Business: self.response = self.client.post_raw(f"/customers/{customer_id}/businesses", operation) parser = ResponseParser(self.response) - return Business.from_dict(parser.get_data()) + return Business.from_dict(parser.get_dict()) def update(self, customer_id: str, business_id: str, operation: UpdateBusiness) -> Business: self.response = self.client.patch_raw(f"/customers/{customer_id}/businesses/{business_id}", operation) parser = ResponseParser(self.response) - return Business.from_dict(parser.get_data()) + return Business.from_dict(parser.get_dict()) def archive(self, customer_id: str, business_id: str) -> Business: return self.update(customer_id, business_id, UpdateBusiness(status=Status.Archived)) diff --git a/paddle_billing/Resources/CustomerPortalSessions/CustomerPortalSessionsClient.py b/paddle_billing/Resources/CustomerPortalSessions/CustomerPortalSessionsClient.py index d4c73cf6..cedade7e 100644 --- a/paddle_billing/Resources/CustomerPortalSessions/CustomerPortalSessionsClient.py +++ b/paddle_billing/Resources/CustomerPortalSessions/CustomerPortalSessionsClient.py @@ -21,4 +21,4 @@ def create(self, customer_id: str, operation: CreateCustomerPortalSession) -> Cu self.response = self.client.post_raw(f"/customers/{customer_id}/portal-sessions", operation) parser = ResponseParser(self.response) - return CustomerPortalSession.from_dict(parser.get_data()) + return CustomerPortalSession.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/Customers/CustomersClient.py b/paddle_billing/Resources/Customers/CustomersClient.py index 0b7c4561..1d2a8a29 100644 --- a/paddle_billing/Resources/Customers/CustomersClient.py +++ b/paddle_billing/Resources/Customers/CustomersClient.py @@ -27,7 +27,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListCustomers = None) -> CustomerCollection: + def list(self, operation: ListCustomers | None = None) -> CustomerCollection: if operation is None: operation = ListCustomers() @@ -35,41 +35,41 @@ def list(self, operation: ListCustomers = None) -> CustomerCollection: parser = ResponseParser(self.response) return CustomerCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), CustomerCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), CustomerCollection) ) def get(self, customer_id: str) -> Customer: self.response = self.client.get_raw(f"/customers/{customer_id}") parser = ResponseParser(self.response) - return Customer.from_dict(parser.get_data()) + return Customer.from_dict(parser.get_dict()) def create(self, operation: CreateCustomer) -> Customer: self.response = self.client.post_raw("/customers", operation) parser = ResponseParser(self.response) - return Customer.from_dict(parser.get_data()) + return Customer.from_dict(parser.get_dict()) def update(self, customer_id: str, operation: UpdateCustomer) -> Customer: self.response = self.client.patch_raw(f"/customers/{customer_id}", operation) parser = ResponseParser(self.response) - return Customer.from_dict(parser.get_data()) + return Customer.from_dict(parser.get_dict()) def archive(self, customer_id: str) -> Customer: return self.update(customer_id, UpdateCustomer(status=Status.Archived)) - def credit_balances(self, customer_id: str, operation: ListCreditBalances = None) -> CreditBalanceCollection: + def credit_balances(self, customer_id: str, operation: ListCreditBalances | None = None) -> CreditBalanceCollection: if operation is None: operation = ListCreditBalances() self.response = self.client.get_raw(f"/customers/{customer_id}/credit-balances", operation) parser = ResponseParser(self.response) - return CreditBalanceCollection.from_list(parser.get_data()) + return CreditBalanceCollection.from_list(parser.get_list()) def create_auth_token(self, customer_id: str) -> CustomerAuthToken: self.response = self.client.post_raw(f"/customers/{customer_id}/auth-token") parser = ResponseParser(self.response) - return CustomerAuthToken.from_dict(parser.get_data()) + return CustomerAuthToken.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/Discounts/DiscountsClient.py b/paddle_billing/Resources/Discounts/DiscountsClient.py index 43ea5f8b..498029bf 100644 --- a/paddle_billing/Resources/Discounts/DiscountsClient.py +++ b/paddle_billing/Resources/Discounts/DiscountsClient.py @@ -17,7 +17,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListDiscounts = None) -> DiscountCollection: + def list(self, operation: ListDiscounts | None = None) -> DiscountCollection: if operation is None: operation = ListDiscounts() @@ -25,26 +25,26 @@ def list(self, operation: ListDiscounts = None) -> DiscountCollection: parser = ResponseParser(self.response) return DiscountCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), DiscountCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), DiscountCollection) ) def get(self, discount_id: str) -> Discount: self.response = self.client.get_raw(f"/discounts/{discount_id}") parser = ResponseParser(self.response) - return Discount.from_dict(parser.get_data()) + return Discount.from_dict(parser.get_dict()) def create(self, operation: CreateDiscount) -> Discount: self.response = self.client.post_raw("/discounts", operation) parser = ResponseParser(self.response) - return Discount.from_dict(parser.get_data()) + return Discount.from_dict(parser.get_dict()) def update(self, discount_id: str, operation: UpdateDiscount) -> Discount: self.response = self.client.patch_raw(f"/discounts/{discount_id}", operation) parser = ResponseParser(self.response) - return Discount.from_dict(parser.get_data()) + return Discount.from_dict(parser.get_dict()) def archive(self, discount_id: str) -> Discount: return self.update(discount_id, UpdateDiscount(status=DiscountStatus.Archived)) diff --git a/paddle_billing/Resources/EventTypes/EventTypesClient.py b/paddle_billing/Resources/EventTypes/EventTypesClient.py index 00f08b86..7cda9c25 100644 --- a/paddle_billing/Resources/EventTypes/EventTypesClient.py +++ b/paddle_billing/Resources/EventTypes/EventTypesClient.py @@ -17,5 +17,5 @@ def list(self) -> EventTypeCollection: parser = ResponseParser(self.response) return EventTypeCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), EventTypeCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), EventTypeCollection) ) diff --git a/paddle_billing/Resources/Events/EventsClient.py b/paddle_billing/Resources/Events/EventsClient.py index 3daf7c1b..95cc1de4 100644 --- a/paddle_billing/Resources/Events/EventsClient.py +++ b/paddle_billing/Resources/Events/EventsClient.py @@ -13,7 +13,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListEvents = None) -> EventCollection: + def list(self, operation: ListEvents | None = None) -> EventCollection: if operation is None: operation = ListEvents() @@ -21,5 +21,5 @@ def list(self, operation: ListEvents = None) -> EventCollection: parser = ResponseParser(self.response) return EventCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), EventCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), EventCollection) ) diff --git a/paddle_billing/Resources/IPAddresses/IPAddressesClient.py b/paddle_billing/Resources/IPAddresses/IPAddressesClient.py index f65573eb..4da0b7c9 100644 --- a/paddle_billing/Resources/IPAddresses/IPAddressesClient.py +++ b/paddle_billing/Resources/IPAddresses/IPAddressesClient.py @@ -17,4 +17,4 @@ def get_ip_addresses(self) -> IPAddresses: self.response = self.client.get_raw("/ips") parser = ResponseParser(self.response) - return IPAddresses.from_dict(parser.get_data()) + return IPAddresses.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py b/paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py index c01ea99a..13b16cf2 100644 --- a/paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py +++ b/paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py @@ -13,7 +13,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, notification_id: str, operation: ListNotificationLogs = None) -> NotificationLogCollection: + def list(self, notification_id: str, operation: ListNotificationLogs | None = None) -> NotificationLogCollection: if operation is None: operation = ListNotificationLogs() @@ -21,5 +21,5 @@ def list(self, notification_id: str, operation: ListNotificationLogs = None) -> parser = ResponseParser(self.response) return NotificationLogCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), NotificationLogCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), NotificationLogCollection) ) diff --git a/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py b/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py index c8368653..d16b4a31 100644 --- a/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py +++ b/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py @@ -3,7 +3,7 @@ class ListNotificationLogs(HasParameters): - def __init__(self, pager: Pager = None): + def __init__(self, pager: Pager | None = None): self.pager = pager def get_parameters(self) -> dict: diff --git a/paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py b/paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py index 2f559463..7c06f6c9 100644 --- a/paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py +++ b/paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py @@ -28,7 +28,7 @@ def list(self, operation: ListNotificationSettings | None = None) -> Notificatio parser = ResponseParser(self.response) return NotificationSettingCollection.from_list( - parser.get_data(), + parser.get_list(), Paginator(self.client, parser.get_pagination(), NotificationSettingCollection), ) @@ -36,19 +36,19 @@ def get(self, notification_setting_id: str) -> NotificationSetting: self.response = self.client.get_raw(f"/notification-settings/{notification_setting_id}") parser = ResponseParser(self.response) - return NotificationSetting.from_dict(parser.get_data()) + return NotificationSetting.from_dict(parser.get_dict()) def create(self, operation: CreateNotificationSetting) -> NotificationSetting: self.response = self.client.post_raw("/notification-settings", operation) parser = ResponseParser(self.response) - return NotificationSetting.from_dict(parser.get_data()) + return NotificationSetting.from_dict(parser.get_dict()) def update(self, notification_setting_id: str, operation: UpdateNotificationSetting) -> NotificationSetting: self.response = self.client.patch_raw(f"/notification-settings/{notification_setting_id}", operation) parser = ResponseParser(self.response) - return NotificationSetting.from_dict(parser.get_data()) + return NotificationSetting.from_dict(parser.get_dict()) def delete(self, notification_setting_id: str) -> None: self.client.delete_raw(f"/notification-settings/{notification_setting_id}") diff --git a/paddle_billing/Resources/Notifications/NotificationsClient.py b/paddle_billing/Resources/Notifications/NotificationsClient.py index 1c5d0a5c..09eda71e 100644 --- a/paddle_billing/Resources/Notifications/NotificationsClient.py +++ b/paddle_billing/Resources/Notifications/NotificationsClient.py @@ -16,7 +16,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListNotifications = None) -> NotificationCollection: + def list(self, operation: ListNotifications | None = None) -> NotificationCollection: if operation is None: operation = ListNotifications() @@ -24,14 +24,14 @@ def list(self, operation: ListNotifications = None) -> NotificationCollection: parser = ResponseParser(self.response) return NotificationCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), NotificationCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), NotificationCollection) ) def get(self, notification_id: str) -> Notification: self.response = self.client.get_raw(f"/notifications/{notification_id}") parser = ResponseParser(self.response) - return Notification.from_dict(parser.get_data()) + return Notification.from_dict(parser.get_dict()) def replay(self, notification_id: str) -> str: self.response = self.client.post_raw(f"/notifications/{notification_id}/replay") diff --git a/paddle_billing/Resources/Notifications/Operations/ListNotifications.py b/paddle_billing/Resources/Notifications/Operations/ListNotifications.py index 6f614535..fa1b3d03 100644 --- a/paddle_billing/Resources/Notifications/Operations/ListNotifications.py +++ b/paddle_billing/Resources/Notifications/Operations/ListNotifications.py @@ -13,9 +13,9 @@ class ListNotifications(HasParameters): def __init__( self, pager: Pager | None = None, - notification_setting_ids: list[str] = None, + notification_setting_ids: list[str] | None = None, search: str | None = None, - statuses: list[NotificationStatus] = None, + statuses: list[NotificationStatus] | None = None, filter: str | None = None, end: DateTime | None = None, start: DateTime | None = None, diff --git a/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py b/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py index b205052d..90d4884c 100644 --- a/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py +++ b/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py @@ -7,8 +7,8 @@ class ListPaymentMethods(HasParameters): def __init__( self, pager: Pager | None = None, - address_ids: list[str] = None, - supports_checkout: bool = None, + address_ids: list[str] | None = None, + supports_checkout: bool | None = None, ): self.pager = pager self.address_ids = address_ids diff --git a/paddle_billing/Resources/PaymentMethods/PaymentMethodsClient.py b/paddle_billing/Resources/PaymentMethods/PaymentMethodsClient.py index 445320b3..647bd96e 100644 --- a/paddle_billing/Resources/PaymentMethods/PaymentMethodsClient.py +++ b/paddle_billing/Resources/PaymentMethods/PaymentMethodsClient.py @@ -21,7 +21,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, customer_id: str, operation: ListPaymentMethods = None) -> PaymentMethodCollection: + def list(self, customer_id: str, operation: ListPaymentMethods | None = None) -> PaymentMethodCollection: if operation is None: operation = ListPaymentMethods() @@ -29,7 +29,7 @@ def list(self, customer_id: str, operation: ListPaymentMethods = None) -> Paymen parser = ResponseParser(self.response) return PaymentMethodCollection.from_list( - parser.get_data(), + parser.get_list(), Paginator(self.client, parser.get_pagination(), PaymentMethodCollection), ) @@ -37,7 +37,7 @@ def get(self, customer_id: str, payment_method_id: str) -> PaymentMethod: self.response = self.client.get_raw(f"/customers/{customer_id}/payment-methods/{payment_method_id}") parser = ResponseParser(self.response) - return PaymentMethod.from_dict(parser.get_data()) + return PaymentMethod.from_dict(parser.get_dict()) def delete(self, customer_id: str, payment_method_id: str) -> None: self.response = self.client.delete_raw(f"/customers/{customer_id}/payment-methods/{payment_method_id}") diff --git a/paddle_billing/Resources/Prices/Operations/ListPrices.py b/paddle_billing/Resources/Prices/Operations/ListPrices.py index 5e985828..059d3611 100644 --- a/paddle_billing/Resources/Prices/Operations/ListPrices.py +++ b/paddle_billing/Resources/Prices/Operations/ListPrices.py @@ -13,11 +13,11 @@ class ListPrices(HasParameters): def __init__( self, pager: Pager | None = None, - includes: list[PriceIncludes] = None, - ids: list[str] = None, - types: list[CatalogType] = None, - product_ids: list[str] = None, - statuses: list[Status] = None, + includes: list[PriceIncludes] | None = None, + ids: list[str] | None = None, + types: list[CatalogType] | None = None, + product_ids: list[str] | None = None, + statuses: list[Status] | None = None, recurring: bool | None = None, ): self.pager = pager diff --git a/paddle_billing/Resources/Prices/PricesClient.py b/paddle_billing/Resources/Prices/PricesClient.py index 2df0ae02..bd4ef822 100644 --- a/paddle_billing/Resources/Prices/PricesClient.py +++ b/paddle_billing/Resources/Prices/PricesClient.py @@ -19,7 +19,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListPrices = None) -> PriceCollection: + def list(self, operation: ListPrices | None = None) -> PriceCollection: if operation is None: operation = ListPrices() @@ -27,7 +27,7 @@ def list(self, operation: ListPrices = None) -> PriceCollection: parser = ResponseParser(self.response) return PriceCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), PriceCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), PriceCollection) ) def get(self, price_id: str, includes=None) -> Price: @@ -44,19 +44,19 @@ def get(self, price_id: str, includes=None) -> Price: self.response = self.client.get_raw(f"/prices/{price_id}", params) parser = ResponseParser(self.response) - return Price.from_dict(parser.get_data()) + return Price.from_dict(parser.get_dict()) def create(self, operation: CreatePrice) -> Price: self.response = self.client.post_raw("/prices", operation) parser = ResponseParser(self.response) - return Price.from_dict(parser.get_data()) + return Price.from_dict(parser.get_dict()) def update(self, price_id: str, operation: UpdatePrice) -> Price: self.response = self.client.patch_raw(f"/prices/{price_id}", operation) parser = ResponseParser(self.response) - return Price.from_dict(parser.get_data()) + return Price.from_dict(parser.get_dict()) def archive(self, price_id: str) -> Price: return self.update(price_id, UpdatePrice(status=Status.Archived)) diff --git a/paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py b/paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py index 45589642..19542a3d 100644 --- a/paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py +++ b/paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py @@ -17,4 +17,4 @@ def preview_prices(self, operation: PreviewPrice) -> PricePreview: self.response = self.client.post_raw("/pricing-preview", operation) parser = ResponseParser(self.response) - return PricePreview.from_dict(parser.get_data()) + return PricePreview.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/Products/Operations/ListProducts.py b/paddle_billing/Resources/Products/Operations/ListProducts.py index 5d5d246f..885d3dc3 100644 --- a/paddle_billing/Resources/Products/Operations/ListProducts.py +++ b/paddle_billing/Resources/Products/Operations/ListProducts.py @@ -13,12 +13,12 @@ class ListProducts(HasParameters): def __init__( self, pager: Pager | None = None, - includes: list[ProductIncludes] = None, - ids: list[str] = None, - types: list[CatalogType] = None, - product_ids: list[str] = None, - statuses: list[Status] = None, - tax_categories: list[TaxCategory] = None, + includes: list[ProductIncludes] | None = None, + ids: list[str] | None = None, + types: list[CatalogType] | None = None, + product_ids: list[str] | None = None, + statuses: list[Status] | None = None, + tax_categories: list[TaxCategory] | None = None, ): self.pager = pager self.includes = includes if includes is not None else [] diff --git a/paddle_billing/Resources/Products/ProductsClient.py b/paddle_billing/Resources/Products/ProductsClient.py index b210c6fe..fc356711 100644 --- a/paddle_billing/Resources/Products/ProductsClient.py +++ b/paddle_billing/Resources/Products/ProductsClient.py @@ -19,7 +19,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListProducts = None) -> ProductCollection: + def list(self, operation: ListProducts | None = None) -> ProductCollection: if operation is None: operation = ListProducts() @@ -27,7 +27,7 @@ def list(self, operation: ListProducts = None) -> ProductCollection: parser = ResponseParser(self.response) return ProductCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), ProductCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), ProductCollection) ) def get(self, product_id: str, includes=None) -> Product | Product: @@ -49,19 +49,19 @@ def get(self, product_id: str, includes=None) -> Product | Product: self.response = self.client.get_raw(f"/products/{product_id}", params) parser = ResponseParser(self.response) - return Product.from_dict(parser.get_data()) + return Product.from_dict(parser.get_dict()) def create(self, operation: CreateProduct) -> Product: self.response = self.client.post_raw("/products", operation) parser = ResponseParser(self.response) - return Product.from_dict(parser.get_data()) + return Product.from_dict(parser.get_dict()) def update(self, product_id: str, operation: UpdateProduct) -> Product: self.response = self.client.patch_raw(f"/products/{product_id}", operation) parser = ResponseParser(self.response) - return Product.from_dict(parser.get_data()) + return Product.from_dict(parser.get_dict()) def archive(self, product_id: str) -> Product: return self.update(product_id, UpdateProduct(status=Status.Archived)) diff --git a/paddle_billing/Resources/Reports/Operations/CreateReport.py b/paddle_billing/Resources/Reports/Operations/CreateReport.py index 5439b788..52906f87 100644 --- a/paddle_billing/Resources/Reports/Operations/CreateReport.py +++ b/paddle_billing/Resources/Reports/Operations/CreateReport.py @@ -1,5 +1,6 @@ from dataclasses import dataclass, field from abc import ABC, abstractmethod +from typing import Any from paddle_billing.Operation import Operation @@ -23,8 +24,8 @@ def __post_init__(self): raise InvalidArgumentException.array_contains_invalid_types("filters", allowed_type_names, invalid_items) - def to_json(self) -> dict: - parameters = {"type": self.type} + def to_json(self) -> dict[str, Any]: + parameters: dict[str, Any] = {"type": self.type} if self.filters is not None and self.filters != []: parameters.update({"filters": [filter_ for filter_ in self.filters]}) diff --git a/paddle_billing/Resources/Reports/Operations/ListReports.py b/paddle_billing/Resources/Reports/Operations/ListReports.py index 7203b95a..7c3bddf1 100644 --- a/paddle_billing/Resources/Reports/Operations/ListReports.py +++ b/paddle_billing/Resources/Reports/Operations/ListReports.py @@ -12,7 +12,7 @@ class ListReports(HasParameters): def __init__( self, pager: Pager | None = None, - statuses: list[ReportStatus] = None, + statuses: list[ReportStatus] | None = None, ): self.pager = pager self.statuses = statuses if statuses is not None else [] diff --git a/paddle_billing/Resources/Reports/ReportsClient.py b/paddle_billing/Resources/Reports/ReportsClient.py index 780ebd41..fa316a98 100644 --- a/paddle_billing/Resources/Reports/ReportsClient.py +++ b/paddle_billing/Resources/Reports/ReportsClient.py @@ -18,7 +18,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListReports = None) -> ReportCollection: + def list(self, operation: ListReports | None = None) -> ReportCollection: if operation is None: operation = ListReports() @@ -26,23 +26,23 @@ def list(self, operation: ListReports = None) -> ReportCollection: parser = ResponseParser(self.response) return ReportCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), ReportCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), ReportCollection) ) def get(self, report_id: str) -> Report: self.response = self.client.get_raw(f"/reports/{report_id}") parser = ResponseParser(self.response) - return Report.from_dict(parser.get_data()) + return Report.from_dict(parser.get_dict()) def get_report_csv(self, report_id: str) -> ReportCSV: self.response = self.client.get_raw(f"/reports/{report_id}/download-url") parser = ResponseParser(self.response) - return ReportCSV.from_dict(parser.get_data()) + return ReportCSV.from_dict(parser.get_dict()) def create(self, operation: Operation) -> Report: self.response = self.client.post_raw("/reports", operation) parser = ResponseParser(self.response) - return Report.from_dict(parser.get_data()) + return Report.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py b/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py index f240fe9a..ca272fce 100644 --- a/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py +++ b/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py @@ -7,7 +7,7 @@ class ListSimulationRunEvents(HasParameters): def __init__( self, pager: Pager | None = None, - ids: list[str] = None, + ids: list[str] | None = None, ): self.pager = pager self.ids = ids if ids is not None else [] diff --git a/paddle_billing/Resources/SimulationRunEvents/SimulationRunEventsClient.py b/paddle_billing/Resources/SimulationRunEvents/SimulationRunEventsClient.py index 93cc82f7..a1413aaa 100644 --- a/paddle_billing/Resources/SimulationRunEvents/SimulationRunEventsClient.py +++ b/paddle_billing/Resources/SimulationRunEvents/SimulationRunEventsClient.py @@ -16,7 +16,7 @@ def __init__(self, client: "Client"): self.response = None def list( - self, simulation_id: str, simulation_run_id: str, operation: ListSimulationRunEvents = None + self, simulation_id: str, simulation_run_id: str, operation: ListSimulationRunEvents | None = None ) -> SimulationRunEventCollection: if operation is None: operation = ListSimulationRunEvents() @@ -25,7 +25,7 @@ def list( parser = ResponseParser(self.response) return SimulationRunEventCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), SimulationRunEventCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), SimulationRunEventCollection) ) def get(self, simulation_id: str, simulation_run_id: str, simulation_event_id: str) -> SimulationRunEvent: @@ -34,7 +34,7 @@ def get(self, simulation_id: str, simulation_run_id: str, simulation_event_id: s ) parser = ResponseParser(self.response) - return SimulationRunEvent.from_dict(parser.get_data()) + return SimulationRunEvent.from_dict(parser.get_dict()) def replay(self, simulation_id: str, simulation_run_id: str, simulation_event_id: str) -> SimulationRunEvent: self.response = self.client.post_raw( @@ -42,4 +42,4 @@ def replay(self, simulation_id: str, simulation_run_id: str, simulation_event_id ) parser = ResponseParser(self.response) - return SimulationRunEvent.from_dict(parser.get_data()) + return SimulationRunEvent.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py b/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py index 631f5fdc..6f3703f3 100644 --- a/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py +++ b/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py @@ -7,7 +7,7 @@ class GetSimulationRun(HasParameters): def __init__( self, - includes: list[SimulationRunInclude] = None, + includes: list[SimulationRunInclude] | None = None, ): self.includes = includes if includes is not None else [] diff --git a/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py b/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py index 0486a9bf..ceeeb3e5 100644 --- a/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py +++ b/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py @@ -9,8 +9,8 @@ class ListSimulationRuns(HasParameters): def __init__( self, pager: Pager | None = None, - ids: list[str] = None, - includes: list[SimulationRunInclude] = None, + ids: list[str] | None = None, + includes: list[SimulationRunInclude] | None = None, ): self.pager = pager self.ids = ids if ids is not None else [] diff --git a/paddle_billing/Resources/SimulationRuns/SimulationRunsClient.py b/paddle_billing/Resources/SimulationRuns/SimulationRunsClient.py index 0a7c9606..dde6eccc 100644 --- a/paddle_billing/Resources/SimulationRuns/SimulationRunsClient.py +++ b/paddle_billing/Resources/SimulationRuns/SimulationRunsClient.py @@ -15,7 +15,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, simulation_id: str, operation: ListSimulationRuns = None) -> SimulationRunCollection: + def list(self, simulation_id: str, operation: ListSimulationRuns | None = None) -> SimulationRunCollection: if operation is None: operation = ListSimulationRuns() @@ -23,20 +23,22 @@ def list(self, simulation_id: str, operation: ListSimulationRuns = None) -> Simu parser = ResponseParser(self.response) return SimulationRunCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), SimulationRunCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), SimulationRunCollection) ) - def get(self, simulation_id: str, simulation_run_id: str, operation: GetSimulationRun = None) -> SimulationRun: + def get( + self, simulation_id: str, simulation_run_id: str, operation: GetSimulationRun | None = None + ) -> SimulationRun: if operation is None: operation = GetSimulationRun() self.response = self.client.get_raw(f"/simulations/{simulation_id}/runs/{simulation_run_id}", operation) parser = ResponseParser(self.response) - return SimulationRun.from_dict(parser.get_data()) + return SimulationRun.from_dict(parser.get_dict()) def create(self, simulation_id: str) -> SimulationRun: self.response = self.client.post_raw(f"/simulations/{simulation_id}/runs") parser = ResponseParser(self.response) - return SimulationRun.from_dict(parser.get_data()) + return SimulationRun.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/SimulationTypes/SimulationTypesClient.py b/paddle_billing/Resources/SimulationTypes/SimulationTypesClient.py index 65ada513..ff99a5c3 100644 --- a/paddle_billing/Resources/SimulationTypes/SimulationTypesClient.py +++ b/paddle_billing/Resources/SimulationTypes/SimulationTypesClient.py @@ -16,4 +16,4 @@ def list(self) -> SimulationTypeCollection: self.response = self.client.get_raw("/simulation-types") parser = ResponseParser(self.response) - return SimulationTypeCollection.from_list(parser.get_data()) + return SimulationTypeCollection.from_list(parser.get_list()) diff --git a/paddle_billing/Resources/Simulations/Operations/ListSimulations.py b/paddle_billing/Resources/Simulations/Operations/ListSimulations.py index eff47073..1e5ea637 100644 --- a/paddle_billing/Resources/Simulations/Operations/ListSimulations.py +++ b/paddle_billing/Resources/Simulations/Operations/ListSimulations.py @@ -12,9 +12,9 @@ class ListSimulations(HasParameters): def __init__( self, pager: Pager | None = None, - notification_setting_ids: list[str] = None, - ids: list[str] = None, - statuses: list[SimulationStatus] = None, + notification_setting_ids: list[str] | None = None, + ids: list[str] | None = None, + statuses: list[SimulationStatus] | None = None, ): self.pager = pager self.ids = ids if ids is not None else [] diff --git a/paddle_billing/Resources/Simulations/SimulationsClient.py b/paddle_billing/Resources/Simulations/SimulationsClient.py index ddc09d80..3e58d5ff 100644 --- a/paddle_billing/Resources/Simulations/SimulationsClient.py +++ b/paddle_billing/Resources/Simulations/SimulationsClient.py @@ -15,7 +15,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListSimulations = None) -> SimulationCollection: + def list(self, operation: ListSimulations | None = None) -> SimulationCollection: if operation is None: operation = ListSimulations() @@ -23,23 +23,23 @@ def list(self, operation: ListSimulations = None) -> SimulationCollection: parser = ResponseParser(self.response) return SimulationCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), SimulationCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), SimulationCollection) ) def get(self, simulation_id: str) -> Simulation: self.response = self.client.get_raw(f"/simulations/{simulation_id}") parser = ResponseParser(self.response) - return Simulation.from_dict(parser.get_data()) + return Simulation.from_dict(parser.get_dict()) def create(self, operation: CreateSimulation) -> Simulation: self.response = self.client.post_raw("/simulations", operation) parser = ResponseParser(self.response) - return Simulation.from_dict(parser.get_data()) + return Simulation.from_dict(parser.get_dict()) def update(self, simulation_id: str, operation: UpdateSimulation) -> Simulation: self.response = self.client.patch_raw(f"/simulations/{simulation_id}", operation) parser = ResponseParser(self.response) - return Simulation.from_dict(parser.get_data()) + return Simulation.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py b/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py index e81c63a9..53748a1f 100644 --- a/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py +++ b/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py @@ -13,13 +13,13 @@ class ListSubscriptions(HasParameters): def __init__( self, pager: Pager | None = None, - address_ids: list[str] = None, + address_ids: list[str] | None = None, collection_mode: CollectionMode | None = None, - customer_ids: list[str] = None, - ids: list[str] = None, - price_ids: list[str] = None, - scheduled_change_actions: list[SubscriptionScheduledChangeAction] = None, - statuses: list[SubscriptionStatus] = None, + customer_ids: list[str] | None = None, + ids: list[str] | None = None, + price_ids: list[str] | None = None, + scheduled_change_actions: list[SubscriptionScheduledChangeAction] | None = None, + statuses: list[SubscriptionStatus] | None = None, ): self.pager = pager self.collection_mode = collection_mode diff --git a/paddle_billing/Resources/Subscriptions/SubscriptionsClient.py b/paddle_billing/Resources/Subscriptions/SubscriptionsClient.py index d9e7b5d7..867a47b1 100644 --- a/paddle_billing/Resources/Subscriptions/SubscriptionsClient.py +++ b/paddle_billing/Resources/Subscriptions/SubscriptionsClient.py @@ -30,7 +30,7 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListSubscriptions = None) -> SubscriptionCollection: + def list(self, operation: ListSubscriptions | None = None) -> SubscriptionCollection: if operation is None: operation = ListSubscriptions() @@ -38,7 +38,7 @@ def list(self, operation: ListSubscriptions = None) -> SubscriptionCollection: parser = ResponseParser(self.response) return SubscriptionCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), SubscriptionCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), SubscriptionCollection) ) def get(self, subscription_id: str, includes=None) -> Subscription: @@ -55,58 +55,58 @@ def get(self, subscription_id: str, includes=None) -> Subscription: self.response = self.client.get_raw(f"/subscriptions/{subscription_id}", params) parser = ResponseParser(self.response) - return Subscription.from_dict(parser.get_data()) + return Subscription.from_dict(parser.get_dict()) def update(self, subscription_id: str, operation: UpdateSubscription) -> Subscription: self.response = self.client.patch_raw(f"/subscriptions/{subscription_id}", operation) parser = ResponseParser(self.response) - return Subscription.from_dict(parser.get_data()) + return Subscription.from_dict(parser.get_dict()) def pause(self, subscription_id: str, operation: PauseSubscription) -> Subscription: self.response = self.client.post_raw(f"/subscriptions/{subscription_id}/pause", operation) parser = ResponseParser(self.response) - return Subscription.from_dict(parser.get_data()) + return Subscription.from_dict(parser.get_dict()) def resume(self, subscription_id: str, operation: ResumeSubscription) -> Subscription: self.response = self.client.post_raw(f"/subscriptions/{subscription_id}/resume", operation) parser = ResponseParser(self.response) - return Subscription.from_dict(parser.get_data()) + return Subscription.from_dict(parser.get_dict()) def cancel(self, subscription_id: str, operation: CancelSubscription) -> Subscription: self.response = self.client.post_raw(f"/subscriptions/{subscription_id}/cancel", operation) parser = ResponseParser(self.response) - return Subscription.from_dict(parser.get_data()) + return Subscription.from_dict(parser.get_dict()) def get_payment_method_change_transaction(self, subscription_id: str) -> Transaction: self.response = self.client.get_raw(f"/subscriptions/{subscription_id}/update-payment-method-transaction") parser = ResponseParser(self.response) - return Transaction.from_dict(parser.get_data()) + return Transaction.from_dict(parser.get_dict()) def activate(self, subscription_id: str) -> Subscription: self.response = self.client.post_raw(f"/subscriptions/{subscription_id}/activate") parser = ResponseParser(self.response) - return Subscription.from_dict(parser.get_data()) + return Subscription.from_dict(parser.get_dict()) def create_one_time_charge(self, subscription_id: str, operation: CreateOneTimeCharge) -> Subscription: self.response = self.client.post_raw(f"/subscriptions/{subscription_id}/charge", operation) parser = ResponseParser(self.response) - return Subscription.from_dict(parser.get_data()) + return Subscription.from_dict(parser.get_dict()) def preview_update(self, subscription_id: str, operation: PreviewUpdateSubscription) -> SubscriptionPreview: self.response = self.client.patch_raw(f"/subscriptions/{subscription_id}/preview", operation) parser = ResponseParser(self.response) - return SubscriptionPreview.from_dict(parser.get_data()) + return SubscriptionPreview.from_dict(parser.get_dict()) def preview_one_time_charge(self, subscription_id: str, operation: PreviewOneTimeCharge) -> SubscriptionPreview: self.response = self.client.post_raw(f"/subscriptions/{subscription_id}/charge/preview", operation) parser = ResponseParser(self.response) - return SubscriptionPreview.from_dict(parser.get_data()) + return SubscriptionPreview.from_dict(parser.get_dict()) diff --git a/paddle_billing/Resources/Transactions/Operations/ListTransactions.py b/paddle_billing/Resources/Transactions/Operations/ListTransactions.py index 90c5e513..d5d040e2 100644 --- a/paddle_billing/Resources/Transactions/Operations/ListTransactions.py +++ b/paddle_billing/Resources/Transactions/Operations/ListTransactions.py @@ -18,13 +18,13 @@ def __init__( collection_mode: CollectionMode | None = None, created_at: DateComparison | None = None, updated_at: DateComparison | None = None, - customer_ids: list[str] = None, - ids: list[str] = None, - includes: list[Includes] = None, - invoice_numbers: list[str] = None, - statuses: list[TransactionStatus] = None, - subscription_ids: list[str] = None, - origins: list[Origin] = None, + customer_ids: list[str] | None = None, + ids: list[str] | None = None, + includes: list[Includes] | None = None, + invoice_numbers: list[str] | None = None, + statuses: list[TransactionStatus] | None = None, + subscription_ids: list[str] | None = None, + origins: list[Origin] | None = None, ): self.pager = pager self.billed_at = billed_at diff --git a/paddle_billing/Resources/Transactions/TransactionsClient.py b/paddle_billing/Resources/Transactions/TransactionsClient.py index fa67072f..fec9d66c 100644 --- a/paddle_billing/Resources/Transactions/TransactionsClient.py +++ b/paddle_billing/Resources/Transactions/TransactionsClient.py @@ -31,15 +31,14 @@ def __init__(self, client: "Client"): self.client = client self.response = None - def list(self, operation: ListTransactions = None) -> TransactionCollection: + def list(self, operation: ListTransactions | None = None) -> TransactionCollection: if operation is None: operation = ListTransactions() self.response = self.client.get_raw("/transactions", operation.get_parameters()) parser = ResponseParser(self.response) - return TransactionCollection.from_list( - parser.get_data(), Paginator(self.client, parser.get_pagination(), TransactionCollection) + parser.get_list(), Paginator(self.client, parser.get_pagination(), TransactionCollection) ) def get(self, transaction_id: str, includes=None) -> Transaction: @@ -55,8 +54,7 @@ def get(self, transaction_id: str, includes=None) -> Transaction: params = {"include": ",".join(include.value for include in includes)} if includes else {} self.response = self.client.get_raw(f"/transactions/{transaction_id}", params) parser = ResponseParser(self.response) - - return Transaction.from_dict(parser.get_data()) + return Transaction.from_dict(parser.get_dict()) def create(self, operation: CreateTransaction, includes=None) -> Transaction: if includes is None: @@ -72,13 +70,13 @@ def create(self, operation: CreateTransaction, includes=None) -> Transaction: self.response = self.client.post_raw("/transactions", operation, params) parser = ResponseParser(self.response) - return Transaction.from_dict(parser.get_data()) + return Transaction.from_dict(parser.get_dict()) def update(self, transaction_id: str, operation: UpdateTransaction) -> Transaction: self.response = self.client.patch_raw(f"/transactions/{transaction_id}", operation) parser = ResponseParser(self.response) - return Transaction.from_dict(parser.get_data()) + return Transaction.from_dict(parser.get_dict()) def preview( self, @@ -89,16 +87,16 @@ def preview( self.response = self.client.post_raw("/transactions/preview", operation) parser = ResponseParser(self.response) - return TransactionPreview.from_dict(parser.get_data()) + return TransactionPreview.from_dict(parser.get_dict()) - def get_invoice_pdf(self, transaction_id: str, operation: GetTransactionInvoice = None) -> TransactionData: + def get_invoice_pdf(self, transaction_id: str, operation: GetTransactionInvoice | None = None) -> TransactionData: self.response = self.client.get_raw(f"/transactions/{transaction_id}/invoice", operation) parser = ResponseParser(self.response) - return TransactionData.from_dict(parser.get_data()) + return TransactionData.from_dict(parser.get_dict()) def revise(self, transaction_id: str, operation: ReviseTransaction) -> Transaction: self.response = self.client.post_raw(f"/transactions/{transaction_id}/revise", operation) parser = ResponseParser(self.response) - return Transaction.from_dict(parser.get_data()) + return Transaction.from_dict(parser.get_dict()) diff --git a/paddle_billing/ResponseParser.py b/paddle_billing/ResponseParser.py index 831da6c0..1812bdad 100644 --- a/paddle_billing/ResponseParser.py +++ b/paddle_billing/ResponseParser.py @@ -1,5 +1,6 @@ import json from requests import Response +from typing import cast, Any from paddle_billing.Entities.Shared import Pagination @@ -23,9 +24,17 @@ def __init__(self, response: Response): if self.body and "error" in self.body: self.error = self.parse_errors() - def get_data(self) -> list | dict: + def get_data(self) -> list[Any] | dict[str, Any]: return self.body.get("data", []) if self.body else [] + def get_list(self) -> list[Any]: + data = self.body.get("data", []) if self.body else [] + return data + + def get_dict(self) -> dict[str, Any]: + data = self.body.get("data", []) if self.body else [] + return data + def get_error(self) -> ApiError | None: return self.error @@ -34,10 +43,10 @@ def get_pagination(self) -> Pagination: pagination = meta.get("pagination", {}) if meta else {} return Pagination( - per_page=pagination.get("per_page"), - next=pagination.get("next"), - has_more=pagination.get("has_more"), - estimated_total=pagination.get("estimated_total"), + per_page=cast(int, pagination.get("per_page")), + next=cast(str, pagination.get("next")), + has_more=cast(bool, pagination.get("has_more")), + estimated_total=cast(int, pagination.get("estimated_total")), ) def parse_errors(self) -> ApiError | None: diff --git a/pyrightconfig.json b/pyrightconfig.json index e58dce4f..97f4ea43 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -1,11 +1,6 @@ { "typeCheckingMode": "basic", - // "reportGeneralTypeIssues": false, - "reportUnknownVariableType": false, - "reportUnknownMemberType": false, - "reportUntypedFunctionDecorator": false, - "reportMissingTypeStubs": false, - "reportArgumentType": false, + // "reportArgumentType": false, "reportAssignmentType": false, "reportAttributeAccessIssue": false, "reportOperatorIssue": false, From 046cfa7da7db41e7bca77a30d5fb3b080ff2c14f Mon Sep 17 00:00:00 2001 From: Gilbert Yoder Date: Fri, 16 May 2025 14:31:11 -0700 Subject: [PATCH 3/4] Lots of Generics --- paddle_billing/Client.py | 16 ++++++++++------ paddle_billing/Entities/Address.py | 3 ++- paddle_billing/Entities/Adjustment.py | 3 ++- paddle_billing/Entities/AdjustmentCreditNote.py | 3 ++- .../Adjustments/AdjustmentCustomerBalance.py | 3 ++- .../Entities/Adjustments/AdjustmentItem.py | 3 ++- .../Adjustments/AdjustmentTaxRatesUsed.py | 3 ++- .../Entities/Adjustments/AdjustmentTotals.py | 3 ++- paddle_billing/Entities/Business.py | 3 ++- .../Entities/Collections/AddressCollection.py | 3 ++- .../Entities/Collections/AdjustmentCollection.py | 3 ++- .../Entities/Collections/BusinessCollection.py | 3 ++- .../Collections/CreditBalanceCollection.py | 3 ++- .../Entities/Collections/CustomerCollection.py | 3 ++- .../Entities/Collections/DiscountCollection.py | 3 ++- .../Entities/Collections/EventCollection.py | 3 ++- .../Entities/Collections/EventTypeCollection.py | 3 ++- .../Collections/NotificationCollection.py | 3 ++- .../Collections/NotificationLogCollection.py | 5 ++++- .../Collections/NotificationSettingCollection.py | 5 ++++- paddle_billing/Entities/Collections/Paginator.py | 2 +- .../Collections/PaymentMethodCollection.py | 3 ++- .../Entities/Collections/PriceCollection.py | 3 ++- .../Entities/Collections/ProductCollection.py | 3 ++- .../Entities/Collections/ReportCollection.py | 3 ++- .../Entities/Collections/SimulationCollection.py | 3 ++- .../Collections/SimulationRunCollection.py | 3 ++- .../Collections/SimulationRunEventCollection.py | 5 ++++- .../Collections/SimulationTypeCollection.py | 5 ++++- .../Collections/SubscriptionCollection.py | 3 ++- .../Collections/SubscriptionPreviewCollection.py | 3 ++- .../Collections/TransactionCollection.py | 2 +- .../Collections/TransactionPreviewCollection.py | 5 ++++- .../Collections/TransactionsDataCollection.py | 5 ++++- paddle_billing/Entities/CreditBalance.py | 3 ++- paddle_billing/Entities/Customer.py | 3 ++- paddle_billing/Entities/CustomerAuthToken.py | 3 ++- paddle_billing/Entities/CustomerPortalSession.py | 3 ++- .../CustomerPortalSessionGeneralUrl.py | 3 ++- .../CustomerPortalSessionSubscriptionUrl.py | 3 ++- .../CustomerPortalSessionUrls.py | 3 ++- paddle_billing/Entities/Discount.py | 3 ++- paddle_billing/Entities/Entity.py | 3 ++- paddle_billing/Entities/Event.py | 3 ++- paddle_billing/Entities/EventType.py | 5 +++-- paddle_billing/Entities/IPAddresses.py | 3 ++- paddle_billing/Entities/Notification.py | 3 ++- paddle_billing/Entities/NotificationLog.py | 3 ++- paddle_billing/Entities/NotificationSetting.py | 3 ++- .../Entities/Notifications/NotificationEvent.py | 3 ++- .../Entities/Notifications/NotificationPayout.py | 3 ++- paddle_billing/Entities/PaymentMethod.py | 3 ++- paddle_billing/Entities/Price.py | 3 ++- paddle_billing/Entities/PricePreview.py | 3 ++- .../PricingPreviews/PricePreviewDetails.py | 3 ++- .../PricingPreviews/PricePreviewDiscounts.py | 3 ++- .../Entities/PricingPreviews/PricePreviewItem.py | 3 ++- .../PricingPreviews/PricePreviewLineItem.py | 3 ++- .../PricePreviewTotalsFormatted.py | 3 ++- .../PricePreviewUnitTotalsFormatted.py | 3 ++- paddle_billing/Entities/Product.py | 3 ++- paddle_billing/Entities/Report.py | 3 ++- paddle_billing/Entities/ReportCSV.py | 3 ++- paddle_billing/Entities/Reports/ReportFilter.py | 5 +++-- paddle_billing/Entities/Shared/AddressPreview.py | 3 ++- .../Entities/Shared/AdjustmentItemTotals.py | 3 ++- .../Entities/Shared/AdjustmentTotals.py | 3 ++- paddle_billing/Entities/Shared/BillingDetails.py | 3 ++- paddle_billing/Entities/Shared/Card.py | 3 ++- paddle_billing/Entities/Shared/ChargebackFee.py | 3 ++- paddle_billing/Entities/Shared/Checkout.py | 3 ++- paddle_billing/Entities/Shared/Contacts.py | 3 ++- paddle_billing/Entities/Shared/Data.py | 2 +- paddle_billing/Entities/Shared/Duration.py | 3 ++- paddle_billing/Entities/Shared/ImportMeta.py | 3 ++- paddle_billing/Entities/Shared/MetaPaginated.py | 3 ++- paddle_billing/Entities/Shared/MethodDetails.py | 3 ++- paddle_billing/Entities/Shared/Money.py | 3 ++- paddle_billing/Entities/Shared/Original.py | 3 ++- paddle_billing/Entities/Shared/Pagination.py | 3 ++- .../Entities/Shared/PayoutTotalsAdjustment.py | 3 ++- paddle_billing/Entities/Shared/Paypal.py | 3 ++- paddle_billing/Entities/Shared/PriceQuantity.py | 3 ++- paddle_billing/Entities/Shared/Proration.py | 3 ++- paddle_billing/Entities/Shared/TaxRatesUsed.py | 3 ++- paddle_billing/Entities/Shared/TimePeriod.py | 3 ++- paddle_billing/Entities/Shared/Totals.py | 3 ++- .../Entities/Shared/TransactionDetailsPreview.py | 3 ++- .../Shared/TransactionLineItemPreview.py | 3 ++- .../Entities/Shared/TransactionPaymentAttempt.py | 3 ++- .../Entities/Shared/TransactionPayoutTotals.py | 3 ++- .../Shared/TransactionPayoutTotalsAdjusted.py | 3 ++- .../Entities/Shared/TransactionPreviewProduct.py | 3 ++- .../Entities/Shared/TransactionTotals.py | 3 ++- .../Entities/Shared/TransactionTotalsAdjusted.py | 3 ++- .../Entities/Shared/UnitPriceOverride.py | 3 ++- paddle_billing/Entities/Shared/UnitTotals.py | 3 ++- paddle_billing/Entities/Simulation.py | 3 ++- paddle_billing/Entities/SimulationRun.py | 3 ++- paddle_billing/Entities/SimulationRunEvent.py | 3 ++- .../SimulationRunEventRequest.py | 3 ++- .../SimulationRunEventResponse.py | 3 ++- paddle_billing/Entities/SimulationType.py | 3 ++- paddle_billing/Entities/Subscription.py | 3 ++- paddle_billing/Entities/SubscriptionPreview.py | 5 +++-- .../Subscriptions/SubscriptionAdjustmentItem.py | 3 ++- .../SubscriptionAdjustmentPreview.py | 3 ++- .../Entities/Subscriptions/SubscriptionCharge.py | 3 ++- .../Entities/Subscriptions/SubscriptionCredit.py | 3 ++- .../Subscriptions/SubscriptionDiscount.py | 3 ++- .../Entities/Subscriptions/SubscriptionItem.py | 3 ++- .../Subscriptions/SubscriptionManagementUrls.py | 3 ++- .../Subscriptions/SubscriptionNextTransaction.py | 3 ++- ...bscriptionPreviewSubscriptionUpdateSummary.py | 3 ++- .../Entities/Subscriptions/SubscriptionResult.py | 3 ++- .../Subscriptions/SubscriptionScheduledChange.py | 3 ++- paddle_billing/Entities/TransactionData.py | 3 ++- paddle_billing/Entities/TransactionPreview.py | 3 ++- .../Transactions/TransactionAdjustmentsTotals.py | 3 ++- .../Transactions/TransactionBreakdown.py | 3 ++- .../Entities/Transactions/TransactionDetails.py | 3 ++- .../Entities/Transactions/TransactionItem.py | 3 ++- .../TransactionItemPreviewWithPrice.py | 3 ++- .../Entities/Transactions/TransactionLineItem.py | 3 ++- .../Transactions/TransactionPreviewPrice.py | 5 +++-- .../SdkExceptions/InvalidArgumentException.py | 4 +++- paddle_billing/FiltersNone.py | 5 ++++- paddle_billing/FiltersUndefined.py | 3 ++- paddle_billing/HasParameters.py | 2 +- paddle_billing/Notifications/Entities/Address.py | 3 ++- .../Notifications/Entities/Adjustment.py | 3 ++- .../Entities/Adjustments/AdjustmentItem.py | 3 ++- .../Adjustments/AdjustmentTaxRatesUsed.py | 3 ++- .../Entities/Adjustments/AdjustmentTotals.py | 3 ++- .../Notifications/Entities/Business.py | 3 ++- .../Entities/Businesses/BusinessesContacts.py | 3 ++- .../Notifications/Entities/Customer.py | 3 ++- .../Notifications/Entities/Discount.py | 5 +++-- paddle_billing/Notifications/Entities/Entity.py | 9 +++++---- .../Notifications/Entities/EntityDict.py | 4 ++-- .../Notifications/Entities/PaymentMethod.py | 3 ++- .../Entities/PaymentMethodDeleted.py | 3 ++- paddle_billing/Notifications/Entities/Payout.py | 3 ++- paddle_billing/Notifications/Entities/Price.py | 3 ++- paddle_billing/Notifications/Entities/Product.py | 3 ++- paddle_billing/Notifications/Entities/Report.py | 3 ++- .../Entities/Reports/ReportFilter.py | 5 +++-- .../Entities/Shared/AddressPreview.py | 3 ++- .../Entities/Shared/AdjustmentItemTotals.py | 3 ++- .../Entities/Shared/AdjustmentTotals.py | 3 ++- .../Entities/Shared/BillingDetails.py | 3 ++- .../Notifications/Entities/Shared/Card.py | 3 ++- .../Entities/Shared/ChargebackFee.py | 3 ++- .../Notifications/Entities/Shared/Checkout.py | 3 ++- .../Notifications/Entities/Shared/CustomData.py | 3 ++- .../Notifications/Entities/Shared/Data.py | 2 +- .../Notifications/Entities/Shared/Duration.py | 3 ++- .../Notifications/Entities/Shared/ImportMeta.py | 3 ++- .../Entities/Shared/MethodDetails.py | 3 ++- .../Notifications/Entities/Shared/Money.py | 3 ++- .../Notifications/Entities/Shared/Original.py | 3 ++- .../Entities/Shared/PayoutTotalsAdjustment.py | 3 ++- .../Notifications/Entities/Shared/Paypal.py | 3 ++- .../Entities/Shared/PriceQuantity.py | 3 ++- .../Notifications/Entities/Shared/Proration.py | 3 ++- .../Entities/Shared/TaxRatesUsed.py | 3 ++- .../Notifications/Entities/Shared/TimePeriod.py | 3 ++- .../Notifications/Entities/Shared/Totals.py | 3 ++- .../Entities/Shared/TransactionPaymentAttempt.py | 3 ++- .../Entities/Shared/TransactionPayoutTotals.py | 3 ++- .../Shared/TransactionPayoutTotalsAdjusted.py | 3 ++- .../Entities/Shared/TransactionTotals.py | 3 ++- .../Entities/Shared/TransactionTotalsAdjusted.py | 3 ++- .../Entities/Shared/UnitPriceOverride.py | 3 ++- .../Notifications/Entities/Shared/UnitTotals.py | 3 ++- .../Entities/Simulations/Address.py | 3 ++- .../Entities/Simulations/Adjustment.py | 3 ++- .../Entities/Simulations/Business.py | 3 ++- .../Entities/Simulations/Customer.py | 3 ++- .../Entities/Simulations/Discount.py | 5 +++-- .../Entities/Simulations/PaymentMethod.py | 3 ++- .../Entities/Simulations/PaymentMethodDeleted.py | 3 ++- .../Notifications/Entities/Simulations/Payout.py | 3 ++- .../Notifications/Entities/Simulations/Price.py | 3 ++- .../Entities/Simulations/Product.py | 3 ++- .../Notifications/Entities/Simulations/Report.py | 3 ++- .../Entities/Simulations/SimulationEntity.py | 5 +++-- .../Entities/Simulations/Subscription.py | 3 ++- .../Entities/Simulations/SubscriptionCreated.py | 3 ++- .../Entities/Simulations/Transaction.py | 3 ++- .../Notifications/Entities/Subscription.py | 3 ++- .../Entities/SubscriptionCreated.py | 3 ++- .../Subscriptions/SubscriptionAdjustmentItem.py | 3 ++- .../Entities/Subscriptions/SubscriptionCharge.py | 3 ++- .../Entities/Subscriptions/SubscriptionCredit.py | 3 ++- .../Subscriptions/SubscriptionDiscount.py | 3 ++- .../Entities/Subscriptions/SubscriptionItem.py | 3 ++- .../Entities/Subscriptions/SubscriptionPrice.py | 3 ++- .../Subscriptions/SubscriptionScheduledChange.py | 3 ++- .../Notifications/Entities/Transaction.py | 3 ++- .../Transactions/TransactionAdjustmentsTotals.py | 3 ++- .../Transactions/TransactionBreakdown.py | 3 ++- .../Entities/Transactions/TransactionDetails.py | 3 ++- .../Entities/Transactions/TransactionItem.py | 3 ++- .../Entities/Transactions/TransactionLineItem.py | 3 ++- .../Notifications/Entities/UndefinedEntity.py | 5 +++-- paddle_billing/Notifications/PaddleSignature.py | 6 ++++-- paddle_billing/Notifications/Verifier.py | 3 +++ paddle_billing/PaddleStrEnum.py | 9 ++++++--- paddle_billing/RecursivelyRemoveKey.py | 5 ++++- .../Addresses/Operations/ListAddresses.py | 2 +- .../Adjustments/Operations/GetCreditNote.py | 2 +- .../Adjustments/Operations/ListAdjustments.py | 12 ++++++------ .../Businesses/Operations/ListBusinesses.py | 6 +++--- .../Customers/Operations/ListCreditBalances.py | 4 ++-- .../Customers/Operations/ListCustomers.py | 8 ++++---- .../Discounts/Operations/ListDiscounts.py | 8 ++++---- .../Resources/Events/Operations/ListEvents.py | 2 +- .../Operations/ListNotificationLogs.py | 2 +- .../Operations/ListNotificationSettings.py | 2 +- .../Operations/ListNotifications.py | 2 +- .../Operations/ListPaymentMethods.py | 2 +- .../Resources/Prices/Operations/ListPrices.py | 2 +- .../Products/Operations/ListProducts.py | 2 +- .../Operations/CreateAdjustmentsReport.py | 4 +++- .../Reports/Operations/CreateDiscountsReport.py | 2 +- .../Operations/CreateProductsAndPricesReport.py | 4 +++- .../Resources/Reports/Operations/CreateReport.py | 2 +- .../Operations/CreateTransactionsReport.py | 6 +++++- .../Reports/Operations/Filters/Filter.py | 2 +- .../Resources/Reports/Operations/ListReports.py | 2 +- .../Resources/Shared/Operations/List/Pager.py | 2 +- .../Operations/ListSimulationRunEvents.py | 2 +- .../Operations/GetSimulationRun.py | 2 +- .../Operations/ListSimulationRuns.py | 2 +- .../Simulations/Operations/ListSimulations.py | 2 +- .../Operations/ListSubscriptions.py | 4 ++-- .../Operations/GetTransactionInvoice.py | 2 +- .../Transactions/Operations/ListTransactions.py | 4 ++-- pyrightconfig.json | 2 +- tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py | 2 +- 241 files changed, 514 insertions(+), 277 deletions(-) diff --git a/paddle_billing/Client.py b/paddle_billing/Client.py index cacfc74d..513e161e 100644 --- a/paddle_billing/Client.py +++ b/paddle_billing/Client.py @@ -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 @@ -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 "{}" @@ -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 @@ -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() @@ -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 = 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: diff --git a/paddle_billing/Entities/Address.py b/paddle_billing/Entities/Address.py index 5b0425b2..2d56591d 100644 --- a/paddle_billing/Entities/Address.py +++ b/paddle_billing/Entities/Address.py @@ -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 @@ -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"], diff --git a/paddle_billing/Entities/Adjustment.py b/paddle_billing/Entities/Adjustment.py index f88c063b..420ce167 100644 --- a/paddle_billing/Entities/Adjustment.py +++ b/paddle_billing/Entities/Adjustment.py @@ -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 @@ -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"]), diff --git a/paddle_billing/Entities/AdjustmentCreditNote.py b/paddle_billing/Entities/AdjustmentCreditNote.py index 618c9b78..c335f188 100644 --- a/paddle_billing/Entities/AdjustmentCreditNote.py +++ b/paddle_billing/Entities/AdjustmentCreditNote.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity @@ -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"]) diff --git a/paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py b/paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py index 179127fd..428999bc 100644 --- a/paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py +++ b/paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -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"], diff --git a/paddle_billing/Entities/Adjustments/AdjustmentItem.py b/paddle_billing/Entities/Adjustments/AdjustmentItem.py index 068ba165..e21b0459 100644 --- a/paddle_billing/Entities/Adjustments/AdjustmentItem.py +++ b/paddle_billing/Entities/Adjustments/AdjustmentItem.py @@ -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 @@ -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"], diff --git a/paddle_billing/Entities/Adjustments/AdjustmentTaxRatesUsed.py b/paddle_billing/Entities/Adjustments/AdjustmentTaxRatesUsed.py index 8cb92330..2fd95e8a 100644 --- a/paddle_billing/Entities/Adjustments/AdjustmentTaxRatesUsed.py +++ b/paddle_billing/Entities/Adjustments/AdjustmentTaxRatesUsed.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Adjustments.AdjustmentTotals import AdjustmentTotals @@ -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"]), diff --git a/paddle_billing/Entities/Adjustments/AdjustmentTotals.py b/paddle_billing/Entities/Adjustments/AdjustmentTotals.py index 658b34d5..ddf1aff2 100644 --- a/paddle_billing/Entities/Adjustments/AdjustmentTotals.py +++ b/paddle_billing/Entities/Adjustments/AdjustmentTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -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"], diff --git a/paddle_billing/Entities/Business.py b/paddle_billing/Entities/Business.py index e100ead6..0260dcd9 100644 --- a/paddle_billing/Entities/Business.py +++ b/paddle_billing/Entities/Business.py @@ -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 @@ -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"], diff --git a/paddle_billing/Entities/Collections/AddressCollection.py b/paddle_billing/Entities/Collections/AddressCollection.py index ed149487..15c8d5dd 100644 --- a/paddle_billing/Entities/Collections/AddressCollection.py +++ b/paddle_billing/Entities/Collections/AddressCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/AdjustmentCollection.py b/paddle_billing/Entities/Collections/AdjustmentCollection.py index 830f7b8d..ceafca62 100644 --- a/paddle_billing/Entities/Collections/AdjustmentCollection.py +++ b/paddle_billing/Entities/Collections/AdjustmentCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/BusinessCollection.py b/paddle_billing/Entities/Collections/BusinessCollection.py index 9a2602f2..755c323e 100644 --- a/paddle_billing/Entities/Collections/BusinessCollection.py +++ b/paddle_billing/Entities/Collections/BusinessCollection.py @@ -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 @@ -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] diff --git a/paddle_billing/Entities/Collections/CreditBalanceCollection.py b/paddle_billing/Entities/Collections/CreditBalanceCollection.py index 2f47828f..bf6c15f6 100644 --- a/paddle_billing/Entities/Collections/CreditBalanceCollection.py +++ b/paddle_billing/Entities/Collections/CreditBalanceCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/CustomerCollection.py b/paddle_billing/Entities/Collections/CustomerCollection.py index 7dea4a81..fd4c8477 100644 --- a/paddle_billing/Entities/Collections/CustomerCollection.py +++ b/paddle_billing/Entities/Collections/CustomerCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/DiscountCollection.py b/paddle_billing/Entities/Collections/DiscountCollection.py index 55d404e1..9c512e12 100644 --- a/paddle_billing/Entities/Collections/DiscountCollection.py +++ b/paddle_billing/Entities/Collections/DiscountCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/EventCollection.py b/paddle_billing/Entities/Collections/EventCollection.py index b275da56..0bd28d60 100644 --- a/paddle_billing/Entities/Collections/EventCollection.py +++ b/paddle_billing/Entities/Collections/EventCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/EventTypeCollection.py b/paddle_billing/Entities/Collections/EventTypeCollection.py index 2d04f621..20ed1701 100644 --- a/paddle_billing/Entities/Collections/EventTypeCollection.py +++ b/paddle_billing/Entities/Collections/EventTypeCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/NotificationCollection.py b/paddle_billing/Entities/Collections/NotificationCollection.py index 2e503e8e..15f857bc 100644 --- a/paddle_billing/Entities/Collections/NotificationCollection.py +++ b/paddle_billing/Entities/Collections/NotificationCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/NotificationLogCollection.py b/paddle_billing/Entities/Collections/NotificationLogCollection.py index d4da4ca3..ada445dc 100644 --- a/paddle_billing/Entities/Collections/NotificationLogCollection.py +++ b/paddle_billing/Entities/Collections/NotificationLogCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/NotificationSettingCollection.py b/paddle_billing/Entities/Collections/NotificationSettingCollection.py index 05131347..0f07b390 100644 --- a/paddle_billing/Entities/Collections/NotificationSettingCollection.py +++ b/paddle_billing/Entities/Collections/NotificationSettingCollection.py @@ -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 @@ -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) diff --git a/paddle_billing/Entities/Collections/Paginator.py b/paddle_billing/Entities/Collections/Paginator.py index e27641fd..7d2e8e6b 100644 --- a/paddle_billing/Entities/Collections/Paginator.py +++ b/paddle_billing/Entities/Collections/Paginator.py @@ -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) diff --git a/paddle_billing/Entities/Collections/PaymentMethodCollection.py b/paddle_billing/Entities/Collections/PaymentMethodCollection.py index 1c739d64..06f14fb7 100644 --- a/paddle_billing/Entities/Collections/PaymentMethodCollection.py +++ b/paddle_billing/Entities/Collections/PaymentMethodCollection.py @@ -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 @@ -7,7 +8,7 @@ class PaymentMethodCollection(Collection[PaymentMethod]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> PaymentMethodCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> PaymentMethodCollection: items: list[PaymentMethod] = [PaymentMethod.from_dict(item) for item in items_data] return PaymentMethodCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/PriceCollection.py b/paddle_billing/Entities/Collections/PriceCollection.py index d6e53d13..15bf951c 100644 --- a/paddle_billing/Entities/Collections/PriceCollection.py +++ b/paddle_billing/Entities/Collections/PriceCollection.py @@ -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 @@ -7,7 +8,7 @@ class PriceCollection(Collection[Price]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> PriceCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> PriceCollection: items: list[Price] = [Price.from_dict(item) for item in items_data] return PriceCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/ProductCollection.py b/paddle_billing/Entities/Collections/ProductCollection.py index 1051fdd9..ec9d3983 100644 --- a/paddle_billing/Entities/Collections/ProductCollection.py +++ b/paddle_billing/Entities/Collections/ProductCollection.py @@ -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 @@ -7,7 +8,7 @@ class ProductCollection(Collection[Product]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> ProductCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> ProductCollection: items: list[Product] = [Product.from_dict(item) for item in items_data] return ProductCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/ReportCollection.py b/paddle_billing/Entities/Collections/ReportCollection.py index d3ed641b..1bd48306 100644 --- a/paddle_billing/Entities/Collections/ReportCollection.py +++ b/paddle_billing/Entities/Collections/ReportCollection.py @@ -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 @@ -7,7 +8,7 @@ class ReportCollection(Collection[Report]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> ReportCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> ReportCollection: items: list[Report] = [Report.from_dict(item) for item in items_data] return ReportCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/SimulationCollection.py b/paddle_billing/Entities/Collections/SimulationCollection.py index e4b07d33..3791c5f7 100644 --- a/paddle_billing/Entities/Collections/SimulationCollection.py +++ b/paddle_billing/Entities/Collections/SimulationCollection.py @@ -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 @@ -7,7 +8,7 @@ class SimulationCollection(Collection[Simulation]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> SimulationCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> SimulationCollection: items: list[Simulation] = [Simulation.from_dict(item) for item in items_data] return SimulationCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/SimulationRunCollection.py b/paddle_billing/Entities/Collections/SimulationRunCollection.py index 20d35412..c38fce85 100644 --- a/paddle_billing/Entities/Collections/SimulationRunCollection.py +++ b/paddle_billing/Entities/Collections/SimulationRunCollection.py @@ -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 @@ -7,7 +8,7 @@ class SimulationRunCollection(Collection[SimulationRun]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> SimulationRunCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> SimulationRunCollection: items: list[SimulationRun] = [SimulationRun.from_dict(item) for item in items_data] return SimulationRunCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/SimulationRunEventCollection.py b/paddle_billing/Entities/Collections/SimulationRunEventCollection.py index 25409ddb..5fc65294 100644 --- a/paddle_billing/Entities/Collections/SimulationRunEventCollection.py +++ b/paddle_billing/Entities/Collections/SimulationRunEventCollection.py @@ -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 @@ -7,7 +8,9 @@ class SimulationRunEventCollection(Collection[SimulationRunEvent]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> SimulationRunEventCollection: + def from_list( + cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None + ) -> SimulationRunEventCollection: items: list[SimulationRunEvent] = [SimulationRunEvent.from_dict(item) for item in items_data] return SimulationRunEventCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/SimulationTypeCollection.py b/paddle_billing/Entities/Collections/SimulationTypeCollection.py index df818dbe..08da80db 100644 --- a/paddle_billing/Entities/Collections/SimulationTypeCollection.py +++ b/paddle_billing/Entities/Collections/SimulationTypeCollection.py @@ -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 @@ -7,7 +8,9 @@ class SimulationTypeCollection(Collection[SimulationType]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> SimulationTypeCollection: + def from_list( + cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None + ) -> SimulationTypeCollection: items: list[SimulationType] = [SimulationType.from_dict(item) for item in items_data] return SimulationTypeCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/SubscriptionCollection.py b/paddle_billing/Entities/Collections/SubscriptionCollection.py index 7f479d67..2a1c46b7 100644 --- a/paddle_billing/Entities/Collections/SubscriptionCollection.py +++ b/paddle_billing/Entities/Collections/SubscriptionCollection.py @@ -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 @@ -7,7 +8,7 @@ class SubscriptionCollection(Collection[Subscription]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> SubscriptionCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> SubscriptionCollection: items: list[Subscription] = [Subscription.from_dict(item) for item in items_data] return SubscriptionCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py b/paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py index c719f907..cca2436c 100644 --- a/paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py +++ b/paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py @@ -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 @@ -7,7 +8,7 @@ class SubscriptionPreviewCollection(Collection[SubscriptionPreview]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> SubscriptionPreviewCollection: + def from_list(cls, items_data: list[Any], paginator: Paginator | None = None) -> SubscriptionPreviewCollection: items: list[SubscriptionPreview] = [SubscriptionPreview.from_dict(item) for item in items_data] return SubscriptionPreviewCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/TransactionCollection.py b/paddle_billing/Entities/Collections/TransactionCollection.py index 0879c49a..c9448ef1 100644 --- a/paddle_billing/Entities/Collections/TransactionCollection.py +++ b/paddle_billing/Entities/Collections/TransactionCollection.py @@ -8,7 +8,7 @@ class TransactionCollection(Collection[Transaction]): @classmethod - def from_list(cls, items_data: list[Any], paginator: Paginator | None = None) -> TransactionCollection: + def from_list(cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None) -> TransactionCollection: items: list[Transaction] = [Transaction.from_dict(item) for item in items_data] return TransactionCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/TransactionPreviewCollection.py b/paddle_billing/Entities/Collections/TransactionPreviewCollection.py index 7fa47762..ee644982 100644 --- a/paddle_billing/Entities/Collections/TransactionPreviewCollection.py +++ b/paddle_billing/Entities/Collections/TransactionPreviewCollection.py @@ -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 @@ -7,7 +8,9 @@ class TransactionPreviewCollection(Collection[TransactionPreview]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> TransactionPreviewCollection: + def from_list( + cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None + ) -> TransactionPreviewCollection: items: list[TransactionPreview] = [TransactionPreview.from_dict(item) for item in items_data] return TransactionPreviewCollection(items, paginator) diff --git a/paddle_billing/Entities/Collections/TransactionsDataCollection.py b/paddle_billing/Entities/Collections/TransactionsDataCollection.py index eccb2252..e2c7648e 100644 --- a/paddle_billing/Entities/Collections/TransactionsDataCollection.py +++ b/paddle_billing/Entities/Collections/TransactionsDataCollection.py @@ -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 @@ -7,7 +8,9 @@ class TransactionsDataCollection(Collection[TransactionData]): @classmethod - def from_list(cls, items_data: list, paginator: Paginator | None = None) -> TransactionsDataCollection: + def from_list( + cls, items_data: list[dict[str, Any]], paginator: Paginator | None = None + ) -> TransactionsDataCollection: items: list[TransactionData] = [TransactionData.from_dict(item) for item in items_data] return TransactionsDataCollection(items, paginator) diff --git a/paddle_billing/Entities/CreditBalance.py b/paddle_billing/Entities/CreditBalance.py index 6d11ae0c..04fb5ecb 100644 --- a/paddle_billing/Entities/CreditBalance.py +++ b/paddle_billing/Entities/CreditBalance.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Shared import CurrencyCode @@ -13,7 +14,7 @@ class CreditBalance(Entity): balance: AdjustmentCustomerBalance @staticmethod - def from_dict(data: dict) -> CreditBalance: + def from_dict(data: dict[str, Any]) -> CreditBalance: return CreditBalance( customer_id=data["customer_id"], currency_code=CurrencyCode(data["currency_code"]), diff --git a/paddle_billing/Entities/Customer.py b/paddle_billing/Entities/Customer.py index 62c8959e..cce97898 100644 --- a/paddle_billing/Entities/Customer.py +++ b/paddle_billing/Entities/Customer.py @@ -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 CustomData, ImportMeta, Status @@ -20,7 +21,7 @@ class Customer(Entity): import_meta: ImportMeta | None = None @staticmethod - def from_dict(data: dict) -> Customer: + def from_dict(data: dict[str, Any]) -> Customer: return Customer( id=data["id"], name=data.get("name"), diff --git a/paddle_billing/Entities/CustomerAuthToken.py b/paddle_billing/Entities/CustomerAuthToken.py index 91170262..80c1eafc 100644 --- a/paddle_billing/Entities/CustomerAuthToken.py +++ b/paddle_billing/Entities/CustomerAuthToken.py @@ -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 @@ -11,7 +12,7 @@ class CustomerAuthToken(Entity): expires_at: datetime @staticmethod - def from_dict(data: dict) -> CustomerAuthToken: + def from_dict(data: dict[str, Any]) -> CustomerAuthToken: return CustomerAuthToken( customer_auth_token=data["customer_auth_token"], expires_at=datetime.fromisoformat(data["expires_at"]), diff --git a/paddle_billing/Entities/CustomerPortalSession.py b/paddle_billing/Entities/CustomerPortalSession.py index 26a68721..74a403f1 100644 --- a/paddle_billing/Entities/CustomerPortalSession.py +++ b/paddle_billing/Entities/CustomerPortalSession.py @@ -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.CustomerPortalSessions import CustomerPortalSessionUrls @@ -14,7 +15,7 @@ class CustomerPortalSession(Entity): created_at: datetime @staticmethod - def from_dict(data: dict) -> CustomerPortalSession: + def from_dict(data: dict[str, Any]) -> CustomerPortalSession: return CustomerPortalSession( id=data["id"], customer_id=data["customer_id"], diff --git a/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionGeneralUrl.py b/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionGeneralUrl.py index 770ea0b9..844d19a1 100644 --- a/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionGeneralUrl.py +++ b/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionGeneralUrl.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -7,7 +8,7 @@ class CustomerPortalSessionGeneralUrl: overview: str @staticmethod - def from_dict(data: dict) -> CustomerPortalSessionGeneralUrl: + def from_dict(data: dict[str, Any]) -> CustomerPortalSessionGeneralUrl: return CustomerPortalSessionGeneralUrl( overview=data["overview"], ) diff --git a/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionSubscriptionUrl.py b/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionSubscriptionUrl.py index 37131622..0492d1da 100644 --- a/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionSubscriptionUrl.py +++ b/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionSubscriptionUrl.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -9,7 +10,7 @@ class CustomerPortalSessionSubscriptionUrl: update_subscription_payment_method: str @staticmethod - def from_dict(data: dict) -> CustomerPortalSessionSubscriptionUrl: + def from_dict(data: dict[str, Any]) -> CustomerPortalSessionSubscriptionUrl: return CustomerPortalSessionSubscriptionUrl( id=data["id"], cancel_subscription=data["cancel_subscription"], diff --git a/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionUrls.py b/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionUrls.py index de04edbc..37be76ab 100644 --- a/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionUrls.py +++ b/paddle_billing/Entities/CustomerPortalSessions/CustomerPortalSessionUrls.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.CustomerPortalSessions.CustomerPortalSessionGeneralUrl import ( CustomerPortalSessionGeneralUrl, @@ -15,7 +16,7 @@ class CustomerPortalSessionUrls: subscriptions: list[CustomerPortalSessionSubscriptionUrl] @staticmethod - def from_dict(data: dict) -> CustomerPortalSessionUrls: + def from_dict(data: dict[str, Any]) -> CustomerPortalSessionUrls: return CustomerPortalSessionUrls( general=CustomerPortalSessionGeneralUrl.from_dict(data["general"]), subscriptions=[ diff --git a/paddle_billing/Entities/Discount.py b/paddle_billing/Entities/Discount.py index 426740ba..61632864 100644 --- a/paddle_billing/Entities/Discount.py +++ b/paddle_billing/Entities/Discount.py @@ -2,6 +2,7 @@ from .Entity import Entity from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Discounts import DiscountStatus, DiscountType from paddle_billing.Entities.Shared import CurrencyCode, ImportMeta, CustomData @@ -29,7 +30,7 @@ class Discount(Entity): custom_data: CustomData | None @staticmethod - def from_dict(data: dict) -> Discount: + def from_dict(data: dict[str, Any]) -> Discount: return Discount( id=data["id"], status=DiscountStatus(data["status"]), diff --git a/paddle_billing/Entities/Entity.py b/paddle_billing/Entities/Entity.py index 8c8fb2aa..0b5696b3 100644 --- a/paddle_billing/Entities/Entity.py +++ b/paddle_billing/Entities/Entity.py @@ -1,11 +1,12 @@ from __future__ import annotations from abc import ABC, abstractmethod +from typing import Any class Entity(ABC): @staticmethod @abstractmethod - def from_dict(data: dict): + def from_dict(data: dict[str, Any]): """ A static factory for the entity that conforms to the Paddle API. """ diff --git a/paddle_billing/Entities/Event.py b/paddle_billing/Entities/Event.py index 8583747d..c81ca1ba 100644 --- a/paddle_billing/Entities/Event.py +++ b/paddle_billing/Entities/Event.py @@ -2,6 +2,7 @@ from abc import ABC from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Events import EventTypeName @@ -18,7 +19,7 @@ class Event(Entity, ABC): data: NotificationEntity | UndefinedEntity @staticmethod - def from_dict(data: dict) -> Event: + def from_dict(data: dict[str, Any]) -> Event: return Event( data["event_id"], EventTypeName(data["event_type"]), diff --git a/paddle_billing/Entities/EventType.py b/paddle_billing/Entities/EventType.py index 05cb5bcc..f9315ae2 100644 --- a/paddle_billing/Entities/EventType.py +++ b/paddle_billing/Entities/EventType.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Events import EventTypeName @@ -10,10 +11,10 @@ class EventType(Entity): name: EventTypeName description: str group: str - available_versions: list + available_versions: list[Any] @staticmethod - def from_dict(data: dict) -> EventType: + def from_dict(data: dict[str, Any]) -> EventType: return EventType( name=EventTypeName(data["name"]), description=data["description"], diff --git a/paddle_billing/Entities/IPAddresses.py b/paddle_billing/Entities/IPAddresses.py index 41a749f0..5e1fd44b 100644 --- a/paddle_billing/Entities/IPAddresses.py +++ b/paddle_billing/Entities/IPAddresses.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity @@ -9,7 +10,7 @@ class IPAddresses(Entity): ipv4_cidrs: list[str] | None @staticmethod - def from_dict(data: dict) -> IPAddresses: + def from_dict(data: dict[str, Any]) -> IPAddresses: return IPAddresses( ipv4_cidrs=data["ipv4_cidrs"], ) diff --git a/paddle_billing/Entities/Notification.py b/paddle_billing/Entities/Notification.py index ca27c30b..2bee2c23 100644 --- a/paddle_billing/Entities/Notification.py +++ b/paddle_billing/Entities/Notification.py @@ -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.Events import EventTypeName @@ -24,7 +25,7 @@ class Notification(Entity): notification_setting_id: str @staticmethod - def from_dict(data: dict) -> Notification: + def from_dict(data: dict[str, Any]) -> Notification: return Notification( id=data["id"], type=EventTypeName(data["type"]), diff --git a/paddle_billing/Entities/NotificationLog.py b/paddle_billing/Entities/NotificationLog.py index d20a87ac..33fcfd42 100644 --- a/paddle_billing/Entities/NotificationLog.py +++ b/paddle_billing/Entities/NotificationLog.py @@ -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 @@ -14,7 +15,7 @@ class NotificationLog(Entity): attempted_at: datetime @staticmethod - def from_dict(data: dict) -> NotificationLog: + def from_dict(data: dict[str, Any]) -> NotificationLog: return NotificationLog( id=data["id"], response_code=data["response_code"], diff --git a/paddle_billing/Entities/NotificationSetting.py b/paddle_billing/Entities/NotificationSetting.py index e0ecd1a0..84d28d03 100644 --- a/paddle_billing/Entities/NotificationSetting.py +++ b/paddle_billing/Entities/NotificationSetting.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.EventType import EventType @@ -20,7 +21,7 @@ class NotificationSetting(Entity): traffic_source: NotificationSettingTrafficSource @staticmethod - def from_dict(data: dict) -> NotificationSetting: + def from_dict(data: dict[str, Any]) -> NotificationSetting: return NotificationSetting( id=data["id"], description=data["description"], diff --git a/paddle_billing/Entities/Notifications/NotificationEvent.py b/paddle_billing/Entities/Notifications/NotificationEvent.py index 0fb72616..3ebb3dca 100644 --- a/paddle_billing/Entities/Notifications/NotificationEvent.py +++ b/paddle_billing/Entities/Notifications/NotificationEvent.py @@ -3,6 +3,7 @@ from dataclasses import dataclass from datetime import datetime import json +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Events import EventTypeName @@ -22,7 +23,7 @@ class NotificationEvent(Entity, ABC): data: NotificationEntity | UndefinedEntity @staticmethod - def from_dict(data: dict) -> NotificationEvent: + def from_dict(data: dict[str, Any]) -> NotificationEvent: return NotificationEvent( data["notification_id"], data["event_id"], diff --git a/paddle_billing/Entities/Notifications/NotificationPayout.py b/paddle_billing/Entities/Notifications/NotificationPayout.py index aee27b2e..cedd135e 100644 --- a/paddle_billing/Entities/Notifications/NotificationPayout.py +++ b/paddle_billing/Entities/Notifications/NotificationPayout.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Notifications import NotificationPayoutStatus @@ -14,7 +15,7 @@ class NotificationPayout(Entity): currency_code: CurrencyCodePayouts @staticmethod - def from_dict(data: dict) -> NotificationPayout: + def from_dict(data: dict[str, Any]) -> NotificationPayout: return NotificationPayout( id=data["id"], status=NotificationPayoutStatus(data["status"]), diff --git a/paddle_billing/Entities/PaymentMethod.py b/paddle_billing/Entities/PaymentMethod.py index 355d98a4..3e178c6e 100644 --- a/paddle_billing/Entities/PaymentMethod.py +++ b/paddle_billing/Entities/PaymentMethod.py @@ -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 ( @@ -24,7 +25,7 @@ class PaymentMethod(Entity): updated_at: datetime @staticmethod - def from_dict(data: dict) -> PaymentMethod: + def from_dict(data: dict[str, Any]) -> PaymentMethod: return PaymentMethod( id=data["id"], customer_id=data["customer_id"], diff --git a/paddle_billing/Entities/Price.py b/paddle_billing/Entities/Price.py index 1fcddd62..c93c3968 100644 --- a/paddle_billing/Entities/Price.py +++ b/paddle_billing/Entities/Price.py @@ -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 ( @@ -37,7 +38,7 @@ class Price(Entity): updated_at: datetime @staticmethod - def from_dict(data: dict) -> Price: + def from_dict(data: dict[str, Any]) -> Price: return Price( id=data["id"], product_id=data["product_id"], diff --git a/paddle_billing/Entities/PricePreview.py b/paddle_billing/Entities/PricePreview.py index 35bfd2cb..e872436d 100644 --- a/paddle_billing/Entities/PricePreview.py +++ b/paddle_billing/Entities/PricePreview.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Shared import AddressPreview, CurrencyCode, PaymentMethodType @@ -19,7 +20,7 @@ class PricePreview(Entity): available_payment_methods: list[PaymentMethodType] @staticmethod - def from_dict(data: dict) -> PricePreview: + def from_dict(data: dict[str, Any]) -> PricePreview: return PricePreview( customer_id=data.get("customer_id"), address_id=data.get("address_id"), diff --git a/paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py b/paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py index fb6866aa..48bbfce1 100644 --- a/paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py +++ b/paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.PricingPreviews.PricePreviewLineItem import PricePreviewLineItem @@ -10,5 +11,5 @@ class PricePreviewDetails(Entity): line_items: list[PricePreviewLineItem] @staticmethod - def from_dict(data: dict) -> PricePreviewDetails: + def from_dict(data: dict[str, Any]) -> PricePreviewDetails: return PricePreviewDetails(line_items=[PricePreviewLineItem.from_dict(item) for item in data["line_items"]]) diff --git a/paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py b/paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py index 8df04f3f..f4003f17 100644 --- a/paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py +++ b/paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Discount import Discount @@ -11,7 +12,7 @@ class PricePreviewDiscounts: formatted_total: str @staticmethod - def from_dict(data: dict) -> PricePreviewDiscounts: + def from_dict(data: dict[str, Any]) -> PricePreviewDiscounts: return PricePreviewDiscounts( discount=Discount.from_dict(data["discount"]), total=data["total"], diff --git a/paddle_billing/Entities/PricingPreviews/PricePreviewItem.py b/paddle_billing/Entities/PricingPreviews/PricePreviewItem.py index 5e9ed366..55bec296 100644 --- a/paddle_billing/Entities/PricingPreviews/PricePreviewItem.py +++ b/paddle_billing/Entities/PricingPreviews/PricePreviewItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class PricePreviewItem: quantity: int @staticmethod - def from_dict(data: dict) -> PricePreviewItem: + def from_dict(data: dict[str, Any]) -> PricePreviewItem: return PricePreviewItem( price_id=data["price_id"], quantity=data["quantity"], diff --git a/paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py b/paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py index 902fa7f0..d937a5ed 100644 --- a/paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py +++ b/paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Price import Price from paddle_billing.Entities.Product import Product @@ -23,7 +24,7 @@ class PricePreviewLineItem: discounts: list[PricePreviewDiscounts] @staticmethod - def from_dict(data: dict) -> PricePreviewLineItem: + def from_dict(data: dict[str, Any]) -> PricePreviewLineItem: return PricePreviewLineItem( price=Price.from_dict(data["price"]), quantity=data["quantity"], diff --git a/paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py b/paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py index ce8d975d..a3c6e4ca 100644 --- a/paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py +++ b/paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -10,7 +11,7 @@ class PricePreviewTotalsFormatted: total: str @staticmethod - def from_dict(data: dict) -> PricePreviewTotalsFormatted: + def from_dict(data: dict[str, Any]) -> PricePreviewTotalsFormatted: return PricePreviewTotalsFormatted( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py b/paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py index 7485b58c..8d4fb075 100644 --- a/paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py +++ b/paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -10,7 +11,7 @@ class PricePreviewUnitTotalsFormatted: total: str @staticmethod - def from_dict(data: dict) -> PricePreviewUnitTotalsFormatted: + def from_dict(data: dict[str, Any]) -> PricePreviewUnitTotalsFormatted: return PricePreviewUnitTotalsFormatted( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Entities/Product.py b/paddle_billing/Entities/Product.py index 0bc8429f..d33180aa 100644 --- a/paddle_billing/Entities/Product.py +++ b/paddle_billing/Entities/Product.py @@ -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 CatalogType, CustomData, ImportMeta, Status, TaxCategory @@ -22,7 +23,7 @@ class Product(Entity): type: CatalogType | None = None @staticmethod - def from_dict(data: dict) -> Product: + def from_dict(data: dict[str, Any]) -> Product: return Product( description=data.get("description"), id=data["id"], diff --git a/paddle_billing/Entities/Report.py b/paddle_billing/Entities/Report.py index 9a2704bc..3bb059c9 100644 --- a/paddle_billing/Entities/Report.py +++ b/paddle_billing/Entities/Report.py @@ -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.Reports import ReportFilter, ReportStatus, ReportType @@ -18,7 +19,7 @@ class Report(Entity): updated_at: datetime @staticmethod - def from_dict(data: dict) -> Report: + def from_dict(data: dict[str, Any]) -> Report: return Report( id=data["id"], status=ReportStatus(data["status"]), diff --git a/paddle_billing/Entities/ReportCSV.py b/paddle_billing/Entities/ReportCSV.py index c33e041a..5fd7a16c 100644 --- a/paddle_billing/Entities/ReportCSV.py +++ b/paddle_billing/Entities/ReportCSV.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity @@ -9,5 +10,5 @@ class ReportCSV(Entity): url: str @staticmethod - def from_dict(data: dict) -> ReportCSV: + def from_dict(data: dict[str, Any]) -> ReportCSV: return ReportCSV(url=data["url"]) diff --git a/paddle_billing/Entities/Reports/ReportFilter.py b/paddle_billing/Entities/Reports/ReportFilter.py index 3f6e0869..2417e6e4 100644 --- a/paddle_billing/Entities/Reports/ReportFilter.py +++ b/paddle_billing/Entities/Reports/ReportFilter.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Reports import ReportFilterName, ReportFilterOperator @@ -8,8 +9,8 @@ class ReportFilter: name: ReportFilterName operator: ReportFilterOperator | None - value: list | str + value: list[Any] | str @staticmethod - def from_dict(data: dict) -> ReportFilter: + def from_dict(data: dict[str, Any]) -> ReportFilter: return ReportFilter(**data) diff --git a/paddle_billing/Entities/Shared/AddressPreview.py b/paddle_billing/Entities/Shared/AddressPreview.py index 6decabc7..c2da308c 100644 --- a/paddle_billing/Entities/Shared/AddressPreview.py +++ b/paddle_billing/Entities/Shared/AddressPreview.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CountryCode import CountryCode @@ -10,7 +11,7 @@ class AddressPreview: country_code: CountryCode @staticmethod - def from_dict(data: dict) -> AddressPreview: + def from_dict(data: dict[str, Any]) -> AddressPreview: return AddressPreview( postal_code=data.get("postal_code"), country_code=CountryCode(data["country_code"]), diff --git a/paddle_billing/Entities/Shared/AdjustmentItemTotals.py b/paddle_billing/Entities/Shared/AdjustmentItemTotals.py index 4d74c5c3..684aa83f 100644 --- a/paddle_billing/Entities/Shared/AdjustmentItemTotals.py +++ b/paddle_billing/Entities/Shared/AdjustmentItemTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -9,7 +10,7 @@ class AdjustmentItemTotals: total: str @staticmethod - def from_dict(data: dict) -> AdjustmentItemTotals: + def from_dict(data: dict[str, Any]) -> AdjustmentItemTotals: return AdjustmentItemTotals( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Entities/Shared/AdjustmentTotals.py b/paddle_billing/Entities/Shared/AdjustmentTotals.py index bfcc2b1c..4fb0dd9a 100644 --- a/paddle_billing/Entities/Shared/AdjustmentTotals.py +++ b/paddle_billing/Entities/Shared/AdjustmentTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CurrencyCode import CurrencyCode @@ -14,7 +15,7 @@ class AdjustmentTotals: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> AdjustmentTotals: + def from_dict(data: dict[str, Any]) -> AdjustmentTotals: return AdjustmentTotals( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Entities/Shared/BillingDetails.py b/paddle_billing/Entities/Shared/BillingDetails.py index 8e2ea1f2..58a5a4e9 100644 --- a/paddle_billing/Entities/Shared/BillingDetails.py +++ b/paddle_billing/Entities/Shared/BillingDetails.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.Duration import Duration @@ -12,7 +13,7 @@ class BillingDetails: additional_information: str | None = None @staticmethod - def from_dict(data: dict) -> BillingDetails: + def from_dict(data: dict[str, Any]) -> BillingDetails: return BillingDetails( enable_checkout=data["enable_checkout"], payment_terms=Duration.from_dict(data["payment_terms"]), diff --git a/paddle_billing/Entities/Shared/Card.py b/paddle_billing/Entities/Shared/Card.py index be7f896d..2451dade 100644 --- a/paddle_billing/Entities/Shared/Card.py +++ b/paddle_billing/Entities/Shared/Card.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Transactions.TransactionCardType import TransactionCardType @@ -13,7 +14,7 @@ class Card: cardholder_name: str | None @staticmethod - def from_dict(data: dict) -> Card: + def from_dict(data: dict[str, Any]) -> Card: return Card( type=TransactionCardType(data["type"]), last4=data["last4"], diff --git a/paddle_billing/Entities/Shared/ChargebackFee.py b/paddle_billing/Entities/Shared/ChargebackFee.py index 09d8bb17..3470a60c 100644 --- a/paddle_billing/Entities/Shared/ChargebackFee.py +++ b/paddle_billing/Entities/Shared/ChargebackFee.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.Original import Original @@ -10,7 +11,7 @@ class ChargebackFee: original: Original | None @staticmethod - def from_dict(data: dict) -> ChargebackFee: + def from_dict(data: dict[str, Any]) -> ChargebackFee: return ChargebackFee( amount=data["amount"], original=Original.from_dict(data["original"]) if data.get("original") else None, diff --git a/paddle_billing/Entities/Shared/Checkout.py b/paddle_billing/Entities/Shared/Checkout.py index 5a60e7f2..fd7cfe09 100644 --- a/paddle_billing/Entities/Shared/Checkout.py +++ b/paddle_billing/Entities/Shared/Checkout.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -7,5 +8,5 @@ class Checkout: url: str | None @staticmethod - def from_dict(data: dict) -> Checkout: + def from_dict(data: dict[str, Any]) -> Checkout: return Checkout(url=data.get("url")) diff --git a/paddle_billing/Entities/Shared/Contacts.py b/paddle_billing/Entities/Shared/Contacts.py index f3ba38be..3fb5e0b7 100644 --- a/paddle_billing/Entities/Shared/Contacts.py +++ b/paddle_billing/Entities/Shared/Contacts.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class Contacts: email: str @staticmethod - def from_dict(data: dict) -> Contacts: + def from_dict(data: dict[str, Any]) -> Contacts: return Contacts( name=data["name"], email=data["email"], diff --git a/paddle_billing/Entities/Shared/Data.py b/paddle_billing/Entities/Shared/Data.py index 8f01507c..48699ef3 100644 --- a/paddle_billing/Entities/Shared/Data.py +++ b/paddle_billing/Entities/Shared/Data.py @@ -4,6 +4,6 @@ @dataclass class Data: - data: dict | list | Any # TODO Any? Should be JSON serializable Python types though + data: dict[str, Any] | list[Any] | Any # TODO Any? Should be JSON serializable Python types though # from_dict method isn't needed, unless specific processing of 'data' is required. diff --git a/paddle_billing/Entities/Shared/Duration.py b/paddle_billing/Entities/Shared/Duration.py index 61a85bbc..83d3f214 100644 --- a/paddle_billing/Entities/Shared/Duration.py +++ b/paddle_billing/Entities/Shared/Duration.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.Interval import Interval @@ -10,7 +11,7 @@ class Duration: frequency: int @staticmethod - def from_dict(data: dict) -> Duration: + def from_dict(data: dict[str, Any]) -> Duration: return Duration( interval=Interval(data["interval"]), frequency=data["frequency"], diff --git a/paddle_billing/Entities/Shared/ImportMeta.py b/paddle_billing/Entities/Shared/ImportMeta.py index b1147778..79c6a160 100644 --- a/paddle_billing/Entities/Shared/ImportMeta.py +++ b/paddle_billing/Entities/Shared/ImportMeta.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass(frozen=True) @@ -8,7 +9,7 @@ class ImportMeta: imported_from: str @staticmethod - def from_dict(data: dict) -> ImportMeta: + def from_dict(data: dict[str, Any]) -> ImportMeta: return ImportMeta( external_id=data.get("external_id"), imported_from=data["imported_from"], diff --git a/paddle_billing/Entities/Shared/MetaPaginated.py b/paddle_billing/Entities/Shared/MetaPaginated.py index 3e0b5249..80dfc01f 100644 --- a/paddle_billing/Entities/Shared/MetaPaginated.py +++ b/paddle_billing/Entities/Shared/MetaPaginated.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.Pagination import Pagination @@ -10,7 +11,7 @@ class MetaPaginated: pagination: Pagination @staticmethod - def from_dict(data: dict) -> MetaPaginated: + def from_dict(data: dict[str, Any]) -> MetaPaginated: return MetaPaginated( request_id=data["request_id"], pagination=Pagination.from_dict(data["pagination"]), diff --git a/paddle_billing/Entities/Shared/MethodDetails.py b/paddle_billing/Entities/Shared/MethodDetails.py index fa5608fa..6bcee1fa 100644 --- a/paddle_billing/Entities/Shared/MethodDetails.py +++ b/paddle_billing/Entities/Shared/MethodDetails.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.Card import Card from paddle_billing.Entities.Shared.PaymentMethodType import PaymentMethodType @@ -11,7 +12,7 @@ class MethodDetails: card: Card | None @staticmethod - def from_dict(data: dict) -> MethodDetails: + def from_dict(data: dict[str, Any]) -> MethodDetails: return MethodDetails( PaymentMethodType(data["type"]), Card.from_dict(data["card"]) if data.get("card") else None, diff --git a/paddle_billing/Entities/Shared/Money.py b/paddle_billing/Entities/Shared/Money.py index b85e0a5c..97e71ce2 100644 --- a/paddle_billing/Entities/Shared/Money.py +++ b/paddle_billing/Entities/Shared/Money.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CurrencyCode import CurrencyCode @@ -20,7 +21,7 @@ def __post_init__(self): raise ValueError("Money amount should not contain decimals or commas") @staticmethod - def from_dict(data: dict) -> Money: + def from_dict(data: dict[str, Any]) -> Money: return Money( amount=data["amount"], currency_code=CurrencyCode(data["currency_code"]) if data.get("currency_code") else None, diff --git a/paddle_billing/Entities/Shared/Original.py b/paddle_billing/Entities/Shared/Original.py index d7567f24..fbcef983 100644 --- a/paddle_billing/Entities/Shared/Original.py +++ b/paddle_billing/Entities/Shared/Original.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CurrencyCodeAdjustments import CurrencyCodeAdjustments @@ -10,7 +11,7 @@ class Original: currency_code: CurrencyCodeAdjustments @staticmethod - def from_dict(data: dict) -> Original: + def from_dict(data: dict[str, Any]) -> Original: return Original( amount=data["amount"], currency_code=CurrencyCodeAdjustments(data["currency_code"]), diff --git a/paddle_billing/Entities/Shared/Pagination.py b/paddle_billing/Entities/Shared/Pagination.py index ef9b538b..cc23892a 100644 --- a/paddle_billing/Entities/Shared/Pagination.py +++ b/paddle_billing/Entities/Shared/Pagination.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -10,7 +11,7 @@ class Pagination: estimated_total: int @staticmethod - def from_dict(data: dict) -> Pagination: + def from_dict(data: dict[str, Any]) -> Pagination: return Pagination( per_page=data["per_page"], next=data["next"], diff --git a/paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py b/paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py index 72b5ea95..7b24e99e 100644 --- a/paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py +++ b/paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.ChargebackFee import ChargebackFee from paddle_billing.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts @@ -16,7 +17,7 @@ class PayoutTotalsAdjustment: currency_code: CurrencyCodePayouts @staticmethod - def from_dict(data: dict) -> PayoutTotalsAdjustment: + def from_dict(data: dict[str, Any]) -> PayoutTotalsAdjustment: return PayoutTotalsAdjustment( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Entities/Shared/Paypal.py b/paddle_billing/Entities/Shared/Paypal.py index bc672c86..5dcb3bbf 100644 --- a/paddle_billing/Entities/Shared/Paypal.py +++ b/paddle_billing/Entities/Shared/Paypal.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class Paypal: reference: str @staticmethod - def from_dict(data: dict) -> Paypal: + def from_dict(data: dict[str, Any]) -> Paypal: return Paypal( email=data["email"], reference=data["reference"], diff --git a/paddle_billing/Entities/Shared/PriceQuantity.py b/paddle_billing/Entities/Shared/PriceQuantity.py index 00a04b1d..813fd708 100644 --- a/paddle_billing/Entities/Shared/PriceQuantity.py +++ b/paddle_billing/Entities/Shared/PriceQuantity.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class PriceQuantity: maximum: int @staticmethod - def from_dict(data: dict) -> PriceQuantity: + def from_dict(data: dict[str, Any]) -> PriceQuantity: return PriceQuantity( minimum=data["minimum"], maximum=data["maximum"], diff --git a/paddle_billing/Entities/Shared/Proration.py b/paddle_billing/Entities/Shared/Proration.py index 898254fe..7bcb5ab1 100644 --- a/paddle_billing/Entities/Shared/Proration.py +++ b/paddle_billing/Entities/Shared/Proration.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.TimePeriod import TimePeriod @@ -10,7 +11,7 @@ class Proration: billing_period: TimePeriod @staticmethod - def from_dict(data: dict) -> Proration: + def from_dict(data: dict[str, Any]) -> Proration: return Proration( rate=data["rate"], billing_period=TimePeriod.from_dict(data["billing_period"]), diff --git a/paddle_billing/Entities/Shared/TaxRatesUsed.py b/paddle_billing/Entities/Shared/TaxRatesUsed.py index e5a01765..ab9b6c91 100644 --- a/paddle_billing/Entities/Shared/TaxRatesUsed.py +++ b/paddle_billing/Entities/Shared/TaxRatesUsed.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.Totals import Totals @@ -10,7 +11,7 @@ class TaxRatesUsed: totals: Totals @staticmethod - def from_dict(data: dict) -> TaxRatesUsed: + def from_dict(data: dict[str, Any]) -> TaxRatesUsed: return TaxRatesUsed( tax_rate=data["tax_rate"], totals=Totals.from_dict(data["totals"]), diff --git a/paddle_billing/Entities/Shared/TimePeriod.py b/paddle_billing/Entities/Shared/TimePeriod.py index 58af22da..d43c8427 100644 --- a/paddle_billing/Entities/Shared/TimePeriod.py +++ b/paddle_billing/Entities/Shared/TimePeriod.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any @dataclass @@ -9,7 +10,7 @@ class TimePeriod: ends_at: datetime @staticmethod - def from_dict(data: dict) -> TimePeriod: + def from_dict(data: dict[str, Any]) -> TimePeriod: return TimePeriod( starts_at=datetime.fromisoformat(data["starts_at"]), ends_at=datetime.fromisoformat(data["ends_at"]), diff --git a/paddle_billing/Entities/Shared/Totals.py b/paddle_billing/Entities/Shared/Totals.py index 9647bf06..6c5cc555 100644 --- a/paddle_billing/Entities/Shared/Totals.py +++ b/paddle_billing/Entities/Shared/Totals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -10,7 +11,7 @@ class Totals: total: str @staticmethod - def from_dict(data: dict) -> Totals: + def from_dict(data: dict[str, Any]) -> Totals: return Totals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Entities/Shared/TransactionDetailsPreview.py b/paddle_billing/Entities/Shared/TransactionDetailsPreview.py index 5434017f..7e552b8d 100644 --- a/paddle_billing/Entities/Shared/TransactionDetailsPreview.py +++ b/paddle_billing/Entities/Shared/TransactionDetailsPreview.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.TaxRatesUsed import TaxRatesUsed from paddle_billing.Entities.Shared.TransactionLineItemPreview import TransactionLineItemPreview @@ -13,7 +14,7 @@ class TransactionDetailsPreview: line_items: list[TransactionLineItemPreview] @staticmethod - def from_dict(data: dict) -> TransactionDetailsPreview: + def from_dict(data: dict[str, Any]) -> TransactionDetailsPreview: return TransactionDetailsPreview( totals=TransactionTotals.from_dict(data["totals"]), tax_rates_used=[TaxRatesUsed.from_dict(rate) for rate in data["tax_rates_used"]], diff --git a/paddle_billing/Entities/Shared/TransactionLineItemPreview.py b/paddle_billing/Entities/Shared/TransactionLineItemPreview.py index 8a18e4eb..1b6eb886 100644 --- a/paddle_billing/Entities/Shared/TransactionLineItemPreview.py +++ b/paddle_billing/Entities/Shared/TransactionLineItemPreview.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.TransactionPreviewProduct import TransactionPreviewProduct from paddle_billing.Entities.Shared.Totals import Totals @@ -18,7 +19,7 @@ class TransactionLineItemPreview: proration: Proration | None @staticmethod - def from_dict(data: dict) -> TransactionLineItemPreview: + def from_dict(data: dict[str, Any]) -> TransactionLineItemPreview: return TransactionLineItemPreview( price_id=data.get("price_id"), quantity=data["quantity"], diff --git a/paddle_billing/Entities/Shared/TransactionPaymentAttempt.py b/paddle_billing/Entities/Shared/TransactionPaymentAttempt.py index f619e837..2a184ff6 100644 --- a/paddle_billing/Entities/Shared/TransactionPaymentAttempt.py +++ b/paddle_billing/Entities/Shared/TransactionPaymentAttempt.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Shared.ErrorCode import ErrorCode from paddle_billing.Entities.Shared.MethodDetails import MethodDetails @@ -20,7 +21,7 @@ class TransactionPaymentAttempt: captured_at: datetime | None @staticmethod - def from_dict(data: dict) -> TransactionPaymentAttempt: + def from_dict(data: dict[str, Any]) -> TransactionPaymentAttempt: return TransactionPaymentAttempt( payment_attempt_id=data["payment_attempt_id"], payment_method_id=data.get("payment_method_id"), diff --git a/paddle_billing/Entities/Shared/TransactionPayoutTotals.py b/paddle_billing/Entities/Shared/TransactionPayoutTotals.py index 60ecb03f..c5aa3f30 100644 --- a/paddle_billing/Entities/Shared/TransactionPayoutTotals.py +++ b/paddle_billing/Entities/Shared/TransactionPayoutTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts @@ -19,7 +20,7 @@ class TransactionPayoutTotals: credit_to_balance: str @staticmethod - def from_dict(data: dict) -> TransactionPayoutTotals: + def from_dict(data: dict[str, Any]) -> TransactionPayoutTotals: return TransactionPayoutTotals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py b/paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py index 55105181..2737d2ea 100644 --- a/paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py +++ b/paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.ChargebackFee import ChargebackFee from paddle_billing.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts @@ -16,7 +17,7 @@ class TransactionPayoutTotalsAdjusted: currency_code: CurrencyCodePayouts @staticmethod - def from_dict(data: dict) -> TransactionPayoutTotalsAdjusted: + def from_dict(data: dict[str, Any]) -> TransactionPayoutTotalsAdjusted: return TransactionPayoutTotalsAdjusted( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Entities/Shared/TransactionPreviewProduct.py b/paddle_billing/Entities/Shared/TransactionPreviewProduct.py index c2a66532..05d01605 100644 --- a/paddle_billing/Entities/Shared/TransactionPreviewProduct.py +++ b/paddle_billing/Entities/Shared/TransactionPreviewProduct.py @@ -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 CatalogType, CustomData, ImportMeta, Status, TaxCategory @@ -21,7 +22,7 @@ class TransactionPreviewProduct(Entity): import_meta: ImportMeta | None = None @staticmethod - def from_dict(data: dict) -> TransactionPreviewProduct: + def from_dict(data: dict[str, Any]) -> TransactionPreviewProduct: return TransactionPreviewProduct( id=data.get("id"), name=data["name"], diff --git a/paddle_billing/Entities/Shared/TransactionTotals.py b/paddle_billing/Entities/Shared/TransactionTotals.py index 06f7dabe..8cff1b31 100644 --- a/paddle_billing/Entities/Shared/TransactionTotals.py +++ b/paddle_billing/Entities/Shared/TransactionTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CurrencyCode import CurrencyCode @@ -19,7 +20,7 @@ class TransactionTotals: credit_to_balance: str @staticmethod - def from_dict(data: dict) -> TransactionTotals: + def from_dict(data: dict[str, Any]) -> TransactionTotals: return TransactionTotals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py b/paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py index b6b0df5b..4d15063a 100644 --- a/paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py +++ b/paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CurrencyCode import CurrencyCode @@ -15,7 +16,7 @@ class TransactionTotalsAdjusted: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> TransactionTotalsAdjusted: + def from_dict(data: dict[str, Any]) -> TransactionTotalsAdjusted: return TransactionTotalsAdjusted( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Entities/Shared/UnitPriceOverride.py b/paddle_billing/Entities/Shared/UnitPriceOverride.py index 17f927c4..e2bb047c 100644 --- a/paddle_billing/Entities/Shared/UnitPriceOverride.py +++ b/paddle_billing/Entities/Shared/UnitPriceOverride.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CountryCode import CountryCode from paddle_billing.Entities.Shared.Money import Money @@ -11,7 +12,7 @@ class UnitPriceOverride: unit_price: Money @staticmethod - def from_dict(data: dict) -> UnitPriceOverride: + def from_dict(data: dict[str, Any]) -> UnitPriceOverride: return UnitPriceOverride( country_codes=[CountryCode(code) for code in data["country_codes"]], unit_price=Money.from_dict(data["unit_price"]), diff --git a/paddle_billing/Entities/Shared/UnitTotals.py b/paddle_billing/Entities/Shared/UnitTotals.py index dc59dc72..1e938b43 100644 --- a/paddle_billing/Entities/Shared/UnitTotals.py +++ b/paddle_billing/Entities/Shared/UnitTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -10,7 +11,7 @@ class UnitTotals: total: str @staticmethod - def from_dict(data: dict) -> UnitTotals: + def from_dict(data: dict[str, Any]) -> UnitTotals: return UnitTotals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Entities/Simulation.py b/paddle_billing/Entities/Simulation.py index ce9da0dc..69a72967 100644 --- a/paddle_billing/Entities/Simulation.py +++ b/paddle_billing/Entities/Simulation.py @@ -2,6 +2,7 @@ from abc import ABC from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Events import EventTypeName @@ -24,7 +25,7 @@ class Simulation(Entity, ABC): updated_at: datetime @staticmethod - def from_dict(data: dict) -> Simulation: + def from_dict(data: dict[str, Any]) -> Simulation: type = EventTypeName(data["type"]) if not type.is_known(): type = SimulationScenarioType(data["type"]) diff --git a/paddle_billing/Entities/SimulationRun.py b/paddle_billing/Entities/SimulationRun.py index 28ba8094..ac362ff0 100644 --- a/paddle_billing/Entities/SimulationRun.py +++ b/paddle_billing/Entities/SimulationRun.py @@ -2,6 +2,7 @@ from abc import ABC from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Events import EventTypeName @@ -20,7 +21,7 @@ class SimulationRun(Entity, ABC): events: list[SimulationRunEvent] @staticmethod - def from_dict(data: dict) -> SimulationRun: + def from_dict(data: dict[str, Any]) -> SimulationRun: type = EventTypeName(data["type"]) if not type.is_known(): type = SimulationScenarioType(data["type"]) diff --git a/paddle_billing/Entities/SimulationRunEvent.py b/paddle_billing/Entities/SimulationRunEvent.py index 1c62cf8c..c5d39362 100644 --- a/paddle_billing/Entities/SimulationRunEvent.py +++ b/paddle_billing/Entities/SimulationRunEvent.py @@ -2,6 +2,7 @@ from abc import ABC from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Events import EventTypeName @@ -27,7 +28,7 @@ class SimulationRunEvent(Entity, ABC): updated_at: datetime @staticmethod - def from_dict(data: dict) -> SimulationRunEvent: + def from_dict(data: dict[str, Any]) -> SimulationRunEvent: return SimulationRunEvent( id=data["id"], status=SimulationRunEventStatus(data["status"]), diff --git a/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventRequest.py b/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventRequest.py index 87883b59..d4a4d43f 100644 --- a/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventRequest.py +++ b/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventRequest.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity @@ -9,7 +10,7 @@ class SimulationRunEventRequest(Entity): body: str @staticmethod - def from_dict(data: dict) -> SimulationRunEventRequest: + def from_dict(data: dict[str, Any]) -> SimulationRunEventRequest: return SimulationRunEventRequest( body=data["body"], ) diff --git a/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventResponse.py b/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventResponse.py index d40eac74..9b36acc4 100644 --- a/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventResponse.py +++ b/paddle_billing/Entities/SimulationRunEvents/SimulationRunEventResponse.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity @@ -10,7 +11,7 @@ class SimulationRunEventResponse(Entity): status_code: int @staticmethod - def from_dict(data: dict) -> SimulationRunEventResponse: + def from_dict(data: dict[str, Any]) -> SimulationRunEventResponse: return SimulationRunEventResponse( body=data["body"], status_code=data["status_code"], diff --git a/paddle_billing/Entities/SimulationType.py b/paddle_billing/Entities/SimulationType.py index 9cf8c50a..ef5387a8 100644 --- a/paddle_billing/Entities/SimulationType.py +++ b/paddle_billing/Entities/SimulationType.py @@ -1,6 +1,7 @@ from __future__ import annotations from abc import ABC from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Events import EventTypeName @@ -17,7 +18,7 @@ class SimulationType(Entity, ABC): events: list[EventTypeName] @staticmethod - def from_dict(data: dict) -> SimulationType: + def from_dict(data: dict[str, Any]) -> SimulationType: return SimulationType( name=data["name"], label=data["label"], diff --git a/paddle_billing/Entities/Subscription.py b/paddle_billing/Entities/Subscription.py index f7349802..41b0df83 100644 --- a/paddle_billing/Entities/Subscription.py +++ b/paddle_billing/Entities/Subscription.py @@ -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 @@ -54,7 +55,7 @@ class Subscription(Entity): custom_data: CustomData | None = None @staticmethod - def from_dict(data: dict) -> Subscription: + def from_dict(data: dict[str, Any]) -> Subscription: return Subscription( id=data["id"], status=SubscriptionStatus(data["status"]), diff --git a/paddle_billing/Entities/SubscriptionPreview.py b/paddle_billing/Entities/SubscriptionPreview.py index b598ebcd..37951ee9 100644 --- a/paddle_billing/Entities/SubscriptionPreview.py +++ b/paddle_billing/Entities/SubscriptionPreview.py @@ -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 ( @@ -46,7 +47,7 @@ class SubscriptionPreview(Entity): current_billing_period: TimePeriod | None billing_cycle: Duration scheduled_change: SubscriptionScheduledChange | None - management_urls: SubscriptionManagementUrls + management_urls: SubscriptionManagementUrls | None items: list[SubscriptionItem] custom_data: CustomData | None immediate_transaction: SubscriptionNextTransaction | None @@ -56,7 +57,7 @@ class SubscriptionPreview(Entity): import_meta: ImportMeta | None @staticmethod - def from_dict(data: dict) -> SubscriptionPreview: + def from_dict(data: dict[str, Any]) -> SubscriptionPreview: return SubscriptionPreview( status=SubscriptionStatus(data["status"]), customer_id=data["customer_id"], diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py b/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py index c1b270b5..b1e628c3 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py @@ -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 @@ -13,7 +14,7 @@ class SubscriptionAdjustmentItem: totals: AdjustmentItemTotals @staticmethod - def from_dict(data: dict) -> SubscriptionAdjustmentItem: + def from_dict(data: dict[str, Any]) -> SubscriptionAdjustmentItem: return SubscriptionAdjustmentItem( item_id=data["item_id"], type=AdjustmentType(data["type"]), diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py b/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py index 050aac48..4a3871d6 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared import AdjustmentTotals @@ -13,7 +14,7 @@ class SubscriptionAdjustmentPreview: totals: AdjustmentTotals @staticmethod - def from_dict(data: dict) -> SubscriptionAdjustmentPreview: + def from_dict(data: dict[str, Any]) -> SubscriptionAdjustmentPreview: return SubscriptionAdjustmentPreview( transaction_id=data["transaction_id"], items=[SubscriptionAdjustmentItem.from_dict(item) for item in data["items"]], diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionCharge.py b/paddle_billing/Entities/Subscriptions/SubscriptionCharge.py index 5cad165e..8cede096 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionCharge.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionCharge.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared import CurrencyCode @@ -10,7 +11,7 @@ class SubscriptionCharge: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> SubscriptionCharge: + def from_dict(data: dict[str, Any]) -> SubscriptionCharge: return SubscriptionCharge( amount=data["amount"], currency_code=CurrencyCode(data["currency_code"]), diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionCredit.py b/paddle_billing/Entities/Subscriptions/SubscriptionCredit.py index 4dc7868d..d5a477f0 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionCredit.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionCredit.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared import CurrencyCode @@ -10,7 +11,7 @@ class SubscriptionCredit: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> SubscriptionCredit: + def from_dict(data: dict[str, Any]) -> SubscriptionCredit: return SubscriptionCredit( amount=data["amount"], currency_code=CurrencyCode(data["currency_code"]), diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py b/paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py index 3575abf9..1e62a619 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any @dataclass @@ -10,7 +11,7 @@ class SubscriptionDiscount: ends_at: datetime | None @staticmethod - def from_dict(data: dict) -> SubscriptionDiscount: + def from_dict(data: dict[str, Any]) -> SubscriptionDiscount: return SubscriptionDiscount( id=data["id"], starts_at=datetime.fromisoformat(data["starts_at"]) if data.get("starts_at") else None, diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionItem.py b/paddle_billing/Entities/Subscriptions/SubscriptionItem.py index 4b5b84b9..00731c37 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionItem.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionItem.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Shared.TimePeriod import TimePeriod @@ -23,7 +24,7 @@ class SubscriptionItem: product: Product @staticmethod - def from_dict(data: dict) -> SubscriptionItem: + def from_dict(data: dict[str, Any]) -> SubscriptionItem: return SubscriptionItem( status=SubscriptionItemStatus(data["status"]), quantity=data["quantity"], diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py b/paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py index 5140a734..04e61829 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class SubscriptionManagementUrls: cancel: str @staticmethod - def from_dict(data: dict) -> SubscriptionManagementUrls: + def from_dict(data: dict[str, Any]) -> SubscriptionManagementUrls: return SubscriptionManagementUrls( update_payment_method=data.get("update_payment_method"), cancel=data["cancel"], diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py b/paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py index 3d2ed4a2..9a7254f3 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.TransactionDetailsPreview import TransactionDetailsPreview from paddle_billing.Entities.Shared.TimePeriod import TimePeriod @@ -14,7 +15,7 @@ class SubscriptionNextTransaction: adjustments: list[SubscriptionAdjustmentPreview] @staticmethod - def from_dict(data: dict) -> SubscriptionNextTransaction: + def from_dict(data: dict[str, Any]) -> SubscriptionNextTransaction: return SubscriptionNextTransaction( billing_period=TimePeriod.from_dict(data["billing_period"]), details=TransactionDetailsPreview.from_dict(data["details"]), diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py b/paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py index 03dcad16..58aa3003 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Subscriptions.SubscriptionCharge import SubscriptionCharge from paddle_billing.Entities.Subscriptions.SubscriptionCredit import SubscriptionCredit @@ -13,7 +14,7 @@ class SubscriptionPreviewSubscriptionUpdateSummary: result: SubscriptionResult @staticmethod - def from_dict(data: dict) -> SubscriptionPreviewSubscriptionUpdateSummary: + def from_dict(data: dict[str, Any]) -> SubscriptionPreviewSubscriptionUpdateSummary: return SubscriptionPreviewSubscriptionUpdateSummary( credit=SubscriptionCredit.from_dict(data["credit"]), charge=SubscriptionCharge.from_dict(data["charge"]), diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionResult.py b/paddle_billing/Entities/Subscriptions/SubscriptionResult.py index 848870b8..50b98a5a 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionResult.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionResult.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared import CurrencyCode @@ -13,7 +14,7 @@ class SubscriptionResult: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> SubscriptionResult: + def from_dict(data: dict[str, Any]) -> SubscriptionResult: return SubscriptionResult( action=SubscriptionResultAction(data["action"]), amount=data["amount"], diff --git a/paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py b/paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py index 667468d1..6a932285 100644 --- a/paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py +++ b/paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Entities.Subscriptions.SubscriptionScheduledChangeAction import SubscriptionScheduledChangeAction @@ -12,7 +13,7 @@ class SubscriptionScheduledChange: resume_at: datetime | None @staticmethod - def from_dict(data: dict) -> SubscriptionScheduledChange: + def from_dict(data: dict[str, Any]) -> SubscriptionScheduledChange: return SubscriptionScheduledChange( action=SubscriptionScheduledChangeAction(data["action"]), effective_at=datetime.fromisoformat(data["effective_at"]), diff --git a/paddle_billing/Entities/TransactionData.py b/paddle_billing/Entities/TransactionData.py index b887946d..85555275 100644 --- a/paddle_billing/Entities/TransactionData.py +++ b/paddle_billing/Entities/TransactionData.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity @@ -9,5 +10,5 @@ class TransactionData(Entity): url: str @staticmethod - def from_dict(data: dict) -> TransactionData: + def from_dict(data: dict[str, Any]) -> TransactionData: return TransactionData(data["url"]) diff --git a/paddle_billing/Entities/TransactionPreview.py b/paddle_billing/Entities/TransactionPreview.py index 43dac0a0..9f4cb458 100644 --- a/paddle_billing/Entities/TransactionPreview.py +++ b/paddle_billing/Entities/TransactionPreview.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Entity import Entity from paddle_billing.Entities.Shared import AddressPreview, CurrencyCode, PaymentMethodType @@ -23,7 +24,7 @@ class TransactionPreview(Entity): available_payment_methods: list[PaymentMethodType] @staticmethod - def from_dict(data: dict) -> TransactionPreview: + def from_dict(data: dict[str, Any]) -> TransactionPreview: return TransactionPreview( customer_id=data.get("customer_id"), address_id=data.get("address_id"), diff --git a/paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py b/paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py index 01d76d87..89c9ab80 100644 --- a/paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py +++ b/paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.CurrencyCode import CurrencyCode @@ -17,7 +18,7 @@ class TransactionAdjustmentsTotals: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> TransactionAdjustmentsTotals: + def from_dict(data: dict[str, Any]) -> TransactionAdjustmentsTotals: return TransactionAdjustmentsTotals( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Entities/Transactions/TransactionBreakdown.py b/paddle_billing/Entities/Transactions/TransactionBreakdown.py index 61a25340..0904e7fc 100644 --- a/paddle_billing/Entities/Transactions/TransactionBreakdown.py +++ b/paddle_billing/Entities/Transactions/TransactionBreakdown.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -9,7 +10,7 @@ class TransactionBreakdown: chargeback: str @staticmethod - def from_dict(data: dict) -> TransactionBreakdown: + def from_dict(data: dict[str, Any]) -> TransactionBreakdown: return TransactionBreakdown( credit=data["credit"], refund=data["refund"], diff --git a/paddle_billing/Entities/Transactions/TransactionDetails.py b/paddle_billing/Entities/Transactions/TransactionDetails.py index 65631e37..f04e7748 100644 --- a/paddle_billing/Entities/Transactions/TransactionDetails.py +++ b/paddle_billing/Entities/Transactions/TransactionDetails.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Shared.TaxRatesUsed import TaxRatesUsed from paddle_billing.Entities.Shared.TransactionPayoutTotals import TransactionPayoutTotals @@ -20,7 +21,7 @@ class TransactionDetails: lineItems: list[TransactionLineItem] @staticmethod - def from_dict(data: dict) -> TransactionDetails: + def from_dict(data: dict[str, Any]) -> TransactionDetails: return TransactionDetails( totals=TransactionTotals.from_dict(data["totals"]), tax_rates_used=[TaxRatesUsed.from_dict(tax_rate_used) for tax_rate_used in data["tax_rates_used"]], diff --git a/paddle_billing/Entities/Transactions/TransactionItem.py b/paddle_billing/Entities/Transactions/TransactionItem.py index 29497cd8..9d82d876 100644 --- a/paddle_billing/Entities/Transactions/TransactionItem.py +++ b/paddle_billing/Entities/Transactions/TransactionItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Price import Price @@ -13,7 +14,7 @@ class TransactionItem: proration: Proration | None @staticmethod - def from_dict(data: dict) -> TransactionItem: + def from_dict(data: dict[str, Any]) -> TransactionItem: return TransactionItem( price=Price.from_dict(data["price"]), quantity=data["quantity"], diff --git a/paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py b/paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py index 902a4ee2..e0086679 100644 --- a/paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py +++ b/paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Transactions.TransactionPreviewPrice import TransactionPreviewPrice @@ -14,7 +15,7 @@ class TransactionItemPreviewWithPrice: proration: Proration | None @staticmethod - def from_dict(data: dict) -> TransactionItemPreviewWithPrice: + def from_dict(data: dict[str, Any]) -> TransactionItemPreviewWithPrice: return TransactionItemPreviewWithPrice( price=TransactionPreviewPrice.from_dict(data["price"]), quantity=data["quantity"], diff --git a/paddle_billing/Entities/Transactions/TransactionLineItem.py b/paddle_billing/Entities/Transactions/TransactionLineItem.py index fefb5727..acd5a490 100644 --- a/paddle_billing/Entities/Transactions/TransactionLineItem.py +++ b/paddle_billing/Entities/Transactions/TransactionLineItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Product import Product @@ -20,7 +21,7 @@ class TransactionLineItem: product: Product @staticmethod - def from_dict(data: dict) -> TransactionLineItem: + def from_dict(data: dict[str, Any]) -> TransactionLineItem: return TransactionLineItem( id=data["id"], price_id=data["price_id"], diff --git a/paddle_billing/Entities/Transactions/TransactionPreviewPrice.py b/paddle_billing/Entities/Transactions/TransactionPreviewPrice.py index bff2ffc3..f5d9a994 100644 --- a/paddle_billing/Entities/Transactions/TransactionPreviewPrice.py +++ b/paddle_billing/Entities/Transactions/TransactionPreviewPrice.py @@ -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 ( @@ -22,7 +23,7 @@ class TransactionPreviewPrice(Entity): product_id: str | None name: str | None description: str - type: CatalogType + type: CatalogType | None billing_cycle: Duration | None trial_period: Duration | None tax_mode: TaxMode @@ -36,7 +37,7 @@ class TransactionPreviewPrice(Entity): updated_at: datetime @staticmethod - def from_dict(data: dict) -> TransactionPreviewPrice: + def from_dict(data: dict[str, Any]) -> TransactionPreviewPrice: return TransactionPreviewPrice( id=data.get("id"), product_id=data.get("product_id"), diff --git a/paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py b/paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py index 15310c21..327dd850 100644 --- a/paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py +++ b/paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py @@ -1,3 +1,5 @@ +from typing import Any + from paddle_billing.Exceptions.SdkException import SdkException @@ -8,7 +10,7 @@ def array_is_empty(field): return InvalidArgumentException(message) @staticmethod - def array_contains_invalid_types(field, expected_types: list[str] | str, given: list = None): + def array_contains_invalid_types(field, expected_types: list[str] | str, given: list[Any] | None = None): if isinstance(expected_types, list): expected_types_str = "', '".join(expected_types) message = f"Expected '{field}' to only contain types '{expected_types_str}'" diff --git a/paddle_billing/FiltersNone.py b/paddle_billing/FiltersNone.py index d0390f30..eb35ffdf 100644 --- a/paddle_billing/FiltersNone.py +++ b/paddle_billing/FiltersNone.py @@ -1,6 +1,9 @@ +from typing import Any + + class FiltersNone: @staticmethod - def filter_none_values(input_dict) -> dict: + def filter_none_values(input_dict) -> dict[str, Any]: """ This method filters out values that are None from the given list """ diff --git a/paddle_billing/FiltersUndefined.py b/paddle_billing/FiltersUndefined.py index 38b89f20..dec7e149 100644 --- a/paddle_billing/FiltersUndefined.py +++ b/paddle_billing/FiltersUndefined.py @@ -1,9 +1,10 @@ from paddle_billing.Undefined import Undefined +from typing import Any class FiltersUndefined: @staticmethod - def filter_undefined_values(input_dict) -> dict: + def filter_undefined_values(input_dict) -> dict[str, Any]: """ This method filters out values that are None from the given list """ diff --git a/paddle_billing/HasParameters.py b/paddle_billing/HasParameters.py index 454f17a8..cc7cbc70 100644 --- a/paddle_billing/HasParameters.py +++ b/paddle_billing/HasParameters.py @@ -3,7 +3,7 @@ class HasParameters(ABC): @abstractmethod - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: """ Implementations of this method should return a dictionary of parameters suitable to be used in API calls, e.g., {'foo': 'bar'} which would result in foo=bar in an API call. diff --git a/paddle_billing/Notifications/Entities/Address.py b/paddle_billing/Notifications/Entities/Address.py index 3e15b87d..876b4f7a 100644 --- a/paddle_billing/Notifications/Entities/Address.py +++ b/paddle_billing/Notifications/Entities/Address.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import CountryCode, CustomData, ImportMeta, Status @@ -24,7 +25,7 @@ class Address(Entity): customer_id: str | None = None @staticmethod - def from_dict(data: dict) -> Address: + def from_dict(data: dict[str, Any]) -> Address: return Address( id=data["id"], customer_id=data.get("customer_id"), diff --git a/paddle_billing/Notifications/Entities/Adjustment.py b/paddle_billing/Notifications/Entities/Adjustment.py index a78b8e30..210f3d30 100644 --- a/paddle_billing/Notifications/Entities/Adjustment.py +++ b/paddle_billing/Notifications/Entities/Adjustment.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Adjustments import AdjustmentItem, AdjustmentTaxRatesUsed from paddle_billing.Notifications.Entities.Entity import Entity @@ -34,7 +35,7 @@ class Adjustment(Entity): type: AdjustmentActionType | None @staticmethod - def from_dict(data: dict) -> Adjustment: + def from_dict(data: dict[str, Any]) -> Adjustment: return Adjustment( id=data["id"], action=Action(data["action"]), diff --git a/paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py b/paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py index 01ed98e6..1ef55a41 100644 --- a/paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py +++ b/paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared import AdjustmentItemTotals, AdjustmentType, Proration @@ -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"], diff --git a/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTaxRatesUsed.py b/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTaxRatesUsed.py index 8cb92330..2fd95e8a 100644 --- a/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTaxRatesUsed.py +++ b/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTaxRatesUsed.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Adjustments.AdjustmentTotals import AdjustmentTotals @@ -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"]), diff --git a/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTotals.py b/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTotals.py index 658b34d5..ddf1aff2 100644 --- a/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTotals.py +++ b/paddle_billing/Notifications/Entities/Adjustments/AdjustmentTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -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"], diff --git a/paddle_billing/Notifications/Entities/Business.py b/paddle_billing/Notifications/Entities/Business.py index 4da8857c..7a2cb3b4 100644 --- a/paddle_billing/Notifications/Entities/Business.py +++ b/paddle_billing/Notifications/Entities/Business.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Businesses import BusinessesContacts @@ -22,7 +23,7 @@ class Business(Entity): customer_id: str | 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.get("customer_id"), diff --git a/paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py b/paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py index efe22d88..65c04c47 100644 --- a/paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py +++ b/paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class BusinessesContacts: email: str @staticmethod - def from_dict(data: dict) -> BusinessesContacts: + def from_dict(data: dict[str, Any]) -> BusinessesContacts: return BusinessesContacts( name=data["name"], email=data["email"], diff --git a/paddle_billing/Notifications/Entities/Customer.py b/paddle_billing/Notifications/Entities/Customer.py index 941bb4dc..7a6103b2 100644 --- a/paddle_billing/Notifications/Entities/Customer.py +++ b/paddle_billing/Notifications/Entities/Customer.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import CustomData, ImportMeta, Status @@ -20,7 +21,7 @@ class Customer(Entity): import_meta: ImportMeta | None = None @staticmethod - def from_dict(data: dict) -> Customer: + def from_dict(data: dict[str, Any]) -> Customer: return Customer( id=data["id"], name=data.get("name"), diff --git a/paddle_billing/Notifications/Entities/Discount.py b/paddle_billing/Notifications/Entities/Discount.py index cc026ef6..c46c9e7d 100644 --- a/paddle_billing/Notifications/Entities/Discount.py +++ b/paddle_billing/Notifications/Entities/Discount.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Discounts import DiscountStatus, DiscountType from paddle_billing.Notifications.Entities.Entity import Entity @@ -24,11 +25,11 @@ class Discount(Entity): expires_at: datetime | None = None import_meta: ImportMeta | None = None maximum_recurring_intervals: int | None = None - restrict_to: list | None = None + restrict_to: list[Any] | None = None usage_limit: int | None = None @staticmethod - def from_dict(data: dict) -> Discount: + def from_dict(data: dict[str, Any]) -> Discount: return Discount( amount=data["amount"], code=data.get("code"), diff --git a/paddle_billing/Notifications/Entities/Entity.py b/paddle_billing/Notifications/Entities/Entity.py index d591c9d5..9737a88e 100644 --- a/paddle_billing/Notifications/Entities/Entity.py +++ b/paddle_billing/Notifications/Entities/Entity.py @@ -1,5 +1,6 @@ from __future__ import annotations from abc import ABC, abstractmethod +from typing import Any from dataclasses import asdict, dataclass from importlib import import_module from paddle_billing.Notifications.Entities.EntityDict import EntityDict @@ -10,14 +11,14 @@ class Entity(ABC, EntityDict): @staticmethod @abstractmethod - def from_dict(data: dict): + def from_dict(data: dict[str, Any]): """ A static factory for the entity that conforms to the Paddle API. """ pass @staticmethod - def from_dict_for_event_type(data: dict, event_type: str) -> Entity | UndefinedEntity: + def from_dict_for_event_type(data: dict[str, Any], event_type: str) -> Entity | UndefinedEntity: entity_class_name = Entity._resolve_event_class_name(event_type) entity_class = None @@ -35,7 +36,7 @@ def from_dict_for_event_type(data: dict, event_type: str) -> Entity | UndefinedE if not instantiated_class: return UndefinedEntity(data) - if not issubclass(entity_class, Entity): + if type(entity_class) is not type or not issubclass(entity_class, Entity): raise ValueError(f"Event type '{entity_class_name}' is not of Entity") return instantiated_class @@ -51,5 +52,5 @@ def _resolve_event_class_name(event_type) -> str: return event_entity.lower().title().replace("_", "") - def to_dict(self) -> dict: + def to_dict(self) -> dict[str, Any]: return asdict(self) diff --git a/paddle_billing/Notifications/Entities/EntityDict.py b/paddle_billing/Notifications/Entities/EntityDict.py index c5dd21c5..e0dd73b9 100644 --- a/paddle_billing/Notifications/Entities/EntityDict.py +++ b/paddle_billing/Notifications/Entities/EntityDict.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Protocol +from typing import Protocol, Any class EntityDict(Protocol): - def to_dict(self) -> dict: ... + def to_dict(self) -> dict[str, Any]: ... diff --git a/paddle_billing/Notifications/Entities/PaymentMethod.py b/paddle_billing/Notifications/Entities/PaymentMethod.py index 30f526c7..e680b821 100644 --- a/paddle_billing/Notifications/Entities/PaymentMethod.py +++ b/paddle_billing/Notifications/Entities/PaymentMethod.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import ( @@ -20,7 +21,7 @@ class PaymentMethod(Entity): updated_at: datetime @staticmethod - def from_dict(data: dict) -> PaymentMethod: + def from_dict(data: dict[str, Any]) -> PaymentMethod: return PaymentMethod( id=data["id"], customer_id=data["customer_id"], diff --git a/paddle_billing/Notifications/Entities/PaymentMethodDeleted.py b/paddle_billing/Notifications/Entities/PaymentMethodDeleted.py index bcad8357..47e03317 100644 --- a/paddle_billing/Notifications/Entities/PaymentMethodDeleted.py +++ b/paddle_billing/Notifications/Entities/PaymentMethodDeleted.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import ( @@ -22,7 +23,7 @@ class PaymentMethodDeleted(Entity): deletion_reason: SavedPaymentMethodDeletionReason @staticmethod - def from_dict(data: dict) -> PaymentMethodDeleted: + def from_dict(data: dict[str, Any]) -> PaymentMethodDeleted: return PaymentMethodDeleted( id=data["id"], customer_id=data["customer_id"], diff --git a/paddle_billing/Notifications/Entities/Payout.py b/paddle_billing/Notifications/Entities/Payout.py index 19e4cd54..7b91457b 100644 --- a/paddle_billing/Notifications/Entities/Payout.py +++ b/paddle_billing/Notifications/Entities/Payout.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Payouts import PayoutStatus @@ -14,7 +15,7 @@ class Payout(Entity): status: PayoutStatus @staticmethod - def from_dict(data: dict) -> Payout: + def from_dict(data: dict[str, Any]) -> Payout: return Payout( amount=data["amount"], id=data["id"], diff --git a/paddle_billing/Notifications/Entities/Price.py b/paddle_billing/Notifications/Entities/Price.py index bc5e0a11..0db8b0d3 100644 --- a/paddle_billing/Notifications/Entities/Price.py +++ b/paddle_billing/Notifications/Entities/Price.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import ( @@ -36,7 +37,7 @@ class Price(Entity): updated_at: datetime | None @classmethod - def from_dict(cls, data: dict) -> Price: + def from_dict(cls, data: dict[str, Any]) -> Price: return Price( id=data["id"], product_id=data["product_id"], diff --git a/paddle_billing/Notifications/Entities/Product.py b/paddle_billing/Notifications/Entities/Product.py index 9805feae..75b28e27 100644 --- a/paddle_billing/Notifications/Entities/Product.py +++ b/paddle_billing/Notifications/Entities/Product.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import CatalogType, CustomData, ImportMeta, Status, TaxCategory @@ -24,7 +25,7 @@ class Product(Entity): updated_at: datetime | None = None @staticmethod - def from_dict(data: dict) -> Product: + def from_dict(data: dict[str, Any]) -> Product: return Product( description=data.get("description"), id=data["id"], diff --git a/paddle_billing/Notifications/Entities/Report.py b/paddle_billing/Notifications/Entities/Report.py index c226f4f9..87fbfcd7 100644 --- a/paddle_billing/Notifications/Entities/Report.py +++ b/paddle_billing/Notifications/Entities/Report.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Reports import ReportFilter, ReportStatus, ReportType @@ -18,7 +19,7 @@ class Report(Entity): updated_at: datetime @staticmethod - def from_dict(data: dict) -> Report: + def from_dict(data: dict[str, Any]) -> Report: return Report( id=data["id"], status=ReportStatus(data["status"]), diff --git a/paddle_billing/Notifications/Entities/Reports/ReportFilter.py b/paddle_billing/Notifications/Entities/Reports/ReportFilter.py index 3d3e171d..88f6e334 100644 --- a/paddle_billing/Notifications/Entities/Reports/ReportFilter.py +++ b/paddle_billing/Notifications/Entities/Reports/ReportFilter.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Reports import ReportFilterName, ReportFilterOperator @@ -8,8 +9,8 @@ class ReportFilter: name: ReportFilterName operator: ReportFilterOperator | None - value: list | str + value: list[Any] | str @staticmethod - def from_dict(data: dict) -> ReportFilter: + def from_dict(data: dict[str, Any]) -> ReportFilter: return ReportFilter(**data) diff --git a/paddle_billing/Notifications/Entities/Shared/AddressPreview.py b/paddle_billing/Notifications/Entities/Shared/AddressPreview.py index 63736fd0..4d361012 100644 --- a/paddle_billing/Notifications/Entities/Shared/AddressPreview.py +++ b/paddle_billing/Notifications/Entities/Shared/AddressPreview.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CountryCode import CountryCode @@ -10,7 +11,7 @@ class AddressPreview: country_code: CountryCode @staticmethod - def from_dict(data: dict) -> AddressPreview: + def from_dict(data: dict[str, Any]) -> AddressPreview: return AddressPreview( postal_code=data.get("postal_code"), country_code=CountryCode(data["country_code"]), diff --git a/paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py b/paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py index 4d74c5c3..684aa83f 100644 --- a/paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py +++ b/paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -9,7 +10,7 @@ class AdjustmentItemTotals: total: str @staticmethod - def from_dict(data: dict) -> AdjustmentItemTotals: + def from_dict(data: dict[str, Any]) -> AdjustmentItemTotals: return AdjustmentItemTotals( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py b/paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py index b951bd3c..e8a913d5 100644 --- a/paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py +++ b/paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode @@ -14,7 +15,7 @@ class AdjustmentTotals: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> AdjustmentTotals: + def from_dict(data: dict[str, Any]) -> AdjustmentTotals: return AdjustmentTotals( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Notifications/Entities/Shared/BillingDetails.py b/paddle_billing/Notifications/Entities/Shared/BillingDetails.py index 37329fac..08b21c7a 100644 --- a/paddle_billing/Notifications/Entities/Shared/BillingDetails.py +++ b/paddle_billing/Notifications/Entities/Shared/BillingDetails.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.Duration import Duration @@ -12,7 +13,7 @@ class BillingDetails: additional_information: str | None = None @staticmethod - def from_dict(data: dict) -> BillingDetails: + def from_dict(data: dict[str, Any]) -> BillingDetails: return BillingDetails( enable_checkout=data["enable_checkout"], payment_terms=Duration.from_dict(data["payment_terms"]), diff --git a/paddle_billing/Notifications/Entities/Shared/Card.py b/paddle_billing/Notifications/Entities/Shared/Card.py index be7f896d..2451dade 100644 --- a/paddle_billing/Notifications/Entities/Shared/Card.py +++ b/paddle_billing/Notifications/Entities/Shared/Card.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Entities.Transactions.TransactionCardType import TransactionCardType @@ -13,7 +14,7 @@ class Card: cardholder_name: str | None @staticmethod - def from_dict(data: dict) -> Card: + def from_dict(data: dict[str, Any]) -> Card: return Card( type=TransactionCardType(data["type"]), last4=data["last4"], diff --git a/paddle_billing/Notifications/Entities/Shared/ChargebackFee.py b/paddle_billing/Notifications/Entities/Shared/ChargebackFee.py index dc28721c..83d3876b 100644 --- a/paddle_billing/Notifications/Entities/Shared/ChargebackFee.py +++ b/paddle_billing/Notifications/Entities/Shared/ChargebackFee.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.Original import Original @@ -10,7 +11,7 @@ class ChargebackFee: original: Original | None @staticmethod - def from_dict(data: dict) -> ChargebackFee: + def from_dict(data: dict[str, Any]) -> ChargebackFee: return ChargebackFee( amount=data["amount"], original=Original.from_dict(data["original"]) if data.get("original") else None, diff --git a/paddle_billing/Notifications/Entities/Shared/Checkout.py b/paddle_billing/Notifications/Entities/Shared/Checkout.py index 5a60e7f2..fd7cfe09 100644 --- a/paddle_billing/Notifications/Entities/Shared/Checkout.py +++ b/paddle_billing/Notifications/Entities/Shared/Checkout.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -7,5 +8,5 @@ class Checkout: url: str | None @staticmethod - def from_dict(data: dict) -> Checkout: + def from_dict(data: dict[str, Any]) -> Checkout: return Checkout(url=data.get("url")) diff --git a/paddle_billing/Notifications/Entities/Shared/CustomData.py b/paddle_billing/Notifications/Entities/Shared/CustomData.py index 349610fc..cf0a419d 100644 --- a/paddle_billing/Notifications/Entities/Shared/CustomData.py +++ b/paddle_billing/Notifications/Entities/Shared/CustomData.py @@ -1,9 +1,10 @@ from dataclasses import dataclass +from typing import Any @dataclass class CustomData: - data: dict | list # JSON serializable Python types + data: dict[str, Any] | list[Any] # JSON serializable Python types def to_json(self): return self.data diff --git a/paddle_billing/Notifications/Entities/Shared/Data.py b/paddle_billing/Notifications/Entities/Shared/Data.py index 8f01507c..48699ef3 100644 --- a/paddle_billing/Notifications/Entities/Shared/Data.py +++ b/paddle_billing/Notifications/Entities/Shared/Data.py @@ -4,6 +4,6 @@ @dataclass class Data: - data: dict | list | Any # TODO Any? Should be JSON serializable Python types though + data: dict[str, Any] | list[Any] | Any # TODO Any? Should be JSON serializable Python types though # from_dict method isn't needed, unless specific processing of 'data' is required. diff --git a/paddle_billing/Notifications/Entities/Shared/Duration.py b/paddle_billing/Notifications/Entities/Shared/Duration.py index b701f229..93e0ac9b 100644 --- a/paddle_billing/Notifications/Entities/Shared/Duration.py +++ b/paddle_billing/Notifications/Entities/Shared/Duration.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.Interval import Interval @@ -10,7 +11,7 @@ class Duration: frequency: int @staticmethod - def from_dict(data: dict) -> Duration: + def from_dict(data: dict[str, Any]) -> Duration: return Duration( interval=Interval(data["interval"]), frequency=data["frequency"], diff --git a/paddle_billing/Notifications/Entities/Shared/ImportMeta.py b/paddle_billing/Notifications/Entities/Shared/ImportMeta.py index b1147778..79c6a160 100644 --- a/paddle_billing/Notifications/Entities/Shared/ImportMeta.py +++ b/paddle_billing/Notifications/Entities/Shared/ImportMeta.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass(frozen=True) @@ -8,7 +9,7 @@ class ImportMeta: imported_from: str @staticmethod - def from_dict(data: dict) -> ImportMeta: + def from_dict(data: dict[str, Any]) -> ImportMeta: return ImportMeta( external_id=data.get("external_id"), imported_from=data["imported_from"], diff --git a/paddle_billing/Notifications/Entities/Shared/MethodDetails.py b/paddle_billing/Notifications/Entities/Shared/MethodDetails.py index 3526f0d9..7df29e02 100644 --- a/paddle_billing/Notifications/Entities/Shared/MethodDetails.py +++ b/paddle_billing/Notifications/Entities/Shared/MethodDetails.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.Card import Card from paddle_billing.Notifications.Entities.Shared.PaymentMethodType import PaymentMethodType @@ -11,7 +12,7 @@ class MethodDetails: card: Card | None @staticmethod - def from_dict(data: dict) -> MethodDetails: + def from_dict(data: dict[str, Any]) -> MethodDetails: return MethodDetails( PaymentMethodType(data["type"]), Card.from_dict(data["card"]) if data.get("card") else None, diff --git a/paddle_billing/Notifications/Entities/Shared/Money.py b/paddle_billing/Notifications/Entities/Shared/Money.py index d56b7873..1b9c7c8a 100644 --- a/paddle_billing/Notifications/Entities/Shared/Money.py +++ b/paddle_billing/Notifications/Entities/Shared/Money.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode @@ -20,7 +21,7 @@ def __post_init__(self): raise ValueError("Money amount should not contain decimals or commas") @staticmethod - def from_dict(data: dict) -> Money: + def from_dict(data: dict[str, Any]) -> Money: return Money( amount=data["amount"], currency_code=CurrencyCode(data["currency_code"]) if data.get("currency_code") else None, diff --git a/paddle_billing/Notifications/Entities/Shared/Original.py b/paddle_billing/Notifications/Entities/Shared/Original.py index 12e78d68..fb0b6b81 100644 --- a/paddle_billing/Notifications/Entities/Shared/Original.py +++ b/paddle_billing/Notifications/Entities/Shared/Original.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CurrencyCodeAdjustments import CurrencyCodeAdjustments @@ -10,7 +11,7 @@ class Original: currency_code: CurrencyCodeAdjustments @staticmethod - def from_dict(data: dict) -> Original: + def from_dict(data: dict[str, Any]) -> Original: return Original( amount=data["amount"], currency_code=CurrencyCodeAdjustments(data["currency_code"]), diff --git a/paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py b/paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py index 55dbd774..f458e800 100644 --- a/paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py +++ b/paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.ChargebackFee import ChargebackFee from paddle_billing.Notifications.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts @@ -16,7 +17,7 @@ class PayoutTotalsAdjustment: currency_code: CurrencyCodePayouts @staticmethod - def from_dict(data: dict) -> PayoutTotalsAdjustment: + def from_dict(data: dict[str, Any]) -> PayoutTotalsAdjustment: return PayoutTotalsAdjustment( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Notifications/Entities/Shared/Paypal.py b/paddle_billing/Notifications/Entities/Shared/Paypal.py index bc672c86..5dcb3bbf 100644 --- a/paddle_billing/Notifications/Entities/Shared/Paypal.py +++ b/paddle_billing/Notifications/Entities/Shared/Paypal.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class Paypal: reference: str @staticmethod - def from_dict(data: dict) -> Paypal: + def from_dict(data: dict[str, Any]) -> Paypal: return Paypal( email=data["email"], reference=data["reference"], diff --git a/paddle_billing/Notifications/Entities/Shared/PriceQuantity.py b/paddle_billing/Notifications/Entities/Shared/PriceQuantity.py index 00a04b1d..813fd708 100644 --- a/paddle_billing/Notifications/Entities/Shared/PriceQuantity.py +++ b/paddle_billing/Notifications/Entities/Shared/PriceQuantity.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -8,7 +9,7 @@ class PriceQuantity: maximum: int @staticmethod - def from_dict(data: dict) -> PriceQuantity: + def from_dict(data: dict[str, Any]) -> PriceQuantity: return PriceQuantity( minimum=data["minimum"], maximum=data["maximum"], diff --git a/paddle_billing/Notifications/Entities/Shared/Proration.py b/paddle_billing/Notifications/Entities/Shared/Proration.py index 6c384b86..52338807 100644 --- a/paddle_billing/Notifications/Entities/Shared/Proration.py +++ b/paddle_billing/Notifications/Entities/Shared/Proration.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.TimePeriod import TimePeriod @@ -10,7 +11,7 @@ class Proration: billing_period: TimePeriod @staticmethod - def from_dict(data: dict) -> Proration: + def from_dict(data: dict[str, Any]) -> Proration: return Proration( rate=data["rate"], billing_period=TimePeriod.from_dict(data["billing_period"]), diff --git a/paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py b/paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py index 332d8703..8a0bb0eb 100644 --- a/paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py +++ b/paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.Totals import Totals @@ -10,7 +11,7 @@ class TaxRatesUsed: totals: Totals @staticmethod - def from_dict(data: dict) -> TaxRatesUsed: + def from_dict(data: dict[str, Any]) -> TaxRatesUsed: return TaxRatesUsed( tax_rate=data["tax_rate"], totals=Totals.from_dict(data["totals"]), diff --git a/paddle_billing/Notifications/Entities/Shared/TimePeriod.py b/paddle_billing/Notifications/Entities/Shared/TimePeriod.py index 58af22da..d43c8427 100644 --- a/paddle_billing/Notifications/Entities/Shared/TimePeriod.py +++ b/paddle_billing/Notifications/Entities/Shared/TimePeriod.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any @dataclass @@ -9,7 +10,7 @@ class TimePeriod: ends_at: datetime @staticmethod - def from_dict(data: dict) -> TimePeriod: + def from_dict(data: dict[str, Any]) -> TimePeriod: return TimePeriod( starts_at=datetime.fromisoformat(data["starts_at"]), ends_at=datetime.fromisoformat(data["ends_at"]), diff --git a/paddle_billing/Notifications/Entities/Shared/Totals.py b/paddle_billing/Notifications/Entities/Shared/Totals.py index 9647bf06..6c5cc555 100644 --- a/paddle_billing/Notifications/Entities/Shared/Totals.py +++ b/paddle_billing/Notifications/Entities/Shared/Totals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -10,7 +11,7 @@ class Totals: total: str @staticmethod - def from_dict(data: dict) -> Totals: + def from_dict(data: dict[str, Any]) -> Totals: return Totals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py b/paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py index 5576c4b1..e2737709 100644 --- a/paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py +++ b/paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Shared.ErrorCode import ErrorCode from paddle_billing.Notifications.Entities.Shared.MethodDetails import MethodDetails @@ -20,7 +21,7 @@ class TransactionPaymentAttempt: captured_at: datetime | None @staticmethod - def from_dict(data: dict) -> TransactionPaymentAttempt: + def from_dict(data: dict[str, Any]) -> TransactionPaymentAttempt: return TransactionPaymentAttempt( payment_attempt_id=data["payment_attempt_id"], payment_method_id=data["payment_method_id"], diff --git a/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py b/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py index 26ac4d92..91e1776c 100644 --- a/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py +++ b/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts @@ -19,7 +20,7 @@ class TransactionPayoutTotals: credit_to_balance: str @staticmethod - def from_dict(data: dict) -> TransactionPayoutTotals: + def from_dict(data: dict[str, Any]) -> TransactionPayoutTotals: return TransactionPayoutTotals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py b/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py index 82f75dec..4e0c5ba9 100644 --- a/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py +++ b/paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.ChargebackFee import ChargebackFee from paddle_billing.Notifications.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts @@ -16,7 +17,7 @@ class TransactionPayoutTotalsAdjusted: currency_code: CurrencyCodePayouts @staticmethod - def from_dict(data: dict) -> TransactionPayoutTotalsAdjusted: + def from_dict(data: dict[str, Any]) -> TransactionPayoutTotalsAdjusted: return TransactionPayoutTotalsAdjusted( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Notifications/Entities/Shared/TransactionTotals.py b/paddle_billing/Notifications/Entities/Shared/TransactionTotals.py index ef560f59..4e1bcdf3 100644 --- a/paddle_billing/Notifications/Entities/Shared/TransactionTotals.py +++ b/paddle_billing/Notifications/Entities/Shared/TransactionTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode @@ -19,7 +20,7 @@ class TransactionTotals: credit_to_balance: str @staticmethod - def from_dict(data: dict) -> TransactionTotals: + def from_dict(data: dict[str, Any]) -> TransactionTotals: return TransactionTotals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py b/paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py index 0dd19384..ea62a629 100644 --- a/paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py +++ b/paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode @@ -15,7 +16,7 @@ class TransactionTotalsAdjusted: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> TransactionTotalsAdjusted: + def from_dict(data: dict[str, Any]) -> TransactionTotalsAdjusted: return TransactionTotalsAdjusted( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py b/paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py index c322ab51..c0a457c1 100644 --- a/paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py +++ b/paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CountryCode import CountryCode from paddle_billing.Notifications.Entities.Shared.Money import Money @@ -11,7 +12,7 @@ class UnitPriceOverride: unit_price: Money @staticmethod - def from_dict(data: dict) -> UnitPriceOverride: + def from_dict(data: dict[str, Any]) -> UnitPriceOverride: return UnitPriceOverride( country_codes=[CountryCode(code) for code in data["country_codes"]], unit_price=Money.from_dict(data["unit_price"]), diff --git a/paddle_billing/Notifications/Entities/Shared/UnitTotals.py b/paddle_billing/Notifications/Entities/Shared/UnitTotals.py index dc59dc72..1e938b43 100644 --- a/paddle_billing/Notifications/Entities/Shared/UnitTotals.py +++ b/paddle_billing/Notifications/Entities/Shared/UnitTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -10,7 +11,7 @@ class UnitTotals: total: str @staticmethod - def from_dict(data: dict) -> UnitTotals: + def from_dict(data: dict[str, Any]) -> UnitTotals: return UnitTotals( subtotal=data["subtotal"], discount=data["discount"], diff --git a/paddle_billing/Notifications/Entities/Simulations/Address.py b/paddle_billing/Notifications/Entities/Simulations/Address.py index 8dff5ee0..83386d28 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Address.py +++ b/paddle_billing/Notifications/Entities/Simulations/Address.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import CountryCode, CustomData, ImportMeta, Status @@ -25,7 +26,7 @@ class Address(SimulationEntity): customer_id: str | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Address: + def from_dict(data: dict[str, Any]) -> Address: return Address( id=data.get("id", Undefined()), customer_id=data.get("customer_id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Adjustment.py b/paddle_billing/Notifications/Entities/Simulations/Adjustment.py index 901519ea..619b1649 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Adjustment.py +++ b/paddle_billing/Notifications/Entities/Simulations/Adjustment.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Adjustments import AdjustmentItem, AdjustmentTaxRatesUsed @@ -35,7 +36,7 @@ class Adjustment(SimulationEntity): type: AdjustmentActionType | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Adjustment: + def from_dict(data: dict[str, Any]) -> Adjustment: return Adjustment( id=data.get("id", Undefined()), action=Action(data["action"]) if data.get("action") else Undefined(), diff --git a/paddle_billing/Notifications/Entities/Simulations/Business.py b/paddle_billing/Notifications/Entities/Simulations/Business.py index 55d48bad..ec7ee786 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Business.py +++ b/paddle_billing/Notifications/Entities/Simulations/Business.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Businesses import BusinessesContacts @@ -23,7 +24,7 @@ class Business(SimulationEntity): customer_id: str | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Business: + def from_dict(data: dict[str, Any]) -> Business: return Business( id=data.get("id", Undefined()), customer_id=data.get("customer_id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Customer.py b/paddle_billing/Notifications/Entities/Simulations/Customer.py index 2aae2c4a..eb39836b 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Customer.py +++ b/paddle_billing/Notifications/Entities/Simulations/Customer.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import CustomData, ImportMeta, Status @@ -21,7 +22,7 @@ class Customer(SimulationEntity): import_meta: ImportMeta | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Customer: + def from_dict(data: dict[str, Any]) -> Customer: return Customer( id=data.get("id", Undefined()), name=data.get("name", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Discount.py b/paddle_billing/Notifications/Entities/Simulations/Discount.py index 1e2ad52f..1e4b14cc 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Discount.py +++ b/paddle_billing/Notifications/Entities/Simulations/Discount.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Discounts import DiscountStatus, DiscountType @@ -25,11 +26,11 @@ class Discount(SimulationEntity): expires_at: datetime | None | Undefined = Undefined() import_meta: ImportMeta | None | Undefined = Undefined() maximum_recurring_intervals: int | None | Undefined = Undefined() - restrict_to: list | None | Undefined = Undefined() + restrict_to: list[Any] | None | Undefined = Undefined() usage_limit: int | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Discount: + def from_dict(data: dict[str, Any]) -> Discount: return Discount( amount=data.get("amount", Undefined()), code=data.get("code", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/PaymentMethod.py b/paddle_billing/Notifications/Entities/Simulations/PaymentMethod.py index 7561ae39..7f7b7f39 100644 --- a/paddle_billing/Notifications/Entities/Simulations/PaymentMethod.py +++ b/paddle_billing/Notifications/Entities/Simulations/PaymentMethod.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import ( @@ -21,7 +22,7 @@ class PaymentMethod(SimulationEntity): updated_at: datetime | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> PaymentMethod: + def from_dict(data: dict[str, Any]) -> PaymentMethod: return PaymentMethod( id=data.get("id", Undefined()), customer_id=data.get("customer_id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/PaymentMethodDeleted.py b/paddle_billing/Notifications/Entities/Simulations/PaymentMethodDeleted.py index be37bf93..56b2bea8 100644 --- a/paddle_billing/Notifications/Entities/Simulations/PaymentMethodDeleted.py +++ b/paddle_billing/Notifications/Entities/Simulations/PaymentMethodDeleted.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import ( @@ -23,7 +24,7 @@ class PaymentMethodDeleted(SimulationEntity): deletion_reason: SavedPaymentMethodDeletionReason | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> PaymentMethodDeleted: + def from_dict(data: dict[str, Any]) -> PaymentMethodDeleted: return PaymentMethodDeleted( id=data.get("id", Undefined()), customer_id=data.get("customer_id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Payout.py b/paddle_billing/Notifications/Entities/Simulations/Payout.py index 7ade3c23..28d5970b 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Payout.py +++ b/paddle_billing/Notifications/Entities/Simulations/Payout.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Payouts import PayoutStatus @@ -15,7 +16,7 @@ class Payout(SimulationEntity): status: PayoutStatus | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Payout: + def from_dict(data: dict[str, Any]) -> Payout: return Payout( amount=data.get("amount", Undefined()), id=data.get("id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Price.py b/paddle_billing/Notifications/Entities/Simulations/Price.py index 6d94bbe7..473b8876 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Price.py +++ b/paddle_billing/Notifications/Entities/Simulations/Price.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import ( @@ -37,7 +38,7 @@ class Price(SimulationEntity): updated_at: datetime | None | Undefined = Undefined() @classmethod - def from_dict(cls, data: dict) -> Price: + def from_dict(cls, data: dict[str, Any]) -> Price: return Price( id=data.get("id", Undefined()), product_id=data.get("product_id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Product.py b/paddle_billing/Notifications/Entities/Simulations/Product.py index d731cb0f..05f6ea08 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Product.py +++ b/paddle_billing/Notifications/Entities/Simulations/Product.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import CatalogType, CustomData, ImportMeta, Status, TaxCategory @@ -22,7 +23,7 @@ class Product(SimulationEntity): updated_at: datetime | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Product: + def from_dict(data: dict[str, Any]) -> Product: return Product( description=data.get("description", Undefined()), id=data.get("id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Report.py b/paddle_billing/Notifications/Entities/Simulations/Report.py index 571662f7..6794a55b 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Report.py +++ b/paddle_billing/Notifications/Entities/Simulations/Report.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Reports import ReportFilter, ReportStatus, ReportType @@ -19,7 +20,7 @@ class Report(SimulationEntity): updated_at: datetime | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Report: + def from_dict(data: dict[str, Any]) -> Report: return Report( id=data.get("id", Undefined()), status=ReportStatus(data["status"]) if data.get("status") else Undefined(), diff --git a/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py b/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py index eee6117e..358d3f72 100644 --- a/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py +++ b/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py @@ -1,4 +1,5 @@ from __future__ import annotations +from typing import Any from dataclasses import dataclass from abc import ABC from paddle_billing.Notifications.Entities.UndefinedEntity import UndefinedEntity @@ -8,7 +9,7 @@ @dataclass class SimulationEntity(ABC): @staticmethod - def from_dict_for_event_type(data: dict, event_type: str) -> SimulationEntity | UndefinedEntity: + def from_dict_for_event_type(data: dict[str, Any], event_type: str) -> SimulationEntity | UndefinedEntity: entity_class_name = SimulationEntity._resolve_event_class_name(event_type) entity_class = None @@ -26,7 +27,7 @@ def from_dict_for_event_type(data: dict, event_type: str) -> SimulationEntity | if not instantiated_class: return UndefinedEntity(data) - if not issubclass(entity_class, SimulationEntity): + if type(entity_class) is not type or not issubclass(entity_class, SimulationEntity): raise ValueError(f"Event type '{entity_class_name}' is not of SimulationEntity") return instantiated_class diff --git a/paddle_billing/Notifications/Entities/Simulations/Subscription.py b/paddle_billing/Notifications/Entities/Simulations/Subscription.py index dc7ce569..64a7476a 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Subscription.py +++ b/paddle_billing/Notifications/Entities/Simulations/Subscription.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import ( @@ -47,7 +48,7 @@ class Subscription(SimulationEntity): started_at: datetime | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Subscription: + def from_dict(data: dict[str, Any]) -> Subscription: return Subscription( id=data.get("id", Undefined()), status=SubscriptionStatus(data["status"]) if data.get("status") else Undefined(), diff --git a/paddle_billing/Notifications/Entities/Simulations/SubscriptionCreated.py b/paddle_billing/Notifications/Entities/Simulations/SubscriptionCreated.py index f6dac30f..70b9f56c 100644 --- a/paddle_billing/Notifications/Entities/Simulations/SubscriptionCreated.py +++ b/paddle_billing/Notifications/Entities/Simulations/SubscriptionCreated.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import ( @@ -48,7 +49,7 @@ class SubscriptionCreated(SimulationEntity): transaction_id: str | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> SubscriptionCreated: + def from_dict(data: dict[str, Any]) -> SubscriptionCreated: return SubscriptionCreated( id=data.get("id", Undefined()), transaction_id=data.get("transaction_id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Simulations/Transaction.py b/paddle_billing/Notifications/Entities/Simulations/Transaction.py index c2aa721b..cc55f984 100644 --- a/paddle_billing/Notifications/Entities/Simulations/Transaction.py +++ b/paddle_billing/Notifications/Entities/Simulations/Transaction.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Undefined import Undefined from paddle_billing.Notifications.Entities.Shared import ( @@ -47,7 +48,7 @@ class Transaction(SimulationEntity): revised_at: datetime | None | Undefined = Undefined() @staticmethod - def from_dict(data: dict) -> Transaction: + def from_dict(data: dict[str, Any]) -> Transaction: return Transaction( address_id=data.get("address_id", Undefined()), business_id=data.get("business_id", Undefined()), diff --git a/paddle_billing/Notifications/Entities/Subscription.py b/paddle_billing/Notifications/Entities/Subscription.py index 0130ed72..5a18c43a 100644 --- a/paddle_billing/Notifications/Entities/Subscription.py +++ b/paddle_billing/Notifications/Entities/Subscription.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import ( @@ -46,7 +47,7 @@ class Subscription(Entity): started_at: datetime | None = None @staticmethod - def from_dict(data: dict) -> Subscription: + def from_dict(data: dict[str, Any]) -> Subscription: return Subscription( id=data["id"], status=SubscriptionStatus(data["status"]), diff --git a/paddle_billing/Notifications/Entities/SubscriptionCreated.py b/paddle_billing/Notifications/Entities/SubscriptionCreated.py index 1186d756..d74aef62 100644 --- a/paddle_billing/Notifications/Entities/SubscriptionCreated.py +++ b/paddle_billing/Notifications/Entities/SubscriptionCreated.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import ( @@ -47,7 +48,7 @@ class SubscriptionCreated(Entity): transaction_id: str | None = None @staticmethod - def from_dict(data: dict) -> SubscriptionCreated: + def from_dict(data: dict[str, Any]) -> SubscriptionCreated: return SubscriptionCreated( id=data["id"], transaction_id=data.get("transaction_id"), diff --git a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py index aac93ec4..79bb6824 100644 --- a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py +++ b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared import AdjustmentItemTotals, AdjustmentType, Proration @@ -13,7 +14,7 @@ class SubscriptionAdjustmentItem: totals: AdjustmentItemTotals @staticmethod - def from_dict(data: dict) -> SubscriptionAdjustmentItem: + def from_dict(data: dict[str, Any]) -> SubscriptionAdjustmentItem: return SubscriptionAdjustmentItem( item_id=data["item_id"], type=AdjustmentType(data["type"]), diff --git a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py index fd8ccff4..c706ae71 100644 --- a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py +++ b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared import CurrencyCode @@ -10,7 +11,7 @@ class SubscriptionCharge: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> SubscriptionCharge: + def from_dict(data: dict[str, Any]) -> SubscriptionCharge: return SubscriptionCharge( amount=data["amount"], currency_code=CurrencyCode(data["currency_code"]), diff --git a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py index 38ea46fe..c9630fb3 100644 --- a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py +++ b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared import CurrencyCode @@ -10,7 +11,7 @@ class SubscriptionCredit: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> SubscriptionCredit: + def from_dict(data: dict[str, Any]) -> SubscriptionCredit: return SubscriptionCredit( amount=data["amount"], currency_code=CurrencyCode(data["currency_code"]), diff --git a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py index 3575abf9..1e62a619 100644 --- a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py +++ b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any @dataclass @@ -10,7 +11,7 @@ class SubscriptionDiscount: ends_at: datetime | None @staticmethod - def from_dict(data: dict) -> SubscriptionDiscount: + def from_dict(data: dict[str, Any]) -> SubscriptionDiscount: return SubscriptionDiscount( id=data["id"], starts_at=datetime.fromisoformat(data["starts_at"]) if data.get("starts_at") else None, diff --git a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py index 7c8760f8..1eb17a70 100644 --- a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py +++ b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Shared.TimePeriod import TimePeriod @@ -23,7 +24,7 @@ class SubscriptionItem: product: Product | None @staticmethod - def from_dict(data: dict) -> SubscriptionItem: + def from_dict(data: dict[str, Any]) -> SubscriptionItem: return SubscriptionItem( status=SubscriptionItemStatus(data["status"]), quantity=data["quantity"], diff --git a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py index f2621e35..f08e9311 100644 --- a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py +++ b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Shared import ( CatalogType, @@ -35,7 +36,7 @@ class SubscriptionPrice: updated_at: datetime | None @staticmethod - def from_dict(data: dict) -> SubscriptionPrice: + def from_dict(data: dict[str, Any]) -> SubscriptionPrice: return SubscriptionPrice( id=data["id"], product_id=data["product_id"], diff --git a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py index 7f5b61eb..690b51e3 100644 --- a/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py +++ b/paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionScheduledChangeAction import ( SubscriptionScheduledChangeAction, @@ -14,7 +15,7 @@ class SubscriptionScheduledChange: resume_at: datetime | None @staticmethod - def from_dict(data: dict) -> SubscriptionScheduledChange: + def from_dict(data: dict[str, Any]) -> SubscriptionScheduledChange: return SubscriptionScheduledChange( action=SubscriptionScheduledChangeAction(data["action"]), effective_at=datetime.fromisoformat(data["effective_at"]), diff --git a/paddle_billing/Notifications/Entities/Transaction.py b/paddle_billing/Notifications/Entities/Transaction.py index 5b14738c..0c24937f 100644 --- a/paddle_billing/Notifications/Entities/Transaction.py +++ b/paddle_billing/Notifications/Entities/Transaction.py @@ -1,6 +1,7 @@ from __future__ import annotations from dataclasses import dataclass from datetime import datetime +from typing import Any from paddle_billing.Notifications.Entities.Entity import Entity from paddle_billing.Notifications.Entities.Shared import ( @@ -46,7 +47,7 @@ class Transaction(Entity): revised_at: datetime | None = None @staticmethod - def from_dict(data: dict) -> Transaction: + def from_dict(data: dict[str, Any]) -> Transaction: return Transaction( address_id=data.get("address_id"), business_id=data.get("business_id"), diff --git a/paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py b/paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py index 80754724..e3ab8d97 100644 --- a/paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py +++ b/paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode @@ -17,7 +18,7 @@ class TransactionAdjustmentsTotals: currency_code: CurrencyCode @staticmethod - def from_dict(data: dict) -> TransactionAdjustmentsTotals: + def from_dict(data: dict[str, Any]) -> TransactionAdjustmentsTotals: return TransactionAdjustmentsTotals( subtotal=data["subtotal"], tax=data["tax"], diff --git a/paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py b/paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py index 61a25340..0904e7fc 100644 --- a/paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py +++ b/paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any @dataclass @@ -9,7 +10,7 @@ class TransactionBreakdown: chargeback: str @staticmethod - def from_dict(data: dict) -> TransactionBreakdown: + def from_dict(data: dict[str, Any]) -> TransactionBreakdown: return TransactionBreakdown( credit=data["credit"], refund=data["refund"], diff --git a/paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py b/paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py index 82db99c9..ad881b06 100644 --- a/paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py +++ b/paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Json import json_format_properties @@ -23,7 +24,7 @@ class TransactionDetails: lineItems: list[TransactionLineItem] @staticmethod - def from_dict(data: dict) -> TransactionDetails: + def from_dict(data: dict[str, Any]) -> TransactionDetails: return TransactionDetails( totals=TransactionTotals.from_dict(data["totals"]), tax_rates_used=[TaxRatesUsed.from_dict(tax_rate_used) for tax_rate_used in data["tax_rates_used"]], diff --git a/paddle_billing/Notifications/Entities/Transactions/TransactionItem.py b/paddle_billing/Notifications/Entities/Transactions/TransactionItem.py index a3355851..1b609f21 100644 --- a/paddle_billing/Notifications/Entities/Transactions/TransactionItem.py +++ b/paddle_billing/Notifications/Entities/Transactions/TransactionItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Price import Price @@ -16,7 +17,7 @@ class TransactionItem: proration: Proration | None @staticmethod - def from_dict(data: dict) -> TransactionItem: + def from_dict(data: dict[str, Any]) -> TransactionItem: return TransactionItem( price_id=data.get("price_id"), price=Price.from_dict(data["price"]), diff --git a/paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py b/paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py index 7a5fce0a..f5e06dcc 100644 --- a/paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py +++ b/paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py @@ -1,5 +1,6 @@ from __future__ import annotations from dataclasses import dataclass +from typing import Any from paddle_billing.Notifications.Entities.Product import Product @@ -20,7 +21,7 @@ class TransactionLineItem: product: Product @staticmethod - def from_dict(data: dict) -> TransactionLineItem: + def from_dict(data: dict[str, Any]) -> TransactionLineItem: return TransactionLineItem( id=data["id"], price_id=data["price_id"], diff --git a/paddle_billing/Notifications/Entities/UndefinedEntity.py b/paddle_billing/Notifications/Entities/UndefinedEntity.py index af2d319b..89996b93 100644 --- a/paddle_billing/Notifications/Entities/UndefinedEntity.py +++ b/paddle_billing/Notifications/Entities/UndefinedEntity.py @@ -1,13 +1,14 @@ from __future__ import annotations +from typing import Any from paddle_billing.Notifications.Entities.EntityDict import EntityDict class UndefinedEntity(EntityDict): def __init__( self, - data: dict, + data: dict[Any, Any], ): self._data = data - def to_dict(self) -> dict: + def to_dict(self) -> dict[Any, Any]: return self._data diff --git a/paddle_billing/Notifications/PaddleSignature.py b/paddle_billing/Notifications/PaddleSignature.py index 15bf2213..a0bf1f8f 100644 --- a/paddle_billing/Notifications/PaddleSignature.py +++ b/paddle_billing/Notifications/PaddleSignature.py @@ -26,7 +26,7 @@ def TIMESTAMP(self): # noqa N802 return "ts" @staticmethod - def parse(signature_header: str) -> tuple: + def parse(signature_header: str) -> tuple[int, dict[str, list[str]]]: """ Parse the Paddle-Signature header to extract the timestamp and signature @@ -62,7 +62,9 @@ def __do_comparison(self, generated_signature: str, signature: str) -> bool: return compare_digest(generated_signature, signature) - def __do_verify(self, timestamp: str, signatures: list[str], raw_body: str, secret_key: Secret) -> bool: + def __do_verify( + self, timestamp: int, signatures: list[str], raw_body: str, secret_key: Secret | list[Secret] + ) -> bool: """ Verifies an individual secret key against a Paddle-Signature header. Called by PaddleSignature.verify() diff --git a/paddle_billing/Notifications/Verifier.py b/paddle_billing/Notifications/Verifier.py index f865dabb..2831f78f 100644 --- a/paddle_billing/Notifications/Verifier.py +++ b/paddle_billing/Notifications/Verifier.py @@ -49,4 +49,7 @@ def verify(self, request: Request, secrets: list[Secret] | Secret, verify_time_d elif hasattr(request, "data"): raw_body = request.data.decode("utf-8") + if not isinstance(raw_body, str): + raise ValueError("raw_body is not instance of str.") + return self.paddle_signature.verify(signature_header, raw_body, secrets) diff --git a/paddle_billing/PaddleStrEnum.py b/paddle_billing/PaddleStrEnum.py index fd14114d..58f2476e 100644 --- a/paddle_billing/PaddleStrEnum.py +++ b/paddle_billing/PaddleStrEnum.py @@ -1,3 +1,6 @@ +from typing import Any + + def _is_dunder(name): """ Returns True if a __dunder__ name, False otherwise. @@ -38,7 +41,7 @@ class PaddleStrEnum: _unknown_name = "Undefined" - def __init__(self, value) -> None: + def __init__(self, value: Any) -> None: members = self.members() try: search = list(members.values()).index(value) @@ -52,7 +55,7 @@ def __iter__(self) -> "PaddleStrEnum": self._iter_index = 0 return self - def __next__(self) -> tuple: + def __next__(self) -> tuple[str, "PaddleStrEnum"]: members = self.members() if self._iter_index >= len(members): @@ -80,7 +83,7 @@ def __eq__(self, other) -> bool: return False @classmethod - def members(cls) -> dict: + def members(cls) -> dict[str, Any]: if not cls._members: members = dict(filter(lambda item: not item[0].startswith("__"), cls.__dict__.items())) cls._members = dict(zip(members.keys(), members.values())) diff --git a/paddle_billing/RecursivelyRemoveKey.py b/paddle_billing/RecursivelyRemoveKey.py index 40de4d52..0db6ed06 100644 --- a/paddle_billing/RecursivelyRemoveKey.py +++ b/paddle_billing/RecursivelyRemoveKey.py @@ -1,4 +1,7 @@ -def recursively_remove_key(data: list | dict | None, key_to_remove: str): +from typing import Any + + +def recursively_remove_key(data: list[Any] | dict[Any, Any] | None, key_to_remove: str): """Remove key recursively from a dict or list""" if data is None: diff --git a/paddle_billing/Resources/Addresses/Operations/ListAddresses.py b/paddle_billing/Resources/Addresses/Operations/ListAddresses.py index 50330771..d1e44602 100644 --- a/paddle_billing/Resources/Addresses/Operations/ListAddresses.py +++ b/paddle_billing/Resources/Addresses/Operations/ListAddresses.py @@ -27,7 +27,7 @@ def __init__( if any(not isinstance(status, Status) for status in self.statuses): raise InvalidArgumentException.array_contains_invalid_types("statuses", Status.__name__) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Adjustments/Operations/GetCreditNote.py b/paddle_billing/Resources/Adjustments/Operations/GetCreditNote.py index 422370dd..55d17454 100644 --- a/paddle_billing/Resources/Adjustments/Operations/GetCreditNote.py +++ b/paddle_billing/Resources/Adjustments/Operations/GetCreditNote.py @@ -10,7 +10,7 @@ def __init__( ): self.disposition = disposition - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.disposition: diff --git a/paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py b/paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py index 077f4c4d..ca8223a5 100644 --- a/paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py +++ b/paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py @@ -12,11 +12,11 @@ class ListAdjustments(HasParameters): def __init__( self, pager: Pager | None = None, - ids: list[str] = None, - statuses: list[AdjustmentStatus] = None, - customer_ids: list[str] = None, - transaction_ids: list[str] = None, - subscription_ids: list[str] = None, + ids: list[str] | None = None, + statuses: list[AdjustmentStatus] | None = None, + customer_ids: list[str] | None = None, + transaction_ids: list[str] | None = None, + subscription_ids: list[str] | None = None, action: Action | None = None, ): self.pager = pager @@ -41,7 +41,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Businesses/Operations/ListBusinesses.py b/paddle_billing/Resources/Businesses/Operations/ListBusinesses.py index 0e31ea18..b377c9c0 100644 --- a/paddle_billing/Resources/Businesses/Operations/ListBusinesses.py +++ b/paddle_billing/Resources/Businesses/Operations/ListBusinesses.py @@ -12,8 +12,8 @@ class ListBusinesses(HasParameters): def __init__( self, pager: Pager | None = None, - ids: list[str] = None, - statuses: list[Status] = None, + ids: list[str] | None = None, + statuses: list[Status] | None = None, search: str | None = None, ): self.pager = pager @@ -32,7 +32,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Customers/Operations/ListCreditBalances.py b/paddle_billing/Resources/Customers/Operations/ListCreditBalances.py index 9aa889ad..d804e850 100644 --- a/paddle_billing/Resources/Customers/Operations/ListCreditBalances.py +++ b/paddle_billing/Resources/Customers/Operations/ListCreditBalances.py @@ -9,7 +9,7 @@ class ListCreditBalances(HasParameters): def __init__( self, - currency_code: list[CurrencyCode] = None, + currency_code: list[CurrencyCode] | None = None, ): self.currency_code = currency_code if currency_code is not None else [] @@ -21,7 +21,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.currency_code: parameters["currency_code"] = ",".join(map(enum_stringify, self.currency_code)) diff --git a/paddle_billing/Resources/Customers/Operations/ListCustomers.py b/paddle_billing/Resources/Customers/Operations/ListCustomers.py index 45b3eb57..2792e942 100644 --- a/paddle_billing/Resources/Customers/Operations/ListCustomers.py +++ b/paddle_billing/Resources/Customers/Operations/ListCustomers.py @@ -12,10 +12,10 @@ class ListCustomers(HasParameters): def __init__( self, pager: Pager | None = None, - ids: list[str] = None, - statuses: list[Status] = None, + ids: list[str] | None = None, + statuses: list[Status] | None = None, search: str | None = None, - emails: list[str] = None, + emails: list[str] | None = None, ): self.pager = pager self.search = search @@ -35,7 +35,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Discounts/Operations/ListDiscounts.py b/paddle_billing/Resources/Discounts/Operations/ListDiscounts.py index 9414e46d..2e6ab9d7 100644 --- a/paddle_billing/Resources/Discounts/Operations/ListDiscounts.py +++ b/paddle_billing/Resources/Discounts/Operations/ListDiscounts.py @@ -12,9 +12,9 @@ class ListDiscounts(HasParameters): def __init__( self, pager: Pager | None = None, - ids: list[str] = None, - statuses: list[Status] = None, - codes: list[str] = None, + ids: list[str] | None = None, + statuses: list[Status] | None = None, + codes: list[str] | None = None, ): self.pager = pager self.ids = ids if ids is not None else [] @@ -33,7 +33,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Events/Operations/ListEvents.py b/paddle_billing/Resources/Events/Operations/ListEvents.py index fff78cfa..a77eaebe 100644 --- a/paddle_billing/Resources/Events/Operations/ListEvents.py +++ b/paddle_billing/Resources/Events/Operations/ListEvents.py @@ -7,5 +7,5 @@ class ListEvents(HasParameters): def __init__(self, pager: Pager | None = None): self.pager = pager - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: return self.pager.get_parameters() if self.pager else {} diff --git a/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py b/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py index d16b4a31..32cb7ca6 100644 --- a/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py +++ b/paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py @@ -6,5 +6,5 @@ class ListNotificationLogs(HasParameters): def __init__(self, pager: Pager | None = None): self.pager = pager - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: return self.pager.get_parameters() if self.pager else {} diff --git a/paddle_billing/Resources/NotificationSettings/Operations/ListNotificationSettings.py b/paddle_billing/Resources/NotificationSettings/Operations/ListNotificationSettings.py index bbd6170e..81bc3306 100644 --- a/paddle_billing/Resources/NotificationSettings/Operations/ListNotificationSettings.py +++ b/paddle_billing/Resources/NotificationSettings/Operations/ListNotificationSettings.py @@ -16,7 +16,7 @@ def __init__( self.active = active self.traffic_source = traffic_source - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Notifications/Operations/ListNotifications.py b/paddle_billing/Resources/Notifications/Operations/ListNotifications.py index fa1b3d03..d87a06e2 100644 --- a/paddle_billing/Resources/Notifications/Operations/ListNotifications.py +++ b/paddle_billing/Resources/Notifications/Operations/ListNotifications.py @@ -39,7 +39,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py b/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py index 90d4884c..f9df042c 100644 --- a/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py +++ b/paddle_billing/Resources/PaymentMethods/Operations/ListPaymentMethods.py @@ -20,7 +20,7 @@ def __init__( if invalid_items: raise InvalidArgumentException.array_contains_invalid_types("ids", str.__name__, invalid_items) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Prices/Operations/ListPrices.py b/paddle_billing/Resources/Prices/Operations/ListPrices.py index 059d3611..11f4d40d 100644 --- a/paddle_billing/Resources/Prices/Operations/ListPrices.py +++ b/paddle_billing/Resources/Prices/Operations/ListPrices.py @@ -42,7 +42,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Products/Operations/ListProducts.py b/paddle_billing/Resources/Products/Operations/ListProducts.py index 885d3dc3..282a72fc 100644 --- a/paddle_billing/Resources/Products/Operations/ListProducts.py +++ b/paddle_billing/Resources/Products/Operations/ListProducts.py @@ -42,7 +42,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Reports/Operations/CreateAdjustmentsReport.py b/paddle_billing/Resources/Reports/Operations/CreateAdjustmentsReport.py index 90a6b7c0..3e6ba197 100644 --- a/paddle_billing/Resources/Reports/Operations/CreateAdjustmentsReport.py +++ b/paddle_billing/Resources/Reports/Operations/CreateAdjustmentsReport.py @@ -22,7 +22,9 @@ class CreateAdjustmentsReport(CreateReport): ) @staticmethod - def get_allowed_filters() -> tuple: + def get_allowed_filters() -> ( + tuple[AdjustmentActionFilter, AdjustmentStatusFilter, CurrencyCodeFilter, UpdatedAtFilter] + ): return ( AdjustmentActionFilter, AdjustmentStatusFilter, diff --git a/paddle_billing/Resources/Reports/Operations/CreateDiscountsReport.py b/paddle_billing/Resources/Reports/Operations/CreateDiscountsReport.py index 6777d799..fa4cb105 100644 --- a/paddle_billing/Resources/Reports/Operations/CreateDiscountsReport.py +++ b/paddle_billing/Resources/Reports/Operations/CreateDiscountsReport.py @@ -19,7 +19,7 @@ class CreateDiscountsReport(CreateReport): filters: list[DiscountStatusFilter | DiscountTypeFilter | UpdatedAtFilter] = field(default_factory=list) @staticmethod - def get_allowed_filters() -> tuple: + def get_allowed_filters() -> tuple[DiscountStatusFilter, DiscountTypeFilter, UpdatedAtFilter]: return ( DiscountStatusFilter, DiscountTypeFilter, diff --git a/paddle_billing/Resources/Reports/Operations/CreateProductsAndPricesReport.py b/paddle_billing/Resources/Reports/Operations/CreateProductsAndPricesReport.py index 8c68b545..8509fdc7 100644 --- a/paddle_billing/Resources/Reports/Operations/CreateProductsAndPricesReport.py +++ b/paddle_billing/Resources/Reports/Operations/CreateProductsAndPricesReport.py @@ -29,7 +29,9 @@ class CreateProductsAndPricesReport(CreateReport): ] = field(default_factory=list) @staticmethod - def get_allowed_filters() -> tuple: + def get_allowed_filters() -> ( + tuple[PriceStatusFilter, PriceTypeFilter, PriceUpdatedAtFilter, ProductStatusFilter, ProductUpdatedAtFilter] + ): return ( PriceStatusFilter, PriceTypeFilter, diff --git a/paddle_billing/Resources/Reports/Operations/CreateReport.py b/paddle_billing/Resources/Reports/Operations/CreateReport.py index 52906f87..846445be 100644 --- a/paddle_billing/Resources/Reports/Operations/CreateReport.py +++ b/paddle_billing/Resources/Reports/Operations/CreateReport.py @@ -34,5 +34,5 @@ def to_json(self) -> dict[str, Any]: @staticmethod @abstractmethod - def get_allowed_filters() -> tuple: + def get_allowed_filters() -> tuple[Any]: pass diff --git a/paddle_billing/Resources/Reports/Operations/CreateTransactionsReport.py b/paddle_billing/Resources/Reports/Operations/CreateTransactionsReport.py index 046c7198..5d3e4368 100644 --- a/paddle_billing/Resources/Reports/Operations/CreateTransactionsReport.py +++ b/paddle_billing/Resources/Reports/Operations/CreateTransactionsReport.py @@ -23,7 +23,11 @@ class CreateTransactionsReport(CreateReport): ] = field(default_factory=list) @staticmethod - def get_allowed_filters() -> tuple: + def get_allowed_filters() -> ( + tuple[ + CollectionModeFilter, CurrencyCodeFilter, TransactionOriginFilter, TransactionStatusFilter, UpdatedAtFilter + ] + ): return ( CollectionModeFilter, CurrencyCodeFilter, diff --git a/paddle_billing/Resources/Reports/Operations/Filters/Filter.py b/paddle_billing/Resources/Reports/Operations/Filters/Filter.py index 6125e92c..25a279c6 100644 --- a/paddle_billing/Resources/Reports/Operations/Filters/Filter.py +++ b/paddle_billing/Resources/Reports/Operations/Filters/Filter.py @@ -9,7 +9,7 @@ @dataclass class Filter(ABC): - def to_json(self) -> dict: + def to_json(self) -> dict[str, str | list[str] | ReportFilterName | ReportFilterOperator | None]: return { "name": self.get_name(), "operator": self.get_operator(), diff --git a/paddle_billing/Resources/Reports/Operations/ListReports.py b/paddle_billing/Resources/Reports/Operations/ListReports.py index 7c3bddf1..4c8d6333 100644 --- a/paddle_billing/Resources/Reports/Operations/ListReports.py +++ b/paddle_billing/Resources/Reports/Operations/ListReports.py @@ -25,7 +25,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Shared/Operations/List/Pager.py b/paddle_billing/Resources/Shared/Operations/List/Pager.py index 0fde2661..f53723d4 100644 --- a/paddle_billing/Resources/Shared/Operations/List/Pager.py +++ b/paddle_billing/Resources/Shared/Operations/List/Pager.py @@ -15,7 +15,7 @@ def __init__( self.order_by = order_by if order_by is not None else OrderBy.id_ascending() self.per_page = per_page - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: return FiltersNone.filter_none_values( {"after": self.after, "order_by": str(self.order_by), "per_page": self.per_page} ) diff --git a/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py b/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py index ca272fce..30e3c6a5 100644 --- a/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py +++ b/paddle_billing/Resources/SimulationRunEvents/Operations/ListSimulationRunEvents.py @@ -22,7 +22,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py b/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py index 6f3703f3..03a1190a 100644 --- a/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py +++ b/paddle_billing/Resources/SimulationRuns/Operations/GetSimulationRun.py @@ -21,7 +21,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.includes: parameters["include"] = ",".join(map(enum_stringify, self.includes)) diff --git a/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py b/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py index ceeeb3e5..eb744d05 100644 --- a/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py +++ b/paddle_billing/Resources/SimulationRuns/Operations/ListSimulationRuns.py @@ -27,7 +27,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Simulations/Operations/ListSimulations.py b/paddle_billing/Resources/Simulations/Operations/ListSimulations.py index 1e5ea637..b2a279e0 100644 --- a/paddle_billing/Resources/Simulations/Operations/ListSimulations.py +++ b/paddle_billing/Resources/Simulations/Operations/ListSimulations.py @@ -33,7 +33,7 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py b/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py index 53748a1f..7f803d0e 100644 --- a/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py +++ b/paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py @@ -45,8 +45,8 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: - parameters = self.pager.get_parameters() if self.pager else {} + def get_parameters(self) -> dict[str, str]: + parameters: dict[str, str | None] = self.pager.get_parameters() if self.pager else {} parameters.update( { "address_id": ",".join(self.address_ids), diff --git a/paddle_billing/Resources/Transactions/Operations/GetTransactionInvoice.py b/paddle_billing/Resources/Transactions/Operations/GetTransactionInvoice.py index 1fcf13f8..15ab40a6 100644 --- a/paddle_billing/Resources/Transactions/Operations/GetTransactionInvoice.py +++ b/paddle_billing/Resources/Transactions/Operations/GetTransactionInvoice.py @@ -10,7 +10,7 @@ def __init__( ): self.disposition = disposition - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: parameters = {} if self.disposition: diff --git a/paddle_billing/Resources/Transactions/Operations/ListTransactions.py b/paddle_billing/Resources/Transactions/Operations/ListTransactions.py index d5d040e2..18d9be6c 100644 --- a/paddle_billing/Resources/Transactions/Operations/ListTransactions.py +++ b/paddle_billing/Resources/Transactions/Operations/ListTransactions.py @@ -55,8 +55,8 @@ def __init__( field_name, field_type.__name__, invalid_items ) - def get_parameters(self) -> dict: - parameters = {} + def get_parameters(self) -> dict[str, str]: + parameters: dict[str, str] = {} if self.pager: parameters.update(self.pager.get_parameters()) diff --git a/pyrightconfig.json b/pyrightconfig.json index 97f4ea43..d421bd3f 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -1,6 +1,6 @@ { "typeCheckingMode": "basic", - // "reportArgumentType": false, + "reportMissingTypeArgument": true, "reportAssignmentType": false, "reportAttributeAccessIssue": false, "reportOperatorIssue": false, diff --git a/tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py b/tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py index 7cbdb261..50d884ff 100644 --- a/tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py +++ b/tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py @@ -29,7 +29,7 @@ class TestCountryCodesEnum(PaddleStrEnum, metaclass=PaddleStrEnumMeta): class TestDataclass: country_code: TestCountryCodesEnum = None - def get_parameters(self) -> dict: + def get_parameters(self) -> dict[str, str]: return asdict(self) test_dataclass = TestDataclass(TestCountryCodesEnum.CA) From d21428217d2ae49b8bc3d4fdcfee55fa1c283642 Mon Sep 17 00:00:00 2001 From: Gilbert Yoder Date: Mon, 19 May 2025 06:52:50 -0700 Subject: [PATCH 4/4] Suggested changes to fix tests & actually wrap parser.get_data --- paddle_billing/Notifications/Entities/Entity.py | 2 +- .../Notifications/Entities/Simulations/SimulationEntity.py | 2 +- paddle_billing/ResponseParser.py | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/paddle_billing/Notifications/Entities/Entity.py b/paddle_billing/Notifications/Entities/Entity.py index 9737a88e..28adc1d6 100644 --- a/paddle_billing/Notifications/Entities/Entity.py +++ b/paddle_billing/Notifications/Entities/Entity.py @@ -36,7 +36,7 @@ def from_dict_for_event_type(data: dict[str, Any], event_type: str) -> Entity | if not instantiated_class: return UndefinedEntity(data) - if type(entity_class) is not type or not issubclass(entity_class, Entity): + if entity_class is None or not issubclass(entity_class, Entity): raise ValueError(f"Event type '{entity_class_name}' is not of Entity") return instantiated_class diff --git a/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py b/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py index 358d3f72..cec24f27 100644 --- a/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py +++ b/paddle_billing/Notifications/Entities/Simulations/SimulationEntity.py @@ -27,7 +27,7 @@ def from_dict_for_event_type(data: dict[str, Any], event_type: str) -> Simulatio if not instantiated_class: return UndefinedEntity(data) - if type(entity_class) is not type or not issubclass(entity_class, SimulationEntity): + if entity_class is None or not issubclass(entity_class, SimulationEntity): raise ValueError(f"Event type '{entity_class_name}' is not of SimulationEntity") return instantiated_class diff --git a/paddle_billing/ResponseParser.py b/paddle_billing/ResponseParser.py index 1812bdad..046896f7 100644 --- a/paddle_billing/ResponseParser.py +++ b/paddle_billing/ResponseParser.py @@ -28,12 +28,10 @@ def get_data(self) -> list[Any] | dict[str, Any]: return self.body.get("data", []) if self.body else [] def get_list(self) -> list[Any]: - data = self.body.get("data", []) if self.body else [] - return data + return self.get_data() def get_dict(self) -> dict[str, Any]: - data = self.body.get("data", []) if self.body else [] - return data + return self.get_data() def get_error(self) -> ApiError | None: return self.error