forked from cocotb/cocotb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
139 lines (121 loc) · 3.57 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
129
130
131
132
133
134
135
136
137
138
139
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[tool.towncrier]
package = "cocotb"
directory = "docs/source/newsfragments"
filename = "docs/source/release_notes.rst"
issue_format = ":pr:`{issue}`"
# The first underline is used for the version/date header,
# the second underline for the subcategories (like 'Features')
underlines = ["=", "-"]
all_bullets = false
[[tool.towncrier.type]]
directory = "feature"
name = "Features"
showcontent = true
[[tool.towncrier.type]]
directory = "bugfix"
name = "Bugfixes"
showcontent = true
[[tool.towncrier.type]]
directory = "doc"
name = "Improved Documentation"
showcontent = true
[[tool.towncrier.type]]
directory = "removal"
name = "Deprecations and Removals"
showcontent = true
[[tool.towncrier.type]]
directory = "change"
name = "Changes"
showcontent = true
[tool.ruff]
extend-exclude = [
"docs/source/conf.py",
"makefiles",
"venv",
"_vendor",
".nox/",
]
target-version = "py37"
[tool.ruff.lint]
extend-select = [
"I", # isort
"UP", # pyupgrade
"PL", # pylint
]
ignore = [
# ambiguous variable name (preference)
"E741",
# line too long (preference)
"E501",
# whitespace before ':' (black)
"E203",
"PLR0912", # Too many branches (>12) (preference)
"PLR0913", # Too many arguments to function call (>5) (preference)
"PLR0915", # Too many statements (>50) (preference)
"PLR2004", # Magic value used in comparison (preference)
"PLW0603", # Using the global statement (preference)
]
[tool.ruff.lint.per-file-ignores]
# necessary because of how file is included into documentation
"examples/doc_examples/quickstart/test_my_design.py" = [
"E402",
"F811",
]
[tool.cibuildwheel]
# Build for supported platforms only.
# Even though we only support 64 bit operating systems, we still support 32 bit
# userspace applications (Python and simulators) on Windows and Linux.
#
# - CPython on Linux i686 and x86_64 with glibc
# - CPython on Windows i686 and x86_64
# - CPython on macOS x86_64
build = "cp*-manylinux_x86_64 cp*-manylinux_i686 cp*-win_amd64 cp*-win32 cp*-macosx_x86_64"
# By default, build on manylinux2014 for compatibility with CentOS/RHEL 7+ (once
# the user updates Python) and Ubuntu 20.04+ (with system Python).
manylinux-x86_64-image = "manylinux2014"
manylinux-i686-image = "manylinux2014"
[[tool.cibuildwheel.overrides]]
# Build CPython 3.6 wheels on manylinux1 to support Ubuntu 18.04, CentOS/RHEL 7
# and CentOS/RHEL 8 with their default Python 3.6/pip 9 installation.
select = "cp36-*"
manylinux-x86_64-image = "manylinux1"
manylinux-i686-image = "manylinux1"
[tool.pytest.ini_options]
# Note: Do *not* add files within the cocotb/ tree here. Add them to the
# noxfile instead.
testpaths = [
"tests/pytest",
]
# Ensure that all markers used in pytests are declared (in here).
addopts = "--strict-markers"
markers = [
"simulator_required: mark tests as needing a simulator",
"compile: the compile step in runner-based tests",
]
# log_cli = true
# log_cli_level = DEBUG
[tool.coverage.run]
omit = [
"*/cocotb/config.py",
"*/cocotb/_vendor/*",
]
[tool.coverage.paths]
source = [
"src/cocotb/",
".nox/**/cocotb/",
]
[tool.coverage.report]
omit = [
"*/cocotb/config.py",
"*/_vendor/*",
]
exclude_lines = [
"pragma: no cover",
# for excluding typing stubs
"\\.\\.\\.",
# for excluding abstractmethods
"raise\\s+NotImplementedError",
]