|
| 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