Skip to content

Commit 6df460b

Browse files
committed
add pyproject.toml
1 parent 02c4d4a commit 6df460b

File tree

1 file changed

+194
-0
lines changed

1 file changed

+194
-0
lines changed

pyproject.toml

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
[build-system]
2+
requires = ["setuptools>=68", "wheel"]
3+
build-backend = "setuptools.build_meta"
4+
5+
[project]
6+
name = "NumpyDeque"
7+
description = " "
8+
authors = [{ name = "Scott E. Boyce", email = "Boyce@engineer.com" }]
9+
maintainers = [{ name = "Scott E. Boyce", email = "Boyce@engineer.com" }]
10+
license = { text = "MIT" }
11+
requires-python = ">=3.8,<4"
12+
classifiers = [
13+
"Programming Language :: Python :: 3",
14+
"Programming Language :: Python :: 3 :: Only",
15+
"Programming Language :: Python :: 3.8",
16+
"Programming Language :: Python :: 3.9",
17+
"Programming Language :: Python :: 3.10",
18+
"Programming Language :: Python :: 3.11",
19+
"Programming Language :: Python :: 3.12",
20+
"Programming Language :: Python :: 3.13",
21+
]
22+
dynamic = ["version"]
23+
dependencies=[
24+
"numpy>=2.0"
25+
]
26+
27+
[project.optional-dependencies]
28+
# pip install .[test-tools]
29+
lint = ["ruff"]
30+
test-tools = [
31+
"NumpyDeque[lint]",
32+
"pytest",
33+
"pytest-xdist",
34+
]
35+
36+
[project.urls]
37+
"Homepage" = "https://github.com/ScottBoyce-Python/NumpyDeque"
38+
"Source Code" = "https://github.com/ScottBoyce-Python/NumpyDeque"
39+
40+
[project.readme]
41+
file = "README.md"
42+
content-type = "text/markdown"
43+
44+
[tool.pytest.ini_options]
45+
# agressive parallel options
46+
addopts = "-ra" # Running with VSCode, requires serial.
47+
# addopts = "-ra -n2" # Defaults to 2 parallel tests, comment out if you want serial.
48+
# addopts = "-ra --dist worksteal -nauto" # Defaults to parallel tests, comment out if you want serial.
49+
# addopts = "-ra -v --dist worksteal -nauto" # parallel run with verbose output.
50+
# addopts = "-ra --dist worksteal -nauto -q" # supress output during testing
51+
52+
# Regular parallel options
53+
# addopts = "-ra -nauto" # Defaults to parallel tests, comment out if you want serial.
54+
# addopts = "-ra -nauto -q" # supress output during testing
55+
56+
minversion = "6.0"
57+
testpaths = ["tests"]
58+
# Customizing test discovery patterns
59+
python_files = ["test_*.py", "*_test.py"]
60+
python_classes = ["Test*", "Check*"]
61+
python_functions = ["test_*", "check_*"]
62+
63+
[tool.setuptools]
64+
packages = ["NumpyDeque"]
65+
include-package-data = true
66+
67+
[tool.setuptools.dynamic]
68+
version = { attr = "NumpyDeque._metadata.__version__" }
69+
70+
[tool.black]
71+
target-version = ['py39']
72+
line-length = 120
73+
74+
[tool.ruff]
75+
target-version = "py39"
76+
line-length = 120
77+
indent-width = 4
78+
79+
exclude = [
80+
".eggs",
81+
".git",
82+
"_build",
83+
"build",
84+
"dist",
85+
"htmlcov",
86+
"vulture.egg-info",
87+
".cache",
88+
".coverage",
89+
".pytest_cache",
90+
".tox",
91+
".venv",
92+
".vscode",
93+
]
94+
95+
[tool.ruff.format]
96+
# Like Black, use double quotes for strings.
97+
quote-style = "double"
98+
# Like Black, indent with spaces, rather than tabs.
99+
indent-style = "space"
100+
# Use `\n` line endings for all files
101+
line-ending = "lf"
102+
103+
# [tool.ruff.lint]
104+
# select = ["ALL"]
105+
# extend-safe-fixes = ["UP007", "UP006"]
106+
107+
# select = [
108+
# "B", # flake8-bugbear
109+
# "E", # pycodestyle error
110+
# "F", # pyflakes
111+
# "I", # isort
112+
# "UP", # pyupgrade
113+
# "W", # pycodestyle warning
114+
# ]
115+
116+
# select = [
117+
# "C4", # flake8-comprehensions
118+
# "E", # pycodestyle errors
119+
# "EM", # flake8-errmsg
120+
# "F", # pyflakes errors
121+
# "I", # isort
122+
# "ISC", # flake8-implicit-str-concat
123+
# "LOG", # flake8-logging
124+
# "PGH", # pygrep-hooks
125+
# "PYI", # flake8-pyi
126+
# "RUF100", # unused noqa (yesqa)
127+
# "UP", # pyupgrade
128+
# "W", # pycodestyle warnings
129+
# "YTT", # flake8-2020
130+
# ]
131+
132+
# ignore = [
133+
# "C90", # mccabe
134+
# "FBT", # allow boolean args.
135+
# "CPY", # copyright
136+
# "S101", # allow asserts.
137+
# "E731", # Allow lambda
138+
# "E741", # Allow short variable names.
139+
# "E203", # Whitespace before ':'
140+
# "E221", # Multiple spaces before operator
141+
# "E226", # Missing whitespace around arithmetic operator
142+
# "E241", # Multiple spaces after ','
143+
# "PYI026", # flake8-pyi: typing.TypeAlias added in Python 3.10
144+
# "PYI034", # flake8-pyi: typing.Self added in Python 3.11
145+
# "D102", # Do not check public method docstrings (Cannot determine overridden docstrings)
146+
# # @typing.override not available until python 3.12 (PEP 698)
147+
# "PLR", # Too many of too many checks.
148+
# "ANN101", # Ignore self type annotation.
149+
# "ANN401", # Allow Any as type annotation
150+
# "D105", # Allow no docstring magic method.
151+
# "SIM108", # Simplify if/else is not always best.
152+
# "PTH", # don't require pathlib. Add eventually?
153+
# "TRY", # no triceratops.
154+
# "NPY", # remove numpy
155+
# "Q000", # double quotes
156+
# "E401", # Multiple imports on one line
157+
# "E402", # Module level import not at top of file
158+
# "E501", # Line too long (<LENGTH> > 88 characters)
159+
# "E701", # Multiple statements on one line (colon)
160+
# "E702", # Multiple statements on one line (semicolon)
161+
# "E703", # Statement ends with an unnecessary semicolon
162+
# "E711", # Comparison to `None` should be `cond is not None`
163+
# "E712", # Comparison to `<BOOL>` should be `cond is <BOOL>`
164+
# "E713", # Test for membership should be `not in`
165+
# "E714", # Test for object identity should be `is not`
166+
# "E721", # Do not compare types, use `isinstance()`
167+
# "E722", # Do not use bare `except`
168+
# "E731", # Do not assign a `lambda` expression, use a `def`
169+
# "E741", # Ambiguous variable name: `<VARIABLE>`
170+
# "E743", # Ambiguous function name: `<FUNCTION>`
171+
# "F401", # `<TYPE>` imported but unused
172+
# "F403", # `from <MODULE> import *` used; unable to detect undefined names
173+
# "F405", # `<TYPE>` may be undefined, or defined from star imports: `<MODULE>`
174+
# "F523", # `.format` call has unused arguments at position(s): <INDEX>
175+
# "F601", # Dictionary key literal `'<KEY>'` repeated
176+
# "F811", # Redefinition of unused `<VARIABLE>` from line <LINE>
177+
# "F821", # Undefined name `VARIABLE`
178+
# "F823", # Local variable `VARIABLE` referenced before assignment
179+
# "F841", # Local variable `VARIABLE` is assigned to but never used
180+
# ]
181+
182+
183+
# [tool.ruff.flake8-quotes]
184+
# inline-quotes = 'single'
185+
186+
# [tool.ruff.lint.per-file-ignores]
187+
# # Ignore doc requirements, naming, arguments in platform and lib files.
188+
# "pyglet/font/directwrite.py" = ["RUF012", "D", "N", "ARG"]
189+
# "pyglet/font/fontconfig.py" = ["RUF012", "D", "N", "ARG"]
190+
# "pyglet/font/freetype.py" = ["RUF012", "D", "N", "ARG"]
191+
# "pyglet/font/freetype_lib.py" = ["RUF012", "D", "N", "ARG"]
192+
# "pyglet/font/quartz.py" = ["RUF012", "D", "N", "ARG"]
193+
# "pyglet/font/ttf.py" = ["RUF012", "D", "N", "ARG"]
194+
# "pyglet/font/win32.py" = ["RUF012", "D", "N", "ARG"]

0 commit comments

Comments
 (0)