Files
2025-05-20 11:57:43 -04:00

52 lines
1.3 KiB
Python

#!/usr/bin/env python
from multiprocessing.dummy import Pool # <1>
from pprint import pprint
import requests
POOL_SIZE = 4
BASE_URL = 'https://www.dictionaryapi.com/api/v3/references/collegiate/json/' # <2>
API_KEY = 'b619b55d-faa3-442b-a119-dd906adc79c8' # <3>
search_terms = [ # <4>
'wombat',
'frog', 'muntin', 'automobile', 'green', 'connect',
'vial', 'battery', 'computer', 'sing', 'park',
'ladle', 'ram', 'dog', 'scalpel'
]
def fetch_data(term): # <5>
try:
response = requests.get(
BASE_URL + term,
params={'key': API_KEY},
) # <6>
except requests.HTTPError as err:
print(err)
return []
else:
data = response.json() # <7>
parts_of_speech = []
for entry in data: # <8>
if isinstance(entry, dict):
meta = entry.get("meta")
if meta:
part_of_speech = entry.get("fl")
if part_of_speech:
parts_of_speech.append(part_of_speech)
return sorted(set(parts_of_speech)) # <9>
p = Pool(POOL_SIZE) # <10>
results = p.map(fetch_data, search_terms) # <11>
for search_term, result in zip(search_terms, results): # <12>
print("{}:".format(search_term.upper()))
if result:
print(result)
else:
print("** no results **")