Files
cbwebreader/comic/util.py
ajurna 1148f4072b **Replace Flake8 with Ruff, refactor type hints, and enhance archive processing logic**
- Removed `flake8` and `flake8-annotations` from dependencies, replaced by `ruff` for linting.
- Introduced cleaner type hinting and modern Python annotations (PEP 604 style) across multiple modules.
- Moved archive processing to a dedicated helper (`comic.archives`) for improved maintainability.
- Updated and simplified logic for archive file retrieval, directory cleaning, and user access validation.
- Improved error handling and added support for user classification restrictions in API responses.
2026-10-13 11:36:28 +01:00

33 lines
747 B
Python

from dataclasses import dataclass
from comic.models import ComicBook, Directory
@dataclass()
class Breadcrumb:
name: str = 'Home'
selector: str = ''
def generate_breadcrumbs_from_path(
directory: Directory | None = None,
book: ComicBook | None = None,
) -> list[Breadcrumb]:
output = [Breadcrumb()]
folders = directory.get_path_objects() if directory else []
for item in folders[::-1]:
output.append(
Breadcrumb(
name=item.name,
selector=item.selector
)
)
if book:
output.append(
Breadcrumb(
name=book.file_name,
selector=book.selector
)
)
return output