-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
58 lines (48 loc) · 1.3 KB
/
Copy pathpyproject.toml
File metadata and controls
58 lines (48 loc) · 1.3 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
[build-system]
requires = ["setuptools>=83.0.0", "wheel"] # PYSEC-2026-3447 fixed in 83.0.0
build-backend = "setuptools.build_meta"
[project]
name = "detection-as-code"
version = "0.2.0"
description = "A schema-first detection engineering pipeline: author rules once, lint them deterministically, export to Kibana or Sigma, and get an advisory AI review before they ship."
readme = "README.md"
requires-python = ">=3.10"
license = { file = "LICENSE" }
authors = [{ name = "SentinelByte" }]
dependencies = [
"requests>=2.31",
"elasticsearch>=8.13,<9",
"PyYAML>=6.0",
]
[project.optional-dependencies]
ai = ["anthropic>=0.34"]
dev = [
"pytest>=8.0",
"pytest-cov>=5.0",
"ruff>=0.5",
"mypy>=1.10",
"bandit>=1.7",
"pip-audit>=2.7",
"types-requests",
"types-PyYAML",
"anthropic>=0.34",
]
[project.scripts]
detection-as-code = "detection_as_code.cli:main"
[project.urls]
Repository = "https://github.com/SentinelByte/detection-as-code"
[tool.setuptools.packages.find]
where = ["src"]
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
[tool.mypy]
python_version = "3.10"
ignore_missing_imports = true
disallow_untyped_defs = false
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.bandit]
exclude_dirs = ["tests"]