66 lines
2.0 KiB
TOML
66 lines
2.0 KiB
TOML
# pyproject.toml ────────────────────────────────────────────
|
||
[build-system]
|
||
requires = ["setuptools", "wheel"]
|
||
build-backend = "setuptools.build_meta"
|
||
|
||
# ─── Project metadata (PEP 621) ────────────────────────────
|
||
[project]
|
||
name = "s1ne"
|
||
version = "3.1.500"
|
||
description = "Async media downloader with proxy rotation and scoring, XP system, Quart web UI"
|
||
readme = "README.md"
|
||
requires-python = ">=3.11"
|
||
license = { text = "MIT" }
|
||
authors = [{ name = "c", email = "cx1t@pm.me" }]
|
||
|
||
# All runtime deps – mirrors requirements.txt
|
||
dependencies = [
|
||
"quart",
|
||
"hypercorn",
|
||
"nest_asyncio",
|
||
"aiofiles",
|
||
"yt-dlp",
|
||
"fake-useragent",
|
||
"python-dotenv",
|
||
"colorama",
|
||
"ffmpeg-python",
|
||
"fasteners",
|
||
"tls-client",
|
||
"structlog",
|
||
"psycopg2-binary",
|
||
"SQLAlchemy",
|
||
"cachetools"
|
||
]
|
||
|
||
[project.optional-dependencies]
|
||
dev = [
|
||
"black",
|
||
"ruff",
|
||
"pytest",
|
||
"httpx",
|
||
"watchfiles",
|
||
]
|
||
|
||
[project.urls]
|
||
Source = "https://github.com/casperedits/s1ne"
|
||
|
||
# ─── Setuptools knobs ──────────────────────────────────────
|
||
[tool.setuptools]
|
||
include-package-data = true
|
||
|
||
[tool.setuptools.packages.find]
|
||
include = ["backend", "backend.*"] # ship only backend package tree
|
||
exclude = ["tests*", "examples*"] # optional
|
||
|
||
# NEW ───── install everything in “frontend/” as share/bloomloader/frontend/…
|
||
[tool.setuptools.data-files]
|
||
"share/s1ne/frontend" = [
|
||
"frontend/**", # recursively copy templates + static
|
||
]
|
||
|
||
# If you prefer explicit package-data instead of MANIFEST.in, you could add:
|
||
# [tool.setuptools.package-data]
|
||
# "backend.web" = ["../../frontend/templates/**/*.html", "../../frontend/static/**/*"]
|
||
#
|
||
# …but MANIFEST.in + include-package-data generally feels nicer.
|