forked from pixee/codemodder-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
128 lines (116 loc) · 3.2 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
126
127
128
[build-system]
requires = ["setuptools", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"
[project]
authors = [{name = "Pixee", email = "[email protected]"}]
dynamic = ["version"]
name = "codemodder"
requires-python = ">=3.10.0"
readme = "README.md"
license = {file = "LICENSE"}
description = "A pluggable framework for building codemods in Python"
dependencies = [
"GitPython<4",
"isort>=5.12,<5.14",
"libcst>=1.1,<1.5",
"packaging>=23.2,<25.0",
"pydantic~=2.8.0",
"pylint>=3.2,<3.3",
"python-json-logger~=2.0.0",
"PyYAML~=6.0.0",
"semgrep>=1.78,<1.79",
"toml~=0.10.2",
"tomlkit~=0.12.0",
"wrapt~=1.16.0",
"chardet~=5.2.0",
"setuptools~=70.0",
]
keywords = ["codemod", "codemods", "security", "fix", "fixes"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.10",
"Topic :: Software Development",
"Topic :: Security",
]
[project.urls]
Homepage = "https://codemodder.io"
Repository = "https://github.com/pixee/codemodder-python"
[project.scripts]
codemodder = "codemodder.codemodder:main"
generate-docs = 'codemodder.scripts.generate_docs:main'
get-hashes = 'codemodder.scripts.get_hashes:main'
[project.optional-dependencies]
test = [
"coverage>=7.3,<7.6",
"coverage-threshold~=0.4",
"defusedxml==0.7.1",
"types-defusedxml==0.7.0.20240218",
"flask-wtf==1.2.1",
"types-WTForms==3.1.0.20240425",
"Flask<4",
"httpx~=0.27",
"Jinja2~=3.1.2",
"jsonschema~=4.22.0",
"lxml>=4.9.3,<5.3.0",
"openai>=1.35,<1.36",
"mock==5.1.*",
"pre-commit<4",
"Pyjwt~=2.8.0",
"pytest>=8.2,<9",
"pytest-asyncio~=0.23",
"pytest-cov>=4.1,<5.1",
"pytest-mock>=3.12,<3.15",
"pytest-randomly==3.*",
"pytest-xdist==3.*",
"requests~=2.32.1",
"security>=1.2,<1.4",
"types-mock==5.1.*",
"django>=4,<6",
"numpy~=2.0.0",
"flask_wtf~=1.2.0",
"fickling~=0.1.0,>=0.1.3",
"graphql-server~=3.0.0b7",
]
complexity = [
"radon==6.0.*",
"xenon==0.9.*",
]
openai = [
"openai>=1.35,<1.36",
]
all = [
"codemodder[test]",
"codemodder[complexity]",
]
[project.entry-points.codemods]
core = "core_codemods:registry"
sonar = "core_codemods:sonar_registry"
defectdojo = "core_codemods:defectdojo_registry"
[project.entry-points.sarif_detectors]
"semgrep" = "codemodder.semgrep:SemgrepSarifToolDetector"
"codeql" = "codemodder.codeql:CodeQLSarifToolDetector"
[tool.setuptools]
[tool.setuptools.package-data]
"core_codemods.semgrep" = ["src/core_codemods/semgrep/*.yaml"]
"core_codemods.docs" = ["src/core_codemods/docs/*.md"]
[tool.setuptools_scm]
version_file = "src/codemodder/_version.py"
[tool.pytest.ini_options]
# Ignore integration tests and ci tests by default
testpaths = ["tests"]
[tool.black]
extend-exclude = '''
/(
tests/samples |
src/codemodder/_version.py
)/
'''
[coverage-threshold]
line_coverage_min = 93
[coverage-threshold.modules."src/core_codemods/"]
# Detect if a codemod is missing unit or integration tests
file_line_coverage_min = 50