1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
import os
from datetime import datetime, timezone
from typing import List, Optional, Text, Union
def file_exists(path: Union[bytes, str, "os.PathLike[Text]"]) -> bool:
"""Validates file path as existing local file"""
return os.path.isfile(path)
def get_file_modtime(path: Union[bytes, str, "os.PathLike[Text]"]) -> Text:
"""Returns ISO formatted file modification time in local system timezone"""
return (
datetime.fromtimestamp(os.stat(path).st_mtime, timezone.utc)
.astimezone()
.isoformat()
)
def get_tables_argument_list(table_list: Optional[List[Text]]) -> Optional[List[Text]]:
"""Converts a list of OpenType table string into a Python list or
return None if the table_list was not defined (i.e., it was not included
in an option on the command line). Tables that are composed of three
characters must be right padded with a space."""
if table_list is None:
return None
else:
return [table.ljust(4) for table in table_list]
|