update from O'Reilly repo
This commit is contained in:
@@ -1,30 +1,28 @@
|
||||
#!/usr/bin/env python3
|
||||
from curio import run, TaskGroup
|
||||
from curio.socket import getaddrinfo, gaierror
|
||||
import curio.socket as socket
|
||||
from keyword import kwlist
|
||||
|
||||
MAX_KEYWORD_LEN = 4 # <1>
|
||||
MAX_KEYWORD_LEN = 4
|
||||
|
||||
|
||||
async def probe(domain: str) -> tuple[str, bool]: # <2>
|
||||
async def probe(domain: str) -> tuple[str, bool]: # <1>
|
||||
try:
|
||||
await getaddrinfo(domain, None) # <4>
|
||||
except gaierror:
|
||||
await socket.getaddrinfo(domain, None) # <2>
|
||||
except socket.gaierror:
|
||||
return (domain, False)
|
||||
return (domain, True)
|
||||
|
||||
|
||||
async def main() -> None: # <5>
|
||||
names = (kw for kw in kwlist if len(kw) <= MAX_KEYWORD_LEN) # <6>
|
||||
domains = (f'{name}.dev'.lower() for name in names) # <7>
|
||||
async with TaskGroup() as group:
|
||||
async def main() -> None:
|
||||
names = (kw for kw in kwlist if len(kw) <= MAX_KEYWORD_LEN)
|
||||
domains = (f'{name}.dev'.lower() for name in names)
|
||||
async with TaskGroup() as group: # <3>
|
||||
for domain in domains:
|
||||
await group.spawn(probe, domain)
|
||||
async for task in group: # <9>
|
||||
domain, found = task.result # <10>
|
||||
await group.spawn(probe, domain) # <4>
|
||||
async for task in group: # <5>
|
||||
domain, found = task.result
|
||||
mark = '+' if found else ' '
|
||||
print(f'{mark} {domain}')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
run(main()) # <11>
|
||||
run(main()) # <6>
|
||||
|
||||
Reference in New Issue
Block a user