lllin000_PaperForge/pyproject.toml
Research Assistant 7cccf4eefc refactor(17-dead-code-precommit): remove delegation wrappers and dead code, run ruff cleanup
- Remove def load_vault_config delegation wrappers from all 7 worker modules
- Add from paperforge.config import load_vault_config, paperforge_paths at module level
- Remove unused system_dir/resources_dir/control_dir extraction in pipeline_paths
- Fix sync.py intra-function imports (run_selection_sync, run_index_refresh)
- Fix repair.py import path for _resolve_formal_note_path (direct from _utils)
- Add ruff and pre-commit as test dependencies in pyproject.toml
- Configure per-file ruff ignores for pre-existing issues
- Run ruff check --fix + ruff format (353 + 58 issues auto-fixed)
- All 203 tests pass, ruff check zero warnings
2026-04-27 17:40:47 +08:00

83 lines
2.5 KiB
TOML

[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"
[project]
name = "paperforge"
version = "1.0.0"
description = "PaperForge Lite — Obsidian + Zotero literature pipeline CLI"
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT"}
authors = [
{name = "PaperForge Contributors"}
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Information Analysis",
]
dependencies = [
"requests>=2.31.0",
"pymupdf>=1.23.0",
"pillow>=10.0.0",
"tenacity>=8.2.0",
"textual>=0.47.0",
"tqdm>=4.66.0",
]
[project.optional-dependencies]
test = [
"pytest>=7.4.0",
"ruff>=0.4.0",
]
[project.scripts]
paperforge = "paperforge.cli:main"
[tool.setuptools.packages.find]
where = ["."]
include = ["paperforge*"]
[tool.setuptools.package-data]
paperforge = ["py.typed"]
[tool.pytest.ini_options]
addopts = "--ignore=tests/sandbox/00_TestVault/"
[tool.ruff]
target-version = "py310"
line-length = 120
exclude = ["paperforge/skills"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
ignore = ["B904"] # raise-within-try is intentional in many worker error paths
[tool.ruff.lint.per-file-ignores]
# Pre-existing: undefined names in update.py (GITHUB_REPO etc. defined below function defs)
"paperforge/worker/update.py" = ["F821"]
# Pre-existing: undefined names in sync.py (run_search_sources, run_ingest_candidates)
"paperforge/worker/sync.py" = ["F821", "B007", "E501"]
# Pre-existing: style suggestions not part of dead code removal
"paperforge/worker/ocr.py" = ["SIM102", "E501", "B905"]
"paperforge/worker/repair.py" = ["SIM102"]
"paperforge/ocr_diagnostics.py" = ["E501", "SIM105"]
# Pre-existing: importability check in status.py uses try/except imports
"paperforge/worker/status.py" = ["F401"]
# Pre-existing: test files use patterns incompatible with strict ruff rules
"tests/**" = ["E501", "E402", "SIM117", "SIM108", "F841", "B007", "SIM103", "SIM105", "SIM222", "B905"]
# Pre-existing: scripts with formatting not part of this cleanup
"scripts/consistency_audit.py" = ["SIM110", "SIM102"]
"scripts/welcome.py" = ["E501"]
"scripts/validate_setup.py" = ["E501"]
[tool.ruff.format]
quote-style = "double"