Skip to content

Commit e05d7dd

Browse files
committed
✨ publish: update pydantic
1 parent 9cc9828 commit e05d7dd

File tree

1 file changed

+145
-129
lines changed

1 file changed

+145
-129
lines changed

dymoapi/response_models.py

Lines changed: 145 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
from __future__ import annotations
12
from enum import Enum
2-
from pydantic import BaseModel
3-
from typing import Dict, List, Union, Optional, Literal, Any
3+
from typing import Any, Dict, List, Union, Optional, Literal
4+
from pydantic import BaseModel, Field
45

56
ReputationPlugin = Literal["low", "medium", "high", "very-high", "education", "governmental", "unknown"]
67
TyposquattingPlugin = Literal[0,1,2,3,4,5,6,7,8,9,10]
@@ -10,16 +11,16 @@ class MxRecord(BaseModel):
1011
exchange: str
1112

1213
class Plugins(BaseModel):
13-
blocklist: Optional[bool] = None
14-
gravatarUrl: Optional[str] = None
15-
compromiseDetector: Optional[bool] = None
16-
mxRecords: Optional[List[MxRecord]] = None
17-
nsfw: Optional[bool] = None
18-
reputation: Optional[ReputationPlugin] = None
19-
riskScore: Optional[float] = None
20-
torNetwork: Optional[bool] = None
21-
typosquatting: Optional[TyposquattingPlugin] = None
22-
urlShortener: Optional[bool] = None
14+
blocklist: Optional[bool]
15+
gravatarUrl: Optional[str]
16+
compromiseDetector: Optional[bool]
17+
mxRecords: Optional[List[MxRecord]]
18+
nsfw: Optional[bool]
19+
reputation: Optional[ReputationPlugin]
20+
riskScore: Optional[float]
21+
torNetwork: Optional[bool]
22+
typosquatting: Optional[TyposquattingPlugin]
23+
urlShortener: Optional[bool]
2324

2425
class VerifyPlugins(Enum):
2526
BLOCKLIST = "blocklist"
@@ -34,38 +35,38 @@ class VerifyPlugins(Enum):
3435
URL_SHORTENER = "urlShortener"
3536

3637
class PhoneData(BaseModel):
37-
iso: Optional[str] = None
38+
iso: Optional[str]
3839
phone: str
3940

4041
class CreditCardData(BaseModel):
4142
pan: Union[str, int]
42-
expirationDate: Optional[str] = None
43-
cvc: Optional[Union[str, int]] = None
44-
cvv: Optional[Union[str, int]] = None
43+
expirationDate: Optional[str]
44+
cvc: Optional[Union[str, int]]
45+
cvv: Optional[Union[str, int]]
4546

4647
class Validator(BaseModel):
47-
url: Optional[str] = None
48-
email: Optional[str] = None
49-
phone: Optional[Union[PhoneData, str]] = None
50-
domain: Optional[str] = None
51-
creditCard: Optional[Union[str, CreditCardData]] = None
52-
ip: Optional[str] = None
53-
wallet: Optional[str] = None
54-
userAgent: Optional[str] = None
55-
iban: Optional[str] = None
56-
plugins: Optional[List[VerifyPlugins]] = None
48+
url: Optional[str]
49+
email: Optional[str]
50+
phone: Optional[Union[PhoneData, str]]
51+
domain: Optional[str]
52+
creditCard: Optional[Union[str, CreditCardData]]
53+
ip: Optional[str]
54+
wallet: Optional[str]
55+
userAgent: Optional[str]
56+
iban: Optional[str]
57+
plugins: Optional[List[VerifyPlugins]]
5758

5859
class UrlEncryptResponse(BaseModel):
5960
original: str
6061
code: str
6162
encrypt: str
6263

6364
class IsValidPwdData(BaseModel):
64-
email: Optional[str] = None
65-
password: Optional[str] = None
66-
bannedWords: Optional[Union[str, List[str]]] = None
67-
min: Optional[int] = None
68-
max: Optional[int] = None
65+
email: Optional[str]
66+
password: Optional[str]
67+
bannedWords: Optional[Union[str, List[str]]]
68+
min: Optional[int]
69+
max: Optional[int]
6970

7071
class IsValidPwdDetails(BaseModel):
7172
validation: str
@@ -77,7 +78,7 @@ class IsValidPwdResponse(BaseModel):
7778
details: List[IsValidPwdDetails]
7879

7980
class InputSanitizerData(BaseModel):
80-
input: Optional[str] = None
81+
input: Optional[str]
8182

8283
class SatinizerFormats(BaseModel):
8384
ascii: bool
@@ -129,8 +130,8 @@ class SatinizerResponse(BaseModel):
129130
includes: SatinizerIncludes
130131

131132
class PrayerTimesData(BaseModel):
132-
lat: Optional[float] = None
133-
lon: Optional[float] = None
133+
lat: Optional[float]
134+
lon: Optional[float]
134135

135136
class PrayerTimes(BaseModel):
136137
coordinates: str
@@ -153,28 +154,28 @@ class PrayerTimesResponse(BaseModel):
153154
prayerTimesByTimezone: List[PrayerTimesByTimezone]
154155

155156
class DataVerifierURL(BaseModel):
156-
valid: Optional[bool] = None
157-
fraud: Optional[bool] = None
158-
freeSubdomain: Optional[bool] = None
159-
customTLD: Optional[bool] = None
160-
url: Optional[str] = None
161-
domain: Optional[str] = None
162-
plugins: Optional[Plugins] = None
157+
valid: Optional[bool]
158+
fraud: Optional[bool]
159+
freeSubdomain: Optional[bool]
160+
customTLD: Optional[bool]
161+
url: Optional[str]
162+
domain: Optional[str]
163+
plugins: Optional[Plugins]
163164

164165
class DataVerifierEmail(BaseModel):
165-
valid: Optional[bool] = None
166-
fraud: Optional[bool] = None
167-
proxiedEmail: Optional[bool] = None
168-
freeSubdomain: Optional[bool] = None
169-
corporate: Optional[bool] = None
170-
email: Optional[str] = None
171-
realUser: Optional[str] = None
172-
didYouMean: Optional[Union[str, bool]] = None
173-
noReply: Optional[bool] = None
174-
customTLD: Optional[bool] = None
175-
domain: Optional[str] = None
176-
roleAccount: Optional[bool] = None
177-
plugins: Optional[Plugins] = None
166+
valid: Optional[bool]
167+
fraud: Optional[bool]
168+
proxiedEmail: Optional[bool]
169+
freeSubdomain: Optional[bool]
170+
corporate: Optional[bool]
171+
email: Optional[str]
172+
realUser: Optional[str]
173+
didYouMean: Optional[Union[str, bool]]
174+
noReply: Optional[bool]
175+
customTLD: Optional[bool]
176+
domain: Optional[str]
177+
roleAccount: Optional[bool]
178+
plugins: Optional[Plugins]
178179

179180
class CarrierInfo(BaseModel):
180181
carrierName: str
@@ -183,96 +184,96 @@ class CarrierInfo(BaseModel):
183184
carrierCountryCode: str
184185

185186
class DataVerifierPhone(BaseModel):
186-
valid: Optional[bool] = None
187-
fraud: Optional[bool] = None
188-
phone: Optional[str] = None
189-
prefix: Optional[str] = None
190-
number: Optional[str] = None
187+
valid: Optional[bool]
188+
fraud: Optional[bool]
189+
phone: Optional[str]
190+
prefix: Optional[str]
191+
number: Optional[str]
191192
lineType: Literal[
192193
"PREMIUM_RATE", "TOLL_FREE", "SHARED_COST", "VOIP", "PERSONAL_NUMBER",
193194
"PAGER", "UAN", "VOICEMAIL", "FIXED_LINE_OR_MOBILE", "FIXED_LINE",
194195
"MOBILE", "Unknown"
195196
]
196-
carrierInfo: Optional[CarrierInfo] = None
197-
country: Optional[str] = None
198-
countryCode: Optional[str] = None
199-
plugins: Optional[Plugins] = None
197+
carrierInfo: Optional[CarrierInfo]
198+
country: Optional[str]
199+
countryCode: Optional[str]
200+
plugins: Optional[Plugins]
200201

201202
class DataVerifierDomain(BaseModel):
202-
valid: Optional[bool] = None
203-
fraud: Optional[bool] = None
204-
freeSubdomain: Optional[bool] = None
205-
customTLD: Optional[bool] = None
206-
domain: Optional[str] = None
207-
plugins: Optional[Plugins] = None
203+
valid: Optional[bool]
204+
fraud: Optional[bool]
205+
freeSubdomain: Optional[bool]
206+
customTLD: Optional[bool]
207+
domain: Optional[str]
208+
plugins: Optional[Plugins]
208209

209210
class DataVerifierCreditCard(BaseModel):
210-
valid: Optional[bool] = None
211-
fraud: Optional[bool] = None
212-
test: Optional[bool] = None
213-
type: Optional[str] = None
214-
creditCard: Optional[str] = None
215-
plugins: Optional[Plugins] = None
211+
valid: Optional[bool]
212+
fraud: Optional[bool]
213+
test: Optional[bool]
214+
type: Optional[str]
215+
creditCard: Optional[str]
216+
plugins: Optional[Plugins]
216217

217218
class DataVerifierIp(BaseModel):
218219
valid: bool
219-
type: Optional[str] = None
220-
_class: Optional[str] = None
221-
fraud: Optional[bool] = None
222-
ip: Optional[str] = None
223-
continent: Optional[str] = None
224-
continentCode: Optional[str] = None
225-
country: Optional[str] = None
226-
countryCode: Optional[str] = None
227-
region: Optional[str] = None
228-
regionName: Optional[str] = None
229-
city: Optional[str] = None
230-
district: Optional[str] = None
231-
zipCode: Optional[str] = None
232-
lat: Optional[float] = None
233-
lon: Optional[float] = None
234-
timezone: Optional[str] = None
235-
offset: Optional[float | str] = None
236-
currency: Optional[str] = None
237-
isp: Optional[str] = None
238-
org: Optional[str] = None
239-
_as: Optional[str] = None
240-
asname: Optional[str] = None
241-
mobile: Optional[bool | str] = None
242-
proxy: Optional[bool | str] = None
243-
hosting: Optional[bool | str] = None
244-
plugins: Optional[Plugins] = None
220+
type: Optional[str]
221+
_class: Optional[str]
222+
fraud: Optional[bool]
223+
ip: Optional[str]
224+
continent: Optional[str]
225+
continentCode: Optional[str]
226+
country: Optional[str]
227+
countryCode: Optional[str]
228+
region: Optional[str]
229+
regionName: Optional[str]
230+
city: Optional[str]
231+
district: Optional[str]
232+
zipCode: Optional[str]
233+
lat: Optional[float]
234+
lon: Optional[float]
235+
timezone: Optional[str]
236+
offset: Optional[float | str]
237+
currency: Optional[str]
238+
isp: Optional[str]
239+
org: Optional[str]
240+
_as: Optional[str]
241+
asname: Optional[str]
242+
mobile: Optional[bool | str]
243+
proxy: Optional[bool | str]
244+
hosting: Optional[bool | str]
245+
plugins: Optional[Plugins]
245246

246247
class DataVerifierDevice(BaseModel):
247-
type: Optional[str] = None
248-
brand: Optional[str] = None
248+
type: Optional[str]
249+
brand: Optional[str]
249250

250251
class DataVerifierUserAgent(BaseModel):
251252
valid: bool
252-
type: Optional[str] = None
253-
clientSlug: Optional[str] = None
254-
clientName: Optional[str] = None
255-
version: Optional[str] = None
256-
userAgent: Optional[str] = None
257-
fraud: Optional[bool] = None
258-
bot: Optional[bool] = None
259-
info: Optional[str] = None
260-
os: Optional[str] = None
253+
type: Optional[str]
254+
clientSlug: Optional[str]
255+
clientName: Optional[str]
256+
version: Optional[str]
257+
userAgent: Optional[str]
258+
fraud: Optional[bool]
259+
bot: Optional[bool]
260+
info: Optional[str]
261+
os: Optional[str]
261262
device: DataVerifierDevice
262-
plugins: Optional[Dict[str, Any]] = None
263+
plugins: Optional[Dict[str, Any]]
263264

264265
class DataVerifierIBAN(BaseModel):
265266
valid: bool
266-
fraud: Optional[bool] = None
267-
iban: Optional[str] = None
268-
bban: Optional[str] = None
267+
fraud: Optional[bool]
268+
iban: Optional[str]
269+
bban: Optional[str]
269270
bic: Optional[str] = "unknown"
270-
country: Optional[str] = None
271-
countryCode: Optional[str] = None
272-
accountNumber: Optional[str] = None
273-
branchIdentifier: Optional[str] = None
274-
bankIdentifier: Optional[str] = None
275-
plugins: Optional[Dict[str, Any]] = None
271+
country: Optional[str]
272+
countryCode: Optional[str]
273+
accountNumber: Optional[str]
274+
branchIdentifier: Optional[str]
275+
bankIdentifier: Optional[str]
276+
plugins: Optional[Dict[str, Any]]
276277

277278
class DataVerifierResponse(BaseModel):
278279
url: Optional[DataVerifierURL]
@@ -287,23 +288,38 @@ class DataVerifierResponse(BaseModel):
287288
class SRNG(BaseModel):
288289
min: int
289290
max: int
290-
quantity: Optional[int] = None
291+
quantity: Optional[int]
291292

292293
class SRNGResponse(BaseModel):
293294
values: List[Dict[str, Union[int, float]]]
294295
executionTime: Union[int, float]
295296

296297
class SendEmailResponse(BaseModel):
297298
status: Union[bool, str]
298-
error: Optional[str] = None
299-
warning: Optional[str] = None
299+
error: Optional[str]
300+
warning: Optional[str]
300301

301302
class EmailStatus(BaseModel):
302303
status: bool
303-
error: Optional[str] = None
304-
305-
class ExtractWithTextlyResponse(BaseModel):
306-
__root__: Any
304+
error: Optional[str]
305+
306+
class JsonSchemaProperty(BaseModel):
307+
type: Literal["string", "number", "boolean", "array", "object"]
308+
items: Optional[JsonSchemaProperty]
309+
properties: Optional[Dict[str, JsonSchemaProperty]]
310+
required: Optional[List[str]]
311+
description: Optional[str]
312+
format: Optional[str]
313+
enum: Optional[List[Any]]
314+
minimum: Optional[float]
315+
maximum: Optional[float]
316+
minLength: Optional[int]
317+
maxLength: Optional[int]
318+
pattern: Optional[str]
319+
320+
class Textly(BaseModel):
321+
data: str = Field(..., description="Input text")
322+
format: Dict[str, JsonSchemaProperty] = Field(..., description="Output schema")
307323

308324
class TextlyResponse(BaseModel):
309325
__root__: Any

0 commit comments

Comments
 (0)