Skip to content

Commit dad899d

Browse files
committed
no need for separate package (that may not be maintained) for flatdict
Signed-off-by: John Seekins <[email protected]>
1 parent 29e8ab6 commit dad899d

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

file_utils.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import copy
22
import csv
3-
import flatdict # type: ignore [import-untyped]
43
import json
54
from schemas import enrichment_print_schema
6-
from utils import logger
5+
from utils import (
6+
_flatdict,
7+
logger,
8+
)
79

810

911
def export_to_file(
@@ -20,7 +22,7 @@ def export_to_file(
2022
try:
2123
with open(full_name, "w", newline="", encoding="utf-8") as f_out:
2224
if file_type == "csv":
23-
flatdata = [flatdict.FlatDict(f, delimiter=".") for f in facilities_data["facilities"]]
25+
flatdata = [_flatdict(f) for f in facilities_data["facilities"]]
2426
fieldnames = [k for k in flatdata[0].keys() if k not in csv_filtered_keys]
2527

2628
writer = csv.DictWriter(f_out, fieldnames=fieldnames)

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ readme = "README.md"
66
requires-python = ">=3.13"
77
dependencies = [
88
"beautifulsoup4>=4.13.5",
9-
"flatdict>=4.0.1",
109
"lxml>=6.0.1",
1110
"requests>=2.32.5",
1211
]

utils.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,15 @@
1717
session.mount("https://", _adapter)
1818
session.mount("http://", _adapter)
1919
session.headers.update({"User-Agent": "ICE-Facilities-Research/1.0 (Educational Research Purpose)"})
20+
21+
22+
def _flatdict(d: dict, parent_key: str = "", sep: str = ".") -> dict:
23+
"""flatten a nested dictionary for nicer printing in CSV"""
24+
items: list = []
25+
for k, v in d.items():
26+
new_key = parent_key + sep + str(k) if parent_key else str(k)
27+
if isinstance(v, dict):
28+
items.extend(_flatdict(v, new_key, sep=sep).items())
29+
else:
30+
items.append((new_key, v))
31+
return dict(items)

uv.lock

Lines changed: 0 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)