From b0810eac80e397e9935430cb9b133c921059bf1d Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Thu, 29 May 2025 00:31:14 +0000 Subject: [PATCH 1/2] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.552.0 --- .speakeasy/gen.lock | 18 +- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 14 +- RELEASES.md | 12 +- docs/models/components/folderschema.md | 1 - docs/models/operations/listfoldersrequest.md | 11 +- pyproject.toml | 2 +- src/dub/_version.py | 6 +- src/dub/models/__init__.py | 1 - src/dub/models/components/__init__.py | 618 ++++++---- src/dub/models/components/folderschema.py | 8 +- src/dub/models/errors/__init__.py | 194 +++- src/dub/models/operations/__init__.py | 1081 ++++++++++++------ src/dub/models/operations/listfolders.py | 9 - src/dub/sdk.py | 114 +- src/dub/utils/__init__.py | 176 ++- 16 files changed, 1507 insertions(+), 760 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index f65bd814..83e46f65 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: ab657d60-207e-43a4-8cc8-692a672950ed management: - docChecksum: efdac56f4e3c654dda7366d7daef7320 + docChecksum: a2ac297972706e86f31e833913025851 docVersion: 0.0.1 - speakeasyVersion: 1.548.3 - generationVersion: 2.605.6 - releaseVersion: 0.24.1 - configChecksum: 7370668678637f9df2b4980938411c52 + speakeasyVersion: 1.552.0 + generationVersion: 2.610.0 + releaseVersion: 0.25.0 + configChecksum: 7a6ee815c6c45dd92618edffea36d91e repoURL: https://github.com/dubinc/dub-python.git installationURL: https://github.com/dubinc/dub-python.git published: true @@ -14,7 +14,7 @@ features: python: additionalDependencies: 1.0.0 constsAndDefaults: 1.0.5 - core: 5.18.1 + core: 5.19.0 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 enumUnions: 0.1.0 @@ -950,7 +950,7 @@ examples: speakeasy-default-create-folder: responses: "201": - application/json: {"id": "", "name": "", "type": "mega", "accessLevel": null, "linkCount": 0, "createdAt": "1737753022608", "updatedAt": "1747570330462"} + application/json: {"id": "", "name": "", "type": "mega", "accessLevel": null, "createdAt": "1737753022608", "updatedAt": "1747570330462"} "400": application/json: {"error": {"code": "bad_request", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#bad-request"}} "401": @@ -977,7 +977,7 @@ examples: pageSize: 50 responses: "200": - application/json: [{"id": "", "name": "", "type": "default", "accessLevel": null, "linkCount": 0, "createdAt": "1739500960144", "updatedAt": "1747574920596"}, {"id": "", "name": "", "type": "default", "accessLevel": null, "linkCount": 0, "createdAt": "1739500960144", "updatedAt": "1747574920596"}] + application/json: [{"id": "", "name": "", "type": "default", "accessLevel": null, "createdAt": "1739500960144", "updatedAt": "1747574920596"}, {"id": "", "name": "", "type": "default", "accessLevel": null, "createdAt": "1739500960144", "updatedAt": "1747574920596"}] "400": application/json: {"error": {"code": "bad_request", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#bad-request"}} "401": @@ -1003,7 +1003,7 @@ examples: id: "" responses: "200": - application/json: {"id": "", "name": "", "type": "default", "accessLevel": null, "linkCount": 0, "createdAt": "1719092365165", "updatedAt": "1747578321133"} + application/json: {"id": "", "name": "", "type": "default", "accessLevel": null, "createdAt": "1719092365165", "updatedAt": "1747578321133"} "400": application/json: {"error": {"code": "bad_request", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#bad-request"}} "401": diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 0b60a1c8..2dfec06e 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -16,7 +16,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false python: - version: 0.24.1 + version: 0.25.0 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 2ff5351d..63934e37 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,21 +1,21 @@ -speakeasyVersion: 1.548.3 +speakeasyVersion: 1.552.0 sources: dub: sourceNamespace: dub - sourceRevisionDigest: sha256:3b46a4265ce98ecbbd40833cc9c96af496a337ba16161f52edd03dcd92501e11 - sourceBlobDigest: sha256:b6ac8d347a7a223ad6877aeeab06453d65b5788cfc0bdaa1ce02e125c8874cc7 + sourceRevisionDigest: sha256:2dc083ecf69ea3bd2bbd45bf97953f2c2797aa98d735a68a5ab3ef1f96fa058d + sourceBlobDigest: sha256:39e620a3019835bf60651aa58ed0d979c02eb2cefe4afaa897c28e7298c5da14 tags: - latest - - speakeasy-sdk-regen-1747787427 + - speakeasy-sdk-regen-1748478609 - 0.0.1 targets: my-first-target: source: dub sourceNamespace: dub - sourceRevisionDigest: sha256:3b46a4265ce98ecbbd40833cc9c96af496a337ba16161f52edd03dcd92501e11 - sourceBlobDigest: sha256:b6ac8d347a7a223ad6877aeeab06453d65b5788cfc0bdaa1ce02e125c8874cc7 + sourceRevisionDigest: sha256:2dc083ecf69ea3bd2bbd45bf97953f2c2797aa98d735a68a5ab3ef1f96fa058d + sourceBlobDigest: sha256:39e620a3019835bf60651aa58ed0d979c02eb2cefe4afaa897c28e7298c5da14 codeSamplesNamespace: code-samples-python-my-first-target - codeSamplesRevisionDigest: sha256:c2a0f781eaa490390adeb3698f323391784ce8bea9264b32402cac0b6fbc75fa + codeSamplesRevisionDigest: sha256:5cceff8cdac026f67d2d5fb7d54075d44c734332677e8c6606ced49f8277aaa3 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index 4eaa4fc6..3aed00d8 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1146,4 +1146,14 @@ Based on: ### Generated - [python v0.24.1] . ### Releases -- [PyPI v0.24.1] https://pypi.org/project/dub/0.24.1 - . \ No newline at end of file +- [PyPI v0.24.1] https://pypi.org/project/dub/0.24.1 - . + +## 2025-05-29 00:29:53 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.552.0 (2.610.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.25.0] . +### Releases +- [PyPI v0.25.0] https://pypi.org/project/dub/0.25.0 - . \ No newline at end of file diff --git a/docs/models/components/folderschema.md b/docs/models/components/folderschema.md index e75b9840..06948472 100644 --- a/docs/models/components/folderschema.md +++ b/docs/models/components/folderschema.md @@ -9,6 +9,5 @@ | `name` | *str* | :heavy_check_mark: | The name of the folder. | | `type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | N/A | | `access_level` | [OptionalNullable[components.AccessLevel]](../../models/components/accesslevel.md) | :heavy_minus_sign: | The access level of the folder within the workspace. | -| `link_count` | *Optional[float]* | :heavy_minus_sign: | The number of links in the folder. | | `created_at` | *str* | :heavy_check_mark: | The date the folder was created. | | `updated_at` | *str* | :heavy_check_mark: | The date the folder was updated. | \ No newline at end of file diff --git a/docs/models/operations/listfoldersrequest.md b/docs/models/operations/listfoldersrequest.md index f5af1ed5..1c60f514 100644 --- a/docs/models/operations/listfoldersrequest.md +++ b/docs/models/operations/listfoldersrequest.md @@ -3,9 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `search` | *Optional[str]* | :heavy_minus_sign: | The search term to filter the folders by. | | -| `include_link_count` | *Optional[bool]* | :heavy_minus_sign: | Whether to include the link count in the response. | | -| `page` | *Optional[float]* | :heavy_minus_sign: | The page number for pagination. | 1 | -| `page_size` | *Optional[float]* | :heavy_minus_sign: | The number of items per page. | 50 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | +| `search` | *Optional[str]* | :heavy_minus_sign: | The search term to filter the folders by. | | +| `page` | *Optional[float]* | :heavy_minus_sign: | The page number for pagination. | 1 | +| `page_size` | *Optional[float]* | :heavy_minus_sign: | The number of items per page. | 50 | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 230dc8e3..ff160ee2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "dub" -version = "0.24.1" +version = "0.25.0" description = "Python Client SDK Generated by Speakeasy" authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" diff --git a/src/dub/_version.py b/src/dub/_version.py index 36234231..b0cc3d66 100644 --- a/src/dub/_version.py +++ b/src/dub/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "dub" -__version__: str = "0.24.1" +__version__: str = "0.25.0" __openapi_doc_version__: str = "0.0.1" -__gen_version__: str = "2.605.6" -__user_agent__: str = "speakeasy-sdk/python 0.24.1 2.605.6 0.0.1 dub" +__gen_version__: str = "2.610.0" +__user_agent__: str = "speakeasy-sdk/python 0.25.0 2.610.0 0.0.1 dub" try: if __package__ is not None: diff --git a/src/dub/models/__init__.py b/src/dub/models/__init__.py index cc53976c..726fc5eb 100644 --- a/src/dub/models/__init__.py +++ b/src/dub/models/__init__.py @@ -1,4 +1,3 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" # package - diff --git a/src/dub/models/components/__init__.py b/src/dub/models/components/__init__.py index f7e3706e..a78ca02e 100644 --- a/src/dub/models/components/__init__.py +++ b/src/dub/models/components/__init__.py @@ -1,202 +1,215 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .analyticsbrowsers import AnalyticsBrowsers, AnalyticsBrowsersTypedDict -from .analyticscities import ( - AnalyticsCities, - AnalyticsCitiesCountry, - AnalyticsCitiesTypedDict, -) -from .analyticscontinents import ( - AnalyticsContinents, - AnalyticsContinentsTypedDict, - Continent, -) -from .analyticscount import AnalyticsCount, AnalyticsCountTypedDict -from .analyticscountries import ( - AnalyticsCountries, - AnalyticsCountriesTypedDict, - City, - Country, - Region, -) -from .analyticsdevices import AnalyticsDevices, AnalyticsDevicesTypedDict -from .analyticsos import AnalyticsOS, AnalyticsOSTypedDict -from .analyticsreferers import AnalyticsReferers, AnalyticsReferersTypedDict -from .analyticsrefererurls import AnalyticsRefererUrls, AnalyticsRefererUrlsTypedDict -from .analyticsregions import ( - AnalyticsRegions, - AnalyticsRegionsCity, - AnalyticsRegionsCountry, - AnalyticsRegionsTypedDict, -) -from .analyticstimeseries import AnalyticsTimeseries, AnalyticsTimeseriesTypedDict -from .analyticstoplinks import AnalyticsTopLinks, AnalyticsTopLinksTypedDict -from .analyticstopurls import AnalyticsTopUrls, AnalyticsTopUrlsTypedDict -from .analyticstriggers import AnalyticsTriggers, AnalyticsTriggersTypedDict, Trigger -from .clickevent import ( - Click, - ClickEvent, - ClickEventGeo, - ClickEventGeoTypedDict, - ClickEventTestVariants, - ClickEventTestVariantsTypedDict, - ClickEventTypedDict, - ClickTypedDict, - Event, - Link, - LinkTypedDict, -) -from .continentcode import ContinentCode -from .countrycode import CountryCode -from .domainschema import ( - DomainSchema, - DomainSchemaTypedDict, - RegisteredDomain, - RegisteredDomainTypedDict, -) -from .folderschema import AccessLevel, FolderSchema, FolderSchemaTypedDict, Type -from .leadcreatedevent import ( - LeadCreatedEvent, - LeadCreatedEventClick, - LeadCreatedEventClickTypedDict, - LeadCreatedEventCustomer, - LeadCreatedEventCustomerTypedDict, - LeadCreatedEventData, - LeadCreatedEventDataTypedDict, - LeadCreatedEventEvent, - LeadCreatedEventGeo, - LeadCreatedEventGeoTypedDict, - LeadCreatedEventLink, - LeadCreatedEventLinkTypedDict, - LeadCreatedEventTestVariants, - LeadCreatedEventTestVariantsTypedDict, - LeadCreatedEventTypedDict, -) -from .leadevent import ( - Customer, - CustomerTypedDict, - LeadEvent, - LeadEventClick, - LeadEventClickTypedDict, - LeadEventEvent, - LeadEventGeo, - LeadEventGeoTypedDict, - LeadEventLink, - LeadEventLinkTypedDict, - LeadEventTestVariants, - LeadEventTestVariantsTypedDict, - LeadEventTypedDict, -) -from .linkclickedevent import ( - Data, - DataTypedDict, - LinkClickedEvent, - LinkClickedEventClick, - LinkClickedEventClickTypedDict, - LinkClickedEventEvent, - LinkClickedEventGeo, - LinkClickedEventGeoTypedDict, - LinkClickedEventLink, - LinkClickedEventLinkTypedDict, - LinkClickedEventTestVariants, - LinkClickedEventTestVariantsTypedDict, - LinkClickedEventTypedDict, -) -from .linkerrorschema import Code, LinkErrorSchema, LinkErrorSchemaTypedDict -from .linkgeotargeting import LinkGeoTargeting, LinkGeoTargetingTypedDict -from .linkschema import ( - Geo, - GeoTypedDict, - LinkSchema, - LinkSchemaTypedDict, - TestVariants, - TestVariantsTypedDict, -) -from .linkwebhookevent import ( - LinkWebhookEvent, - LinkWebhookEventEvent, - LinkWebhookEventEventTypedDict, - LinkWebhookEventGeo, - LinkWebhookEventGeoTypedDict, - LinkWebhookEventLink, - LinkWebhookEventLinkTypedDict, - LinkWebhookEventTestVariants, - LinkWebhookEventTestVariantsTypedDict, - LinkWebhookEventTypedDict, - One, - Three, - Two, -) -from .partneranalyticscount import PartnerAnalyticsCount, PartnerAnalyticsCountTypedDict -from .partneranalyticstimeseries import ( - PartnerAnalyticsTimeseries, - PartnerAnalyticsTimeseriesTypedDict, -) -from .partneranalyticstoplinks import ( - PartnerAnalyticsTopLinks, - PartnerAnalyticsTopLinksTypedDict, -) -from .partnerenrolledevent import ( - PartnerEnrolledEvent, - PartnerEnrolledEventData, - PartnerEnrolledEventDataTypedDict, - PartnerEnrolledEventEvent, - PartnerEnrolledEventLink, - PartnerEnrolledEventLinkTypedDict, - PartnerEnrolledEventTypedDict, - Status, -) -from .salecreatedevent import ( - SaleCreatedEvent, - SaleCreatedEventClick, - SaleCreatedEventClickTypedDict, - SaleCreatedEventCustomer, - SaleCreatedEventCustomerTypedDict, - SaleCreatedEventData, - SaleCreatedEventDataTypedDict, - SaleCreatedEventEvent, - SaleCreatedEventGeo, - SaleCreatedEventGeoTypedDict, - SaleCreatedEventLink, - SaleCreatedEventLinkTypedDict, - SaleCreatedEventSale, - SaleCreatedEventSaleTypedDict, - SaleCreatedEventTestVariants, - SaleCreatedEventTestVariantsTypedDict, - SaleCreatedEventTypedDict, -) -from .saleevent import ( - PaymentProcessor, - Sale, - SaleEvent, - SaleEventClick, - SaleEventClickTypedDict, - SaleEventCustomer, - SaleEventCustomerTypedDict, - SaleEventEvent, - SaleEventGeo, - SaleEventGeoTypedDict, - SaleEventLink, - SaleEventLinkTypedDict, - SaleEventTestVariants, - SaleEventTestVariantsTypedDict, - SaleEventTypedDict, - SaleTypedDict, -) -from .security import Security, SecurityTypedDict -from .tagschema import Color, TagSchema, TagSchemaTypedDict -from .webhookevent import WebhookEvent, WebhookEventTypedDict -from .workspaceschema import ( - Domains, - DomainsTypedDict, - Plan, - Role, - Users, - UsersTypedDict, - WorkspaceSchema, - WorkspaceSchemaTypedDict, -) +from typing import TYPE_CHECKING +from importlib import import_module +if TYPE_CHECKING: + from .analyticsbrowsers import AnalyticsBrowsers, AnalyticsBrowsersTypedDict + from .analyticscities import ( + AnalyticsCities, + AnalyticsCitiesCountry, + AnalyticsCitiesTypedDict, + ) + from .analyticscontinents import ( + AnalyticsContinents, + AnalyticsContinentsTypedDict, + Continent, + ) + from .analyticscount import AnalyticsCount, AnalyticsCountTypedDict + from .analyticscountries import ( + AnalyticsCountries, + AnalyticsCountriesTypedDict, + City, + Country, + Region, + ) + from .analyticsdevices import AnalyticsDevices, AnalyticsDevicesTypedDict + from .analyticsos import AnalyticsOS, AnalyticsOSTypedDict + from .analyticsreferers import AnalyticsReferers, AnalyticsReferersTypedDict + from .analyticsrefererurls import ( + AnalyticsRefererUrls, + AnalyticsRefererUrlsTypedDict, + ) + from .analyticsregions import ( + AnalyticsRegions, + AnalyticsRegionsCity, + AnalyticsRegionsCountry, + AnalyticsRegionsTypedDict, + ) + from .analyticstimeseries import AnalyticsTimeseries, AnalyticsTimeseriesTypedDict + from .analyticstoplinks import AnalyticsTopLinks, AnalyticsTopLinksTypedDict + from .analyticstopurls import AnalyticsTopUrls, AnalyticsTopUrlsTypedDict + from .analyticstriggers import ( + AnalyticsTriggers, + AnalyticsTriggersTypedDict, + Trigger, + ) + from .clickevent import ( + Click, + ClickEvent, + ClickEventGeo, + ClickEventGeoTypedDict, + ClickEventTestVariants, + ClickEventTestVariantsTypedDict, + ClickEventTypedDict, + ClickTypedDict, + Event, + Link, + LinkTypedDict, + ) + from .continentcode import ContinentCode + from .countrycode import CountryCode + from .domainschema import ( + DomainSchema, + DomainSchemaTypedDict, + RegisteredDomain, + RegisteredDomainTypedDict, + ) + from .folderschema import AccessLevel, FolderSchema, FolderSchemaTypedDict, Type + from .leadcreatedevent import ( + LeadCreatedEvent, + LeadCreatedEventClick, + LeadCreatedEventClickTypedDict, + LeadCreatedEventCustomer, + LeadCreatedEventCustomerTypedDict, + LeadCreatedEventData, + LeadCreatedEventDataTypedDict, + LeadCreatedEventEvent, + LeadCreatedEventGeo, + LeadCreatedEventGeoTypedDict, + LeadCreatedEventLink, + LeadCreatedEventLinkTypedDict, + LeadCreatedEventTestVariants, + LeadCreatedEventTestVariantsTypedDict, + LeadCreatedEventTypedDict, + ) + from .leadevent import ( + Customer, + CustomerTypedDict, + LeadEvent, + LeadEventClick, + LeadEventClickTypedDict, + LeadEventEvent, + LeadEventGeo, + LeadEventGeoTypedDict, + LeadEventLink, + LeadEventLinkTypedDict, + LeadEventTestVariants, + LeadEventTestVariantsTypedDict, + LeadEventTypedDict, + ) + from .linkclickedevent import ( + Data, + DataTypedDict, + LinkClickedEvent, + LinkClickedEventClick, + LinkClickedEventClickTypedDict, + LinkClickedEventEvent, + LinkClickedEventGeo, + LinkClickedEventGeoTypedDict, + LinkClickedEventLink, + LinkClickedEventLinkTypedDict, + LinkClickedEventTestVariants, + LinkClickedEventTestVariantsTypedDict, + LinkClickedEventTypedDict, + ) + from .linkerrorschema import Code, LinkErrorSchema, LinkErrorSchemaTypedDict + from .linkgeotargeting import LinkGeoTargeting, LinkGeoTargetingTypedDict + from .linkschema import ( + Geo, + GeoTypedDict, + LinkSchema, + LinkSchemaTypedDict, + TestVariants, + TestVariantsTypedDict, + ) + from .linkwebhookevent import ( + LinkWebhookEvent, + LinkWebhookEventEvent, + LinkWebhookEventEventTypedDict, + LinkWebhookEventGeo, + LinkWebhookEventGeoTypedDict, + LinkWebhookEventLink, + LinkWebhookEventLinkTypedDict, + LinkWebhookEventTestVariants, + LinkWebhookEventTestVariantsTypedDict, + LinkWebhookEventTypedDict, + One, + Three, + Two, + ) + from .partneranalyticscount import ( + PartnerAnalyticsCount, + PartnerAnalyticsCountTypedDict, + ) + from .partneranalyticstimeseries import ( + PartnerAnalyticsTimeseries, + PartnerAnalyticsTimeseriesTypedDict, + ) + from .partneranalyticstoplinks import ( + PartnerAnalyticsTopLinks, + PartnerAnalyticsTopLinksTypedDict, + ) + from .partnerenrolledevent import ( + PartnerEnrolledEvent, + PartnerEnrolledEventData, + PartnerEnrolledEventDataTypedDict, + PartnerEnrolledEventEvent, + PartnerEnrolledEventLink, + PartnerEnrolledEventLinkTypedDict, + PartnerEnrolledEventTypedDict, + Status, + ) + from .salecreatedevent import ( + SaleCreatedEvent, + SaleCreatedEventClick, + SaleCreatedEventClickTypedDict, + SaleCreatedEventCustomer, + SaleCreatedEventCustomerTypedDict, + SaleCreatedEventData, + SaleCreatedEventDataTypedDict, + SaleCreatedEventEvent, + SaleCreatedEventGeo, + SaleCreatedEventGeoTypedDict, + SaleCreatedEventLink, + SaleCreatedEventLinkTypedDict, + SaleCreatedEventSale, + SaleCreatedEventSaleTypedDict, + SaleCreatedEventTestVariants, + SaleCreatedEventTestVariantsTypedDict, + SaleCreatedEventTypedDict, + ) + from .saleevent import ( + PaymentProcessor, + Sale, + SaleEvent, + SaleEventClick, + SaleEventClickTypedDict, + SaleEventCustomer, + SaleEventCustomerTypedDict, + SaleEventEvent, + SaleEventGeo, + SaleEventGeoTypedDict, + SaleEventLink, + SaleEventLinkTypedDict, + SaleEventTestVariants, + SaleEventTestVariantsTypedDict, + SaleEventTypedDict, + SaleTypedDict, + ) + from .security import Security, SecurityTypedDict + from .tagschema import Color, TagSchema, TagSchemaTypedDict + from .webhookevent import WebhookEvent, WebhookEventTypedDict + from .workspaceschema import ( + Domains, + DomainsTypedDict, + Plan, + Role, + Users, + UsersTypedDict, + WorkspaceSchema, + WorkspaceSchemaTypedDict, + ) __all__ = [ "AccessLevel", @@ -384,3 +397,216 @@ "WorkspaceSchema", "WorkspaceSchemaTypedDict", ] + +_dynamic_imports: dict[str, str] = { + "AnalyticsBrowsers": ".analyticsbrowsers", + "AnalyticsBrowsersTypedDict": ".analyticsbrowsers", + "AnalyticsCities": ".analyticscities", + "AnalyticsCitiesCountry": ".analyticscities", + "AnalyticsCitiesTypedDict": ".analyticscities", + "AnalyticsContinents": ".analyticscontinents", + "AnalyticsContinentsTypedDict": ".analyticscontinents", + "Continent": ".analyticscontinents", + "AnalyticsCount": ".analyticscount", + "AnalyticsCountTypedDict": ".analyticscount", + "AnalyticsCountries": ".analyticscountries", + "AnalyticsCountriesTypedDict": ".analyticscountries", + "City": ".analyticscountries", + "Country": ".analyticscountries", + "Region": ".analyticscountries", + "AnalyticsDevices": ".analyticsdevices", + "AnalyticsDevicesTypedDict": ".analyticsdevices", + "AnalyticsOS": ".analyticsos", + "AnalyticsOSTypedDict": ".analyticsos", + "AnalyticsReferers": ".analyticsreferers", + "AnalyticsReferersTypedDict": ".analyticsreferers", + "AnalyticsRefererUrls": ".analyticsrefererurls", + "AnalyticsRefererUrlsTypedDict": ".analyticsrefererurls", + "AnalyticsRegions": ".analyticsregions", + "AnalyticsRegionsCity": ".analyticsregions", + "AnalyticsRegionsCountry": ".analyticsregions", + "AnalyticsRegionsTypedDict": ".analyticsregions", + "AnalyticsTimeseries": ".analyticstimeseries", + "AnalyticsTimeseriesTypedDict": ".analyticstimeseries", + "AnalyticsTopLinks": ".analyticstoplinks", + "AnalyticsTopLinksTypedDict": ".analyticstoplinks", + "AnalyticsTopUrls": ".analyticstopurls", + "AnalyticsTopUrlsTypedDict": ".analyticstopurls", + "AnalyticsTriggers": ".analyticstriggers", + "AnalyticsTriggersTypedDict": ".analyticstriggers", + "Trigger": ".analyticstriggers", + "Click": ".clickevent", + "ClickEvent": ".clickevent", + "ClickEventGeo": ".clickevent", + "ClickEventGeoTypedDict": ".clickevent", + "ClickEventTestVariants": ".clickevent", + "ClickEventTestVariantsTypedDict": ".clickevent", + "ClickEventTypedDict": ".clickevent", + "ClickTypedDict": ".clickevent", + "Event": ".clickevent", + "Link": ".clickevent", + "LinkTypedDict": ".clickevent", + "ContinentCode": ".continentcode", + "CountryCode": ".countrycode", + "DomainSchema": ".domainschema", + "DomainSchemaTypedDict": ".domainschema", + "RegisteredDomain": ".domainschema", + "RegisteredDomainTypedDict": ".domainschema", + "AccessLevel": ".folderschema", + "FolderSchema": ".folderschema", + "FolderSchemaTypedDict": ".folderschema", + "Type": ".folderschema", + "LeadCreatedEvent": ".leadcreatedevent", + "LeadCreatedEventClick": ".leadcreatedevent", + "LeadCreatedEventClickTypedDict": ".leadcreatedevent", + "LeadCreatedEventCustomer": ".leadcreatedevent", + "LeadCreatedEventCustomerTypedDict": ".leadcreatedevent", + "LeadCreatedEventData": ".leadcreatedevent", + "LeadCreatedEventDataTypedDict": ".leadcreatedevent", + "LeadCreatedEventEvent": ".leadcreatedevent", + "LeadCreatedEventGeo": ".leadcreatedevent", + "LeadCreatedEventGeoTypedDict": ".leadcreatedevent", + "LeadCreatedEventLink": ".leadcreatedevent", + "LeadCreatedEventLinkTypedDict": ".leadcreatedevent", + "LeadCreatedEventTestVariants": ".leadcreatedevent", + "LeadCreatedEventTestVariantsTypedDict": ".leadcreatedevent", + "LeadCreatedEventTypedDict": ".leadcreatedevent", + "Customer": ".leadevent", + "CustomerTypedDict": ".leadevent", + "LeadEvent": ".leadevent", + "LeadEventClick": ".leadevent", + "LeadEventClickTypedDict": ".leadevent", + "LeadEventEvent": ".leadevent", + "LeadEventGeo": ".leadevent", + "LeadEventGeoTypedDict": ".leadevent", + "LeadEventLink": ".leadevent", + "LeadEventLinkTypedDict": ".leadevent", + "LeadEventTestVariants": ".leadevent", + "LeadEventTestVariantsTypedDict": ".leadevent", + "LeadEventTypedDict": ".leadevent", + "Data": ".linkclickedevent", + "DataTypedDict": ".linkclickedevent", + "LinkClickedEvent": ".linkclickedevent", + "LinkClickedEventClick": ".linkclickedevent", + "LinkClickedEventClickTypedDict": ".linkclickedevent", + "LinkClickedEventEvent": ".linkclickedevent", + "LinkClickedEventGeo": ".linkclickedevent", + "LinkClickedEventGeoTypedDict": ".linkclickedevent", + "LinkClickedEventLink": ".linkclickedevent", + "LinkClickedEventLinkTypedDict": ".linkclickedevent", + "LinkClickedEventTestVariants": ".linkclickedevent", + "LinkClickedEventTestVariantsTypedDict": ".linkclickedevent", + "LinkClickedEventTypedDict": ".linkclickedevent", + "Code": ".linkerrorschema", + "LinkErrorSchema": ".linkerrorschema", + "LinkErrorSchemaTypedDict": ".linkerrorschema", + "LinkGeoTargeting": ".linkgeotargeting", + "LinkGeoTargetingTypedDict": ".linkgeotargeting", + "Geo": ".linkschema", + "GeoTypedDict": ".linkschema", + "LinkSchema": ".linkschema", + "LinkSchemaTypedDict": ".linkschema", + "TestVariants": ".linkschema", + "TestVariantsTypedDict": ".linkschema", + "LinkWebhookEvent": ".linkwebhookevent", + "LinkWebhookEventEvent": ".linkwebhookevent", + "LinkWebhookEventEventTypedDict": ".linkwebhookevent", + "LinkWebhookEventGeo": ".linkwebhookevent", + "LinkWebhookEventGeoTypedDict": ".linkwebhookevent", + "LinkWebhookEventLink": ".linkwebhookevent", + "LinkWebhookEventLinkTypedDict": ".linkwebhookevent", + "LinkWebhookEventTestVariants": ".linkwebhookevent", + "LinkWebhookEventTestVariantsTypedDict": ".linkwebhookevent", + "LinkWebhookEventTypedDict": ".linkwebhookevent", + "One": ".linkwebhookevent", + "Three": ".linkwebhookevent", + "Two": ".linkwebhookevent", + "PartnerAnalyticsCount": ".partneranalyticscount", + "PartnerAnalyticsCountTypedDict": ".partneranalyticscount", + "PartnerAnalyticsTimeseries": ".partneranalyticstimeseries", + "PartnerAnalyticsTimeseriesTypedDict": ".partneranalyticstimeseries", + "PartnerAnalyticsTopLinks": ".partneranalyticstoplinks", + "PartnerAnalyticsTopLinksTypedDict": ".partneranalyticstoplinks", + "PartnerEnrolledEvent": ".partnerenrolledevent", + "PartnerEnrolledEventData": ".partnerenrolledevent", + "PartnerEnrolledEventDataTypedDict": ".partnerenrolledevent", + "PartnerEnrolledEventEvent": ".partnerenrolledevent", + "PartnerEnrolledEventLink": ".partnerenrolledevent", + "PartnerEnrolledEventLinkTypedDict": ".partnerenrolledevent", + "PartnerEnrolledEventTypedDict": ".partnerenrolledevent", + "Status": ".partnerenrolledevent", + "SaleCreatedEvent": ".salecreatedevent", + "SaleCreatedEventClick": ".salecreatedevent", + "SaleCreatedEventClickTypedDict": ".salecreatedevent", + "SaleCreatedEventCustomer": ".salecreatedevent", + "SaleCreatedEventCustomerTypedDict": ".salecreatedevent", + "SaleCreatedEventData": ".salecreatedevent", + "SaleCreatedEventDataTypedDict": ".salecreatedevent", + "SaleCreatedEventEvent": ".salecreatedevent", + "SaleCreatedEventGeo": ".salecreatedevent", + "SaleCreatedEventGeoTypedDict": ".salecreatedevent", + "SaleCreatedEventLink": ".salecreatedevent", + "SaleCreatedEventLinkTypedDict": ".salecreatedevent", + "SaleCreatedEventSale": ".salecreatedevent", + "SaleCreatedEventSaleTypedDict": ".salecreatedevent", + "SaleCreatedEventTestVariants": ".salecreatedevent", + "SaleCreatedEventTestVariantsTypedDict": ".salecreatedevent", + "SaleCreatedEventTypedDict": ".salecreatedevent", + "PaymentProcessor": ".saleevent", + "Sale": ".saleevent", + "SaleEvent": ".saleevent", + "SaleEventClick": ".saleevent", + "SaleEventClickTypedDict": ".saleevent", + "SaleEventCustomer": ".saleevent", + "SaleEventCustomerTypedDict": ".saleevent", + "SaleEventEvent": ".saleevent", + "SaleEventGeo": ".saleevent", + "SaleEventGeoTypedDict": ".saleevent", + "SaleEventLink": ".saleevent", + "SaleEventLinkTypedDict": ".saleevent", + "SaleEventTestVariants": ".saleevent", + "SaleEventTestVariantsTypedDict": ".saleevent", + "SaleEventTypedDict": ".saleevent", + "SaleTypedDict": ".saleevent", + "Security": ".security", + "SecurityTypedDict": ".security", + "Color": ".tagschema", + "TagSchema": ".tagschema", + "TagSchemaTypedDict": ".tagschema", + "WebhookEvent": ".webhookevent", + "WebhookEventTypedDict": ".webhookevent", + "Domains": ".workspaceschema", + "DomainsTypedDict": ".workspaceschema", + "Plan": ".workspaceschema", + "Role": ".workspaceschema", + "Users": ".workspaceschema", + "UsersTypedDict": ".workspaceschema", + "WorkspaceSchema": ".workspaceschema", + "WorkspaceSchemaTypedDict": ".workspaceschema", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) diff --git a/src/dub/models/components/folderschema.py b/src/dub/models/components/folderschema.py index 506b9d21..3314ef18 100644 --- a/src/dub/models/components/folderschema.py +++ b/src/dub/models/components/folderschema.py @@ -5,7 +5,6 @@ from enum import Enum import pydantic from pydantic import model_serializer -from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -33,8 +32,6 @@ class FolderSchemaTypedDict(TypedDict): r"""The date the folder was updated.""" access_level: NotRequired[Nullable[AccessLevel]] r"""The access level of the folder within the workspace.""" - link_count: NotRequired[float] - r"""The number of links in the folder.""" class FolderSchema(BaseModel): @@ -57,12 +54,9 @@ class FolderSchema(BaseModel): ] = None r"""The access level of the folder within the workspace.""" - link_count: Annotated[Optional[float], pydantic.Field(alias="linkCount")] = 0 - r"""The number of links in the folder.""" - @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["accessLevel", "linkCount"] + optional_fields = ["accessLevel"] nullable_fields = ["accessLevel"] null_default_fields = ["accessLevel"] diff --git a/src/dub/models/errors/__init__.py b/src/dub/models/errors/__init__.py index d23c777e..a110e790 100644 --- a/src/dub/models/errors/__init__.py +++ b/src/dub/models/errors/__init__.py @@ -1,64 +1,67 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .badrequest import BadRequest, BadRequestData, Code, Error, ErrorTypedDict -from .conflict import ( - Conflict, - ConflictCode, - ConflictData, - ConflictError, - ConflictErrorTypedDict, -) -from .forbidden import ( - Forbidden, - ForbiddenCode, - ForbiddenData, - ForbiddenError, - ForbiddenErrorTypedDict, -) -from .internalservererror import ( - InternalServerError, - InternalServerErrorCode, - InternalServerErrorData, - InternalServerErrorError, - InternalServerErrorErrorTypedDict, -) -from .inviteexpired import ( - InviteExpired, - InviteExpiredCode, - InviteExpiredData, - InviteExpiredError, - InviteExpiredErrorTypedDict, -) -from .notfound import ( - NotFound, - NotFoundCode, - NotFoundData, - NotFoundError, - NotFoundErrorTypedDict, -) -from .ratelimitexceeded import ( - RateLimitExceeded, - RateLimitExceededCode, - RateLimitExceededData, - RateLimitExceededError, - RateLimitExceededErrorTypedDict, -) -from .sdkerror import SDKError -from .unauthorized import ( - Unauthorized, - UnauthorizedCode, - UnauthorizedData, - UnauthorizedError, - UnauthorizedErrorTypedDict, -) -from .unprocessableentity import ( - UnprocessableEntity, - UnprocessableEntityCode, - UnprocessableEntityData, - UnprocessableEntityError, - UnprocessableEntityErrorTypedDict, -) +from typing import TYPE_CHECKING +from importlib import import_module +if TYPE_CHECKING: + from .badrequest import BadRequest, BadRequestData, Code, Error, ErrorTypedDict + from .conflict import ( + Conflict, + ConflictCode, + ConflictData, + ConflictError, + ConflictErrorTypedDict, + ) + from .forbidden import ( + Forbidden, + ForbiddenCode, + ForbiddenData, + ForbiddenError, + ForbiddenErrorTypedDict, + ) + from .internalservererror import ( + InternalServerError, + InternalServerErrorCode, + InternalServerErrorData, + InternalServerErrorError, + InternalServerErrorErrorTypedDict, + ) + from .inviteexpired import ( + InviteExpired, + InviteExpiredCode, + InviteExpiredData, + InviteExpiredError, + InviteExpiredErrorTypedDict, + ) + from .notfound import ( + NotFound, + NotFoundCode, + NotFoundData, + NotFoundError, + NotFoundErrorTypedDict, + ) + from .ratelimitexceeded import ( + RateLimitExceeded, + RateLimitExceededCode, + RateLimitExceededData, + RateLimitExceededError, + RateLimitExceededErrorTypedDict, + ) + from .sdkerror import SDKError + from .unauthorized import ( + Unauthorized, + UnauthorizedCode, + UnauthorizedData, + UnauthorizedError, + UnauthorizedErrorTypedDict, + ) + from .unprocessableentity import ( + UnprocessableEntity, + UnprocessableEntityCode, + UnprocessableEntityData, + UnprocessableEntityError, + UnprocessableEntityErrorTypedDict, + ) __all__ = [ "BadRequest", @@ -108,3 +111,78 @@ "UnprocessableEntityError", "UnprocessableEntityErrorTypedDict", ] + +_dynamic_imports: dict[str, str] = { + "BadRequest": ".badrequest", + "BadRequestData": ".badrequest", + "Code": ".badrequest", + "Error": ".badrequest", + "ErrorTypedDict": ".badrequest", + "Conflict": ".conflict", + "ConflictCode": ".conflict", + "ConflictData": ".conflict", + "ConflictError": ".conflict", + "ConflictErrorTypedDict": ".conflict", + "Forbidden": ".forbidden", + "ForbiddenCode": ".forbidden", + "ForbiddenData": ".forbidden", + "ForbiddenError": ".forbidden", + "ForbiddenErrorTypedDict": ".forbidden", + "InternalServerError": ".internalservererror", + "InternalServerErrorCode": ".internalservererror", + "InternalServerErrorData": ".internalservererror", + "InternalServerErrorError": ".internalservererror", + "InternalServerErrorErrorTypedDict": ".internalservererror", + "InviteExpired": ".inviteexpired", + "InviteExpiredCode": ".inviteexpired", + "InviteExpiredData": ".inviteexpired", + "InviteExpiredError": ".inviteexpired", + "InviteExpiredErrorTypedDict": ".inviteexpired", + "NotFound": ".notfound", + "NotFoundCode": ".notfound", + "NotFoundData": ".notfound", + "NotFoundError": ".notfound", + "NotFoundErrorTypedDict": ".notfound", + "RateLimitExceeded": ".ratelimitexceeded", + "RateLimitExceededCode": ".ratelimitexceeded", + "RateLimitExceededData": ".ratelimitexceeded", + "RateLimitExceededError": ".ratelimitexceeded", + "RateLimitExceededErrorTypedDict": ".ratelimitexceeded", + "SDKError": ".sdkerror", + "Unauthorized": ".unauthorized", + "UnauthorizedCode": ".unauthorized", + "UnauthorizedData": ".unauthorized", + "UnauthorizedError": ".unauthorized", + "UnauthorizedErrorTypedDict": ".unauthorized", + "UnprocessableEntity": ".unprocessableentity", + "UnprocessableEntityCode": ".unprocessableentity", + "UnprocessableEntityData": ".unprocessableentity", + "UnprocessableEntityError": ".unprocessableentity", + "UnprocessableEntityErrorTypedDict": ".unprocessableentity", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) diff --git a/src/dub/models/operations/__init__.py b/src/dub/models/operations/__init__.py index 9f9e10f4..f74c9bd3 100644 --- a/src/dub/models/operations/__init__.py +++ b/src/dub/models/operations/__init__.py @@ -1,377 +1,380 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .bulkcreatelinks import ( - BulkCreateLinksTagIds, - BulkCreateLinksTagIdsTypedDict, - BulkCreateLinksTagNames, - BulkCreateLinksTagNamesTypedDict, - BulkCreateLinksTestVariants, - BulkCreateLinksTestVariantsTypedDict, - RequestBody, - RequestBodyTypedDict, - ResponseBody, - ResponseBodyTypedDict, -) -from .bulkdeletelinks import ( - BulkDeleteLinksRequest, - BulkDeleteLinksRequestTypedDict, - BulkDeleteLinksResponseBody, - BulkDeleteLinksResponseBodyTypedDict, -) -from .bulkupdatelinks import ( - BulkUpdateLinksRequestBody, - BulkUpdateLinksRequestBodyTypedDict, - BulkUpdateLinksTagIds, - BulkUpdateLinksTagIdsTypedDict, - BulkUpdateLinksTagNames, - BulkUpdateLinksTagNamesTypedDict, - BulkUpdateLinksTestVariants, - BulkUpdateLinksTestVariantsTypedDict, - Data, - DataTypedDict, -) -from .createcustomer import ( - CreateCustomerDiscount, - CreateCustomerDiscountTypedDict, - CreateCustomerLink, - CreateCustomerLinkTypedDict, - CreateCustomerPartner, - CreateCustomerPartnerTypedDict, - CreateCustomerRequestBody, - CreateCustomerRequestBodyTypedDict, - CreateCustomerResponseBody, - CreateCustomerResponseBodyTypedDict, - CreateCustomerType, -) -from .createdomain import CreateDomainRequestBody, CreateDomainRequestBodyTypedDict -from .createfolder import ( - AccessLevel, - CreateFolderRequestBody, - CreateFolderRequestBodyTypedDict, -) -from .createlink import ( - CreateLinkRequestBody, - CreateLinkRequestBodyTypedDict, - TagIds, - TagIdsTypedDict, - TagNames, - TagNamesTypedDict, - TestVariants, - TestVariantsTypedDict, -) -from .createpartner import ( - Country, - CreatePartnerLink, - CreatePartnerLinkTypedDict, - CreatePartnerRequestBody, - CreatePartnerRequestBodyTypedDict, - CreatePartnerResponseBody, - CreatePartnerResponseBodyTypedDict, - CreatePartnerStatus, - CreatePartnerTagIds, - CreatePartnerTagIdsTypedDict, - CreatePartnerTagNames, - CreatePartnerTagNamesTypedDict, - CreatePartnerTestVariants, - CreatePartnerTestVariantsTypedDict, - LinkProps, - LinkPropsTypedDict, -) -from .createpartnerlink import ( - CreatePartnerLinkLinkProps, - CreatePartnerLinkLinkPropsTypedDict, - CreatePartnerLinkRequestBody, - CreatePartnerLinkRequestBodyTypedDict, - CreatePartnerLinkTagIds, - CreatePartnerLinkTagIdsTypedDict, - CreatePartnerLinkTagNames, - CreatePartnerLinkTagNamesTypedDict, - CreatePartnerLinkTestVariants, - CreatePartnerLinkTestVariantsTypedDict, -) -from .createreferralsembedtoken import ( - CreateReferralsEmbedTokenCountry, - CreateReferralsEmbedTokenLinkProps, - CreateReferralsEmbedTokenLinkPropsTypedDict, - CreateReferralsEmbedTokenRequestBody, - CreateReferralsEmbedTokenRequestBodyTypedDict, - CreateReferralsEmbedTokenResponseBody, - CreateReferralsEmbedTokenResponseBodyTypedDict, - CreateReferralsEmbedTokenTagIds, - CreateReferralsEmbedTokenTagIdsTypedDict, - CreateReferralsEmbedTokenTagNames, - CreateReferralsEmbedTokenTagNamesTypedDict, - CreateReferralsEmbedTokenTestVariants, - CreateReferralsEmbedTokenTestVariantsTypedDict, - Partner, - PartnerTypedDict, -) -from .createtag import Color, CreateTagRequestBody, CreateTagRequestBodyTypedDict -from .deletecustomer import ( - DeleteCustomerRequest, - DeleteCustomerRequestTypedDict, - DeleteCustomerResponseBody, - DeleteCustomerResponseBodyTypedDict, -) -from .deletedomain import ( - DeleteDomainRequest, - DeleteDomainRequestTypedDict, - DeleteDomainResponseBody, - DeleteDomainResponseBodyTypedDict, -) -from .deletefolder import ( - DeleteFolderRequest, - DeleteFolderRequestTypedDict, - DeleteFolderResponseBody, - DeleteFolderResponseBodyTypedDict, -) -from .deletelink import ( - DeleteLinkRequest, - DeleteLinkRequestTypedDict, - DeleteLinkResponseBody, - DeleteLinkResponseBodyTypedDict, -) -from .deletetag import ( - DeleteTagRequest, - DeleteTagRequestTypedDict, - DeleteTagResponseBody, - DeleteTagResponseBodyTypedDict, -) -from .getcustomer import ( - GetCustomerDiscount, - GetCustomerDiscountTypedDict, - GetCustomerLink, - GetCustomerLinkTypedDict, - GetCustomerPartner, - GetCustomerPartnerTypedDict, - GetCustomerRequest, - GetCustomerRequestTypedDict, - GetCustomerResponseBody, - GetCustomerResponseBodyTypedDict, - GetCustomerType, -) -from .getcustomers import ( - Discount, - DiscountTypedDict, - GetCustomersLink, - GetCustomersLinkTypedDict, - GetCustomersPartner, - GetCustomersPartnerTypedDict, - GetCustomersQueryParamSortBy, - GetCustomersQueryParamSortOrder, - GetCustomersRequest, - GetCustomersRequestTypedDict, - GetCustomersResponseBody, - GetCustomersResponseBodyTypedDict, - GetCustomersType, -) -from .getlinkinfo import GetLinkInfoRequest, GetLinkInfoRequestTypedDict -from .getlinks import ( - GetLinksRequest, - GetLinksRequestTypedDict, - GetLinksResponse, - GetLinksResponseTypedDict, - QueryParamTagIds, - QueryParamTagIdsTypedDict, - QueryParamTagNames, - QueryParamTagNamesTypedDict, - Sort, - SortBy, - SortOrder, -) -from .getlinkscount import ( - Four, - GetLinksCountQueryParamTagIds, - GetLinksCountQueryParamTagIdsTypedDict, - GetLinksCountQueryParamTagNames, - GetLinksCountQueryParamTagNamesTypedDict, - GetLinksCountRequest, - GetLinksCountRequestTypedDict, - GroupBy, - GroupByTypedDict, - One, - Three, - Two, -) -from .getqrcode import GetQRCodeRequest, GetQRCodeRequestTypedDict, Level -from .gettags import ( - GetTagsQueryParamSortBy, - GetTagsQueryParamSortOrder, - GetTagsRequest, - GetTagsRequestTypedDict, - Ids, - IdsTypedDict, -) -from .getworkspace import GetWorkspaceRequest, GetWorkspaceRequestTypedDict -from .listcommissions import ( - ListCommissionsQueryParamInterval, - ListCommissionsQueryParamSortBy, - ListCommissionsQueryParamSortOrder, - ListCommissionsRequest, - ListCommissionsRequestTypedDict, - ListCommissionsResponseBody, - ListCommissionsResponseBodyTypedDict, - ListCommissionsStatus, - ListCommissionsType, - QueryParamStatus, - Type, -) -from .listdomains import ( - ListDomainsRequest, - ListDomainsRequestTypedDict, - ListDomainsResponse, - ListDomainsResponseTypedDict, -) -from .listevents import ( - ListEventsQueryParamTagIds, - ListEventsQueryParamTagIdsTypedDict, - ListEventsRequest, - ListEventsRequestTypedDict, - ListEventsResponseBody, - ListEventsResponseBodyTypedDict, - Order, - QueryParamEvent, - QueryParamInterval, - QueryParamSortBy, - QueryParamSortOrder, - QueryParamTrigger, -) -from .listfolders import ListFoldersRequest, ListFoldersRequestTypedDict -from .retrieveanalytics import ( - Event, - Interval, - QueryParamGroupBy, - RetrieveAnalyticsQueryParamTagIds, - RetrieveAnalyticsQueryParamTagIdsTypedDict, - RetrieveAnalyticsRequest, - RetrieveAnalyticsRequestTypedDict, - RetrieveAnalyticsResponseBody, - RetrieveAnalyticsResponseBodyTypedDict, - Trigger, -) -from .retrievelinks import ( - Link, - LinkTypedDict, - RetrieveLinksRequest, - RetrieveLinksRequestTypedDict, -) -from .retrievepartneranalytics import ( - RetrievePartnerAnalyticsQueryParamGroupBy, - RetrievePartnerAnalyticsQueryParamInterval, - RetrievePartnerAnalyticsRequest, - RetrievePartnerAnalyticsRequestTypedDict, - RetrievePartnerAnalyticsResponseBody, - RetrievePartnerAnalyticsResponseBodyTypedDict, -) -from .tracklead import ( - Click, - ClickTypedDict, - Customer, - CustomerTypedDict, - Mode, - TrackLeadRequestBody, - TrackLeadRequestBodyTypedDict, - TrackLeadResponseBody, - TrackLeadResponseBodyTypedDict, -) -from .tracksale import ( - PaymentProcessor, - Sale, - SaleTypedDict, - TrackSaleCustomer, - TrackSaleCustomerTypedDict, - TrackSaleRequestBody, - TrackSaleRequestBodyTypedDict, - TrackSaleResponseBody, - TrackSaleResponseBodyTypedDict, -) -from .updatecommission import ( - Status, - UpdateCommissionRequest, - UpdateCommissionRequestBody, - UpdateCommissionRequestBodyTypedDict, - UpdateCommissionRequestTypedDict, - UpdateCommissionResponseBody, - UpdateCommissionResponseBodyTypedDict, - UpdateCommissionStatus, - UpdateCommissionType, -) -from .updatecustomer import ( - UpdateCustomerDiscount, - UpdateCustomerDiscountTypedDict, - UpdateCustomerLink, - UpdateCustomerLinkTypedDict, - UpdateCustomerPartner, - UpdateCustomerPartnerTypedDict, - UpdateCustomerRequest, - UpdateCustomerRequestBody, - UpdateCustomerRequestBodyTypedDict, - UpdateCustomerRequestTypedDict, - UpdateCustomerResponseBody, - UpdateCustomerResponseBodyTypedDict, - UpdateCustomerType, -) -from .updatedomain import ( - UpdateDomainRequest, - UpdateDomainRequestBody, - UpdateDomainRequestBodyTypedDict, - UpdateDomainRequestTypedDict, -) -from .updatefolder import ( - UpdateFolderAccessLevel, - UpdateFolderRequest, - UpdateFolderRequestBody, - UpdateFolderRequestBodyTypedDict, - UpdateFolderRequestTypedDict, -) -from .updatelink import ( - UpdateLinkRequest, - UpdateLinkRequestBody, - UpdateLinkRequestBodyTypedDict, - UpdateLinkRequestTypedDict, - UpdateLinkTagIds, - UpdateLinkTagIdsTypedDict, - UpdateLinkTagNames, - UpdateLinkTagNamesTypedDict, - UpdateLinkTestVariants, - UpdateLinkTestVariantsTypedDict, -) -from .updatetag import ( - UpdateTagColor, - UpdateTagRequest, - UpdateTagRequestBody, - UpdateTagRequestBodyTypedDict, - UpdateTagRequestTypedDict, -) -from .updateworkspace import ( - UpdateWorkspaceRequest, - UpdateWorkspaceRequestBody, - UpdateWorkspaceRequestBodyTypedDict, - UpdateWorkspaceRequestTypedDict, -) -from .upsertlink import ( - UpsertLinkRequestBody, - UpsertLinkRequestBodyTypedDict, - UpsertLinkTagIds, - UpsertLinkTagIdsTypedDict, - UpsertLinkTagNames, - UpsertLinkTagNamesTypedDict, - UpsertLinkTestVariants, - UpsertLinkTestVariantsTypedDict, -) -from .upsertpartnerlink import ( - UpsertPartnerLinkLinkProps, - UpsertPartnerLinkLinkPropsTypedDict, - UpsertPartnerLinkRequestBody, - UpsertPartnerLinkRequestBodyTypedDict, - UpsertPartnerLinkTagIds, - UpsertPartnerLinkTagIdsTypedDict, - UpsertPartnerLinkTagNames, - UpsertPartnerLinkTagNamesTypedDict, - UpsertPartnerLinkTestVariants, - UpsertPartnerLinkTestVariantsTypedDict, -) +from typing import TYPE_CHECKING +from importlib import import_module +if TYPE_CHECKING: + from .bulkcreatelinks import ( + BulkCreateLinksTagIds, + BulkCreateLinksTagIdsTypedDict, + BulkCreateLinksTagNames, + BulkCreateLinksTagNamesTypedDict, + BulkCreateLinksTestVariants, + BulkCreateLinksTestVariantsTypedDict, + RequestBody, + RequestBodyTypedDict, + ResponseBody, + ResponseBodyTypedDict, + ) + from .bulkdeletelinks import ( + BulkDeleteLinksRequest, + BulkDeleteLinksRequestTypedDict, + BulkDeleteLinksResponseBody, + BulkDeleteLinksResponseBodyTypedDict, + ) + from .bulkupdatelinks import ( + BulkUpdateLinksRequestBody, + BulkUpdateLinksRequestBodyTypedDict, + BulkUpdateLinksTagIds, + BulkUpdateLinksTagIdsTypedDict, + BulkUpdateLinksTagNames, + BulkUpdateLinksTagNamesTypedDict, + BulkUpdateLinksTestVariants, + BulkUpdateLinksTestVariantsTypedDict, + Data, + DataTypedDict, + ) + from .createcustomer import ( + CreateCustomerDiscount, + CreateCustomerDiscountTypedDict, + CreateCustomerLink, + CreateCustomerLinkTypedDict, + CreateCustomerPartner, + CreateCustomerPartnerTypedDict, + CreateCustomerRequestBody, + CreateCustomerRequestBodyTypedDict, + CreateCustomerResponseBody, + CreateCustomerResponseBodyTypedDict, + CreateCustomerType, + ) + from .createdomain import CreateDomainRequestBody, CreateDomainRequestBodyTypedDict + from .createfolder import ( + AccessLevel, + CreateFolderRequestBody, + CreateFolderRequestBodyTypedDict, + ) + from .createlink import ( + CreateLinkRequestBody, + CreateLinkRequestBodyTypedDict, + TagIds, + TagIdsTypedDict, + TagNames, + TagNamesTypedDict, + TestVariants, + TestVariantsTypedDict, + ) + from .createpartner import ( + Country, + CreatePartnerLink, + CreatePartnerLinkTypedDict, + CreatePartnerRequestBody, + CreatePartnerRequestBodyTypedDict, + CreatePartnerResponseBody, + CreatePartnerResponseBodyTypedDict, + CreatePartnerStatus, + CreatePartnerTagIds, + CreatePartnerTagIdsTypedDict, + CreatePartnerTagNames, + CreatePartnerTagNamesTypedDict, + CreatePartnerTestVariants, + CreatePartnerTestVariantsTypedDict, + LinkProps, + LinkPropsTypedDict, + ) + from .createpartnerlink import ( + CreatePartnerLinkLinkProps, + CreatePartnerLinkLinkPropsTypedDict, + CreatePartnerLinkRequestBody, + CreatePartnerLinkRequestBodyTypedDict, + CreatePartnerLinkTagIds, + CreatePartnerLinkTagIdsTypedDict, + CreatePartnerLinkTagNames, + CreatePartnerLinkTagNamesTypedDict, + CreatePartnerLinkTestVariants, + CreatePartnerLinkTestVariantsTypedDict, + ) + from .createreferralsembedtoken import ( + CreateReferralsEmbedTokenCountry, + CreateReferralsEmbedTokenLinkProps, + CreateReferralsEmbedTokenLinkPropsTypedDict, + CreateReferralsEmbedTokenRequestBody, + CreateReferralsEmbedTokenRequestBodyTypedDict, + CreateReferralsEmbedTokenResponseBody, + CreateReferralsEmbedTokenResponseBodyTypedDict, + CreateReferralsEmbedTokenTagIds, + CreateReferralsEmbedTokenTagIdsTypedDict, + CreateReferralsEmbedTokenTagNames, + CreateReferralsEmbedTokenTagNamesTypedDict, + CreateReferralsEmbedTokenTestVariants, + CreateReferralsEmbedTokenTestVariantsTypedDict, + Partner, + PartnerTypedDict, + ) + from .createtag import Color, CreateTagRequestBody, CreateTagRequestBodyTypedDict + from .deletecustomer import ( + DeleteCustomerRequest, + DeleteCustomerRequestTypedDict, + DeleteCustomerResponseBody, + DeleteCustomerResponseBodyTypedDict, + ) + from .deletedomain import ( + DeleteDomainRequest, + DeleteDomainRequestTypedDict, + DeleteDomainResponseBody, + DeleteDomainResponseBodyTypedDict, + ) + from .deletefolder import ( + DeleteFolderRequest, + DeleteFolderRequestTypedDict, + DeleteFolderResponseBody, + DeleteFolderResponseBodyTypedDict, + ) + from .deletelink import ( + DeleteLinkRequest, + DeleteLinkRequestTypedDict, + DeleteLinkResponseBody, + DeleteLinkResponseBodyTypedDict, + ) + from .deletetag import ( + DeleteTagRequest, + DeleteTagRequestTypedDict, + DeleteTagResponseBody, + DeleteTagResponseBodyTypedDict, + ) + from .getcustomer import ( + GetCustomerDiscount, + GetCustomerDiscountTypedDict, + GetCustomerLink, + GetCustomerLinkTypedDict, + GetCustomerPartner, + GetCustomerPartnerTypedDict, + GetCustomerRequest, + GetCustomerRequestTypedDict, + GetCustomerResponseBody, + GetCustomerResponseBodyTypedDict, + GetCustomerType, + ) + from .getcustomers import ( + Discount, + DiscountTypedDict, + GetCustomersLink, + GetCustomersLinkTypedDict, + GetCustomersPartner, + GetCustomersPartnerTypedDict, + GetCustomersQueryParamSortBy, + GetCustomersQueryParamSortOrder, + GetCustomersRequest, + GetCustomersRequestTypedDict, + GetCustomersResponseBody, + GetCustomersResponseBodyTypedDict, + GetCustomersType, + ) + from .getlinkinfo import GetLinkInfoRequest, GetLinkInfoRequestTypedDict + from .getlinks import ( + GetLinksRequest, + GetLinksRequestTypedDict, + GetLinksResponse, + GetLinksResponseTypedDict, + QueryParamTagIds, + QueryParamTagIdsTypedDict, + QueryParamTagNames, + QueryParamTagNamesTypedDict, + Sort, + SortBy, + SortOrder, + ) + from .getlinkscount import ( + Four, + GetLinksCountQueryParamTagIds, + GetLinksCountQueryParamTagIdsTypedDict, + GetLinksCountQueryParamTagNames, + GetLinksCountQueryParamTagNamesTypedDict, + GetLinksCountRequest, + GetLinksCountRequestTypedDict, + GroupBy, + GroupByTypedDict, + One, + Three, + Two, + ) + from .getqrcode import GetQRCodeRequest, GetQRCodeRequestTypedDict, Level + from .gettags import ( + GetTagsQueryParamSortBy, + GetTagsQueryParamSortOrder, + GetTagsRequest, + GetTagsRequestTypedDict, + Ids, + IdsTypedDict, + ) + from .getworkspace import GetWorkspaceRequest, GetWorkspaceRequestTypedDict + from .listcommissions import ( + ListCommissionsQueryParamInterval, + ListCommissionsQueryParamSortBy, + ListCommissionsQueryParamSortOrder, + ListCommissionsRequest, + ListCommissionsRequestTypedDict, + ListCommissionsResponseBody, + ListCommissionsResponseBodyTypedDict, + ListCommissionsStatus, + ListCommissionsType, + QueryParamStatus, + Type, + ) + from .listdomains import ( + ListDomainsRequest, + ListDomainsRequestTypedDict, + ListDomainsResponse, + ListDomainsResponseTypedDict, + ) + from .listevents import ( + ListEventsQueryParamTagIds, + ListEventsQueryParamTagIdsTypedDict, + ListEventsRequest, + ListEventsRequestTypedDict, + ListEventsResponseBody, + ListEventsResponseBodyTypedDict, + Order, + QueryParamEvent, + QueryParamInterval, + QueryParamSortBy, + QueryParamSortOrder, + QueryParamTrigger, + ) + from .listfolders import ListFoldersRequest, ListFoldersRequestTypedDict + from .retrieveanalytics import ( + Event, + Interval, + QueryParamGroupBy, + RetrieveAnalyticsQueryParamTagIds, + RetrieveAnalyticsQueryParamTagIdsTypedDict, + RetrieveAnalyticsRequest, + RetrieveAnalyticsRequestTypedDict, + RetrieveAnalyticsResponseBody, + RetrieveAnalyticsResponseBodyTypedDict, + Trigger, + ) + from .retrievelinks import ( + Link, + LinkTypedDict, + RetrieveLinksRequest, + RetrieveLinksRequestTypedDict, + ) + from .retrievepartneranalytics import ( + RetrievePartnerAnalyticsQueryParamGroupBy, + RetrievePartnerAnalyticsQueryParamInterval, + RetrievePartnerAnalyticsRequest, + RetrievePartnerAnalyticsRequestTypedDict, + RetrievePartnerAnalyticsResponseBody, + RetrievePartnerAnalyticsResponseBodyTypedDict, + ) + from .tracklead import ( + Click, + ClickTypedDict, + Customer, + CustomerTypedDict, + Mode, + TrackLeadRequestBody, + TrackLeadRequestBodyTypedDict, + TrackLeadResponseBody, + TrackLeadResponseBodyTypedDict, + ) + from .tracksale import ( + PaymentProcessor, + Sale, + SaleTypedDict, + TrackSaleCustomer, + TrackSaleCustomerTypedDict, + TrackSaleRequestBody, + TrackSaleRequestBodyTypedDict, + TrackSaleResponseBody, + TrackSaleResponseBodyTypedDict, + ) + from .updatecommission import ( + Status, + UpdateCommissionRequest, + UpdateCommissionRequestBody, + UpdateCommissionRequestBodyTypedDict, + UpdateCommissionRequestTypedDict, + UpdateCommissionResponseBody, + UpdateCommissionResponseBodyTypedDict, + UpdateCommissionStatus, + UpdateCommissionType, + ) + from .updatecustomer import ( + UpdateCustomerDiscount, + UpdateCustomerDiscountTypedDict, + UpdateCustomerLink, + UpdateCustomerLinkTypedDict, + UpdateCustomerPartner, + UpdateCustomerPartnerTypedDict, + UpdateCustomerRequest, + UpdateCustomerRequestBody, + UpdateCustomerRequestBodyTypedDict, + UpdateCustomerRequestTypedDict, + UpdateCustomerResponseBody, + UpdateCustomerResponseBodyTypedDict, + UpdateCustomerType, + ) + from .updatedomain import ( + UpdateDomainRequest, + UpdateDomainRequestBody, + UpdateDomainRequestBodyTypedDict, + UpdateDomainRequestTypedDict, + ) + from .updatefolder import ( + UpdateFolderAccessLevel, + UpdateFolderRequest, + UpdateFolderRequestBody, + UpdateFolderRequestBodyTypedDict, + UpdateFolderRequestTypedDict, + ) + from .updatelink import ( + UpdateLinkRequest, + UpdateLinkRequestBody, + UpdateLinkRequestBodyTypedDict, + UpdateLinkRequestTypedDict, + UpdateLinkTagIds, + UpdateLinkTagIdsTypedDict, + UpdateLinkTagNames, + UpdateLinkTagNamesTypedDict, + UpdateLinkTestVariants, + UpdateLinkTestVariantsTypedDict, + ) + from .updatetag import ( + UpdateTagColor, + UpdateTagRequest, + UpdateTagRequestBody, + UpdateTagRequestBodyTypedDict, + UpdateTagRequestTypedDict, + ) + from .updateworkspace import ( + UpdateWorkspaceRequest, + UpdateWorkspaceRequestBody, + UpdateWorkspaceRequestBodyTypedDict, + UpdateWorkspaceRequestTypedDict, + ) + from .upsertlink import ( + UpsertLinkRequestBody, + UpsertLinkRequestBodyTypedDict, + UpsertLinkTagIds, + UpsertLinkTagIdsTypedDict, + UpsertLinkTagNames, + UpsertLinkTagNamesTypedDict, + UpsertLinkTestVariants, + UpsertLinkTestVariantsTypedDict, + ) + from .upsertpartnerlink import ( + UpsertPartnerLinkLinkProps, + UpsertPartnerLinkLinkPropsTypedDict, + UpsertPartnerLinkRequestBody, + UpsertPartnerLinkRequestBodyTypedDict, + UpsertPartnerLinkTagIds, + UpsertPartnerLinkTagIdsTypedDict, + UpsertPartnerLinkTagNames, + UpsertPartnerLinkTagNamesTypedDict, + UpsertPartnerLinkTestVariants, + UpsertPartnerLinkTestVariantsTypedDict, + ) __all__ = [ "AccessLevel", @@ -682,3 +685,339 @@ "UpsertPartnerLinkTestVariants", "UpsertPartnerLinkTestVariantsTypedDict", ] + +_dynamic_imports: dict[str, str] = { + "BulkCreateLinksTagIds": ".bulkcreatelinks", + "BulkCreateLinksTagIdsTypedDict": ".bulkcreatelinks", + "BulkCreateLinksTagNames": ".bulkcreatelinks", + "BulkCreateLinksTagNamesTypedDict": ".bulkcreatelinks", + "BulkCreateLinksTestVariants": ".bulkcreatelinks", + "BulkCreateLinksTestVariantsTypedDict": ".bulkcreatelinks", + "RequestBody": ".bulkcreatelinks", + "RequestBodyTypedDict": ".bulkcreatelinks", + "ResponseBody": ".bulkcreatelinks", + "ResponseBodyTypedDict": ".bulkcreatelinks", + "BulkDeleteLinksRequest": ".bulkdeletelinks", + "BulkDeleteLinksRequestTypedDict": ".bulkdeletelinks", + "BulkDeleteLinksResponseBody": ".bulkdeletelinks", + "BulkDeleteLinksResponseBodyTypedDict": ".bulkdeletelinks", + "BulkUpdateLinksRequestBody": ".bulkupdatelinks", + "BulkUpdateLinksRequestBodyTypedDict": ".bulkupdatelinks", + "BulkUpdateLinksTagIds": ".bulkupdatelinks", + "BulkUpdateLinksTagIdsTypedDict": ".bulkupdatelinks", + "BulkUpdateLinksTagNames": ".bulkupdatelinks", + "BulkUpdateLinksTagNamesTypedDict": ".bulkupdatelinks", + "BulkUpdateLinksTestVariants": ".bulkupdatelinks", + "BulkUpdateLinksTestVariantsTypedDict": ".bulkupdatelinks", + "Data": ".bulkupdatelinks", + "DataTypedDict": ".bulkupdatelinks", + "CreateCustomerDiscount": ".createcustomer", + "CreateCustomerDiscountTypedDict": ".createcustomer", + "CreateCustomerLink": ".createcustomer", + "CreateCustomerLinkTypedDict": ".createcustomer", + "CreateCustomerPartner": ".createcustomer", + "CreateCustomerPartnerTypedDict": ".createcustomer", + "CreateCustomerRequestBody": ".createcustomer", + "CreateCustomerRequestBodyTypedDict": ".createcustomer", + "CreateCustomerResponseBody": ".createcustomer", + "CreateCustomerResponseBodyTypedDict": ".createcustomer", + "CreateCustomerType": ".createcustomer", + "CreateDomainRequestBody": ".createdomain", + "CreateDomainRequestBodyTypedDict": ".createdomain", + "AccessLevel": ".createfolder", + "CreateFolderRequestBody": ".createfolder", + "CreateFolderRequestBodyTypedDict": ".createfolder", + "CreateLinkRequestBody": ".createlink", + "CreateLinkRequestBodyTypedDict": ".createlink", + "TagIds": ".createlink", + "TagIdsTypedDict": ".createlink", + "TagNames": ".createlink", + "TagNamesTypedDict": ".createlink", + "TestVariants": ".createlink", + "TestVariantsTypedDict": ".createlink", + "Country": ".createpartner", + "CreatePartnerLink": ".createpartner", + "CreatePartnerLinkTypedDict": ".createpartner", + "CreatePartnerRequestBody": ".createpartner", + "CreatePartnerRequestBodyTypedDict": ".createpartner", + "CreatePartnerResponseBody": ".createpartner", + "CreatePartnerResponseBodyTypedDict": ".createpartner", + "CreatePartnerStatus": ".createpartner", + "CreatePartnerTagIds": ".createpartner", + "CreatePartnerTagIdsTypedDict": ".createpartner", + "CreatePartnerTagNames": ".createpartner", + "CreatePartnerTagNamesTypedDict": ".createpartner", + "CreatePartnerTestVariants": ".createpartner", + "CreatePartnerTestVariantsTypedDict": ".createpartner", + "LinkProps": ".createpartner", + "LinkPropsTypedDict": ".createpartner", + "CreatePartnerLinkLinkProps": ".createpartnerlink", + "CreatePartnerLinkLinkPropsTypedDict": ".createpartnerlink", + "CreatePartnerLinkRequestBody": ".createpartnerlink", + "CreatePartnerLinkRequestBodyTypedDict": ".createpartnerlink", + "CreatePartnerLinkTagIds": ".createpartnerlink", + "CreatePartnerLinkTagIdsTypedDict": ".createpartnerlink", + "CreatePartnerLinkTagNames": ".createpartnerlink", + "CreatePartnerLinkTagNamesTypedDict": ".createpartnerlink", + "CreatePartnerLinkTestVariants": ".createpartnerlink", + "CreatePartnerLinkTestVariantsTypedDict": ".createpartnerlink", + "CreateReferralsEmbedTokenCountry": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenLinkProps": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenLinkPropsTypedDict": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenRequestBody": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenRequestBodyTypedDict": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenResponseBody": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenResponseBodyTypedDict": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenTagIds": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenTagIdsTypedDict": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenTagNames": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenTagNamesTypedDict": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenTestVariants": ".createreferralsembedtoken", + "CreateReferralsEmbedTokenTestVariantsTypedDict": ".createreferralsembedtoken", + "Partner": ".createreferralsembedtoken", + "PartnerTypedDict": ".createreferralsembedtoken", + "Color": ".createtag", + "CreateTagRequestBody": ".createtag", + "CreateTagRequestBodyTypedDict": ".createtag", + "DeleteCustomerRequest": ".deletecustomer", + "DeleteCustomerRequestTypedDict": ".deletecustomer", + "DeleteCustomerResponseBody": ".deletecustomer", + "DeleteCustomerResponseBodyTypedDict": ".deletecustomer", + "DeleteDomainRequest": ".deletedomain", + "DeleteDomainRequestTypedDict": ".deletedomain", + "DeleteDomainResponseBody": ".deletedomain", + "DeleteDomainResponseBodyTypedDict": ".deletedomain", + "DeleteFolderRequest": ".deletefolder", + "DeleteFolderRequestTypedDict": ".deletefolder", + "DeleteFolderResponseBody": ".deletefolder", + "DeleteFolderResponseBodyTypedDict": ".deletefolder", + "DeleteLinkRequest": ".deletelink", + "DeleteLinkRequestTypedDict": ".deletelink", + "DeleteLinkResponseBody": ".deletelink", + "DeleteLinkResponseBodyTypedDict": ".deletelink", + "DeleteTagRequest": ".deletetag", + "DeleteTagRequestTypedDict": ".deletetag", + "DeleteTagResponseBody": ".deletetag", + "DeleteTagResponseBodyTypedDict": ".deletetag", + "GetCustomerDiscount": ".getcustomer", + "GetCustomerDiscountTypedDict": ".getcustomer", + "GetCustomerLink": ".getcustomer", + "GetCustomerLinkTypedDict": ".getcustomer", + "GetCustomerPartner": ".getcustomer", + "GetCustomerPartnerTypedDict": ".getcustomer", + "GetCustomerRequest": ".getcustomer", + "GetCustomerRequestTypedDict": ".getcustomer", + "GetCustomerResponseBody": ".getcustomer", + "GetCustomerResponseBodyTypedDict": ".getcustomer", + "GetCustomerType": ".getcustomer", + "Discount": ".getcustomers", + "DiscountTypedDict": ".getcustomers", + "GetCustomersLink": ".getcustomers", + "GetCustomersLinkTypedDict": ".getcustomers", + "GetCustomersPartner": ".getcustomers", + "GetCustomersPartnerTypedDict": ".getcustomers", + "GetCustomersQueryParamSortBy": ".getcustomers", + "GetCustomersQueryParamSortOrder": ".getcustomers", + "GetCustomersRequest": ".getcustomers", + "GetCustomersRequestTypedDict": ".getcustomers", + "GetCustomersResponseBody": ".getcustomers", + "GetCustomersResponseBodyTypedDict": ".getcustomers", + "GetCustomersType": ".getcustomers", + "GetLinkInfoRequest": ".getlinkinfo", + "GetLinkInfoRequestTypedDict": ".getlinkinfo", + "GetLinksRequest": ".getlinks", + "GetLinksRequestTypedDict": ".getlinks", + "GetLinksResponse": ".getlinks", + "GetLinksResponseTypedDict": ".getlinks", + "QueryParamTagIds": ".getlinks", + "QueryParamTagIdsTypedDict": ".getlinks", + "QueryParamTagNames": ".getlinks", + "QueryParamTagNamesTypedDict": ".getlinks", + "Sort": ".getlinks", + "SortBy": ".getlinks", + "SortOrder": ".getlinks", + "Four": ".getlinkscount", + "GetLinksCountQueryParamTagIds": ".getlinkscount", + "GetLinksCountQueryParamTagIdsTypedDict": ".getlinkscount", + "GetLinksCountQueryParamTagNames": ".getlinkscount", + "GetLinksCountQueryParamTagNamesTypedDict": ".getlinkscount", + "GetLinksCountRequest": ".getlinkscount", + "GetLinksCountRequestTypedDict": ".getlinkscount", + "GroupBy": ".getlinkscount", + "GroupByTypedDict": ".getlinkscount", + "One": ".getlinkscount", + "Three": ".getlinkscount", + "Two": ".getlinkscount", + "GetQRCodeRequest": ".getqrcode", + "GetQRCodeRequestTypedDict": ".getqrcode", + "Level": ".getqrcode", + "GetTagsQueryParamSortBy": ".gettags", + "GetTagsQueryParamSortOrder": ".gettags", + "GetTagsRequest": ".gettags", + "GetTagsRequestTypedDict": ".gettags", + "Ids": ".gettags", + "IdsTypedDict": ".gettags", + "GetWorkspaceRequest": ".getworkspace", + "GetWorkspaceRequestTypedDict": ".getworkspace", + "ListCommissionsQueryParamInterval": ".listcommissions", + "ListCommissionsQueryParamSortBy": ".listcommissions", + "ListCommissionsQueryParamSortOrder": ".listcommissions", + "ListCommissionsRequest": ".listcommissions", + "ListCommissionsRequestTypedDict": ".listcommissions", + "ListCommissionsResponseBody": ".listcommissions", + "ListCommissionsResponseBodyTypedDict": ".listcommissions", + "ListCommissionsStatus": ".listcommissions", + "ListCommissionsType": ".listcommissions", + "QueryParamStatus": ".listcommissions", + "Type": ".listcommissions", + "ListDomainsRequest": ".listdomains", + "ListDomainsRequestTypedDict": ".listdomains", + "ListDomainsResponse": ".listdomains", + "ListDomainsResponseTypedDict": ".listdomains", + "ListEventsQueryParamTagIds": ".listevents", + "ListEventsQueryParamTagIdsTypedDict": ".listevents", + "ListEventsRequest": ".listevents", + "ListEventsRequestTypedDict": ".listevents", + "ListEventsResponseBody": ".listevents", + "ListEventsResponseBodyTypedDict": ".listevents", + "Order": ".listevents", + "QueryParamEvent": ".listevents", + "QueryParamInterval": ".listevents", + "QueryParamSortBy": ".listevents", + "QueryParamSortOrder": ".listevents", + "QueryParamTrigger": ".listevents", + "ListFoldersRequest": ".listfolders", + "ListFoldersRequestTypedDict": ".listfolders", + "Event": ".retrieveanalytics", + "Interval": ".retrieveanalytics", + "QueryParamGroupBy": ".retrieveanalytics", + "RetrieveAnalyticsQueryParamTagIds": ".retrieveanalytics", + "RetrieveAnalyticsQueryParamTagIdsTypedDict": ".retrieveanalytics", + "RetrieveAnalyticsRequest": ".retrieveanalytics", + "RetrieveAnalyticsRequestTypedDict": ".retrieveanalytics", + "RetrieveAnalyticsResponseBody": ".retrieveanalytics", + "RetrieveAnalyticsResponseBodyTypedDict": ".retrieveanalytics", + "Trigger": ".retrieveanalytics", + "Link": ".retrievelinks", + "LinkTypedDict": ".retrievelinks", + "RetrieveLinksRequest": ".retrievelinks", + "RetrieveLinksRequestTypedDict": ".retrievelinks", + "RetrievePartnerAnalyticsQueryParamGroupBy": ".retrievepartneranalytics", + "RetrievePartnerAnalyticsQueryParamInterval": ".retrievepartneranalytics", + "RetrievePartnerAnalyticsRequest": ".retrievepartneranalytics", + "RetrievePartnerAnalyticsRequestTypedDict": ".retrievepartneranalytics", + "RetrievePartnerAnalyticsResponseBody": ".retrievepartneranalytics", + "RetrievePartnerAnalyticsResponseBodyTypedDict": ".retrievepartneranalytics", + "Click": ".tracklead", + "ClickTypedDict": ".tracklead", + "Customer": ".tracklead", + "CustomerTypedDict": ".tracklead", + "Mode": ".tracklead", + "TrackLeadRequestBody": ".tracklead", + "TrackLeadRequestBodyTypedDict": ".tracklead", + "TrackLeadResponseBody": ".tracklead", + "TrackLeadResponseBodyTypedDict": ".tracklead", + "PaymentProcessor": ".tracksale", + "Sale": ".tracksale", + "SaleTypedDict": ".tracksale", + "TrackSaleCustomer": ".tracksale", + "TrackSaleCustomerTypedDict": ".tracksale", + "TrackSaleRequestBody": ".tracksale", + "TrackSaleRequestBodyTypedDict": ".tracksale", + "TrackSaleResponseBody": ".tracksale", + "TrackSaleResponseBodyTypedDict": ".tracksale", + "Status": ".updatecommission", + "UpdateCommissionRequest": ".updatecommission", + "UpdateCommissionRequestBody": ".updatecommission", + "UpdateCommissionRequestBodyTypedDict": ".updatecommission", + "UpdateCommissionRequestTypedDict": ".updatecommission", + "UpdateCommissionResponseBody": ".updatecommission", + "UpdateCommissionResponseBodyTypedDict": ".updatecommission", + "UpdateCommissionStatus": ".updatecommission", + "UpdateCommissionType": ".updatecommission", + "UpdateCustomerDiscount": ".updatecustomer", + "UpdateCustomerDiscountTypedDict": ".updatecustomer", + "UpdateCustomerLink": ".updatecustomer", + "UpdateCustomerLinkTypedDict": ".updatecustomer", + "UpdateCustomerPartner": ".updatecustomer", + "UpdateCustomerPartnerTypedDict": ".updatecustomer", + "UpdateCustomerRequest": ".updatecustomer", + "UpdateCustomerRequestBody": ".updatecustomer", + "UpdateCustomerRequestBodyTypedDict": ".updatecustomer", + "UpdateCustomerRequestTypedDict": ".updatecustomer", + "UpdateCustomerResponseBody": ".updatecustomer", + "UpdateCustomerResponseBodyTypedDict": ".updatecustomer", + "UpdateCustomerType": ".updatecustomer", + "UpdateDomainRequest": ".updatedomain", + "UpdateDomainRequestBody": ".updatedomain", + "UpdateDomainRequestBodyTypedDict": ".updatedomain", + "UpdateDomainRequestTypedDict": ".updatedomain", + "UpdateFolderAccessLevel": ".updatefolder", + "UpdateFolderRequest": ".updatefolder", + "UpdateFolderRequestBody": ".updatefolder", + "UpdateFolderRequestBodyTypedDict": ".updatefolder", + "UpdateFolderRequestTypedDict": ".updatefolder", + "UpdateLinkRequest": ".updatelink", + "UpdateLinkRequestBody": ".updatelink", + "UpdateLinkRequestBodyTypedDict": ".updatelink", + "UpdateLinkRequestTypedDict": ".updatelink", + "UpdateLinkTagIds": ".updatelink", + "UpdateLinkTagIdsTypedDict": ".updatelink", + "UpdateLinkTagNames": ".updatelink", + "UpdateLinkTagNamesTypedDict": ".updatelink", + "UpdateLinkTestVariants": ".updatelink", + "UpdateLinkTestVariantsTypedDict": ".updatelink", + "UpdateTagColor": ".updatetag", + "UpdateTagRequest": ".updatetag", + "UpdateTagRequestBody": ".updatetag", + "UpdateTagRequestBodyTypedDict": ".updatetag", + "UpdateTagRequestTypedDict": ".updatetag", + "UpdateWorkspaceRequest": ".updateworkspace", + "UpdateWorkspaceRequestBody": ".updateworkspace", + "UpdateWorkspaceRequestBodyTypedDict": ".updateworkspace", + "UpdateWorkspaceRequestTypedDict": ".updateworkspace", + "UpsertLinkRequestBody": ".upsertlink", + "UpsertLinkRequestBodyTypedDict": ".upsertlink", + "UpsertLinkTagIds": ".upsertlink", + "UpsertLinkTagIdsTypedDict": ".upsertlink", + "UpsertLinkTagNames": ".upsertlink", + "UpsertLinkTagNamesTypedDict": ".upsertlink", + "UpsertLinkTestVariants": ".upsertlink", + "UpsertLinkTestVariantsTypedDict": ".upsertlink", + "UpsertPartnerLinkLinkProps": ".upsertpartnerlink", + "UpsertPartnerLinkLinkPropsTypedDict": ".upsertpartnerlink", + "UpsertPartnerLinkRequestBody": ".upsertpartnerlink", + "UpsertPartnerLinkRequestBodyTypedDict": ".upsertpartnerlink", + "UpsertPartnerLinkTagIds": ".upsertpartnerlink", + "UpsertPartnerLinkTagIdsTypedDict": ".upsertpartnerlink", + "UpsertPartnerLinkTagNames": ".upsertpartnerlink", + "UpsertPartnerLinkTagNamesTypedDict": ".upsertpartnerlink", + "UpsertPartnerLinkTestVariants": ".upsertpartnerlink", + "UpsertPartnerLinkTestVariantsTypedDict": ".upsertpartnerlink", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) diff --git a/src/dub/models/operations/listfolders.py b/src/dub/models/operations/listfolders.py index 34d97068..95ba6685 100644 --- a/src/dub/models/operations/listfolders.py +++ b/src/dub/models/operations/listfolders.py @@ -11,8 +11,6 @@ class ListFoldersRequestTypedDict(TypedDict): search: NotRequired[str] r"""The search term to filter the folders by.""" - include_link_count: NotRequired[bool] - r"""Whether to include the link count in the response.""" page: NotRequired[float] r"""The page number for pagination.""" page_size: NotRequired[float] @@ -26,13 +24,6 @@ class ListFoldersRequest(BaseModel): ] = None r"""The search term to filter the folders by.""" - include_link_count: Annotated[ - Optional[bool], - pydantic.Field(alias="includeLinkCount"), - FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), - ] = None - r"""Whether to include the link count in the response.""" - page: Annotated[ Optional[float], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), diff --git a/src/dub/sdk.py b/src/dub/sdk.py index 5f488a5b..9ecdc7e8 100644 --- a/src/dub/sdk.py +++ b/src/dub/sdk.py @@ -7,42 +7,60 @@ from .utils.retries import RetryConfig from dub import utils from dub._hooks import SDKHooks -from dub.analytics import Analytics -from dub.commissions import Commissions -from dub.customers import Customers -from dub.domains import Domains -from dub.embed_tokens import EmbedTokens -from dub.events import Events -from dub.folders import Folders -from dub.links import Links from dub.models import components -from dub.partners import Partners -from dub.qr_codes import QRCodes -from dub.tags import Tags -from dub.track import Track from dub.types import OptionalNullable, UNSET -from dub.workspaces import Workspaces import httpx -from typing import Any, Callable, Dict, Optional, Union, cast +import importlib +from typing import Any, Callable, Dict, Optional, TYPE_CHECKING, Union, cast import weakref +if TYPE_CHECKING: + from dub.analytics import Analytics + from dub.commissions import Commissions + from dub.customers import Customers + from dub.domains import Domains + from dub.embed_tokens import EmbedTokens + from dub.events import Events + from dub.folders import Folders + from dub.links import Links + from dub.partners import Partners + from dub.qr_codes import QRCodes + from dub.tags import Tags + from dub.track import Track + from dub.workspaces import Workspaces + class Dub(BaseSDK): r"""Dub API: Dub is link management infrastructure for companies to create marketing campaigns, link sharing features, and referral programs.""" - links: Links - analytics: Analytics - events: Events - tags: Tags - folders: Folders - domains: Domains - track: Track - customers: Customers - partners: Partners - commissions: Commissions - workspaces: Workspaces - embed_tokens: EmbedTokens - qr_codes: QRCodes + links: "Links" + analytics: "Analytics" + events: "Events" + tags: "Tags" + folders: "Folders" + domains: "Domains" + track: "Track" + customers: "Customers" + partners: "Partners" + commissions: "Commissions" + workspaces: "Workspaces" + embed_tokens: "EmbedTokens" + qr_codes: "QRCodes" + _sub_sdk_map = { + "links": ("dub.links", "Links"), + "analytics": ("dub.analytics", "Analytics"), + "events": ("dub.events", "Events"), + "tags": ("dub.tags", "Tags"), + "folders": ("dub.folders", "Folders"), + "domains": ("dub.domains", "Domains"), + "track": ("dub.track", "Track"), + "customers": ("dub.customers", "Customers"), + "partners": ("dub.partners", "Partners"), + "commissions": ("dub.commissions", "Commissions"), + "workspaces": ("dub.workspaces", "Workspaces"), + "embed_tokens": ("dub.embed_tokens", "EmbedTokens"), + "qr_codes": ("dub.qr_codes", "QRCodes"), + } def __init__( self, @@ -137,22 +155,32 @@ def __init__( self.sdk_configuration.async_client_supplied, ) - self._init_sdks() - - def _init_sdks(self): - self.links = Links(self.sdk_configuration) - self.analytics = Analytics(self.sdk_configuration) - self.events = Events(self.sdk_configuration) - self.tags = Tags(self.sdk_configuration) - self.folders = Folders(self.sdk_configuration) - self.domains = Domains(self.sdk_configuration) - self.track = Track(self.sdk_configuration) - self.customers = Customers(self.sdk_configuration) - self.partners = Partners(self.sdk_configuration) - self.commissions = Commissions(self.sdk_configuration) - self.workspaces = Workspaces(self.sdk_configuration) - self.embed_tokens = EmbedTokens(self.sdk_configuration) - self.qr_codes = QRCodes(self.sdk_configuration) + def __getattr__(self, name: str): + if name in self._sub_sdk_map: + module_path, class_name = self._sub_sdk_map[name] + try: + module = importlib.import_module(module_path) + klass = getattr(module, class_name) + instance = klass(self.sdk_configuration) + setattr(self, name, instance) + return instance + except ImportError as e: + raise AttributeError( + f"Failed to import module {module_path} for attribute {name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to find class {class_name} in module {module_path} for attribute {name}: {e}" + ) from e + + raise AttributeError( + f"'{type(self).__name__}' object has no attribute '{name}'" + ) + + def __dir__(self): + default_attrs = list(super().__dir__()) + lazy_attrs = list(self._sub_sdk_map.keys()) + return sorted(list(set(default_attrs + lazy_attrs))) def __enter__(self): return self diff --git a/src/dub/utils/__init__.py b/src/dub/utils/__init__.py index f2950eed..dd4aa4b3 100644 --- a/src/dub/utils/__init__.py +++ b/src/dub/utils/__init__.py @@ -1,51 +1,55 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .annotations import get_discriminator -from .datetimes import parse_datetime -from .enums import OpenEnumMeta -from .headers import get_headers, get_response_headers -from .metadata import ( - FieldMetadata, - find_metadata, - FormMetadata, - HeaderMetadata, - MultipartFormMetadata, - PathParamMetadata, - QueryParamMetadata, - RequestMetadata, - SecurityMetadata, -) -from .queryparams import get_query_params -from .retries import BackoffStrategy, Retries, retry, retry_async, RetryConfig -from .requestbodies import serialize_request_body, SerializedRequestBody -from .security import get_security -from .serializers import ( - get_pydantic_model, - marshal_json, - unmarshal, - unmarshal_json, - serialize_decimal, - serialize_float, - serialize_int, - stream_to_text, - stream_to_text_async, - stream_to_bytes, - stream_to_bytes_async, - validate_const, - validate_decimal, - validate_float, - validate_int, - validate_open_enum, -) -from .url import generate_url, template_url, remove_suffix -from .values import ( - get_global_from_env, - match_content_type, - match_status_codes, - match_response, - cast_partial, -) -from .logger import Logger, get_body_content, get_default_logger +from typing import TYPE_CHECKING +from importlib import import_module + +if TYPE_CHECKING: + from .annotations import get_discriminator + from .datetimes import parse_datetime + from .enums import OpenEnumMeta + from .headers import get_headers, get_response_headers + from .metadata import ( + FieldMetadata, + find_metadata, + FormMetadata, + HeaderMetadata, + MultipartFormMetadata, + PathParamMetadata, + QueryParamMetadata, + RequestMetadata, + SecurityMetadata, + ) + from .queryparams import get_query_params + from .retries import BackoffStrategy, Retries, retry, retry_async, RetryConfig + from .requestbodies import serialize_request_body, SerializedRequestBody + from .security import get_security + from .serializers import ( + get_pydantic_model, + marshal_json, + unmarshal, + unmarshal_json, + serialize_decimal, + serialize_float, + serialize_int, + stream_to_text, + stream_to_text_async, + stream_to_bytes, + stream_to_bytes_async, + validate_const, + validate_decimal, + validate_float, + validate_int, + validate_open_enum, + ) + from .url import generate_url, template_url, remove_suffix + from .values import ( + get_global_from_env, + match_content_type, + match_status_codes, + match_response, + cast_partial, + ) + from .logger import Logger, get_body_content, get_default_logger __all__ = [ "BackoffStrategy", @@ -56,6 +60,7 @@ "get_body_content", "get_default_logger", "get_discriminator", + "parse_datetime", "get_global_from_env", "get_headers", "get_pydantic_model", @@ -98,3 +103,82 @@ "validate_open_enum", "cast_partial", ] + +_dynamic_imports: dict[str, str] = { + "BackoffStrategy": ".retries", + "FieldMetadata": ".metadata", + "find_metadata": ".metadata", + "FormMetadata": ".metadata", + "generate_url": ".url", + "get_body_content": ".logger", + "get_default_logger": ".logger", + "get_discriminator": ".annotations", + "parse_datetime": ".datetimes", + "get_global_from_env": ".values", + "get_headers": ".headers", + "get_pydantic_model": ".serializers", + "get_query_params": ".queryparams", + "get_response_headers": ".headers", + "get_security": ".security", + "HeaderMetadata": ".metadata", + "Logger": ".logger", + "marshal_json": ".serializers", + "match_content_type": ".values", + "match_status_codes": ".values", + "match_response": ".values", + "MultipartFormMetadata": ".metadata", + "OpenEnumMeta": ".enums", + "PathParamMetadata": ".metadata", + "QueryParamMetadata": ".metadata", + "remove_suffix": ".url", + "Retries": ".retries", + "retry": ".retries", + "retry_async": ".retries", + "RetryConfig": ".retries", + "RequestMetadata": ".metadata", + "SecurityMetadata": ".metadata", + "serialize_decimal": ".serializers", + "serialize_float": ".serializers", + "serialize_int": ".serializers", + "serialize_request_body": ".requestbodies", + "SerializedRequestBody": ".requestbodies", + "stream_to_text": ".serializers", + "stream_to_text_async": ".serializers", + "stream_to_bytes": ".serializers", + "stream_to_bytes_async": ".serializers", + "template_url": ".url", + "unmarshal": ".serializers", + "unmarshal_json": ".serializers", + "validate_decimal": ".serializers", + "validate_const": ".serializers", + "validate_float": ".serializers", + "validate_int": ".serializers", + "validate_open_enum": ".serializers", + "cast_partial": ".values", +} + + +def __getattr__(attr_name: str) -> object: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError( + f"no {attr_name} found in _dynamic_imports, module name -> {__name__} " + ) + + try: + module = import_module(module_name, __package__) + result = getattr(module, attr_name) + return result + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) From cba3632e40353d0c5ecca7581368b48dfdccb68e Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Thu, 29 May 2025 00:31:20 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow