-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathpyproject.toml
More file actions
130 lines (119 loc) · 4.95 KB
/
pyproject.toml
File metadata and controls
130 lines (119 loc) · 4.95 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "seclab-taskflows"
dynamic = ["version"]
description = 'Example taskflows to use with the the GitHub Security Lab Taskflow Agent Framework (https://github.com/GitHubSecurityLab/seclab-taskflow-agent)'
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
keywords = []
authors = [
{ name = "GitHub Security Lab", email = "securitylab@github.com" },
]
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
dependencies = [
"seclab-taskflow-agent==0.3.1",
]
[project.urls]
Source = "https://github.com/GitHubSecurityLab/seclab-taskflows"
Issues = "https://github.com/GitHubSecurityLab/seclab-taskflows/issues"
[tool.hatch.version]
path = "src/seclab_taskflows/__about__.py"
[tool.hatch.envs.hatch-test]
extra-dependencies = [
"pytest-asyncio==1.3.0",
]
[tool.hatch.envs.types]
extra-dependencies = [
"mypy>=1.0.0",
]
[tool.hatch.envs.types.scripts]
check = "mypy --install-types --non-interactive {args:src/seclab_taskflows tests}"
[tool.coverage.run]
source_pkgs = ["seclab_taskflows", "tests"]
branch = true
parallel = true
omit = [
"src/seclab_taskflows/__about__.py",
]
[tool.coverage.paths]
seclab_taskflows = ["src/seclab_taskflows", "*/seclab-taskflows/src/seclab_taskflows"]
tests = ["tests", "*/seclab-taskflows/tests"]
[tool.coverage.report]
exclude_lines = [
"no cov",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
]
[tool.ruff.lint]
ignore = [
"A001", # Variable name shadows a builtin
"A002", # Argument name shadows a builtin
"ARG001", # Unused function argument
"B007", # Loop control variable not used within loop body
"B008", # Do not perform function calls in argument defaults
"BLE001", # Do not catch blind exception
"C403", # Unnecessary list comprehension - rewrite as a set comprehension
"C405", # Unnecessary list literal - rewrite as a set literal
"E713", # Test for membership should be `not in`
"EM102", # Exception must not use an f-string literal
"F401", # Imported but unused
"F541", # f-string without any placeholders
"F841", # Local variable assigned but never used
"FA100", # Missing `from __future__ import annotations`
"FA102", # Missing `from __future__ import annotations` for `typing.Optional`
"FBT001", # Boolean-typed positional argument in function definition
"FBT002", # Boolean default positional argument in function definition
"G004", # Logging statement uses f-string
"I001", # Import block is un-sorted or un-formatted
"INP001", # File is part of an implicit namespace package
"LOG015", # `root` should be used instead of logger
"N802", # Function name should be lowercase
"PERF102", # Incorrect `dict` comprehension for combining two dicts
"PERF401", # Use a list comprehension to create a transformed list
"PIE810", # Call `startswith` once with a tuple
"PLC0206", # Dict should be used instead of tuple
"PLR1730", # Replace `if` statement with `min()`
"PLR2004", # Magic value used in comparison
"PLW0602", # Using global for variable but no assignment is done
"PLW0603", # Using the global statement to update a variable is discouraged
"PLW1508", # Invalid type for environment variable default
"PLW1510", # `subprocess.run` without explicit `check` argument
"RET504", # Unnecessary assignment before `return` statement
"RET505", # Unnecessary `else` after `return` statement
"RUF003", # Comment contains ambiguous character
"RUF013", # PEP 484 prohibits implicit `Optional`
"RUF015", # Prefer `next(iter())` over single element slice
"S607", # Starting a process with a partial executable path
"SIM101", # Use a ternary expression instead of if-else-block
"SIM114", # Combine `if` branches using logical `or` operator
"SIM117", # Use a single `with` statement with multiple contexts
"SIM118", # Use `key in dict` instead of `key in dict.keys()`
"SIM300", # Yoda condition detected
"T201", # `print` found
"TID252", # Prefer absolute imports over relative imports
"TRY003", # Avoid specifying long messages outside the exception class
"TRY300", # Consider moving this statement to an `else` block
"UP032", # Use f-string instead of `format` call
"W291", # Trailing whitespace
"W293", # Blank line contains whitespace
]
[tool.ruff.lint.per-file-ignores]
"tests/*" = [
"S101", # Use of assert (standard in pytest)
"SLF001", # Private member accessed (tests legitimately access module internals)
]
[tool.pytest.ini_options]
markers = [
"xdist_group: Group tests to run on the same xdist worker",
]