* Began refactoring verbose code for #931 * Fixed tests for timewarp due to verbose refactor * Updated test data * More refactoring for #931 * Refactored queryoptions.py * Refactored queryoptions.py * Refactored queryoptions.py * Refactored echo_error * Refactored debug * Refactored debug * Refactored use of verbose in export * Refactored use of verbose in export * Refactred --verbose in add-locations and debug-dump * Refactored --verbose for * Refactored --verbose for osxphotos exportdb * Refactored --verbose for osxphotos import * Refactored --verbose for osxphotos orphans * Refactored --verbose for osxphotos snap-diff * Refactored --verbose for osxphotos sync * Refactored --verbose for osxphotos timewarp * Added default verbose() function to verbose
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
""" Parse --inspect and --compare-exif output for testing"""
|
|
|
|
from collections import namedtuple
|
|
from typing import List
|
|
|
|
# filename, uuid, photo time (local), photo time, timezone offset, timezone name
|
|
InspectValues = namedtuple(
|
|
"InspectValues",
|
|
["filename", "uuid", "date_local", "date_tz", "tz_offset", "tz_name"],
|
|
)
|
|
|
|
CompareValues = namedtuple(
|
|
"CompareValues",
|
|
[
|
|
"filename",
|
|
"uuid",
|
|
"date_photos",
|
|
"date_exif",
|
|
"tz_offset_photos",
|
|
"tz_offset_exif",
|
|
],
|
|
)
|
|
|
|
|
|
def parse_inspect_output(output: str) -> List[InspectValues]:
|
|
"""Parse output of --inspect and return list of InspectValues named tuple"""
|
|
|
|
lines = [line for line in output.split("\n") if line.strip()]
|
|
# remove header
|
|
lines.pop(0)
|
|
values = []
|
|
for line in lines:
|
|
parts = line.split(",")
|
|
parts = [part.strip() for part in parts]
|
|
values.append(InspectValues(*parts))
|
|
return values
|
|
|
|
|
|
def parse_compare_exif(output: str) -> List[CompareValues]:
|
|
"""Parse output of --compare-exif and return list of CompareValues named tuple"""
|
|
lines = [line for line in output.split("\n") if line.strip()]
|
|
# remove header
|
|
lines.pop(0)
|
|
values = []
|
|
for line in lines:
|
|
parts = line.split(",")
|
|
parts = [part.strip() for part in parts]
|
|
values.append(CompareValues(*parts))
|
|
return values
|