Adicionar src-py/renatoxsr/scripts/bulk_jsonl.py

This commit is contained in:
2026-09-26 14:24:29 -03:00
parent a0cb5eb9ea
commit 8dc600edc8
+41
View File
@@ -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()