Adicionar src-py/renatoxsr/scripts/bulk_jsonl.py
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# vim: set ft=python ts=4 sw=4 et encoding=utf-8 :
|
||||||
|
# SPDX-FileCopyrightText: 2025-present RenatoXSR <renatoxsr@gmail.com>
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
|
import argparse, json, os, sys
|
||||||
|
from pathlib import Path
|
||||||
|
import datetime as dt
|
||||||
|
|
||||||
|
from renatoxsr.utils import hash_b58, pandoc
|
||||||
|
from renatoxsr.logger import set_logger
|
||||||
|
logger = set_logger(__name__)
|
||||||
|
if "--debug" in sys.argv:
|
||||||
|
logger.setLevel("DEBUG")
|
||||||
|
|
||||||
|
def parse_args():
|
||||||
|
p = argparse.ArgumentParser()
|
||||||
|
p.add_argument("--src", default=os.getcwd())
|
||||||
|
p.add_argument("--glob", default="*")
|
||||||
|
p.add_argument("--overwrite", default=False)
|
||||||
|
p.add_argument("--logfile", default=sys.stderr, help="Log output(default: sys.stderr)")
|
||||||
|
p.add_argument("--loglevel", default="INFO", help="Log level (default: INFO)")
|
||||||
|
p.add_argument("filename",
|
||||||
|
default=dt.datetime.now().isoformat().replace(":", "_"),
|
||||||
|
help="output file (default: `datetime.now().isoformat()`)")
|
||||||
|
return p.parse_args()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parsed_args = parse_args()
|
||||||
|
logger.setLevel(parsed_args.loglevel)
|
||||||
|
|
||||||
|
with open(Path(parsed_args.filename), "w" if parsed_args.overwrite else "a") as output_file:
|
||||||
|
for fpath in Path(parsed_args.src).glob(parsed_args.glob):
|
||||||
|
data = {"hash": hash_b58(fpath), "fpath": str(fpath), "markdown": pandoc(fpath)}
|
||||||
|
if not data["markdown"]:
|
||||||
|
logger.error("No markdown output from '%s' (hash:%s)", fpath, data["hash"])
|
||||||
|
continue
|
||||||
|
output_file.write(json.dumps(data)+"\n")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user