-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathpyproject.toml
More file actions
131 lines (120 loc) · 4.69 KB
/
pyproject.toml
File metadata and controls
131 lines (120 loc) · 4.69 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
131
[build-system]
requires = ["scikit-build-core>=0.11.6", "setuptools>=73.0.1"]
build-backend = "scikit_build_core.setuptools.build_meta"
[tool.scikit-build]
wheel.packages = ["src/fandango"]
# If you update this info, please also update the version in setup.py
[project]
name = "fandango-fuzzer"
version = "1.1.1"
authors = [
{ name = "José Antonio Zamudio Amaya", email = "jose.zamudio@cispa.de" },
{ name = "Marius Smytzek", email = "marius.smytzek@cispa.de" },
{ name = "Andreas Zeller", email = "andreas.zeller@cispa.de" },
]
description = "Fandango produces myriads of high-quality random inputs to test programs, giving users unprecedented control over format and shape of the inputs."
readme = "README.md"
license = { file = "LICENSE.md" }
requires-python = ">=3.11,<4.0"
classifiers = [
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Operating System :: OS Independent",
"Topic :: Scientific/Engineering",
"Topic :: Software Development :: Testing",
]
dependencies = [
"ansi_styles>=0.2.2",
"antlr4-python3-runtime>=4.13",
"astar>=0.99",
"beartype>=0.21.0,!=0.22.6,!=0.22.7",
"cachedir_tag>=0.0.3",
"dill>=0.3.7",
"exrex>=0.12.0",
"gnureadline>=8.2.13 ; platform_system != 'Windows' and implementation_name != 'pypy'",
"lxml>=5.3.2",
"packaging>=25.0",
"py010parser>=0.1.18",
"pyreadline3>=3.5.4; platform_system == 'Windows'",
"regex>=2024.11.6",
"tdigest>=0.5.2.2",
"thefuzz>=0.22",
"xdg-base-dirs>=6.0.2",
]
[project.optional-dependencies]
test = [
"Faker>=30.4.0",
"pytest>=8.3.5",
"pytest-benchmark>=5.1.0",
"pytest-cov>=4.1.0",
"pytest-html>=3.2.0",
"pytest-pythonhashseed>=2.0.0",
"pytest-rerunfailures>=11.1.2",
"pytest-timeout>=2.4.0",
"pytest-xdist>=3.7.0",
"python-dateutil>=2.9.0.post0",
"docutils>=0.20.1",
"tccbox>=2025.6.6", # We have upgraded from ==2024.7.1 (the version ISLa used) because it is not compatible with Python 3.12 anymore :(
"pandas>=2.3.3", # for evaluation and benchmarking
"numpy>=2.1.3",
]
development = [
"fandango-fuzzer[test]",
"black>=25.1.0",
"mypy>=1.16.0",
"pre-commit>=4.2.0",
"pygls>=2.0.0a4", # language server
"scikit-build-core>=0.11.6",
"speedy-antlr-tool>=1.4.3",
"types-setuptools>=73.0.1", # enable mypy to check setup.py
]
book = [
"fandango-fuzzer[development]", # need e.g. black and faker
"aiosmtpd>=1.4.6", # example server for protocol testing
"docutils>=0.20.1", # Jupyter-book needs docutils<=0.20
"ghp-import>=2.1.0",
"graphviz>=0.20.3",
"jupyter-book>=1.0.4,<2.0.0",
"pagelabels>=1.2.1",
"sphinxcontrib-mermaid>=1.0.0",
]
[project.urls]
homepage = "https://fandango-fuzzer.github.io/"
repository = "https://github.com/fandango-fuzzer/fandango/"
"Bug Tracker" = "https://github.com/fandango-fuzzer/fandango/issues"
[project.scripts]
fandango = "fandango.cli:main"
[tool.black]
line-length = 88
target-version = ['py311']
[tool.mypy]
follow_untyped_imports = true
check_untyped_defs = true
enable_error_code = ['ignore-without-code']
# See https://mypy.readthedocs.io/en/stable/config_file.html#confval-exclude
exclude = [
'evaluation/protocol_testing_eval/profuzzbench/*',
'src/fandango/language/parser/FandangoLexer\.py$',
'src/fandango/language/parser/FandangoParser\.py$',
'src/fandango/language/parser/FandangoParserVisitor\.py$',
'src/fandango/language/parser/sa_fandango\.py$',
'src/fandango/converters/antlr/ANTLRv4[^.]*\.py$',
'src/fandango/converters/antlr/LexerAdaptor[^.]*\.py$',
]
[tool.pytest.ini_options]
# -n auto: use all cores
# --timeout 300: timeout after 300 seconds
# --durations=10: show the 10 slowest tests
# --pythonhashseed=1: use a fixed hash seed
# --benchmark-max-time=10: stop after 10 seconds for each benchmark
# --benchmark-disable: disable benchmarks unless manually overwritten
# --maxschedchunk=1: max number of chunks to schedule to balance load across cores and schedule long-running tests first (see conftest.py)
addopts = "-n auto --timeout 300 --durations=10 --pythonhashseed=1 --benchmark-max-time=10 --benchmark-disable --maxschedchunk=1"
filterwarnings = [
"error", # warnings are errors
"ignore::pytest_benchmark.logger.PytestBenchmarkWarning", # benchmarks don't run with xdist, that's fine, they are run manually in the CI
"ignore::ResourceWarning", # windows keeps a socket open for some reason
]