-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
116 lines (82 loc) · 2.92 KB
/
pyproject.toml
File metadata and controls
116 lines (82 loc) · 2.92 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
# ---------------------------------------------------------------------------
# Project Metadata
# ---------------------------------------------------------------------------
[project]
name = "sudoku-ai-solver-pro"
version = "0.1.0"
description = "Advanced Sudoku Solver using CSP, Heuristics, and Dancing Links (DLX)"
authors = [
{ name = "kennz_psix", email = "khoigaming2102pro@gmail.com }
]
readme = "README.md"
requires-python = ">=3.9"
keywords = ["sudoku", "ai", "csp", "algorithm", "dlx", "solver"]
license = { text = "MIT" }
dependencies = [
"fastapi>=0.110.0",
"uvicorn>=0.29.0"
]
# ---------------------------------------------------------------------------
# Optional Dependencies
# ---------------------------------------------------------------------------
[project.optional-dependencies]
dev = [
"pytest>=8.0.0",
"black>=24.0.0",
"ruff>=0.3.0",
"mypy>=1.8.0"
]
viz = [
"matplotlib>=3.8.0"
]
# ---------------------------------------------------------------------------
# CLI Entry Point
# ---------------------------------------------------------------------------
[project.scripts]
sudoku-solver = "main:main"
# ---------------------------------------------------------------------------
# Setuptools Config
# ---------------------------------------------------------------------------
[tool.setuptools.packages.find]
where = ["."]
include = ["solver*", "heuristics*", "utils*"]
# ---------------------------------------------------------------------------
# Black (Formatter)
# ---------------------------------------------------------------------------
[tool.black]
line-length = 88
target-version = ["py39"]
skip-string-normalization = false
# ---------------------------------------------------------------------------
# Ruff (Linter)
# ---------------------------------------------------------------------------
[tool.ruff]
line-length = 88
target-version = "py39"
[tool.ruff.lint]
select = ["E", "F", "W", "I"]
ignore = ["E501"]
# ---------------------------------------------------------------------------
# Mypy (Type Checking)
# ---------------------------------------------------------------------------
[tool.mypy]
python_version = "3.9"
strict = true
ignore_missing_imports = true
# ---------------------------------------------------------------------------
# Pytest
# ---------------------------------------------------------------------------
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-q"
# ---------------------------------------------------------------------------
# Coverage (optional)
# ---------------------------------------------------------------------------
[tool.coverage.run]
branch = true
[tool.coverage.report]
show_missing = true
skip_covered = true