mirror of
https://github.com/1andrevich/re-sputnik.git
synced 2026-08-23 07:37:13 +00:00
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.
59 lines
2.3 KiB
TOML
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"
|