forked from AstuteSource/chasten
-
Notifications
You must be signed in to change notification settings - Fork 1
/
pyproject.toml
125 lines (116 loc) · 5.03 KB
/
pyproject.toml
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
117
118
119
120
121
122
123
124
125
[tool.poetry]
name = "chasten"
version = "0.2.0"
description = "Chasten checks the AST of a Python program!"
authors = ["Gregory M. Kapfhammer <[email protected]>"]
readme = "README.md"
[tool.poetry.scripts]
chasten = "chasten.main:cli"
[tool.poetry.dependencies]
python = "^3.11"
rich = "^13.4.2"
typer = {extras = ["all"], version = "^0.9.0"}
pyastgrep = "^1.2.2"
trogon = "^0.5.0"
textual = "^0.41.0"
openai = "^0.28.1"
cryptography = "^41.0.5"
frogmouth = "^0.9.0"
pydantic = "^2.0.3"
platformdirs = "^3.8.1"
pyyaml = "^6.0"
jsonschema = "^4.18.3"
thefuzz = "^0.19.0"
python-levenshtein = "^0.21.1"
flatterer = "^0.19.8"
datasette = "^0.64.3"
datasette-copyable = "^0.3.2"
datasette-export-notebook = "^1.0"
datasette-publish-fly = "^1.3"
datasette-search-all = "^1.1.1"
sqlite-utils = "^3.34"
sqlean-py = "^0.21.5.3"
datasette-sqlite-regex = "^0.2.3"
sqlite-regex = "^0.2.3"
datasette-publish-vercel = "^0.14.2"
urllib3 = "^2.0.7"
requests = "^2.31.0"
numpy = "^1.25.2"
[tool.poetry.group.dev.dependencies]
pytest = "^7.4.0"
black = "^23.3.0"
ruff = "^0.0.277"
taskipy = "^1.11.0"
mypy = "^1.4.1"
isort = "^5.12.0"
hypothesis = {extras = ["cli"], version = "^6.81.1"}
hypofuzz = "^23.7.1"
pytest-cov = "^4.1.0"
types-pyyaml = "^6.0.12.10"
types-jsonschema = "^4.17.0.9"
types-requests = "^2.31.0.10"
hypothesis-jsonschema = "^0.22.1"
pytest-clarity = "^1.0.1"
pytest-randomly = "^3.13.0"
pytest-pretty = "^1.2.0"
pytest-xdist = "^3.3.1"
[tool.pytest.ini_options]
filterwarnings = [
"error",
]
[tool.ruff]
line-length = 79
ignore = [
"E501", # do not check line length
]
select = [
"E", # pycodestyle errors
"I", # isort
"F", # Pyflakes
"PL", # pylint
"Q", # flake8-quotes
"RUF", # ruff-specific
"W", # pycodestyle warnings
"T201" # flake8-print
]
[tool.isort]
include_trailing_comma = true
force_single_line = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
line_length = 88
[tool.taskipy.variables]
coverage-test-command = "pytest -s --cov-context=test --cov-config .coveragerc --cov-report term-missing --cov-report json --cov --cov-branch"
coverage-test-command-silent = "pytest -x --show-capture=no --cov-config .coveragerc --cov-report term-missing --cov-report json --cov --cov-branch"
developer-test-command = "pytest -x -s -m 'not fuzz'"
developer-test-silent-command = "pytest -x -m 'not fuzz' --show-capture=no"
hypothesis-test-command = "pytest -x -s -m 'fuzz'"
hypothesis-test-silent-command = "pytest -x -m 'fuzz' --show-capture=no"
not-openai-test = "pytest -x -s -m 'not api'"
openai-test = "pytest -x -s -m 'api'"
[tool.taskipy.tasks]
all = "task black && task mypy && task ruff && task test"
lint = "task black && task mypy && task ruff"
black = { cmd = "black chasten tests --check", help = "Run the black checks for source code format" }
fiximports = { cmd = "isort chasten tests", help = "Run isort to fix source code imports" }
fixformat = { cmd = "black chasten tests", help = "Run the black checks for source code format" }
mypy = { cmd = "poetry run mypy chasten", help = "Run the mypy type checker for potential type errors" }
ruff = { cmd = "poetry run ruff check chasten tests", help = "Run the ruff checks using configuration in pyproject.toml" }
developer-test = { cmd = "{developer-test-command}", help = "Run developer-created test cases", use_vars = true }
developer-test-silent = { cmd = "{developer-test-silent-command}", help = "Run developer-created without output", use_vars = true }
hypothesis = { cmd = "{hypothesis-test-command}", help = "Run the hypothesis-based test cases", use_vars = true}
hypothesis-silent = { cmd = "{hypothesis-test-silent-command}", help = "Run the hypothesis-based test cases", use_vars = true }
test = { cmd = "pytest -x -s -vv -n auto", help = "Run the pytest test suite using order randomization and test distribution" }
test-not-randomly = { cmd = "pytest -x -s -vv -p no:randomly", help = "Run the pytest test suite without order randomization" }
test-not-xdist = { cmd = "pytest -x -s -vv -p no:xdist", help = "Run the pytest test suite without order randomization" }
test-silent = { cmd = "pytest -x --show-capture=no -n auto", help = "Run the pytest test suite without showing output" }
test-silent-not-randomly = { cmd = "pytest -x --show-capture=no -p no:randomly", help = "Run the pytest test suite without showing output and order randomization" }
test-silent-not-xdist = { cmd = "pytest -x --show-capture=no -p no:xdist", help = "Run the pytest test suite without showing output and test distribution" }
test-api = { cmd = "{openai-test}", help = "Run openai powered test cases", use_vars = true }
not-openai-test = { cmd = "{not-openai-test}", help = "Run openai powered test cases", use_vars = true }
test-coverage = { cmd = "{coverage-test-command}", help = "Run coverage monitoring for the test suite", use_vars = true }
test-coverage-silent = { cmd = "{coverage-test-command-silent}", help = "Run coverage monitoring for tests without output", use_vars = true }
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"