diff options
Diffstat (limited to 'src/pyssg/database_entry.py')
-rw-r--r-- | src/pyssg/database_entry.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/pyssg/database_entry.py b/src/pyssg/database_entry.py new file mode 100644 index 0000000..3fec92a --- /dev/null +++ b/src/pyssg/database_entry.py @@ -0,0 +1,47 @@ +from typing import Union +from logging import Logger, getLogger + +log: Logger = getLogger(__name__) + + +class DatabaseEntry: + # not specifying the type of "list" as it could be only str + # or the actual values + def __init__(self, entry: list) -> None: + self.fname: str = entry[0] + self.ctimestamp: float = float(entry[1]) + self.mtimestamp: float = float(entry[2]) + self.checksum: str = entry[3] + self.tags: list[str] + + if isinstance(entry[4], list): + self.tags = entry[4] + else: + if entry[4] == '-': + self.tags = [] + else: + self.tags = entry[4].split(',') + + log.debug('tag content: [%s]', ', '.join(self.tags)) + + + def __str__(self) -> str: + _return_str: str = '[{}, {}, {}, {}, [{}]]'\ + .format(self.fname, + self.ctimestamp, + self.mtimestamp, + self.checksum, + ', '.join(self.tags)) + return _return_str + + + def get_raw_entry(self) -> list[str]: + return [self.fname, + str(self.ctimestamp), + str(self.mtimestamp), + self.checksum, + ','.join(self.tags) if self.tags else '-'] + + + def update_tags(self, new_tags: list[str]) -> None: + self.tags = new_tags |