Mini Shell
import csv
import logging
from defence360agent.contracts.config import CountryInfo
logger = logging.getLogger(__name__)
class GeoCSVReader:
def __init__(self):
self._NOT_A_COUNTRY = set()
self._country_filed = False
def countries(self, source=CountryInfo.LOCATIONS_DB):
with open(source, encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
if row["country_iso_code"]:
yield dict(
id=row["geoname_id"],
code=row["country_iso_code"],
name=row["country_name"],
)
else:
self._NOT_A_COUNTRY.add(row["geoname_id"])
self._country_filed = True