Compare commits

...

3 commits

Author SHA1 Message Date
f3f2889e44 feat: Switch to Python logging 2025-01-10 18:53:57 +01:00
2016173123 format: Change to consistent use of double-quotes 2025-01-10 18:28:56 +01:00
d7ef7a122a
fix: Change utils import to named import
Co-authored-by: Ninaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <nina@l1f.de>
2025-01-10 18:28:01 +01:00
11 changed files with 51 additions and 34 deletions

View file

@ -143,10 +143,11 @@ that modifies the list of available modules:
```Python
from grimoiressg.modules import available_modules
from grimoiressg.utils import logger
def test(data, context):
print("This is test module.")
logger.info("This is test module.")
available_modules["test"] = test

View file

@ -1,8 +1,9 @@
from grimoiressg.modules import available_modules
from grimoiressg.utils import logger
def test(data, context):
print("This is test module.")
logger.info("This is test module.")
available_modules["test"] = test

View file

@ -1,14 +1,16 @@
import logging
from grimoiressg.arguments import parse_arguments_to_initial_context
from grimoiressg.config import read_config
from grimoiressg.content_files import recursively_read_files
from grimoiressg.modules import available_modules
from grimoiressg.utils import logger
def apply_modules(data, config, context):
for module in config.get("enabled_modules", []):
print(f"Applying module {module}...")
logger.info("Applying module %s...", module)
available_modules[module](data, context)
print("")
def main():
@ -18,7 +20,8 @@ def main():
data = recursively_read_files(context)
apply_modules(data, config, context)
print("Done.")
logger.info("Done.")
logging.shutdown()
if __name__ == "__main__":

View file

@ -1,5 +1,7 @@
import argparse
from grimoiressg.utils import logger
def parse_arguments_to_initial_context():
parser = argparse.ArgumentParser(
@ -9,7 +11,7 @@ def parse_arguments_to_initial_context():
The rest of the flags is used to customize the behavior.
'''
)
parser.add_argument("content_file", nargs='+', help="one or more content files")
parser.add_argument("content_file", nargs="+", help="one or more content files")
parser.add_argument("-o", "--output", default="./output/", help="the output directory (default: ./output/)")
parser.add_argument("-c", "--config", help="the config file to use")
@ -21,11 +23,10 @@ def parse_arguments_to_initial_context():
"filenames": args.content_file
}
print(f"Output directory: {context['output_dir']}")
print(f"Config file: {context['config_file']}")
print("Content files:")
logger.debug("Output directory: %s", context['output_dir'])
logger.debug("Config file: %s", context['config_file'])
logger.debug("Content files:")
for filename in context["filenames"]:
print(f" - {filename}")
print()
logger.debug(" - %s", filename)
return context

View file

@ -1,7 +1,10 @@
import logging
import yaml
from yaml import Loader
from grimoiressg.modules import available_modules, load_external_module
from grimoiressg.utils import logger
def default_config():
@ -18,24 +21,23 @@ def read_config(context):
config_file = context.get("config_file", None)
if not config_file:
print("No config file given; using default config")
logger.info("No config file given; using default config")
config = default_config()
else:
print("Loading config file...")
logger.info("Loading config file...")
with open(config_file, "r") as file:
config = yaml.load(file, Loader) or {}
for module in config.get("load_modules", []):
print(f" Loading external module {module}")
logger.debug(" Loading external module %s", module)
load_external_module(module)
print()
print("Enabled modules:")
logger.debug("Enabled modules:")
for module in config.get("enabled_modules", []):
print(f" - {module}")
logger.debug(" - %s", module)
if module not in available_modules:
print(f" ERROR: Module does not exist")
logger.critical("Module does not exist: %s", module)
logging.shutdown()
exit(1)
print()
return config

View file

@ -3,11 +3,11 @@ import os
import yaml
from yaml import Loader
from grimoiressg.utils.files import for_each_glob, to_relative
from grimoiressg.utils import logger, for_each_glob, to_relative
def handle_file(filename):
print(f" Reading {to_relative(filename)}...")
logger.debug(" Reading %s...", to_relative(filename))
with open(filename, "r") as file:
data = yaml.load(file, Loader)
@ -28,12 +28,11 @@ def handle_file(filename):
def recursively_read_files(context):
data = []
print("Reading content files...")
logger.info("Reading content files...")
for filename in context["filenames"]:
data.extend(for_each_glob(filename, handle_file))
print(f"Read {len(data)} files in total.")
print()
logger.info(f"Read %d files in total.", len(data))
return data

View file

@ -1,8 +1,10 @@
import markdown
from grimoiressg.utils import logger
def compile_markdown(data, context):
for entry in data:
if "markdown" in entry:
print(f"Compiling markdown for {entry['relative_filename']}...")
logger.debug("Compiling markdown for %s...", entry['relative_filename'])
entry["markdown_compiled"] = markdown.markdown(entry["markdown"])

View file

@ -1,3 +1,5 @@
from grimoiressg.utils import logger
def extract_tags(data, context):
tags = {}
@ -9,10 +11,10 @@ def extract_tags(data, context):
tags[tag] = entry_list
if tags:
print("Found tags:")
logger.debug("Found tags:")
for tag in tags.keys():
print(f" - {tag} ({len(tags[tag])} files)")
logger.debug(" - %s (%d files)", tag, len(tags[tag]))
else:
print("No tags found.")
logger.debug("No tags found.")
context["tags"] = tags

View file

@ -1,9 +1,9 @@
import os
from grimoiressg.utils import to_relative
from jinja2 import Environment, FileSystemLoader
from grimoiressg.utils import to_relative, logger
jinja_env = Environment(
loader=FileSystemLoader("/")
)
@ -16,7 +16,7 @@ def render_templates(data, context):
if "template" in entry:
template_path = os.path.realpath(os.path.dirname(entry["filename"]) + "/" + entry["template"])
template_dir = os.path.dirname(template_path)
print(f"Rendering template for {entry['relative_filename']}...")
logger.debug("Rendering template for %s...", entry['relative_filename'])
template = jinja_env.get_template(template_path)
entry["rendered"] = template.render(
**context,
@ -28,9 +28,9 @@ def render_templates(data, context):
if "rendered" in entry and "output" in entry:
files_written += 1
filename = os.path.realpath(context["output_dir"] + "/" + entry["output"])
print(f" writing to {to_relative(filename)}")
logger.debug(" writing to %s", to_relative(filename))
os.makedirs(os.path.dirname(filename), exist_ok=True)
with open(filename, "w") as file:
file.write(entry["rendered"])
print(f"{files_written} rendered")
logger.debug("%d rendered", files_written)

View file

@ -1 +1,2 @@
from .files import to_relative
from .files import to_relative as to_relative, for_each_glob as for_each_glob
from .logger import logger as logger

View file

@ -0,0 +1,5 @@
import logging
import sys
logging.basicConfig(stream=sys.stdout, level=logging.INFO, format="%(asctime)s %(levelname)-9s: %(message)s")
logger = logging.getLogger("grimoire")