mobilevalidate-sdk 1.0.0__tar.gz → 1.0.2__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 (18) hide show
  1. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/PKG-INFO +3 -2
  2. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/pyproject.toml +3 -2
  3. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/_constants.py +1 -1
  4. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/_errors.py +1 -1
  5. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/types.py +17 -2
  6. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/.gitignore +0 -0
  7. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/LICENSE +0 -0
  8. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/README.md +0 -0
  9. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/__init__.py +0 -0
  10. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/_client.py +0 -0
  11. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/_http.py +0 -0
  12. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/py.typed +0 -0
  13. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/src/mobilevalidate/webhooks.py +0 -0
  14. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/tests/conftest.py +0 -0
  15. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/tests/test_async.py +0 -0
  16. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/tests/test_client.py +0 -0
  17. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/tests/test_constants.py +0 -0
  18. {mobilevalidate_sdk-1.0.0 → mobilevalidate_sdk-1.0.2}/tests/test_webhooks.py +0 -0
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mobilevalidate-sdk
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: MobileValidate API client: check phone numbers on WhatsApp, Telegram, Viber and more, carrier lookup, spam reputation and e-mail verification. Sync + async, typed.
5
5
  Project-URL: Homepage, https://mobilevalidate.com/docs/sdk
6
6
  Project-URL: Documentation, https://mobilevalidate.com/docs
7
- Project-URL: Issues, https://mobilevalidate.com/contact
7
+ Project-URL: Repository, https://github.com/brntech/mobilevalidate-sdk/tree/main/python
8
+ Project-URL: Issues, https://github.com/brntech/mobilevalidate-sdk/issues
8
9
  Author: MobileValidate (BroadNet Technologies Inc.)
9
10
  License-Expression: MIT
10
11
  License-File: LICENSE
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mobilevalidate-sdk"
7
- version = "1.0.0"
7
+ version = "1.0.2"
8
8
  description = "MobileValidate API client: check phone numbers on WhatsApp, Telegram, Viber and more, carrier lookup, spam reputation and e-mail verification. Sync + async, typed."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -40,7 +40,8 @@ dev = ["pytest>=7", "pytest-asyncio>=0.21", "respx>=0.20", "build>=1"]
40
40
  [project.urls]
41
41
  Homepage = "https://mobilevalidate.com/docs/sdk"
42
42
  Documentation = "https://mobilevalidate.com/docs"
43
- Issues = "https://mobilevalidate.com/contact"
43
+ Repository = "https://github.com/brntech/mobilevalidate-sdk/tree/main/python"
44
+ Issues = "https://github.com/brntech/mobilevalidate-sdk/issues"
44
45
 
45
46
  [tool.hatch.build.targets.wheel]
46
47
  packages = ["src/mobilevalidate"]
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from typing import Dict
6
6
 
7
- __version__ = "1.0.0"
7
+ __version__ = "1.0.2"
8
8
 
9
9
  DEFAULT_BASE_URL = "https://api.mobilevalidate.com"
10
10
 
@@ -206,7 +206,7 @@ class IdempotencyRequestInProgressError(APIError):
206
206
 
207
207
 
208
208
  class TestKeyExistsError(APIError):
209
- """409 test_key_exists: this e-mail address already has an active test key."""
209
+ """409 test_key_exists: no more test keys can be issued for this e-mail address right now (max 3 in 30 days)."""
210
210
 
211
211
  __test__ = False
212
212
  default_code = "test_key_exists"
@@ -16,7 +16,7 @@ else: # pragma: no cover
16
16
  from typing_extensions import NotRequired, TypedDict
17
17
 
18
18
  __all__ = [
19
- "APIObject", "Money", "CheckResult", "ResultItem", "Summary", "Lookup", "Job", "Estimate", "Page", "Service",
19
+ "APIObject", "Money", "CheckResult", "ResultItem", "Summary", "Lookup", "Job", "Estimate", "PriceLine", "Page", "Service",
20
20
  "WebhookEndpoint", "WebhookEvent", "MoneyInput", "DurationInput", "DownloadFormat",
21
21
  ]
22
22
 
@@ -101,10 +101,24 @@ class Job(TypedDict, total=False):
101
101
  checks: List[str]
102
102
  progress: Dict[str, int]
103
103
  eta_seconds: Optional[int]
104
- cost: Dict[str, Money]
104
+ cost: Dict[str, Any] # estimated_max / reserved / charged / released: Money; breakdown: List[PriceLine]
105
105
  metadata: Dict[str, str]
106
106
 
107
107
 
108
+ class PriceLine(TypedDict, total=False):
109
+ """One price line of a bulk job. ``reason == "small_batch"``: a part too small for the batch route (fewer numbers
110
+ per country than ``batch_minimum``), priced at the real-time price."""
111
+
112
+ check: str
113
+ price_mode: str
114
+ reason: Optional[str]
115
+ checks: int
116
+ unit_price: Money
117
+ max_cost: Money
118
+ countries: List[str]
119
+ batch_minimum: int
120
+
121
+
108
122
  class Estimate(TypedDict, total=False):
109
123
  total: int
110
124
  valid: int
@@ -117,6 +131,7 @@ class Estimate(TypedDict, total=False):
117
131
  max_cost: Money
118
132
  checks: List[str]
119
133
  checks_total: int
134
+ breakdown: List[PriceLine]
120
135
 
121
136
 
122
137
  class Page(TypedDict, total=False):