re-sputnik/pyproject.toml
Andrevich e9284193d8 Remove PyYAML and update architecture docs
Remove PyYAML dependency from pyproject.toml and all documentation.

Update architecture documentation to reflect actual implementation:
- Replace Orchestrator/SecurityGate description with engine/* module organization
- Clarify that UI drives setup flow through wizard and settings screens

Remove 'custom' routing mode from documentation (already removed in implementation).

Clean up license file and references.
2026-07-01 12:20:18 +04:00

59 lines
2.3 KiB
TOML

[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "re-sputnik"
dynamic = ["version"] # read from src/re_sputnik/__init__.py __version__ (single source)
description = "Re:Sputnik — desktop wizard to set up and manage Re:HomeProxy on an OpenWRT router over SSH"
readme = "README.md"
requires-python = ">=3.10"
license = { text = "GPL-3.0-only" } # free software; see LICENSE (GNU GPLv3)
authors = [{ name = "1andrevich" }]
keywords = ["openwrt", "homeproxy", "vpn", "byedpi", "router", "ssh"]
# Runtime deps — pure-Python where possible; cryptography (via paramiko) and
# Pillow are the only "impure" ones and both ship Windows-ARM64 wheels.
dependencies = [
"paramiko>=3.4", # SSH transport to the router (LGPL-2.1)
"customtkinter>=5.2", # modern Tk-based UI, pure Python (MIT)
"Pillow>=10.0", # CTkImage backing for icons (HPND)
"keyring>=24.0", # store router secrets in OS keychain (MIT)
"qrcode>=7.4", # Wi-Fi join QR on the overview page, pure Python (BSD), renders via Pillow
"certifi>=2024.0", # pinned CA bundle so HTTPS verifies in the frozen app (MPL-2.0)
# Linux keyring backend (Secret Service over D-Bus). Windows/macOS use their
# native backends shipped with `keyring`; only Linux needs these explicitly.
"secretstorage>=3.3; sys_platform == 'linux'", # Secret Service client (BSD)
"jeepney>=0.8; sys_platform == 'linux'", # pure-Python D-Bus (MIT)
]
[project.urls]
Homepage = "https://github.com/1andrevich/re-sputnik"
Repository = "https://github.com/1andrevich/re-sputnik"
Issues = "https://github.com/1andrevich/re-sputnik/issues"
[project.optional-dependencies]
# Build-time only: rasterize SVG icons to PNG so the shipped app carries no
# cairo/C dependency (keeps Windows-ARM64 and onefile clean).
build = [
"resvg-py>=0.3", # self-contained SVG rasterizer (Rust wheel, no native cairo)
"pyinstaller>=6.3",
]
dev = [
"pytest>=8.0",
"ruff>=0.4",
"Babel>=2.12", # i18n: extract/compile .po/.mo (no system gettext needed)
]
[project.scripts]
re-sputnik = "re_sputnik.__main__:main"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.dynamic]
version = { attr = "re_sputnik.__version__" }
[tool.ruff]
line-length = 100
target-version = "py310"