2
2
import ipaddress
3
3
import re
4
4
import socket
5
- from typing import Tuple , Generator , Union
5
+ from typing import Tuple , Generator , Union , Optional
6
6
from contextlib import contextmanager , asynccontextmanager
7
7
8
8
from python_socks .sync import Proxy
@@ -21,7 +21,7 @@ class Query:
21
21
22
22
def __init__ (
23
23
self ,
24
- proxy_url : str = None ,
24
+ proxy_url : Optional [ str ] = None ,
25
25
timeout : int = 10 ,
26
26
find_authoritative_server : bool = True ,
27
27
):
@@ -39,7 +39,7 @@ def _find_match(regex: str, blob: str) -> str:
39
39
40
40
@contextmanager
41
41
def _create_connection (
42
- self , address : Tuple [str , int ], proxy_url : str = None
42
+ self , address : Tuple [str , int ], proxy_url : Optional [ str ] = None
43
43
) -> Generator [socket .socket , None , None ]:
44
44
s = None
45
45
try :
@@ -58,7 +58,7 @@ def _create_connection(
58
58
59
59
@asynccontextmanager
60
60
async def _aio_create_connection (
61
- self , address : Tuple [str , int ], proxy_url : str = None
61
+ self , address : Tuple [str , int ], proxy_url : Optional [ str ] = None
62
62
) -> Generator [Tuple [asyncio .StreamReader , asyncio .StreamWriter ], None , None ]:
63
63
# init
64
64
reader , writer = None , None
@@ -107,7 +107,7 @@ async def _aio_send_and_recv(
107
107
result += received .decode ("utf-8" , errors = "ignore" )
108
108
return result
109
109
110
- def run (self , search_term : str , server : str = None ) -> list [str ]:
110
+ def run (self , search_term : str , server : Optional [ str ] = None ) -> list [str ]:
111
111
"""
112
112
Submits the `search_term` to the WHOIS server and returns a list of query responses.
113
113
"""
@@ -133,7 +133,9 @@ def _continue_querying(current_server: str, next_server: str) -> bool:
133
133
and not next_server .startswith ("www." )
134
134
)
135
135
136
- async def aio_run (self , search_term : str , server : str = None ) -> list [str ]:
136
+ async def aio_run (
137
+ self , search_term : str , server : Optional [str ] = None
138
+ ) -> list [str ]:
137
139
data = search_term + "\r \n "
138
140
if not server :
139
141
if ":" in data : # ipv6
@@ -201,8 +203,8 @@ async def _aio_do_query(
201
203
class DomainQuery (Query ):
202
204
def __init__ (
203
205
self ,
204
- server : str = None ,
205
- proxy_url : str = None ,
206
+ server : Optional [ str ] = None ,
207
+ proxy_url : Optional [ str ] = None ,
206
208
timeout : int = 10 ,
207
209
find_authoritative_server : bool = True ,
208
210
):
@@ -219,12 +221,14 @@ def _get_server_name(domain_name: str) -> Union[str, None]:
219
221
return server
220
222
return None
221
223
222
- def run (self , search_term : str , server : str = None ) -> list [str ]:
224
+ def run (self , search_term : str , server : Optional [ str ] = None ) -> list [str ]:
223
225
if not server :
224
226
server = self ._get_server_name (search_term )
225
227
return super ().run (str (search_term ), server )
226
228
227
- async def aio_run (self , search_term : str , server : str = None ) -> list [str ]:
229
+ async def aio_run (
230
+ self , search_term : str , server : Optional [str ] = None
231
+ ) -> list [str ]:
228
232
if not server :
229
233
server = self ._get_server_name (search_term )
230
234
return await super ().aio_run (str (search_term ), server )
@@ -233,8 +237,8 @@ async def aio_run(self, search_term: str, server: str = None) -> list[str]:
233
237
class NumberQuery (Query ):
234
238
def __init__ (
235
239
self ,
236
- server : str = None ,
237
- proxy_url : str = None ,
240
+ server : Optional [ str ] = None ,
241
+ proxy_url : Optional [ str ] = None ,
238
242
timeout : int = 10 ,
239
243
):
240
244
super ().__init__ (proxy_url , timeout )
@@ -252,7 +256,7 @@ def _get_server_name(ip: Union[ipaddress.IPv4Address, ipaddress.IPv6Address]):
252
256
def run (
253
257
self ,
254
258
search_term : Union [ipaddress .IPv4Address , ipaddress .IPv6Address ],
255
- server : str = None ,
259
+ server : Optional [ str ] = None ,
256
260
) -> list [str ]:
257
261
if not server :
258
262
server = self ._get_server_name (search_term )
@@ -261,7 +265,7 @@ def run(
261
265
async def aio_run (
262
266
self ,
263
267
search_term : Union [ipaddress .IPv4Address , ipaddress .IPv6Address ],
264
- server : str = None ,
268
+ server : Optional [ str ] = None ,
265
269
) -> list [str ]:
266
270
if not server :
267
271
server = self ._get_server_name (search_term )
0 commit comments