growsurf-python 0.5.0__tar.gz → 0.6.1__tar.gz

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 (119) hide show
  1. growsurf_python-0.6.1/.release-please-manifest.json +3 -0
  2. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/CHANGELOG.md +18 -0
  3. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/PKG-INFO +1 -1
  4. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/pyproject.toml +1 -1
  5. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_client.py +10 -6
  6. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_version.py +1 -1
  7. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant.py +19 -1
  8. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/participant_commission_list.py +4 -4
  9. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/participant_payout_list.py +2 -0
  10. growsurf_python-0.5.0/.release-please-manifest.json +0 -3
  11. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/.gitignore +0 -0
  12. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/CONTRIBUTING.md +0 -0
  13. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/LICENSE +0 -0
  14. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/README.md +0 -0
  15. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/SECURITY.md +0 -0
  16. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/api.md +0 -0
  17. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/bin/check-release-environment +0 -0
  18. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/bin/publish-pypi +0 -0
  19. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/examples/.keep +0 -0
  20. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/release-please-config.json +0 -0
  21. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/requirements-dev.lock +0 -0
  22. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/__init__.py +0 -0
  23. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_base_client.py +0 -0
  24. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_compat.py +0 -0
  25. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_constants.py +0 -0
  26. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_exceptions.py +0 -0
  27. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_files.py +0 -0
  28. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_models.py +0 -0
  29. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_qs.py +0 -0
  30. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_resource.py +0 -0
  31. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_response.py +0 -0
  32. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_streaming.py +0 -0
  33. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_types.py +0 -0
  34. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/__init__.py +0 -0
  35. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_compat.py +0 -0
  36. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_datetime_parse.py +0 -0
  37. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_json.py +0 -0
  38. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_logs.py +0 -0
  39. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_path.py +0 -0
  40. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_proxy.py +0 -0
  41. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_reflection.py +0 -0
  42. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_resources_proxy.py +0 -0
  43. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_streams.py +0 -0
  44. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_sync.py +0 -0
  45. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_transform.py +0 -0
  46. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_typing.py +0 -0
  47. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/_utils/_utils.py +0 -0
  48. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/lib/.keep +0 -0
  49. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/py.typed +0 -0
  50. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/resources/__init__.py +0 -0
  51. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/resources/campaign/__init__.py +0 -0
  52. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/resources/campaign/campaign.py +0 -0
  53. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/resources/campaign/commission.py +0 -0
  54. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/resources/campaign/participant.py +0 -0
  55. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/resources/campaign/reward.py +0 -0
  56. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/__init__.py +0 -0
  57. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/__init__.py +0 -0
  58. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/campaign.py +0 -0
  59. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/commission_approve_response.py +0 -0
  60. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/commission_delete_response.py +0 -0
  61. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/fraud_risk_level.py +0 -0
  62. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_add_params.py +0 -0
  63. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_delete_response.py +0 -0
  64. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_list_commissions_params.py +0 -0
  65. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_list_payouts_params.py +0 -0
  66. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_list_referrals_params.py +0 -0
  67. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_list_rewards_params.py +0 -0
  68. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_list_rewards_response.py +0 -0
  69. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_record_transaction_params.py +0 -0
  70. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_record_transaction_response.py +0 -0
  71. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_reward.py +0 -0
  72. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_send_invites_params.py +0 -0
  73. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_send_invites_response.py +0 -0
  74. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_trigger_referral_response.py +0 -0
  75. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/participant_update_params.py +0 -0
  76. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/referral_source.py +0 -0
  77. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/referral_status.py +0 -0
  78. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/reward_approve_params.py +0 -0
  79. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/reward_approve_response.py +0 -0
  80. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/reward_delete_response.py +0 -0
  81. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign/reward_fulfill_response.py +0 -0
  82. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_create_mobile_participant_token_params.py +0 -0
  83. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_create_mobile_participant_token_response.py +0 -0
  84. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_list_commissions_params.py +0 -0
  85. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_list_leaderboard_params.py +0 -0
  86. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_list_participants_params.py +0 -0
  87. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_list_payouts_params.py +0 -0
  88. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_list_referrals_params.py +0 -0
  89. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_list_response.py +0 -0
  90. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_retrieve_analytics_params.py +0 -0
  91. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/campaign_retrieve_analytics_response.py +0 -0
  92. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/commission_structure.py +0 -0
  93. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/participant_list.py +0 -0
  94. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/src/growsurf/types/referral_list.py +0 -0
  95. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/__init__.py +0 -0
  96. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/api_resources/__init__.py +0 -0
  97. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/api_resources/campaign/__init__.py +0 -0
  98. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/api_resources/campaign/test_commission.py +0 -0
  99. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/api_resources/campaign/test_participant.py +0 -0
  100. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/api_resources/campaign/test_reward.py +0 -0
  101. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/api_resources/test_campaign.py +0 -0
  102. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/conftest.py +0 -0
  103. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/sample_file.txt +0 -0
  104. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_client.py +0 -0
  105. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_extract_files.py +0 -0
  106. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_files.py +0 -0
  107. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_models.py +0 -0
  108. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_qs.py +0 -0
  109. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_required_args.py +0 -0
  110. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_response.py +0 -0
  111. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_streaming.py +0 -0
  112. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_transform.py +0 -0
  113. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_utils/test_datetime_parse.py +0 -0
  114. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_utils/test_json.py +0 -0
  115. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_utils/test_path.py +0 -0
  116. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_utils/test_proxy.py +0 -0
  117. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/test_utils/test_typing.py +0 -0
  118. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/tests/utils.py +0 -0
  119. {growsurf_python-0.5.0 → growsurf_python-0.6.1}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.6.1"
3
+ }
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.1 (2026-06-26)
4
+
5
+ Full Changelog: [v0.6.0...v0.6.1](https://github.com/growsurf/growsurf-python/compare/v0.6.0...v0.6.1)
6
+
7
+ ## 0.6.0 (2026-06-23)
8
+
9
+ Full Changelog: [v0.5.0...v0.6.0](https://github.com/growsurf/growsurf-python/compare/v0.5.0...v0.6.0)
10
+
11
+ ### Features
12
+
13
+ * **api:** add payoutSettings to Participant ([f1c59b5](https://github.com/growsurf/growsurf-python/commit/f1c59b55b06e1082f725d6df2fa5057458250347))
14
+ * **api:** manual updates ([e949eb6](https://github.com/growsurf/growsurf-python/commit/e949eb62d25a5c1c67176b77199dee46abb161f8))
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **auth:** prioritize first auth header ([c398225](https://github.com/growsurf/growsurf-python/commit/c39822597c0c851137b6a3b6ef954f8831e1601b))
20
+
3
21
  ## 0.5.0 (2026-05-25)
4
22
 
5
23
  Full Changelog: [v0.4.0...v0.5.0](https://github.com/growsurf/growsurf-python/compare/v0.4.0...v0.5.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: growsurf-python
3
- Version: 0.5.0
3
+ Version: 0.6.1
4
4
  Summary: The official Python library for the growsurf API
5
5
  Project-URL: Homepage, https://github.com/growsurf/growsurf-python
6
6
  Project-URL: Repository, https://github.com/growsurf/growsurf-python
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "growsurf-python"
3
- version = "0.5.0"
3
+ version = "0.6.1"
4
4
  description = "The official Python library for the growsurf API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -136,9 +136,11 @@ class Growsurf(SyncAPIClient):
136
136
 
137
137
  @override
138
138
  def _auth_headers(self, security: SecurityOptions) -> dict[str, str]:
139
- return {
140
- **(self._api_key_auth if security.get("api_key_auth", False) else {}),
141
- }
139
+ headers: dict[str, str] = {}
140
+ if security.get("api_key_auth", False):
141
+ for key, value in self._api_key_auth.items():
142
+ headers.setdefault(key, value)
143
+ return headers
142
144
 
143
145
  @property
144
146
  def _api_key_auth(self) -> dict[str, str]:
@@ -324,9 +326,11 @@ class AsyncGrowsurf(AsyncAPIClient):
324
326
 
325
327
  @override
326
328
  def _auth_headers(self, security: SecurityOptions) -> dict[str, str]:
327
- return {
328
- **(self._api_key_auth if security.get("api_key_auth", False) else {}),
329
- }
329
+ headers: dict[str, str] = {}
330
+ if security.get("api_key_auth", False):
331
+ for key, value in self._api_key_auth.items():
332
+ headers.setdefault(key, value)
333
+ return headers
330
334
 
331
335
  @property
332
336
  def _api_key_auth(self) -> dict[str, str]:
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "growsurf"
4
- __version__ = "0.5.0" # x-release-please-version
4
+ __version__ = "0.6.1" # x-release-please-version
@@ -1,6 +1,7 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  from typing import Dict, List, Optional
4
+ from typing_extensions import Literal
4
5
 
5
6
  from pydantic import Field as FieldInfo
6
7
 
@@ -10,7 +11,17 @@ from .referral_status import ReferralStatus
10
11
  from .fraud_risk_level import FraudRiskLevel
11
12
  from .participant_reward import ParticipantReward
12
13
 
13
- __all__ = ["Participant", "Referrer"]
14
+ __all__ = ["Participant", "PayoutSettings", "Referrer"]
15
+
16
+
17
+ class PayoutSettings(BaseModel):
18
+ """
19
+ Payout-related actions the participant must complete before a payout can be released (e.g. confirming a PayPal email or submitting a W-9/W-8 tax form). Always present; the requiredActions array is empty when no action is required.
20
+ """
21
+
22
+ required_actions: Optional[List[Literal["PAYPAL_EMAIL", "TAX_INFO"]]] = FieldInfo(
23
+ alias="requiredActions", default=None
24
+ )
14
25
 
15
26
 
16
27
  class Referrer(BaseModel):
@@ -125,6 +136,13 @@ class Participant(BaseModel):
125
136
 
126
137
  notes: Optional[str] = None
127
138
 
139
+ payout_settings: Optional[PayoutSettings] = FieldInfo(alias="payoutSettings", default=None)
140
+ """
141
+ Payout-related actions the participant must complete before a payout can be
142
+ released (e.g. confirming a PayPal email or submitting a W-9/W-8 tax form).
143
+ Always present; the requiredActions array is empty when no action is required.
144
+ """
145
+
128
146
  paypal_email_address: Optional[str] = FieldInfo(alias="paypalEmailAddress", default=None)
129
147
 
130
148
  prev_monthly_rank: Optional[int] = FieldInfo(alias="prevMonthlyRank", default=None)
@@ -13,7 +13,7 @@ __all__ = ["ParticipantCommissionList", "Commission"]
13
13
  class Commission(BaseModel):
14
14
  id: str
15
15
 
16
- amount: int
16
+ amount: Optional[int] = None
17
17
 
18
18
  created_at: int = FieldInfo(alias="createdAt")
19
19
 
@@ -23,7 +23,7 @@ class Commission(BaseModel):
23
23
 
24
24
  referrer_id: str = FieldInfo(alias="referrerId")
25
25
 
26
- sale_amount: int = FieldInfo(alias="saleAmount")
26
+ sale_amount: Optional[int] = FieldInfo(alias="saleAmount", default=None)
27
27
 
28
28
  status: Literal["PENDING", "APPROVED", "PAID", "REVERSED", "DELETED"]
29
29
 
@@ -49,8 +49,8 @@ class Commission(BaseModel):
49
49
 
50
50
  reversed_at: Optional[int] = FieldInfo(alias="reversedAt", default=None)
51
51
 
52
- sale_amount_amount_in_campaign_currency: Optional[int] = FieldInfo(
53
- alias="saleAmountAmountInCampaignCurrency", default=None
52
+ sale_amount_in_campaign_currency: Optional[int] = FieldInfo(
53
+ alias="saleAmountInCampaignCurrency", default=None
54
54
  )
55
55
 
56
56
 
@@ -41,6 +41,8 @@ class Payout(BaseModel):
41
41
 
42
42
  provider: Optional[str] = None
43
43
 
44
+ queued_at: Optional[int] = FieldInfo(alias="queuedAt", default=None)
45
+
44
46
 
45
47
  class ParticipantPayoutList(BaseModel):
46
48
  limit: int
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.5.0"
3
- }
File without changes
File without changes
File without changes