From 1221f43cafc214cfd8aade351a6bd7371211cfb7 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Sun, 6 Jul 2025 00:35:04 -0400 Subject: [PATCH] formatted imports --- src/zona/builder.py | 38 ++++++++++++++++++++------------- src/zona/cli.py | 12 +++++++---- src/zona/config.py | 10 ++++++--- src/zona/layout.py | 17 ++++++++++----- src/zona/log.py | 2 +- src/zona/markdown.py | 49 ++++++++++++++++++++----------------------- src/zona/metadata.py | 7 ++++--- src/zona/models.py | 4 ++-- src/zona/server.py | 19 +++++++++-------- src/zona/templates.py | 4 +++- src/zona/util.py | 19 ++++++++++------- tests/test_builder.py | 8 ++++--- tests/test_util.py | 1 + 13 files changed, 110 insertions(+), 80 deletions(-) diff --git a/src/zona/builder.py b/src/zona/builder.py index ac1a5e7..8f7a3dc 100644 --- a/src/zona/builder.py +++ b/src/zona/builder.py @@ -1,14 +1,14 @@ from datetime import date -from zona.models import Item, ItemType -from zona.metadata import parse_metadata -from zona import markdown as zmd -from zona.templates import Templater -from zona.layout import Layout, discover_layout -from zona.config import ZonaConfig -from zona import util from pathlib import Path -from rich import print + +from zona import markdown as zmd +from zona import util +from zona.config import ZonaConfig +from zona.layout import Layout, discover_layout from zona.log import get_logger +from zona.metadata import parse_metadata +from zona.models import Item, ItemType +from zona.templates import Templater logger = get_logger() @@ -47,7 +47,9 @@ class ZonaBuilder: destination=destination, url=str(destination.relative_to(layout.output)), ) - if path.name.endswith(".md") and not path.is_relative_to( + if path.name.endswith( + ".md" + ) and not path.is_relative_to( layout.root / "content" / "static" ): logger.debug( @@ -59,7 +61,7 @@ class ZonaBuilder: and not self.config.build.include_drafts ): continue - if item.metadata.post == True: + if item.metadata.post: item.post = True elif item.metadata.post is None: # check if in posts dir? @@ -70,11 +72,13 @@ class ZonaBuilder: item.copy = False name = destination.stem if name == "index": - item.destination = item.destination.with_suffix( - ".html" + item.destination = ( + item.destination.with_suffix(".html") ) else: - relative = path.relative_to(base).with_suffix("") + relative = path.relative_to(base).with_suffix( + "" + ) name = relative.stem item.destination = ( layout.output @@ -86,7 +90,9 @@ class ZonaBuilder: layout.output ) item.url = ( - "" if rel_url == Path(".") else rel_url.as_posix() + "" + if rel_url == Path(".") + else rel_url.as_posix() ) items.append(item) self.items = items @@ -112,7 +118,9 @@ class ZonaBuilder: # write code highlighting stylesheet if self.config.markdown.syntax_highlighting.enabled: pygments_style = zmd.get_style_defs(self.config) - pygments_path = self.layout.output / "static" / "pygments.css" + pygments_path = ( + self.layout.output / "static" / "pygments.css" + ) util.ensure_parents(pygments_path) pygments_path.write_text(pygments_style) for item in self.item_map.values(): diff --git a/src/zona/cli.py b/src/zona/cli.py index 8ecaaf1..e928273 100644 --- a/src/zona/cli.py +++ b/src/zona/cli.py @@ -1,10 +1,12 @@ -from typing import Annotated -import typer from pathlib import Path +from typing import Annotated + +import typer + from zona import server from zona.builder import ZonaBuilder from zona.layout import initialize_site -from zona.log import setup_logging, get_logger +from zona.log import get_logger, setup_logging app = typer.Typer() logger = get_logger() @@ -57,7 +59,9 @@ def build( """ if draft: print("Option override: including drafts.") - builder = ZonaBuilder(cli_root=root, cli_output=output, draft=draft) + builder = ZonaBuilder( + cli_root=root, cli_output=output, draft=draft + ) builder.build() diff --git a/src/zona/config.py b/src/zona/config.py index 5caf860..62b2bef 100644 --- a/src/zona/config.py +++ b/src/zona/config.py @@ -1,7 +1,9 @@ from dataclasses import dataclass, field -from dacite import from_dict -import yaml from pathlib import Path + +import yaml +from dacite import from_dict + from zona.log import get_logger logger = get_logger() @@ -57,7 +59,9 @@ IGNORELIST = [".marksman.toml"] class ZonaConfig: base_url: str = "/" # dictionary where key is name, value is url - sitemap: SitemapConfig = field(default_factory=lambda: {"Home": "/"}) + sitemap: SitemapConfig = field( + default_factory=lambda: {"Home": "/"} + ) # list of globs relative to content that should be ignored ignore: list[str] = field(default_factory=lambda: IGNORELIST) markdown: MarkdownConfig = field(default_factory=MarkdownConfig) diff --git a/src/zona/layout.py b/src/zona/layout.py index 688a902..3526c4e 100644 --- a/src/zona/layout.py +++ b/src/zona/layout.py @@ -1,10 +1,12 @@ +from dataclasses import asdict, dataclass from pathlib import Path + import typer -from dataclasses import dataclass, asdict -from zona.config import ZonaConfig, find_config -from zona import util, log import yaml +from zona import log, util +from zona.config import ZonaConfig, find_config + logger = log.get_logger() @@ -17,13 +19,18 @@ class Layout: @classmethod def from_input( - cls, root: Path, output: Path | None = None, validate: bool = True + cls, + root: Path, + output: Path | None = None, + validate: bool = True, ) -> "Layout": layout = cls( root=root.resolve(), content=(root / "content").resolve(), templates=(root / "templates").resolve(), - output=(root / "public").resolve() if not output else output, + output=(root / "public").resolve() + if not output + else output, ) if validate: logger.debug("Validating site layout...") diff --git a/src/zona/log.py b/src/zona/log.py index 129a36c..545ec49 100644 --- a/src/zona/log.py +++ b/src/zona/log.py @@ -1,5 +1,5 @@ import logging -from typing import Literal + from rich.logging import RichHandler _LOGGER_NAME = "zona" diff --git a/src/zona/markdown.py b/src/zona/markdown.py index 9e5341c..b829be6 100644 --- a/src/zona/markdown.py +++ b/src/zona/markdown.py @@ -1,33 +1,30 @@ -from collections.abc import Sequence -from rich import print -from markdown import Markdown -from typing import Any, override -from pathlib import Path - -from pygments.formatters.html import HtmlFormatter -from zona.config import ZonaConfig -from zona.layout import Layout - -from markdown.treeprocessors import Treeprocessor -from markdown.extensions.codehilite import CodeHiliteExtension -from markdown.extensions.smarty import SmartyExtension -from markdown.extensions.sane_lists import SaneListExtension -from pymdownx.inlinehilite import InlineHiliteExtension -from pymdownx.escapeall import EscapeAllExtension -from pymdownx.betterem import BetterEmExtension -from pymdownx.superfences import SuperFencesCodeExtension -from markdown.extensions.footnotes import FootnoteExtension -from markdown.extensions.attr_list import AttrListExtension -from markdown.extensions.def_list import DefListExtension -from markdown.extensions.tables import TableExtension -from markdown.extensions.abbr import AbbrExtension -from markdown.extensions.md_in_html import MarkdownInHtmlExtension - import xml.etree.ElementTree as etree +from collections.abc import Sequence +from pathlib import Path +from typing import Any, override + +from markdown import Markdown +from markdown.extensions.abbr import AbbrExtension +from markdown.extensions.attr_list import AttrListExtension +from markdown.extensions.codehilite import CodeHiliteExtension +from markdown.extensions.def_list import DefListExtension +from markdown.extensions.footnotes import FootnoteExtension +from markdown.extensions.md_in_html import MarkdownInHtmlExtension +from markdown.extensions.sane_lists import SaneListExtension +from markdown.extensions.smarty import SmartyExtension +from markdown.extensions.tables import TableExtension +from markdown.treeprocessors import Treeprocessor +from pygments.formatters.html import HtmlFormatter +from pymdownx.betterem import BetterEmExtension +from pymdownx.escapeall import EscapeAllExtension +from pymdownx.inlinehilite import InlineHiliteExtension +from pymdownx.superfences import SuperFencesCodeExtension from zona import util -from zona.models import Item +from zona.config import ZonaConfig +from zona.layout import Layout from zona.log import get_logger +from zona.models import Item logger = get_logger() diff --git a/src/zona/metadata.py b/src/zona/metadata.py index 230ca2a..63fc43f 100644 --- a/src/zona/metadata.py +++ b/src/zona/metadata.py @@ -1,14 +1,15 @@ from dataclasses import dataclass -from pathlib import Path from datetime import date -from dateutil import parser as date_parser +from pathlib import Path +import frontmatter from dacite.config import Config from dacite.core import from_dict from dacite.exceptions import DaciteError +from dateutil import parser as date_parser from yaml import YAMLError + import zona.util -import frontmatter @dataclass diff --git a/src/zona/models.py b/src/zona/models.py index 785f02f..2e7721c 100644 --- a/src/zona/models.py +++ b/src/zona/models.py @@ -1,6 +1,6 @@ -from pathlib import Path -from enum import Enum from dataclasses import dataclass +from enum import Enum +from pathlib import Path from zona.metadata import Metadata diff --git a/src/zona/server.py b/src/zona/server.py index e2b266e..dbf5c82 100644 --- a/src/zona/server.py +++ b/src/zona/server.py @@ -1,15 +1,16 @@ -import signal import os +import signal import sys -from rich import print -from types import FrameType -from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler import threading -from typing import override -from watchdog.observers import Observer -from zona.builder import ZonaBuilder -from watchdog.events import FileSystemEventHandler, FileSystemEvent +from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer from pathlib import Path +from types import FrameType +from typing import override + +from watchdog.events import FileSystemEvent, FileSystemEventHandler +from watchdog.observers import Observer + +from zona.builder import ZonaBuilder from zona.log import get_logger logger = get_logger() @@ -64,7 +65,7 @@ def run_http_server(dir: Path, host: str = "localhost", port: int = 8000): server_address=(host, port), RequestHandlerClass=handler ) logger.info(f"Serving {dir} at http://{host}:{port}") - logger.info(f"Exit with ") + logger.info("Exit with ") httpd.serve_forever() diff --git a/src/zona/templates.py b/src/zona/templates.py index ea7df47..872762c 100644 --- a/src/zona/templates.py +++ b/src/zona/templates.py @@ -1,9 +1,11 @@ from pathlib import Path from typing import Literal + from jinja2 import Environment, FileSystemLoader, select_autoescape + from zona.config import ZonaConfig -from zona.models import Item from zona.markdown import md_to_html +from zona.models import Item def get_header(template_dir: Path) -> str | None: diff --git a/src/zona/util.py b/src/zona/util.py index c3caaed..7e80500 100644 --- a/src/zona/util.py +++ b/src/zona/util.py @@ -1,11 +1,10 @@ -from importlib.resources.abc import Traversable -from typing import NamedTuple -from rich import print -from importlib import resources import fnmatch +import string +from importlib import resources +from importlib.resources.abc import Traversable from pathlib import Path from shutil import copy2 -import string +from typing import NamedTuple class ZonaResource(NamedTuple): @@ -26,7 +25,8 @@ def get_resources(subdir: str) -> list[ZonaResource]: else: out.append( ZonaResource( - name=f"{subdir}/{path}", contents=item.read_text() + name=f"{subdir}/{path}", + contents=item.read_text(), ) ) @@ -65,8 +65,11 @@ def normalize_url(url: str) -> str: return url -def should_ignore(path: Path, patterns: list[str], base: Path) -> bool: +def should_ignore( + path: Path, patterns: list[str], base: Path +) -> bool: rel_path = path.relative_to(base) return any( - fnmatch.fnmatch(str(rel_path), pattern) for pattern in patterns + fnmatch.fnmatch(str(rel_path), pattern) + for pattern in patterns ) diff --git a/tests/test_builder.py b/tests/test_builder.py index 61e148e..bd0c9b7 100644 --- a/tests/test_builder.py +++ b/tests/test_builder.py @@ -1,9 +1,11 @@ -import pytest from datetime import date -from zona.metadata import Metadata -from zona.builder import split_metadata, discover, build from pathlib import Path +import pytest + +from zona.builder import build, discover, split_metadata +from zona.metadata import Metadata + def test_split_metadata(tmp_path: Path): content = """--- diff --git a/tests/test_util.py b/tests/test_util.py index 2837df4..2c1a361 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -1,4 +1,5 @@ from pathlib import Path + from zona import util