29 lines
1020 B
Python
29 lines
1020 B
Python
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]
|