Skip to content

Commit b4a88e6

Browse files
committed
✨ publish: async/await
1 parent 0ee47bf commit b4a88e6

File tree

4 files changed

+45
-45
lines changed

4 files changed

+45
-45
lines changed

dymoapi/branches/private.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@
55
from ..exceptions import APIError, BadRequestError
66

77
@deprecated("is_valid_data_raw")
8-
def is_valid_data(token, data):
8+
async def is_valid_data(token, data):
99
if not any([key in list(data.keys()) for key in ["url", "email", "phone", "domain", "creditCard", "ip", "wallet", "userAgent", "iban"]]): raise BadRequestError("You must provide at least one parameter.")
1010
try:
11-
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58", "Authorization": token})
11+
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59", "Authorization": token})
1212
response.raise_for_status()
1313
return response.json()
1414
except requests.RequestException as e: raise APIError(str(e))
1515

16-
def is_valid_data_raw(token, data):
16+
async def is_valid_data_raw(token, data):
1717
if not any([key in list(data.keys()) for key in ["url", "email", "phone", "domain", "creditCard", "ip", "wallet", "userAgent", "iban"]]): raise BadRequestError("You must provide at least one parameter.")
1818
try:
19-
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58", "Authorization": token})
19+
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59", "Authorization": token})
2020
response.raise_for_status()
2121
return response.json()
2222
except requests.RequestException as e: raise APIError(str(e))
2323

24-
def is_valid_email(token: Optional[str], email: str, rules: Optional[Dict[str, List[str]]] = None) -> Dict[str, Any]:
24+
async def is_valid_email(token: Optional[str], email: str, rules: Optional[Dict[str, List[str]]] = None) -> Dict[str, Any]:
2525
"""
2626
Validates the given email against the configured deny rules.
2727
@@ -54,7 +54,7 @@ def is_valid_email(token: Optional[str], email: str, rules: Optional[Dict[str, L
5454
resp = requests.post(
5555
f"{get_base_url()}/v1/private/secure/verify",
5656
json={"email": email, "plugins": plugins},
57-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58", "Authorization": token}
57+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59", "Authorization": token}
5858
)
5959
resp.raise_for_status()
6060
data = resp.json().get("email", {})
@@ -90,7 +90,7 @@ def is_valid_email(token: Optional[str], email: str, rules: Optional[Dict[str, L
9090

9191
except requests.RequestException as e: raise APIError(f"[Dymo API] {str(e)}")
9292

93-
def is_valid_ip(token: Optional[str], ip: str, rules: Optional[Dict[str, List[str]]] = None) -> Dict[str, Any]:
93+
async def is_valid_ip(token: Optional[str], ip: str, rules: Optional[Dict[str, List[str]]] = None) -> Dict[str, Any]:
9494
"""
9595
Validates the given IP against the configured deny rules.
9696
@@ -121,7 +121,7 @@ def is_valid_ip(token: Optional[str], ip: str, rules: Optional[Dict[str, List[st
121121
resp = requests.post(
122122
f"{get_base_url()}/v1/private/secure/verify",
123123
json={"email": ip, "plugins": plugins},
124-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58", "Authorization": token}
124+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59", "Authorization": token}
125125
)
126126
resp.raise_for_status()
127127
data = resp.json().get("ip", {})
@@ -155,7 +155,7 @@ def is_valid_ip(token: Optional[str], ip: str, rules: Optional[Dict[str, List[st
155155

156156
except requests.RequestException as e: raise APIError(f"[Dymo API] {str(e)}")
157157

158-
def is_valid_phone(token: Optional[str], phone: str, rules: Optional[Dict[str, List[str]]] = None) -> Dict[str, Any]:
158+
async def is_valid_phone(token: Optional[str], phone: str, rules: Optional[Dict[str, List[str]]] = None) -> Dict[str, Any]:
159159
"""
160160
Validates the given phone against the configured deny rules.
161161
@@ -185,7 +185,7 @@ def is_valid_phone(token: Optional[str], phone: str, rules: Optional[Dict[str, L
185185
resp = requests.post(
186186
f"{get_base_url()}/v1/private/secure/verify",
187187
json={"phone": phone, "plugins": plugins},
188-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58", "Authorization": token}
188+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59", "Authorization": token}
189189
)
190190
resp.raise_for_status()
191191
data = resp.json().get("phone", {})
@@ -218,18 +218,18 @@ def is_valid_phone(token: Optional[str], phone: str, rules: Optional[Dict[str, L
218218

219219
except requests.RequestException as e: raise APIError(f"[Dymo API] {str(e)}")
220220

221-
def send_email(token, data):
221+
async def send_email(token, data):
222222
if not data.get("from"): raise BadRequestError("You must provide an email address from which the following will be sent.")
223223
if not data.get("to"): raise BadRequestError("You must provide an email to be sent to.")
224224
if not data.get("subject"): raise BadRequestError("You must provide a subject for the email to be sent.")
225225
if not data.get("html"): raise BadRequestError("You must provide HTML.")
226226
try:
227-
response = requests.post(f"{get_base_url()}/v1/private/sender/sendEmail", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58", "Authorization": token})
227+
response = requests.post(f"{get_base_url()}/v1/private/sender/sendEmail", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59", "Authorization": token})
228228
response.raise_for_status()
229229
return response.json()
230230
except requests.RequestException as e: raise APIError(str(e))
231231

232-
def get_random(token, data):
232+
async def get_random(token, data):
233233
if not data.get("from"): raise BadRequestError("You must provide an email address from which the following will be sent.")
234234
if not data.get("to"): raise BadRequestError("You must provide an email to be sent to.")
235235
if not data.get("subject"): raise BadRequestError("You must provide a subject for the email to be sent.")
@@ -240,13 +240,13 @@ def get_random(token, data):
240240
if data.min < -1000000000 or data.min > 1000000000: raise BadRequestError("'min' must be an integer in the interval [-1000000000}, 1000000000].")
241241
if data.max < -1000000000 or data.max > 1000000000: raise BadRequestError("'max' must be an integer in the interval [-1000000000}, 1000000000].")
242242
try:
243-
response = requests.post(f"{get_base_url()}/v1/private/srng", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58", "Authorization": token})
243+
response = requests.post(f"{get_base_url()}/v1/private/srng", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59", "Authorization": token})
244244
response.raise_for_status()
245245
return response.json()
246246
except requests.RequestException as e: raise APIError(str(e))
247247

248248

249-
def extract_with_textly(token: str, data: dict) -> dict:
249+
async def extract_with_textly(token: str, data: dict) -> dict:
250250
if not data.get("data"): raise BadRequestError("No data provided.")
251251
if not data.get("format"): raise BadRequestError("No format provided.")
252252

dymoapi/branches/public.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
from ..utils.decorators import deprecated
55
from ..exceptions import APIError, BadRequestError
66

7-
headers = {"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.58"}
7+
headers = {"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.59"}
88

9-
def get_prayer_times(data):
9+
async def get_prayer_times(data):
1010
"""
1111
Gets the prayer times for a given latitude and longitude.
1212
@@ -32,7 +32,7 @@ def get_prayer_times(data):
3232
except requests.RequestException as e: raise APIError(str(e))
3333

3434
@deprecated("satinize")
35-
def satinizer(data):
35+
async def satinizer(data):
3636
"""
3737
Sanitizes the given input according to the Dymo API standard.
3838
@@ -54,7 +54,7 @@ def satinizer(data):
5454
return response.json()
5555
except requests.RequestException as e: raise APIError(str(e))
5656

57-
def satinize(input_value):
57+
async def satinize(input_value):
5858
"""
5959
Sanitizes the given input according to the Dymo API standard.
6060
@@ -75,7 +75,7 @@ def satinize(input_value):
7575
return response.json()
7676
except requests.RequestException as e: raise APIError(str(e))
7777

78-
def is_valid_pwd(data):
78+
async def is_valid_pwd(data):
7979
"""
8080
Validates the given password against the configured deny rules.
8181
@@ -118,7 +118,7 @@ def is_valid_pwd(data):
118118
return response.json()
119119
except requests.RequestException as e: raise APIError(str(e))
120120

121-
def new_url_encrypt(url):
121+
async def new_url_encrypt(url):
122122
"""
123123
Encrypts the given URL.
124124

dymoapi/dymoapi.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ def __init__(self, config={}):
4646
self.base_url = get_base_url()
4747
check_for_updates()
4848

49-
def _get_function(self, module_name, function_name="main"):
49+
async def _get_function(self, module_name, function_name="main"):
5050
if module_name == "private" and self.api_key is None and self.root_api_key is None: return logging.error("Invalid private token.")
5151
func = getattr(importlib.import_module(f".branches.{module_name}", package="dymoapi"), function_name)
5252
if module_name == "private": return lambda *args, **kwargs: DotDict(func(self.api_key or self.root_api_key, *args, **kwargs))
5353
return lambda *args, **kwargs: DotDict(func(*args, **kwargs))
5454

55-
def is_valid_data(self, data: response_models.Validator) -> response_models.DataVerifierResponse:
55+
async def is_valid_data(self, data: response_models.Validator) -> response_models.DataVerifierResponse:
5656
"""
5757
Validates the given data against the configured validation settings.
5858
@@ -79,15 +79,15 @@ def is_valid_data(self, data: response_models.Validator) -> response_models.Data
7979
8080
[Documentation](https://docs.tpeoficial.com/docs/dymo-api/private/data-verifier)
8181
"""
82-
response = self._get_function("private", "is_valid_data")(data)
82+
response = await self._get_function("private", "is_valid_data")(data)
8383
if response.get("ip",{}).get("as"):
8484
response["ip"]["_as"] = response["ip"]["as"]
8585
response["ip"]["_class"] = response["ip"]["class"]
8686
response["ip"].pop("as")
8787
response["ip"].pop("class")
8888
return response_models.DataVerifierResponse(**response)
8989

90-
def is_valid_email(self, email: str, rules: dict | None = None) -> bool:
90+
async def is_valid_email(self, email: str, rules: dict | None = None) -> bool:
9191
"""
9292
Wrapper for the private email validation function.
9393
@@ -115,9 +115,9 @@ def is_valid_email(self, email: str, rules: dict | None = None) -> bool:
115115
https://docs.tpeoficial.com/docs/dymo-api/private/email-validation
116116
"""
117117
rules_to_use = rules or self.rules.get("email")
118-
return self._get_function("private", "is_valid_email")(email, rules_to_use)
118+
return await self._get_function("private", "is_valid_email")(email, rules_to_use)
119119

120-
def is_valid_ip(self, ip: str, rules: dict | None = None) -> bool:
120+
async def is_valid_ip(self, ip: str, rules: dict | None = None) -> bool:
121121
"""
122122
Wrapper for the private IP validation function.
123123
@@ -145,9 +145,9 @@ def is_valid_ip(self, ip: str, rules: dict | None = None) -> bool:
145145
https://docs.tpeoficial.com/docs/dymo-api/private/ip-validation
146146
"""
147147
rules_to_use = rules or self.rules.get("ip")
148-
return self._get_function("private", "is_valid_ip")(ip, rules_to_use)
148+
return await self._get_function("private", "is_valid_ip")(ip, rules_to_use)
149149

150-
def is_valid_phone(self, phone: str, rules: dict | None = None) -> bool:
150+
async def is_valid_phone(self, phone: str, rules: dict | None = None) -> bool:
151151
"""
152152
Wrapper for the private phone validation function.
153153
@@ -175,9 +175,9 @@ def is_valid_phone(self, phone: str, rules: dict | None = None) -> bool:
175175
https://docs.tpeoficial.com/docs/dymo-api/private/phone-validation
176176
"""
177177
rules_to_use = rules or self.rules.get("phone")
178-
return self._get_function("private", "is_valid_phone")(phone, rules_to_use)
178+
return await self._get_function("private", "is_valid_phone")(phone, rules_to_use)
179179

180-
def send_email(self, data: response_models.EmailStatus) -> response_models.SendEmailResponse:
180+
async def send_email(self, data: response_models.EmailStatus) -> response_models.SendEmailResponse:
181181
"""
182182
Sends an email using the configured email client settings.
183183
@@ -210,9 +210,9 @@ def send_email(self, data: response_models.EmailStatus) -> response_models.SendE
210210
[Documentation](https://docs.tpeoficial.com/docs/dymo-api/private/sender-send-email/getting-started)
211211
"""
212212
if not self.server_email_config and not self.root_api_key: return logging.error("You must configure the email client settings.")
213-
return response_models.DataVerifierResponse(**self._get_function("private", "send_email")({**data, "serverEmailConfig": self.server_email_config}))
213+
return response_models.DataVerifierResponse(**await self._get_function("private", "send_email")({**data, "serverEmailConfig": self.server_email_config}))
214214

215-
def get_random(self, data: response_models.SRNG) -> response_models.SRNGResponse:
215+
async def get_random(self, data: response_models.SRNG) -> response_models.SRNGResponse:
216216
"""
217217
Generates a random number (or numbers) between the provided min and max values.
218218
@@ -234,9 +234,9 @@ def get_random(self, data: response_models.SRNG) -> response_models.SRNGResponse
234234
235235
[Documentation](https://docs.tpeoficial.com/docs/dymo-api/private/secure-random-number-generator)
236236
"""
237-
return response_models.DataVerifierResponse(**self._get_function("private", "get_random")({**data}))
237+
return response_models.DataVerifierResponse(**await self._get_function("private", "get_random")({**data}))
238238

239-
def extract_with_textly(self, data: response_models.Textly) -> response_models.TextlyResponse:
239+
async def extract_with_textly(self, data: response_models.Textly) -> response_models.TextlyResponse:
240240
"""
241241
Extracts structured data from a given text using the Textly endpoint.
242242
@@ -258,9 +258,9 @@ def extract_with_textly(self, data: response_models.Textly) -> response_models.T
258258
259259
[Documentation](https://docs.tpeoficial.com/docs/dymo-api/private/extract-textly)
260260
"""
261-
return response_models.ExtractWithTextlyResponse(**self._get_function("private", "extract_with_textly")({**data}))
261+
return response_models.ExtractWithTextlyResponse(**await self._get_function("private", "extract_with_textly")({**data}))
262262

263-
def get_prayer_times(self, data: response_models.PrayerTimesData) -> response_models.PrayerTimesResponse:
263+
async def get_prayer_times(self, data: response_models.PrayerTimesData) -> response_models.PrayerTimesResponse:
264264
"""
265265
Retrieves the prayer times for the given location.
266266
@@ -284,9 +284,9 @@ def get_prayer_times(self, data: response_models.PrayerTimesData) -> response_mo
284284
285285
[Documentation](https://docs.tpeoficial.com/docs/dymo-api/public/prayertimes)
286286
"""
287-
return response_models.PrayerTimesResponse(**self._get_function("public", "get_prayer_times")(data))
287+
return response_models.PrayerTimesResponse(**await self._get_function("public", "get_prayer_times")(data))
288288

289-
def satinizer(self, data: response_models.InputSanitizerData) -> response_models.SatinizerResponse:
289+
async def satinizer(self, data: response_models.InputSanitizerData) -> response_models.SatinizerResponse:
290290
"""
291291
Sanitizes the input, replacing any special characters with their HTML entities.
292292
@@ -304,9 +304,9 @@ def satinizer(self, data: response_models.InputSanitizerData) -> response_models
304304
305305
[Documentation](https://docs.tpeoficial.com/docs/dymo-api/public/input-satinizer)
306306
"""
307-
return response_models.SatinizerResponse(**self._get_function("public", "satinizer")(data))
307+
return response_models.SatinizerResponse(**await self._get_function("public", "satinizer")(data))
308308

309-
def is_valid_pwd(self, data: response_models.IsValidPwdData) -> response_models.IsValidPwdResponse:
309+
async def is_valid_pwd(self, data: response_models.IsValidPwdData) -> response_models.IsValidPwdResponse:
310310
"""
311311
Validates a password based on the given parameters.
312312
@@ -339,9 +339,9 @@ def is_valid_pwd(self, data: response_models.IsValidPwdData) -> response_models.
339339
340340
[Documentation](https://docs.tpeoficial.com/docs/dymo-api/public/password-validator)
341341
"""
342-
return response_models.IsValidPwdResponse(**self._get_function("public", "is_valid_pwd")(data))
342+
return response_models.IsValidPwdResponse(**await self._get_function("public", "is_valid_pwd")(data))
343343

344-
def new_url_encrypt(self, data) -> response_models.UrlEncryptResponse:
345-
return response_models.UrlEncryptResponse(**self._get_function("public", "new_url_encrypt")(data))
344+
async def new_url_encrypt(self, data) -> response_models.UrlEncryptResponse:
345+
return response_models.UrlEncryptResponse(**await self._get_function("public", "new_url_encrypt")(data))
346346

347347
if __name__ == "__main__": sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup(
44
name="dymoapi",
5-
version="0.0.58",
5+
version="0.0.59",
66
packages=find_packages(),
77
description="Dymo Python API library.",
88
long_description=open("README.md").read(),

0 commit comments

Comments
 (0)