From 0c61067db040281c55e4f8caea9a0defc948e625 Mon Sep 17 00:00:00 2001 From: Konstantin Fickel Date: Sun, 22 Jun 2025 18:02:42 +0200 Subject: [PATCH] feat: add initial support for positioning Signed-off-by: Konstantin Fickel --- src/streamer/__init__.py | 2 +- src/streamer/localize/__init__.py | 11 +++++ src/streamer/localize/extract_datetime.py | 21 +++++++++ src/streamer/localize/localize.py | 43 +++++++++++++++++ src/streamer/localize/localized_shard.py | 10 ++++ .../localize/repostory_configuration.py | 21 +++++++++ src/streamer/parse/shard.py | 3 +- test/localize/test_extract_datetime.py | 32 +++++++++++++ test/test_localize.py | 46 +++++++++++++++++++ 9 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 src/streamer/localize/__init__.py create mode 100644 src/streamer/localize/extract_datetime.py create mode 100644 src/streamer/localize/localize.py create mode 100644 src/streamer/localize/localized_shard.py create mode 100644 src/streamer/localize/repostory_configuration.py create mode 100644 test/localize/test_extract_datetime.py create mode 100644 test/test_localize.py diff --git a/src/streamer/__init__.py b/src/streamer/__init__.py index 9c64032..0d2a52e 100644 --- a/src/streamer/__init__.py +++ b/src/streamer/__init__.py @@ -59,7 +59,7 @@ def new() -> None: parsed_content = parse_markdown_file(prelimary_path, content) final_file_name = f"{timestamp}.md" - if parsed_content.shard and len(markers := parsed_content.shard.markers): + if len(markers := parsed_content.shard.markers): final_file_name = f"{timestamp} {' '.join(markers)}.md" final_path = os.path.join(streamer_directory, final_file_name) diff --git a/src/streamer/localize/__init__.py b/src/streamer/localize/__init__.py new file mode 100644 index 0000000..3b3380e --- /dev/null +++ b/src/streamer/localize/__init__.py @@ -0,0 +1,11 @@ +from .localize import localize_stream_file +from .repostory_configuration import RepositoryConfiguration +from .localized_shard import LocalizedShard + +__all__ = [ + "Dimension", + "Marker", + "RepositoryConfiguration", + "localize_stream_file", + "LocalizedShard", +] diff --git a/src/streamer/localize/extract_datetime.py b/src/streamer/localize/extract_datetime.py new file mode 100644 index 0000000..28012d7 --- /dev/null +++ b/src/streamer/localize/extract_datetime.py @@ -0,0 +1,21 @@ +from datetime import datetime +import re +import os +from typing import Optional + + +def extract_date_from_file_name(file_name: str) -> Optional[datetime]: + FILE_NAME_REGEX = r"^(?P\d{8})(?:-(?P