From 94fedd30fefa25178bae30d908372b2aac9e485d Mon Sep 17 00:00:00 2001 From: Research Assistant Date: Tue, 28 Apr 2026 22:41:48 +0800 Subject: [PATCH] refactor: __init__.py as single version source; pyproject.toml reads dynamically; paperforge.json drops version field --- paperforge.json | 1 - paperforge/worker/update.py | 8 ++++---- pyproject.toml | 5 ++++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/paperforge.json b/paperforge.json index 6653dbb1..b09fadcd 100644 --- a/paperforge.json +++ b/paperforge.json @@ -1,6 +1,5 @@ { "name": "PaperForge-Lite", - "version": "1.4.4", "description": "Lightweight literature management automation for Obsidian + Zotero", "repository": "https://github.com/LLLin000/PaperForge", "update": { diff --git a/paperforge/worker/update.py b/paperforge/worker/update.py index 3e225f1c..24cb1bd4 100644 --- a/paperforge/worker/update.py +++ b/paperforge/worker/update.py @@ -303,10 +303,10 @@ def run_update(vault: Path) -> int: from importlib.metadata import version as _pkg_ver local = _pkg_ver("paperforge") except Exception: - local_cfg = vault / "paperforge.json" - if local_cfg.exists(): - local = json.loads(local_cfg.read_text(encoding="utf-8")).get("version", "unknown") - else: + try: + import paperforge + local = paperforge.__version__ + except Exception: local = "unknown" remote = _remote_version() logger.info("%s", "=" * 50) diff --git a/pyproject.toml b/pyproject.toml index 228ecddc..a2104b98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "paperforge" -version = "1.4.4" +dynamic = ["version"] description = "PaperForge — Obsidian + Zotero literature pipeline CLI" readme = "README.md" requires-python = ">=3.10" @@ -46,6 +46,9 @@ paperforge = "paperforge.cli:main" where = ["."] include = ["paperforge*"] +[tool.setuptools.dynamic] +version = {attr = "paperforge.__version__"} + [tool.setuptools.package-data] paperforge = [ "py.typed",