summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2022-04-18 01:06:14 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2022-04-18 01:06:14 -0600
commit4ece6fa800b0534efe768e7e8ec520dffb0d1b33 (patch)
tree96957394d57be15dc94779194164532c3b31a6b6 /src
parent0169725f9c3318e94b23e34b6e9fbe95e900f813 (diff)
fix pyssg and database errors
fixed md extensions debug line, refactored and fixed read function for database for the case when there is no db file yet
Diffstat (limited to 'src')
-rw-r--r--src/pyssg/database.py66
-rw-r--r--src/pyssg/pyssg.py4
2 files changed, 39 insertions, 31 deletions
diff --git a/src/pyssg/database.py b/src/pyssg/database.py
index 03eeb73..40e9ca2 100644
--- a/src/pyssg/database.py
+++ b/src/pyssg/database.py
@@ -106,34 +106,40 @@ class Database:
def read(self) -> None:
- if os.path.exists(self.db_path) and os.path.isfile(self.db_path):
- rows: list[str] = None
- log.debug('reading db')
- with open(self.db_path, 'r') as file:
- rows = file.readlines()
- log.info('db contains %d rows', len(rows))
-
- # parse each entry and populate accordingly
- l: list[str] = None
- # l=list of values in entry
- log.debug('parsing rows from db')
- for i, row in enumerate(rows):
- log.debug('row %d content: "%s"', i, row)
- l = tuple(row.strip().split())
- if len(l) != self.COLUMN_NUM:
- log.critical('row doesn\t contain %s columns,'
- ' contains %d elements; row %d content: "%s"',
- self.COLUMN_NUM, len(l), i, row)
- sys.exit(1)
-
- t: list[str] = None
- if l[3] == '-':
- t = []
- else:
- t = l[3].split(',')
- log.debug('tag content: (%s)', ', '.join(t))
-
- self.e[l[0]] = (float(l[1]), float(l[2]), t)
- else:
- log.error('database file "%s" doesn\'t exist or it\'s not a file')
+ log.debug('reading db')
+ if not os.path.exists(self.db_path):
+ log.warning('"%s" doesn\'t exist, will be'
+ ' created once process finishes,'
+ ' ignore if it\'s the first run', self.db_path)
+ return
+
+ if os.path.exists(self.db_path) and not os.path.isfile(self.db_path):
+ log.error('"%s" is not a file"', self.db_path)
sys.exit(1)
+
+ rows: list[str] = None
+ with open(self.db_path, 'r') as file:
+ rows = file.readlines()
+ log.info('db contains %d rows', len(rows))
+
+ # parse each entry and populate accordingly
+ l: list[str] = None
+ # l=list of values in entry
+ log.debug('parsing rows from db')
+ for i, row in enumerate(rows):
+ log.debug('row %d content: "%s"', i, row)
+ l = tuple(row.strip().split())
+ if len(l) != self.COLUMN_NUM:
+ log.critical('row doesn\t contain %s columns,'
+ ' contains %d elements; row %d content: "%s"',
+ self.COLUMN_NUM, len(l), i, row)
+ sys.exit(1)
+
+ t: list[str] = None
+ if l[3] == '-':
+ t = []
+ else:
+ t = l[3].split(',')
+ log.debug('tag content: (%s)', ', '.join(t))
+
+ self.e[l[0]] = (float(l[1]), float(l[2]), t)
diff --git a/src/pyssg/pyssg.py b/src/pyssg/pyssg.py
index 4de80d5..2f0730f 100644
--- a/src/pyssg/pyssg.py
+++ b/src/pyssg/pyssg.py
@@ -111,7 +111,9 @@ def main() -> None:
figureNumberText="Figure"),
HighlightExtension(),
ChecklistExtension()]
- log.debug('list of md extensions: (%s)', ', '.join(exts))
+ log.debug('list of md extensions: (%s)',
+ ', '.join([e if isinstance(e, str) else type(e).__name__
+ for e in exts]))
log.debug('initializing markdown parser')
md: Markdown = Markdown(extensions=exts,
output_format='html5')