Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
78 lines (70 loc) · 2.6 KB
/
Copy pathpyproject.toml
File metadata and controls
78 lines (70 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[project]
name = "supabase-backup-tool"
version = "1.1.0"
description = "Secure, automated Supabase PostgreSQL backup — CLI & GUI (Backup Engine + Manager)"
readme = "README.md"
license = { text = "MIT" }
authors = [{ name = "Double77" }]
requires-python = ">=3.14"
dependencies = [
"python-dotenv>=1.2.1",
"inquirer>=3.4.1",
"pyzipper>=0.3.6",
"nicegui>=3.4.1",
"pywebview>=6.1",
"pyinstaller>=6.17.0",
]
[dependency-groups]
dev = [
"ruff>=0.15.0",
"ty>=0.0.75",
]
# ── Ruff ──────────────────────────────────────────────────────────
[tool.ruff]
target-version = "py314"
line-length = 120
exclude = [
"build",
"dist",
"SupabaseBackupTool",
".venv",
"__pycache__",
"*.spec",
"backups",
"envs",
".git",
]
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B", "C4", "SIM", "RUF"]
ignore = [
"S603", # subprocess without shell — false positive for pg_dump
"S607", # start process with partial path — pg_dump is intentional
"S602", # shell=True — not used, but ignore for asyncio.create_subprocess_shell
"S404", # import subprocess — required for backup tool
"S506", # unsafe yaml load — not used
"E501", # line too long — e.g. ASCII art, pg_dump args; formatter handles most cases
"W291", # trailing whitespace — ASCII art intentional alignment
"W293", # blank line contains whitespace — template/CSS blocks
"SIM105", # suppress contextlib.suppress — readability preference
"SIM117", # single with multiple contexts — nested NiceGUI dialogs more readable
"RUF005", # iterable unpacking — concatenation is clearer for pg_dump args
"B007", # unused loop var `dirs` — required by os.walk unpacking
"B008", # function call in argument defaults — not relevant here
"C408", # unnecessary collection call — keep explicit
]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
# ── Ty (Astral type checker) ─────────────────────────────────────
[tool.ty.environment]
python-version = "3.14"
[tool.ty.rules]
# Start permissive; tighten incrementally
unresolved-reference = "warn"
unused-ignore-comment = "warn"
deprecated = "ignore"
# ── uv ────────────────────────────────────────────────────────────
[tool.uv]
managed = true