paid-python 0.6.0__py3-none-any.whl → 1.0.0a0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. paid/__init__.py +31 -0
  2. paid/client.py +1 -472
  3. paid/core/client_wrapper.py +3 -2
  4. paid/customers/__init__.py +3 -0
  5. paid/customers/client.py +428 -4
  6. paid/customers/raw_client.py +594 -2
  7. paid/customers/types/__init__.py +8 -0
  8. paid/customers/types/customers_check_entitlement_request_view.py +5 -0
  9. paid/customers/types/customers_check_entitlement_response.py +22 -0
  10. paid/orders/client.py +435 -0
  11. paid/orders/raw_client.py +695 -0
  12. paid/plans/client.py +71 -0
  13. paid/plans/raw_client.py +121 -2
  14. paid/types/__init__.py +28 -0
  15. paid/types/cancel_renewal_response.py +49 -0
  16. paid/types/contact_create_for_customer.py +37 -0
  17. paid/types/invoice.py +75 -0
  18. paid/types/invoice_status.py +5 -0
  19. paid/types/payment_method.py +58 -0
  20. paid/types/payment_method_card.py +49 -0
  21. paid/types/payment_method_type.py +5 -0
  22. paid/types/payment_method_us_bank_account.py +36 -0
  23. paid/types/payment_method_us_bank_account_account_type.py +5 -0
  24. paid/types/plan_plan_products_item.py +6 -0
  25. paid/types/plan_with_features.py +69 -0
  26. paid/types/plan_with_features_features_item.py +34 -0
  27. paid/types/proration_attribute_update.py +44 -0
  28. paid/types/proration_detail.py +49 -0
  29. paid/types/proration_upgrade_response.py +73 -0
  30. paid/types/signal_v_2.py +5 -5
  31. paid/usage/client.py +6 -6
  32. {paid_python-0.6.0.dist-info → paid_python-1.0.0a0.dist-info}/METADATA +6 -4
  33. {paid_python-0.6.0.dist-info → paid_python-1.0.0a0.dist-info}/RECORD +35 -36
  34. opentelemetry/instrumentation/openai/__init__.py +0 -54
  35. opentelemetry/instrumentation/openai/shared/__init__.py +0 -399
  36. opentelemetry/instrumentation/openai/shared/audio_wrappers.py +0 -247
  37. opentelemetry/instrumentation/openai/shared/chat_wrappers.py +0 -1192
  38. opentelemetry/instrumentation/openai/shared/completion_wrappers.py +0 -292
  39. opentelemetry/instrumentation/openai/shared/config.py +0 -15
  40. opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py +0 -311
  41. opentelemetry/instrumentation/openai/shared/event_emitter.py +0 -108
  42. opentelemetry/instrumentation/openai/shared/event_models.py +0 -41
  43. opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py +0 -68
  44. opentelemetry/instrumentation/openai/shared/span_utils.py +0 -0
  45. opentelemetry/instrumentation/openai/utils.py +0 -213
  46. opentelemetry/instrumentation/openai/v0/__init__.py +0 -176
  47. opentelemetry/instrumentation/openai/v1/__init__.py +0 -394
  48. opentelemetry/instrumentation/openai/v1/assistant_wrappers.py +0 -329
  49. opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py +0 -134
  50. opentelemetry/instrumentation/openai/v1/responses_wrappers.py +0 -1113
  51. opentelemetry/instrumentation/openai/version.py +0 -1
  52. {paid_python-0.6.0.dist-info → paid_python-1.0.0a0.dist-info}/LICENSE +0 -0
  53. {paid_python-0.6.0.dist-info → paid_python-1.0.0a0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,69 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+ import typing_extensions
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ..core.serialization import FieldMetadata
10
+ from .plan_with_features_features_item import PlanWithFeaturesFeaturesItem
11
+
12
+
13
+ class PlanWithFeatures(UniversalBaseModel):
14
+ """
15
+ A plan with its features (product-attribute pairs) for display
16
+ """
17
+
18
+ id: str = pydantic.Field()
19
+ """
20
+ The unique identifier of the plan
21
+ """
22
+
23
+ name: str = pydantic.Field()
24
+ """
25
+ The name of the plan
26
+ """
27
+
28
+ description: typing.Optional[str] = pydantic.Field(default=None)
29
+ """
30
+ The description of the plan
31
+ """
32
+
33
+ created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")] = pydantic.Field()
34
+ """
35
+ When the plan was created
36
+ """
37
+
38
+ updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")] = pydantic.Field()
39
+ """
40
+ When the plan was last updated
41
+ """
42
+
43
+ next_plan_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="nextPlanId")] = pydantic.Field(
44
+ default=None
45
+ )
46
+ """
47
+ The ID of the next plan in the sequence
48
+ """
49
+
50
+ prev_plan_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="prevPlanId")] = pydantic.Field(
51
+ default=None
52
+ )
53
+ """
54
+ The ID of the previous plan in the sequence
55
+ """
56
+
57
+ features: typing.List[PlanWithFeaturesFeaturesItem] = pydantic.Field()
58
+ """
59
+ The features (product-attribute pairs) included in this plan
60
+ """
61
+
62
+ if IS_PYDANTIC_V2:
63
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
64
+ else:
65
+
66
+ class Config:
67
+ frozen = True
68
+ smart_union = True
69
+ extra = pydantic.Extra.allow
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+
10
+
11
+ class PlanWithFeaturesFeaturesItem(UniversalBaseModel):
12
+ product_name: typing_extensions.Annotated[str, FieldMetadata(alias="productName")] = pydantic.Field()
13
+ """
14
+ The name of the product
15
+ """
16
+
17
+ attribute_name: typing_extensions.Annotated[str, FieldMetadata(alias="attributeName")] = pydantic.Field()
18
+ """
19
+ The name of the product attribute
20
+ """
21
+
22
+ pricing: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field()
23
+ """
24
+ The pricing configuration for this feature
25
+ """
26
+
27
+ if IS_PYDANTIC_V2:
28
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
29
+ else:
30
+
31
+ class Config:
32
+ frozen = True
33
+ smart_union = True
34
+ extra = pydantic.Extra.allow
@@ -0,0 +1,44 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+
10
+
11
+ class ProrationAttributeUpdate(UniversalBaseModel):
12
+ """
13
+ An attribute update for a proration upgrade
14
+ """
15
+
16
+ order_line_attribute_id: typing_extensions.Annotated[str, FieldMetadata(alias="orderLineAttributeId")] = (
17
+ pydantic.Field()
18
+ )
19
+ """
20
+ The ID of the order line attribute to update
21
+ """
22
+
23
+ new_pricing: typing_extensions.Annotated[
24
+ typing.Dict[str, typing.Optional[typing.Any]], FieldMetadata(alias="newPricing")
25
+ ] = pydantic.Field()
26
+ """
27
+ The new pricing configuration
28
+ """
29
+
30
+ new_quantity: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="newQuantity")] = (
31
+ pydantic.Field(default=None)
32
+ )
33
+ """
34
+ Optional new quantity for the attribute
35
+ """
36
+
37
+ if IS_PYDANTIC_V2:
38
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
39
+ else:
40
+
41
+ class Config:
42
+ frozen = True
43
+ smart_union = True
44
+ extra = pydantic.Extra.allow
@@ -0,0 +1,49 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+
10
+
11
+ class ProrationDetail(UniversalBaseModel):
12
+ """
13
+ Details about the proration calculation for an attribute
14
+ """
15
+
16
+ old_attribute_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="oldAttributeId")] = None
17
+ new_attribute_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="newAttributeId")] = None
18
+ credit_line_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="creditLineId")] = None
19
+ old_price: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="oldPrice")] = None
20
+ new_price: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="newPrice")] = None
21
+ credit_amount: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="creditAmount")] = (
22
+ pydantic.Field(default=None)
23
+ )
24
+ """
25
+ The credit amount applied for the unused portion
26
+ """
27
+
28
+ remaining_days: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="remainingDays")] = (
29
+ pydantic.Field(default=None)
30
+ )
31
+ """
32
+ Number of days remaining in the current billing cycle
33
+ """
34
+
35
+ total_days_in_cycle: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="totalDaysInCycle")] = (
36
+ pydantic.Field(default=None)
37
+ )
38
+ """
39
+ Total number of days in the billing cycle
40
+ """
41
+
42
+ if IS_PYDANTIC_V2:
43
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
44
+ else:
45
+
46
+ class Config:
47
+ frozen = True
48
+ smart_union = True
49
+ extra = pydantic.Extra.allow
@@ -0,0 +1,73 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+ import typing_extensions
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ..core.serialization import FieldMetadata
10
+ from .proration_detail import ProrationDetail
11
+
12
+
13
+ class ProrationUpgradeResponse(UniversalBaseModel):
14
+ """
15
+ Response after successfully scheduling a plan change
16
+ """
17
+
18
+ order_id: typing_extensions.Annotated[str, FieldMetadata(alias="orderId")] = pydantic.Field()
19
+ """
20
+ The ID of the order
21
+ """
22
+
23
+ amendment_id: typing_extensions.Annotated[str, FieldMetadata(alias="amendmentId")] = pydantic.Field()
24
+ """
25
+ The ID of the amendment record
26
+ """
27
+
28
+ version: int = pydantic.Field()
29
+ """
30
+ The new version of the order after the amendment
31
+ """
32
+
33
+ effective_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="effectiveDate")] = pydantic.Field()
34
+ """
35
+ The effective date of the plan change
36
+ """
37
+
38
+ ended_line_ids: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="endedLineIds")] = (
39
+ pydantic.Field()
40
+ )
41
+ """
42
+ IDs of order lines that were ended
43
+ """
44
+
45
+ created_line_ids: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="createdLineIds")] = (
46
+ pydantic.Field()
47
+ )
48
+ """
49
+ IDs of new order lines that were created
50
+ """
51
+
52
+ credit_line_ids: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="creditLineIds")] = (
53
+ pydantic.Field()
54
+ )
55
+ """
56
+ IDs of credit lines that were created
57
+ """
58
+
59
+ proration_details: typing_extensions.Annotated[
60
+ typing.List[ProrationDetail], FieldMetadata(alias="prorationDetails")
61
+ ] = pydantic.Field()
62
+ """
63
+ Detailed proration calculations for each updated attribute
64
+ """
65
+
66
+ if IS_PYDANTIC_V2:
67
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
68
+ else:
69
+
70
+ class Config:
71
+ frozen = True
72
+ smart_union = True
73
+ extra = pydantic.Extra.allow
paid/types/signal_v_2.py CHANGED
@@ -8,7 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
 
9
9
  class SignalV2(UniversalBaseModel):
10
10
  """
11
- V2 signal schema with clean field names. Use either internal IDs (product_id, customer_id) or external IDs (external_product_id, external_customer_id).
11
+ V2 signal schema with clean field names. IMPORTANT: Exactly one customer ID field (customer_id OR external_customer_id) and exactly one product ID field (product_id OR external_product_id) must be provided per signal.
12
12
  """
13
13
 
14
14
  event_name: str = pydantic.Field()
@@ -18,22 +18,22 @@ class SignalV2(UniversalBaseModel):
18
18
 
19
19
  product_id: typing.Optional[str] = pydantic.Field(default=None)
20
20
  """
21
- Paid's internal product ID. Use either this OR external_product_id.
21
+ Paid's display ID for the product (e.g., prod_abc123). Cannot be used with external_product_id. Either this or external_product_id is required.
22
22
  """
23
23
 
24
24
  external_product_id: typing.Optional[str] = pydantic.Field(default=None)
25
25
  """
26
- Your system's product ID. Use either this OR product_id.
26
+ Your system's product ID. Cannot be used with product_id. Either this or product_id is required.
27
27
  """
28
28
 
29
29
  customer_id: typing.Optional[str] = pydantic.Field(default=None)
30
30
  """
31
- Paid's internal customer ID. Use either this OR external_customer_id.
31
+ Paid's display ID for the customer (e.g., cus_xyz789). Cannot be used with external_customer_id. Either this or external_customer_id is required.
32
32
  """
33
33
 
34
34
  external_customer_id: typing.Optional[str] = pydantic.Field(default=None)
35
35
  """
36
- Your system's customer ID. Use either this OR customer_id.
36
+ Your system's customer ID. Cannot be used with customer_id. Either this or customer_id is required.
37
37
  """
38
38
 
39
39
  data: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
paid/usage/client.py CHANGED
@@ -91,8 +91,8 @@ class UsageClient:
91
91
  signals=[
92
92
  SignalV2(
93
93
  event_name="emails_sent",
94
- product_id="63fd642c-569d-44f9-8d67-5cf4944a16cc",
95
- customer_id="7d0b6fce-d82a-433d-8315-c994f8f1d68d",
94
+ product_id="prod_abc123def",
95
+ customer_id="cus_xyz789ghi",
96
96
  ),
97
97
  SignalV2(
98
98
  event_name="emails_sent",
@@ -101,7 +101,7 @@ class UsageClient:
101
101
  ),
102
102
  SignalV2(
103
103
  event_name="meeting_booked",
104
- product_id="63fd642c-569d-44f9-8d67-5cf4944a16cc",
104
+ product_id="prod_abc123def",
105
105
  external_customer_id="acme-inc",
106
106
  data={"meeting_duration": 30, "meeting_type": "demo"},
107
107
  ),
@@ -246,8 +246,8 @@ class AsyncUsageClient:
246
246
  signals=[
247
247
  SignalV2(
248
248
  event_name="emails_sent",
249
- product_id="63fd642c-569d-44f9-8d67-5cf4944a16cc",
250
- customer_id="7d0b6fce-d82a-433d-8315-c994f8f1d68d",
249
+ product_id="prod_abc123def",
250
+ customer_id="cus_xyz789ghi",
251
251
  ),
252
252
  SignalV2(
253
253
  event_name="emails_sent",
@@ -256,7 +256,7 @@ class AsyncUsageClient:
256
256
  ),
257
257
  SignalV2(
258
258
  event_name="meeting_booked",
259
- product_id="63fd642c-569d-44f9-8d67-5cf4944a16cc",
259
+ product_id="prod_abc123def",
260
260
  external_customer_id="acme-inc",
261
261
  data={"meeting_duration": 30, "meeting_type": "demo"},
262
262
  ),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paid-python
3
- Version: 0.6.0
3
+ Version: 1.0.0a0
4
4
  Summary:
5
5
  Requires-Python: >=3.9,<3.14
6
6
  Classifier: Intended Audience :: Developers
@@ -15,9 +15,10 @@ Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.8
18
19
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
20
  Classifier: Typing :: Typed
20
- Requires-Dist: httpx (>=0.21.0)
21
+ Requires-Dist: httpx (>=0.21.2)
21
22
  Requires-Dist: mutagen (>=1.47.0)
22
23
  Requires-Dist: openinference-instrumentation-bedrock (>=0.1.0)
23
24
  Requires-Dist: openinference-instrumentation-google-genai (>=0.1.8)
@@ -26,9 +27,10 @@ Requires-Dist: openinference-instrumentation-openai-agents (>=1.0.0)
26
27
  Requires-Dist: opentelemetry-api (>=1.23.0)
27
28
  Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.23.0)
28
29
  Requires-Dist: opentelemetry-instrumentation-anthropic (>=0.47.0)
30
+ Requires-Dist: opentelemetry-instrumentation-openai (>=0.50.0)
29
31
  Requires-Dist: opentelemetry-sdk (>=1.23.0)
30
- Requires-Dist: pydantic (>=1.9.0)
31
- Requires-Dist: pydantic-core (>=2.18.0)
32
+ Requires-Dist: pydantic (>=1.9.2)
33
+ Requires-Dist: pydantic-core (>=2.18.2,<3.0.0)
32
34
  Requires-Dist: python-dotenv (>=0.15.0)
33
35
  Requires-Dist: typing_extensions (>=4.0.0)
34
36
  Description-Content-Type: text/markdown
@@ -1,14 +1,14 @@
1
- paid/__init__.py,sha256=atXO9KY9MOUipS2yX3lQ0zlbK0tnLzNDxZYM2nexSRU,2797
1
+ paid/__init__.py,sha256=JUYR1KiH4jdOR1Z_GRfLW0lN0AAPIt-qYbBN-1BuUHw,3737
2
2
  paid/agents/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
3
3
  paid/agents/client.py,sha256=kfErQ51mMppV0YS-n0G2w_kISShdC4S8JoL02TZae1U,24369
4
4
  paid/agents/raw_client.py,sha256=4ehmy21TnS_FhL_NmPwYrUVNWkYaVTobTO22YWu7PGc,27897
5
- paid/client.py,sha256=QjqKnkv6UhWCwgcbzbRm9LtgOp0356LkxWPCWXB91To,24584
5
+ paid/client.py,sha256=6dnhzYcU8-qv003uRUUv1GkmnuJeRtubUXVxfvNQXxw,6983
6
6
  paid/contacts/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
7
7
  paid/contacts/client.py,sha256=sNm-yAg4dR9AyYWL7-RC_CuCCvOXX7YlDAUqn47yZhE,14058
8
8
  paid/contacts/raw_client.py,sha256=ZYNWuekHiL2sqK_gHR0IzcrLAopUKRXIqMUi-fuLGe4,19211
9
9
  paid/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
10
10
  paid/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
11
- paid/core/client_wrapper.py,sha256=FlkWEi-0SnGRJ6dNRJb_ftjyOmU_4GFafuWjO18pUYU,2350
11
+ paid/core/client_wrapper.py,sha256=c25VM9AUGlNCa-2qzhHzPJs1e1Zft3ZV1WLewdmMHgw,2418
12
12
  paid/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
13
13
  paid/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
14
14
  paid/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -20,9 +20,12 @@ paid/core/query_encoder.py,sha256=ekulqNd0j8TgD7ox-Qbz7liqX8-KP9blvT9DsRCenYM,21
20
20
  paid/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
21
21
  paid/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHgmzaxpcg,1681
22
22
  paid/core/serialization.py,sha256=ECL3bvv_0i7U4uvPidZCNel--MUbA0iq0aGcNKi3kws,9818
23
- paid/customers/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
24
- paid/customers/client.py,sha256=Nvos9pgyxSbbmA1AQw_WQ5uTmqvD04RYktiluLlaKXg,34060
25
- paid/customers/raw_client.py,sha256=hGY2SBfxpRlMj6NA1jp2DS2ac8uKTiI8cWrn25NSa1I,51470
23
+ paid/customers/__init__.py,sha256=jKuBDR0U8JloJKyzmcQSUSoNpJqjZ7BowRNiHr1SLKE,265
24
+ paid/customers/client.py,sha256=sOsEmiqqzfInDoSVNflSbClnNgdFm5mTWm_9VUwDroQ,47097
25
+ paid/customers/raw_client.py,sha256=thhqTpyKBBahb-tj0I1wxaFk_l4ciLDwz8cPGIbnj5I,74849
26
+ paid/customers/types/__init__.py,sha256=vd_PTvslroA4P6FGiqqOhZm5qbiR_17hssZbL53kpCA,349
27
+ paid/customers/types/customers_check_entitlement_request_view.py,sha256=Z6mijxu6J2rfJhK0qQvlOuNGCmewss2e3iqktHqOi5o,182
28
+ paid/customers/types/customers_check_entitlement_response.py,sha256=kQ2pPVsgwpQsLiDigBCscZYX_AfQ7PvG-84OoPgSsWQ,641
26
29
  paid/environment.py,sha256=8sOi15Agshd4TrgHoqlUFXegvQESdSi7zE3n7uJktMs,164
27
30
  paid/errors/__init__.py,sha256=i1Cxfwfm2tL1DRuYRbTEXZ5MIhobgDE8zm38gqGSNKY,363
28
31
  paid/errors/bad_request_error.py,sha256=_nkSDHMpzm0RadIc19BDq-yM9uJMQGWNrdsT2_6B6Iw,348
@@ -31,14 +34,14 @@ paid/errors/internal_server_error.py,sha256=WPvk3xayCQqRAir4nfMhVVextjsR9hMi8zCq
31
34
  paid/errors/not_found_error.py,sha256=nsBHj9gxzRkoJMdFyChYv9ePaPYYf8h4s2nuoUo4CuI,346
32
35
  paid/logger.py,sha256=CIo_i2n2Azp4g57GkU9twb_GzJ7x9lZmURqPsq4379M,514
33
36
  paid/orders/__init__.py,sha256=CrbHKbmp63NAum57EE9NnGmJqLKiWDMLyPRemOs_U9w,126
34
- paid/orders/client.py,sha256=unSUMQvKJRCEGcxXVwDxaHcpev7FxDeUOsO3LJosY1s,11879
37
+ paid/orders/client.py,sha256=CAGEvE9oi4hgrI0az2Tid6IYvITNhkGhb_Q2RXe9_BA,24929
35
38
  paid/orders/lines/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
36
39
  paid/orders/lines/client.py,sha256=7RCqD78g4VARoCLiwjFm59imsSlbd1E3HPrGKhYG6xI,4062
37
40
  paid/orders/lines/raw_client.py,sha256=KZN_yBokCOkf1lUb4ZJtX_NZbqmTqCdJNoaIOdWar8I,4590
38
- paid/orders/raw_client.py,sha256=2lriEGXPls8KJE-d0PLLNNQMcCwAW1qz68GdacMIfVo,16603
41
+ paid/orders/raw_client.py,sha256=apng0iGUwVlI09YL7to2Rf9aT6fu-CxkiUth76GrU0Q,43167
39
42
  paid/plans/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
40
- paid/plans/client.py,sha256=qvEMxk2u1vKILH9fU-VewpU3xNY5h3ug-0yRt1M4e2U,9101
41
- paid/plans/raw_client.py,sha256=GCvmY_yQhkFYl7PpXvEFE8OiRjVTz8au1IZRGtWJmWA,17675
43
+ paid/plans/client.py,sha256=hWtGmpbuFpPjGpUWZazK3mwddGM0QHNKn-tY7vaEPgM,10967
44
+ paid/plans/raw_client.py,sha256=pJRK5tja274vj3Uc3m1DBvtRxN2X7wgMJ7pOcqo6rOQ,22374
42
45
  paid/products/__init__.py,sha256=oCZ9LvM5pb1zsdux1hBIxN1DVphi5gyPgQmR2p7XNZw,155
43
46
  paid/products/client.py,sha256=doYlu9mI1j_rzMX3wWvetptxVrJmYeOuXJ0Pm3z02uE,21010
44
47
  paid/products/raw_client.py,sha256=LwYSuv6wj1N7oU1GDUINkGbgF_Q5x6y_0g6gy8PaJ0A,29546
@@ -73,7 +76,7 @@ paid/tracing/wrappers/openai/openAiWrapper.py,sha256=DIMOGdQTjpFaiKV-JeJvNH_cxHs
73
76
  paid/tracing/wrappers/openai_agents/__init__.py,sha256=-xX5HPhYYX6hDWbn5FpFw-P6M2h0k1X9Qjrg0Bkv7cc,94
74
77
  paid/tracing/wrappers/openai_agents/openaiAgentsHook.py,sha256=-uXUNL0S85cFVT7ObrL9hzEQAIYh5Lo1JgEE57hxk2Y,6650
75
78
  paid/tracing/wrappers/utils.py,sha256=_0FCF3BC2wK5cU8suEvo_mXm6Jn8ULkyeEhnYPUlO2Y,2347
76
- paid/types/__init__.py,sha256=XvRatcTA_4P-B9BDgOL1K-DCAdTMy8bWBCcKoe8c_YU,3223
79
+ paid/types/__init__.py,sha256=DsDo78pLA5erfWPqsP8uhggE7HQc6BEOGdk23Qivtbg,4423
77
80
  paid/types/address.py,sha256=fJa_oYXxsIxJXFZy5UQqflVkr8BQkwQ7fKhp2wO05fo,871
78
81
  paid/types/agent.py,sha256=dHqSO_hO0fgM5TsnEYrx3zL-rZsWc2GkjkCD2_aOch4,1168
79
82
  paid/types/agent_attribute.py,sha256=rmIQnmPFOAvCYUtc9oiBD5aqMrL3vdJ1krdxNhLRTEc,588
@@ -82,8 +85,10 @@ paid/types/agent_price_point_tiers.py,sha256=Pml1UFDjLYrsETpiJbnSgusN3c4HSgVi2lE
82
85
  paid/types/agent_update.py,sha256=5Xc4L4Y37YLHmKphX2RuSsAKltjTIJCRy8tOTsU6CSg,1117
83
86
  paid/types/api_error.py,sha256=j91xSZV1-5Hpx375E087XfP_WwWzGbnplf_FfEyDJgM,792
84
87
  paid/types/billing_frequency.py,sha256=67owqyQimW-M9VOpJ1AdE09vw9NzFYIotsjR6eR5-0Q,174
88
+ paid/types/cancel_renewal_response.py,sha256=fgis8kI9qXFnK-KHRt3ClqH0Qq-jba6QL1euxxhc6PY,1424
85
89
  paid/types/charge_type.py,sha256=43hS72QcU4IM53R9PRXKTbPgu9CZqWX76GnU8hGrmWA,180
86
90
  paid/types/contact.py,sha256=HwkyRLpw8gg8bnWNtOkEdx5hagsODZh08J1Icvfm0bg,2086
91
+ paid/types/contact_create_for_customer.py,sha256=KO3jhqFHMpGbtwnLsumRA-3RFwTOZVCd9R2gBRbtQ3k,1716
87
92
  paid/types/cost_amount.py,sha256=ZA8iITYudldVbpj6MREsfqpk0lgzUN07GYBEl7mRVw8,713
88
93
  paid/types/cost_trace.py,sha256=DKmVwKOGV2UaJm5ZUYaJ_TCzqJESss5ThWPfxQit29I,1630
89
94
  paid/types/cost_traces_response.py,sha256=RJBrK7MSnsM94Y8q8Fi_1oHO-_l8wEsoVIKHNiAInTw,726
@@ -93,6 +98,8 @@ paid/types/customer.py,sha256=WwJDXqM38VmBeBUoLLQAwtWSqRIIoWg44EKwMjv75qw,2020
93
98
  paid/types/customer_update.py,sha256=0fsB2YP7IgvWsVhi3_ybVrAz6cu9XP04sv-CH8dKgjs,1764
94
99
  paid/types/entitlement_usage.py,sha256=-zuXAOzbNTr_ugpiOjZEcQpu2i8-xVTtKJsfkhBsT6I,1715
95
100
  paid/types/error.py,sha256=lWDAazLU1lnuLYGufPYO7YH1EInG2jevvR8ylR6OBiU,607
101
+ paid/types/invoice.py,sha256=Tu125_YkGEcRjLpwHbu_jJFynIWMdiiOvOFDJy8ytSI,2806
102
+ paid/types/invoice_status.py,sha256=Aj7o01H9duyeD4_UsFRfxadUblXN-yxePi25QuVVFek,187
96
103
  paid/types/order.py,sha256=hkBRN6OauZYfnzpWLY2COYMqToWdJRLzDokPVyV__rc,2324
97
104
  paid/types/order_line.py,sha256=oM-fxr5sQ1ttAERR_FsdCAPW2cctaQUvppIKzqjinYk,2092
98
105
  paid/types/order_line_attribute.py,sha256=cYHpX0p5rEE0eYn4BPq-aB9snn9V5p3yZ5nYDo2W6z8,938
@@ -100,10 +107,17 @@ paid/types/order_line_attribute_create_one.py,sha256=H9_zXFQRrutoP_WKlhTBAksEde0
100
107
  paid/types/order_line_attribute_pricing.py,sha256=UDE8OYP93wwmXcPVwgchMknCd64O0g4BNIgLUlK-a5s,1386
101
108
  paid/types/order_line_create.py,sha256=T8M2nDfyTmc2ph226mePT9SI_MJSciOOsBS-uoIF-K8,2696
102
109
  paid/types/pagination_meta.py,sha256=RJFmwweexzkYdfsb9ohascJCvQep2scF51kk4377Huo,2398
110
+ paid/types/payment_method.py,sha256=kGBRYKLO9XO8RRLL6t-jdbCNAzGkje-IddBS2OS-Q68,1812
111
+ paid/types/payment_method_card.py,sha256=mu6qmZunkJtWxAEWenLFvaZhsjh6GM3zE5p-Dhr-p60,1328
112
+ paid/types/payment_method_type.py,sha256=Zr04tOTmJhZ1P5ge7XA6eBx3k832eFCcmyQ3bcaqH4c,182
113
+ paid/types/payment_method_us_bank_account.py,sha256=qTY93Ylq725TJ7RaVXVbc2yP4vAk1rnnAmxDWNcuadY,1230
114
+ paid/types/payment_method_us_bank_account_account_type.py,sha256=T5u-G3NJ2ZCGG84XlX3XNa_IepQ_g9N_5mCwx2eDZeI,184
103
115
  paid/types/plan.py,sha256=WE7BXhFrBDsbRWXrcJlND90-UQYPwGomEPCOsNfP81E,2314
104
116
  paid/types/plan_group.py,sha256=OlLrDIBmrE6TsnWJXxLBVSirXUvGK4iKxezyEnznSUI,1621
105
- paid/types/plan_plan_products_item.py,sha256=fRDm5zZcDehYpnIM6Y63YCxlBW9A_ISfnNIyGe-Mlek,1609
117
+ paid/types/plan_plan_products_item.py,sha256=JTjJGzl7v1S0k_vdbORUH89Uba4O7cKtKVVf4Ssyfi0,1774
106
118
  paid/types/plan_plan_products_item_plan_product_attribute_item.py,sha256=w9Zc7y6zcxrKCK_RAWZRYx5iwDKm-XepjeBgWYiou8A,1443
119
+ paid/types/plan_with_features.py,sha256=hFOlqSFH6jHuUsJtUdZ6Wy2bybNh7pNih2kY1wi3CRk,1938
120
+ paid/types/plan_with_features_features_item.py,sha256=ep-RjlPSmhYXWa1bMf9U6HkoR_9m5VMtU7Sm3M4c9ss,1050
107
121
  paid/types/price_point.py,sha256=lyeI38kJCBMOWdq97hG2kyYiixHgMCKjoCNmzOLG9Fk,915
108
122
  paid/types/pricing.py,sha256=qrTQHe2CZhUoS7e4sVMDO10aCzeaxZGkSwEKXf7qJkU,1409
109
123
  paid/types/pricing_model_type.py,sha256=DxTx1zO1gR22gDnnQ55LBvRRIh5EyV5pfE4LF8FFDTI,212
@@ -111,9 +125,12 @@ paid/types/product.py,sha256=hSnHIsXR_jImAzhBJLXlBXgahimgp6vYT3oyWrbw6lU,1981
111
125
  paid/types/product_type.py,sha256=ZP3_66LJly6ebJ4JNxt0VNOqUnsbY43p38LwIPq-aRo,178
112
126
  paid/types/product_update.py,sha256=35cu1IwPalh-1wEjFQLqivEk6Q0c6yVZbThoWDhBLNY,1393
113
127
  paid/types/product_update_type.py,sha256=y1EP0aNHyAOPj9zaoMVOgkkE8PlPn1n8iWfyuAXM_PI,184
128
+ paid/types/proration_attribute_update.py,sha256=nvI0zbKuUketz-Q_NXmY5VcQvSCxzxHUpVilqqt81aI,1286
129
+ paid/types/proration_detail.py,sha256=dQW1nGcp8TEFtkuR0AR3Dw_kDL2_xTdqhDaTlupTnP4,1902
130
+ paid/types/proration_upgrade_response.py,sha256=Qk0ssIwl8doLi7zVRqtMMz7NYaezVp4NYEVSS3JzArM,2142
114
131
  paid/types/salutation.py,sha256=nxqSuMkcohP_xut2wf9j-gHQri5caKP65N13Qxqr9UM,180
115
132
  paid/types/signal.py,sha256=UZvHU6MsTXjBds1lw1tszmVax6hyronLDuD5al0GksA,1636
116
- paid/types/signal_v_2.py,sha256=M5sx1A_J5FxB7wEOdU4IgNRd-Ztxb45Q7_Jxu9t2Ojo,1719
133
+ paid/types/signal_v_2.py,sha256=a9nRjgOiw9XETmxT0B1pO0suOmPs_zSeWm4ROAhyX_s,2018
117
134
  paid/types/tax_exempt_status.py,sha256=H8jr087Vvp51pfK8mZ5ZDRdRPbagsSzYDXroz5lRPP4,168
118
135
  paid/types/tier.py,sha256=damnNp6Eb3T5Gqq15Z3UL1JSauvqXI1k65Aivs4QjMg,832
119
136
  paid/types/trace.py,sha256=fmDLfG-HxGZ_QllPKvUuixKQptBnJDxAlQos2UpwU3Y,2073
@@ -124,30 +141,12 @@ paid/types/usage_summary.py,sha256=js1EOBlOTPq9QHz7dvpk0QL0kyyp4s83bjoxHnyrW4o,3
124
141
  paid/types/usage_summary_order.py,sha256=eXNb27FT1zeZ_pviqJhMXgTp1dfdHjL59CcgWcQPjrU,775
125
142
  paid/types/usage_summary_order_line.py,sha256=jRhgT-zuXBQI7s_5CCC2Rhyn_kWYAI8QFSdeOHbZOjU,784
126
143
  paid/usage/__init__.py,sha256=m0ujD0N7E9e37mHfN6Ww2LDnVi5SggwiIxpN-c7ZFTM,167
127
- paid/usage/client.py,sha256=-EErgpfbrnk32VXDHlX7yFl1YgMlqcl_EOyyov6dtGo,9116
144
+ paid/usage/client.py,sha256=I6Trkf_HLXOWEVL1lCPU0jGwLOWx638Rn6XtWYkGNf4,8982
128
145
  paid/usage/raw_client.py,sha256=0LQU409K1ZwgluN3PoD3yk4Br9uwaiDNh__S-KxKx1M,14261
129
146
  paid/usage/types/__init__.py,sha256=ywkMUGnwdZzyCfSJaVaL1mSNTROVXOp40VvwRCyzvbk,188
130
147
  paid/usage/types/usage_check_usage_response.py,sha256=kJY4Y7-tbCQVUyA-FMFWPVYJvm8UYQYbWuRUDXfFT_I,1599
131
148
  paid/version.py,sha256=QIpDFnOrxMxrs86eL0iNH0mSZ1DO078wWHYY9TYAoew,78
132
- opentelemetry/instrumentation/openai/__init__.py,sha256=Mx_nwMl0TlhUjrQOR4qdx6MEhBUKp5cuUIIXFzi3mXo,2093
133
- opentelemetry/instrumentation/openai/shared/__init__.py,sha256=CnGrqxyUCP8aQivAmPKTW-SEm97ewhhgRNACkzc0kU0,12705
134
- opentelemetry/instrumentation/openai/shared/audio_wrappers.py,sha256=kkb4mM9WW_MBI5X8RHWmaFYDMsYjWr9nFT1atGAhTAc,7184
135
- opentelemetry/instrumentation/openai/shared/chat_wrappers.py,sha256=0c4csAv_lM39vjg43Q70K5AExnCqWolFA3cGoSqBPeg,40487
136
- opentelemetry/instrumentation/openai/shared/completion_wrappers.py,sha256=OAy-tp-jHFvZKb-n_AyZPuXPI3F2lpEmGmnAgIhH6a0,9353
137
- opentelemetry/instrumentation/openai/shared/config.py,sha256=xMSz47vDPboU3Vciulf6lZkyWXTFA6eaLJHk-tYfkus,479
138
- opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py,sha256=eb4HU7cklpR0vi_H9OlpkLZmKH0touWYIipuacJipA0,9364
139
- opentelemetry/instrumentation/openai/shared/event_emitter.py,sha256=zQ4ZCz7VnWWDGHIdlYm8T3MGFpldpOOy8M15iB_HuK8,3237
140
- opentelemetry/instrumentation/openai/shared/event_models.py,sha256=PCfCGxrrArwZqR-4wFcXrhwQq0sBMAxmSrpC4PUMtaM,876
141
- opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py,sha256=y_jN9oqjiOCoht3z-L1vuxaYehZRcpqUB4x3FyoqdrI,2120
142
- opentelemetry/instrumentation/openai/shared/span_utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
- opentelemetry/instrumentation/openai/utils.py,sha256=LN5CcmbNoOto9HXJRkx578e47bhSo5JgDZ_ztvMCsvk,5680
144
- opentelemetry/instrumentation/openai/v0/__init__.py,sha256=g4wONoGVqyFjyoYmT1kL3qrB808sawxd9fOY_BoLCgg,6315
145
- opentelemetry/instrumentation/openai/v1/__init__.py,sha256=TK9qP6VCoLoQ4SoUu0RQJUtB4bVmkDSmgHPEiuQl_OI,14629
146
- opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=gXpQUY0KAi0HMcRLztq_3a5Olbg2IqvTUwgdSkXrjr4,11460
147
- opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py,sha256=IjmMDnX7EFOuaOi34YIOfHG07pGWDhEssMQhu9AS9XY,4410
148
- opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=bfovvrFPI-2v7xxgTBBO3X_D4fzwJffBaYHAGXLq90o,44463
149
- opentelemetry/instrumentation/openai/version.py,sha256=lqGEr9tvmZ_6Qa2559q1rV0OQ1kC9xcQ9JVV0A-9nt4,23
150
- paid_python-0.6.0.dist-info/LICENSE,sha256=Nz4baY1zvv0Qy7lqrQtbaiMhmEeGr2Q7A93aqzpml4c,1071
151
- paid_python-0.6.0.dist-info/METADATA,sha256=5Hq9GWXA-VSZ2CYeDFMOWJUFpSdMcSVNUSpPfBqsrIA,24088
152
- paid_python-0.6.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
153
- paid_python-0.6.0.dist-info/RECORD,,
149
+ paid_python-1.0.0a0.dist-info/LICENSE,sha256=Nz4baY1zvv0Qy7lqrQtbaiMhmEeGr2Q7A93aqzpml4c,1071
150
+ paid_python-1.0.0a0.dist-info/METADATA,sha256=I9KlwbPqEcybvZ11UAjyTFFh7S6B5wz2blPzDAJswo4,24210
151
+ paid_python-1.0.0a0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
152
+ paid_python-1.0.0a0.dist-info/RECORD,,
@@ -1,54 +0,0 @@
1
- from typing import Callable, Collection, Optional
2
-
3
- from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
4
- from opentelemetry.instrumentation.openai.shared.config import Config
5
- from opentelemetry.instrumentation.openai.utils import is_openai_v1
6
- from typing_extensions import Coroutine
7
-
8
- _instruments = ("openai >= 0.27.0",)
9
-
10
-
11
- class OpenAIInstrumentor(BaseInstrumentor):
12
- """An instrumentor for OpenAI's client library."""
13
-
14
- def __init__(
15
- self,
16
- enrich_assistant: bool = False,
17
- exception_logger=None,
18
- get_common_metrics_attributes: Callable[[], dict] = lambda: {},
19
- upload_base64_image: Optional[
20
- Callable[[str, str, str, str], Coroutine[None, None, str]]
21
- ] = lambda *args: "",
22
- enable_trace_context_propagation: bool = True,
23
- use_legacy_attributes: bool = True,
24
- ):
25
- super().__init__()
26
- Config.enrich_assistant = enrich_assistant
27
- Config.exception_logger = exception_logger
28
- Config.get_common_metrics_attributes = get_common_metrics_attributes
29
- Config.upload_base64_image = upload_base64_image
30
- Config.enable_trace_context_propagation = enable_trace_context_propagation
31
- Config.use_legacy_attributes = use_legacy_attributes
32
-
33
- def instrumentation_dependencies(self) -> Collection[str]:
34
- return _instruments
35
-
36
- def _instrument(self, **kwargs):
37
- if is_openai_v1():
38
- from opentelemetry.instrumentation.openai.v1 import OpenAIV1Instrumentor
39
-
40
- OpenAIV1Instrumentor().instrument(**kwargs)
41
- else:
42
- from opentelemetry.instrumentation.openai.v0 import OpenAIV0Instrumentor
43
-
44
- OpenAIV0Instrumentor().instrument(**kwargs)
45
-
46
- def _uninstrument(self, **kwargs):
47
- if is_openai_v1():
48
- from opentelemetry.instrumentation.openai.v1 import OpenAIV1Instrumentor
49
-
50
- OpenAIV1Instrumentor().uninstrument(**kwargs)
51
- else:
52
- from opentelemetry.instrumentation.openai.v0 import OpenAIV0Instrumentor
53
-
54
- OpenAIV0Instrumentor().uninstrument(**kwargs)