Skip to content

Commit 17691bf

Browse files
committed
updated merge bib function to allow user overriding and deletion
1 parent c4b8bef commit 17691bf

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

scripts/merge_bibs.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""
22
Merges static bibs and dynamic bibs
3+
Removes delete bibs and overrides override bibs
34
Reason: we'll only update dynamic bibs automatically
45
"""
56

@@ -11,6 +12,8 @@
1112
ROOT = Path(__file__).resolve().parents[1]
1213
STATIC = ROOT / "_data/pub/static.bib"
1314
DYNAMIC = ROOT / "_data/pub/dynamic.bib"
15+
OVERRIDE= ROOT / "_data/pub/override.bib"
16+
DELETE = ROOT / "_data/pub/delete.bib"
1417
OUT = ROOT / "publications.bib"
1518

1619
def load(path: Path):
@@ -23,12 +26,31 @@ def load(path: Path):
2326
def main():
2427
static_entries = load(STATIC)
2528
dynamic_entries = load(DYNAMIC)
29+
delete_entries = load(DELETE)
30+
override_entries = load(OVERRIDE)
31+
32+
# List to delete
33+
list_delete = [e.get("ID") for e in delete_entries]
34+
35+
# Dictionary for replacements
36+
dict_override = {}
37+
for e in override_entries:
38+
dict_override[e["ID"]] = e
2639

2740
merged = {}
28-
for e in static_entries:
29-
if "ID" in e:
30-
merged[e["ID"]] = e
3141
for e in dynamic_entries:
42+
if "ID" in e:
43+
unique_id = e["ID"]
44+
45+
if unique_id in list_delete: # Delete based on user command
46+
continue
47+
48+
try: # Override information
49+
merged[unique_id] = dict_override[unique_id]
50+
except:
51+
merged[unique_id] = e
52+
53+
for e in static_entries:
3254
if "ID" in e:
3355
merged[e["ID"]] = e
3456

0 commit comments

Comments
 (0)