Sort image keys and extend to whiteout in formatter

This commit is contained in:
AnonymousRandomPerson 2022-05-13 19:06:18 -04:00
parent 82d7c9d06e
commit 72829f392b

View file

@ -3,6 +3,7 @@
import re import re
import json import json
import traceback import traceback
from typing import List
""" """
Examples: Examples:
@ -262,6 +263,36 @@ def remove_empty_and_similar(entry: dict):
return entry return entry
def sort_image_keys(entry: dict):
"""
Alphabetizes comma-separated path and center keys.
"""
for outer_key in ["path", "center"]:
image_keys: List[str] = list(entry[outer_key].keys())
for image_key in image_keys:
key_split = image_key.split(", ")
new_key = ", ".join(sorted(key_split))
if new_key != image_key:
entry[outer_key][new_key] = entry[outer_key][image_key]
del(entry[outer_key][image_key])
return entry
def extend_entries_to_whiteout(entry: dict):
"""
If an entry ends on the final non-whiteout image, extends the image to the last whiteout image where entries cans still be made out.
"""
END_NORMAL_IMAGE = "164"
END_WHITEOUT_IMAGE = "166"
for outer_key in ["path", "center"]:
image_keys: List[str] = list(entry[outer_key].keys())
for image_key in image_keys:
if END_NORMAL_IMAGE in image_key:
new_key = image_key.replace(END_NORMAL_IMAGE, END_WHITEOUT_IMAGE)
entry[outer_key][new_key] = entry[outer_key][image_key]
del(entry[outer_key][image_key])
return entry
def validate(entry: dict): def validate(entry: dict):
""" """
@ -344,6 +375,10 @@ def print_(*args, **kwargs):
entry = remove_duplicate_points(entry) entry = remove_duplicate_points(entry)
print_("Remove empty items...") print_("Remove empty items...")
entry = remove_empty_and_similar(entry) entry = remove_empty_and_similar(entry)
print_("Sorting image keys...")
entry = sort_image_keys(entry)
print_("Extending entries to whiteout...")
entry = extend_entries_to_whiteout(entry)
print_("Validating...") print_("Validating...")
status_code = validate(entry) status_code = validate(entry)
print_("Completed!") print_("Completed!")