diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-19 17:58:05 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-19 17:58:05 +0200 |
| commit | 1ec316035ce9aa656dd18a05889856bce9e3aba3 (patch) | |
| tree | b50e97f50d485ef2a88ce36fe4d7511d9fe3e288 /packages/meshbay-node/src/meshbay_node/indexer | |
| parent | 171a3e175889ce30f201fcdf5c4632f480344ae6 (diff) | |
| parent | 95dd3dc13aecec85c2fd72410cd4d1f4ed582dfa (diff) | |
| download | meshbay-1ec316035ce9aa656dd18a05889856bce9e3aba3.tar.gz | |
Merge origin/main: the tree-wide ruff pass beside the Music reconnect work
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/indexer')
6 files changed, 24 insertions, 25 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/indexer/__init__.py b/packages/meshbay-node/src/meshbay_node/indexer/__init__.py index c92c730..a40e9f2 100644 --- a/packages/meshbay-node/src/meshbay_node/indexer/__init__.py +++ b/packages/meshbay-node/src/meshbay_node/indexer/__init__.py @@ -1,6 +1,6 @@ """Directory indexer and Mesh Group Index.""" -from .indexer import DirectoryIndexer -from .group_index import GroupIndex from .cache import IndexCache +from .group_index import GroupIndex +from .indexer import DirectoryIndexer __all__ = ["DirectoryIndexer", "GroupIndex", "IndexCache"] diff --git a/packages/meshbay-node/src/meshbay_node/indexer/enrich.py b/packages/meshbay-node/src/meshbay_node/indexer/enrich.py index b44a246..9881298 100644 --- a/packages/meshbay-node/src/meshbay_node/indexer/enrich.py +++ b/packages/meshbay-node/src/meshbay_node/indexer/enrich.py @@ -13,12 +13,12 @@ the rest asynchronously and hands the result back via a callback. import asyncio import logging +from collections.abc import Awaitable, Callable from pathlib import Path -from typing import Awaitable, Callable import blake3 - from meshbay_common.protocol import IndexEntry + from meshbay_node.indexer import title_parse from meshbay_node.indexer.indexer import MEDIA_EXTENSIONS from meshbay_node.media_cache import MediaCache @@ -173,7 +173,7 @@ async def _make_thumbnail(file_path: Path, duration: float | None) -> bytes | No ) try: stdout, _ = await asyncio.wait_for(proc.communicate(), THUMB_TIMEOUT_SECS) - except asyncio.TimeoutError: + except TimeoutError: proc.kill() await proc.wait() return None diff --git a/packages/meshbay-node/src/meshbay_node/indexer/enrich_photo.py b/packages/meshbay-node/src/meshbay_node/indexer/enrich_photo.py index 6613f85..5cacef9 100644 --- a/packages/meshbay-node/src/meshbay_node/indexer/enrich_photo.py +++ b/packages/meshbay-node/src/meshbay_node/indexer/enrich_photo.py @@ -22,13 +22,13 @@ import asyncio import datetime import io import logging +from collections.abc import Awaitable, Callable from pathlib import Path -from typing import Awaitable, Callable import blake3 +from meshbay_common.protocol import IndexEntry from PIL import ExifTags, Image, ImageOps -from meshbay_common.protocol import IndexEntry from meshbay_node.media_cache import MediaCache log = logging.getLogger(__name__) diff --git a/packages/meshbay-node/src/meshbay_node/indexer/group_index.py b/packages/meshbay-node/src/meshbay_node/indexer/group_index.py index 2340c78..9e4e780 100644 --- a/packages/meshbay-node/src/meshbay_node/indexer/group_index.py +++ b/packages/meshbay-node/src/meshbay_node/indexer/group_index.py @@ -13,29 +13,27 @@ Delta format: import base64 import logging -import os -import time -from dataclasses import dataclass, field, asdict -from pathlib import Path -from typing import Iterator +from dataclasses import asdict, dataclass, field import blake3 import msgpack import zstandard as zstd from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey - from meshbay_common.crypto import ( + pk_to_b64, sign_chunk, verify_chunk_signature, - pk_to_b64, - generate_gek, ) +from meshbay_common.protocol import IndexDelta, IndexEntry from meshbay_common.webcrypto import ( chunk_key_aes as derive_chunk_key, - encrypt_chunk_aes as encrypt_chunk, +) +from meshbay_common.webcrypto import ( decrypt_chunk_aes as decrypt_chunk, ) -from meshbay_common.protocol import IndexEntry, IndexDelta +from meshbay_common.webcrypto import ( + encrypt_chunk_aes as encrypt_chunk, +) log = logging.getLogger(__name__) @@ -171,7 +169,6 @@ class GroupIndex: ) -> "GroupIndex": """Deserialize, verify signature, and decrypt (if private).""" from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey - from meshbay_common.crypto import verify_chunk_signature envelope = msgpack.unpackb(data, raw=False) diff --git a/packages/meshbay-node/src/meshbay_node/indexer/indexer.py b/packages/meshbay-node/src/meshbay_node/indexer/indexer.py index 3fe4f3e..4b619d7 100644 --- a/packages/meshbay-node/src/meshbay_node/indexer/indexer.py +++ b/packages/meshbay-node/src/meshbay_node/indexer/indexer.py @@ -25,19 +25,20 @@ it is the only thing that recovers a missed event. import asyncio import logging import time +from collections.abc import Awaitable, Callable from concurrent.futures import ThreadPoolExecutor -from dataclasses import dataclass, field as dataclass_field +from dataclasses import dataclass +from dataclasses import field as dataclass_field from pathlib import Path -from typing import Callable, Awaitable import blake3 from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey +from meshbay_common.background import spawn +from meshbay_common.paths import find_fold_collisions, fold, long_path +from meshbay_common.protocol import IndexEntry from watchdog.events import FileSystemEvent, FileSystemEventHandler from watchdog.observers import Observer -from meshbay_common.background import spawn -from meshbay_common.paths import fold, find_fold_collisions, long_path -from meshbay_common.protocol import IndexEntry from meshbay_node.indexer.cache import IndexCache from meshbay_node.indexer.group_index import GroupIndex from meshbay_node.roots import Root, RootSet, off_disk diff --git a/packages/meshbay-node/src/meshbay_node/indexer/title_parse.py b/packages/meshbay-node/src/meshbay_node/indexer/title_parse.py index 14728ff..91bf2bd 100644 --- a/packages/meshbay-node/src/meshbay_node/indexer/title_parse.py +++ b/packages/meshbay-node/src/meshbay_node/indexer/title_parse.py @@ -19,7 +19,7 @@ directory listing; this module only parses strings it's handed. from __future__ import annotations import re -from dataclasses import dataclass, field +from dataclasses import dataclass from guessit import guessit @@ -218,7 +218,8 @@ class ParsedName: year: int | None = None season: int | None = None episode: int | None = None - confidence: bool = False # True only when display_title is set and structurally corroborated + # True only when display_title is set and structurally corroborated + confidence: bool = False def parse_movie_filename(filename: str) -> ParsedName: |