|
| 1 | +[project] |
| 2 | +name = "hudson_platecrane_module" |
| 3 | +version = "1.5.0" |
| 4 | +description = "Driver for the Platecrane and Sciclops" |
| 5 | +authors = [ |
| 6 | + {name = "Ryan D. Lewis", email="ryan.lewis@anl.gov"}, |
| 7 | + {name = "Rafael Vescovi", email="ravescovi@anl.gov"}, |
| 8 | + {name = "Doga Ozgulbas", email="dozgulbas@anl.gov"}, |
| 9 | + {name = "Abe Stroka", email="astroka@anl.gov"}, |
| 10 | + {name = "Kyle Hippe", email = "khippe@anl.gov"}, |
| 11 | + {name = "Tobias Ginsburg", email = "tginsburg@anl.gov"}, |
| 12 | +] |
| 13 | +dependencies = [ |
| 14 | + "fastapi>=0.103", |
| 15 | + "uvicorn>=0.14.0", |
| 16 | + "pyusb", |
| 17 | + "libusb", |
| 18 | + "pyserial", |
| 19 | + "madsci.node_module>=0.1.9", |
| 20 | + "pydantic>=2.7", |
| 21 | + "pytest" |
| 22 | +] |
| 23 | +requires-python = ">=3.9.1" |
| 24 | +readme = "README.md" |
| 25 | +license = {text = "MIT"} |
| 26 | + |
| 27 | +[project.urls] |
| 28 | +homepage = "https://github.com/AD-SDL/sciclops_module" |
| 29 | + |
| 30 | +###################### |
| 31 | +# Build Info + Tools # |
| 32 | +###################### |
| 33 | +[build-system] |
| 34 | +requires = ["setuptools", "wheel"] |
| 35 | +build-backend = "setuptools.build_meta" |
| 36 | + |
| 37 | +##################### |
| 38 | +# Development Tools # |
| 39 | +##################### |
| 40 | + |
| 41 | +[tool.ruff] |
| 42 | +# https://docs.astral.sh/ruff/configuration/ |
| 43 | + |
| 44 | +# Exclude a variety of commonly ignored directories. |
| 45 | +exclude = [ |
| 46 | + ".bzr", |
| 47 | + ".direnv", |
| 48 | + ".eggs", |
| 49 | + ".git", |
| 50 | + ".git-rewrite", |
| 51 | + ".hg", |
| 52 | + ".mypy_cache", |
| 53 | + ".nox", |
| 54 | + ".pants.d", |
| 55 | + ".pytype", |
| 56 | + ".ruff_cache", |
| 57 | + ".svn", |
| 58 | + ".tox", |
| 59 | + ".venv", |
| 60 | + "__pypackages__", |
| 61 | + "_build", |
| 62 | + "buck-out", |
| 63 | + "build", |
| 64 | + "dist", |
| 65 | + "node_modules", |
| 66 | + "venv", |
| 67 | + "docs", |
| 68 | +] |
| 69 | + |
| 70 | +# Same as Black. |
| 71 | +line-length = 88 |
| 72 | +indent-width = 4 |
| 73 | + |
| 74 | +# Assume Python 3.8 |
| 75 | +target-version = "py38" |
| 76 | + |
| 77 | +[tool.ruff.lint] |
| 78 | +# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. |
| 79 | +select = [ |
| 80 | + # pycodestyle |
| 81 | + "E", |
| 82 | + # Pyflakes |
| 83 | + "F", |
| 84 | + # pyupgrade |
| 85 | + # "UP", |
| 86 | + # flake8-bugbear |
| 87 | + "B", |
| 88 | + # flake8-simplify |
| 89 | + # "SIM", |
| 90 | + # isort |
| 91 | + "I", |
| 92 | + # Warning |
| 93 | + "W", |
| 94 | + # pydocstyle |
| 95 | + "D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107", |
| 96 | + # ruff |
| 97 | + # "RUF" |
| 98 | +] |
| 99 | +ignore = [ |
| 100 | + "E501" # Line too long |
| 101 | +] |
| 102 | + |
| 103 | +# Allow fix for all enabled rules (when `--fix`) is provided. |
| 104 | +fixable = ["ALL"] |
| 105 | +unfixable = [] |
| 106 | + |
| 107 | +# Allow unused variables when underscore-prefixed. |
| 108 | +dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" |
| 109 | + |
| 110 | +[tool.ruff.format] |
| 111 | +# Like Black, use double quotes for strings. |
| 112 | +quote-style = "double" |
| 113 | + |
| 114 | +# Like Black, indent with spaces, rather than tabs. |
| 115 | +indent-style = "space" |
| 116 | + |
| 117 | +# Like Black, respect magic trailing commas. |
| 118 | +skip-magic-trailing-comma = false |
| 119 | + |
| 120 | +# Like Black, automatically detect the appropriate line ending. |
| 121 | +line-ending = "auto" |
| 122 | + |
| 123 | +[tool.pytest.ini_options] |
| 124 | +# https://docs.pytest.org/en/stable/customize.html |
| 125 | +addopts = "-x" |
| 126 | +junit_family="xunit1" |
| 127 | +filterwarnings = [ |
| 128 | + "ignore::DeprecationWarning", |
| 129 | + "ignore::pottery.exceptions.InefficientAccessWarning", |
| 130 | +] |
| 131 | +markers = [ |
| 132 | + "hardware: marks test as requiring hardware (deselect with '-m \"not hardware\"')", |
| 133 | +] |
| 134 | + |
| 135 | +[tool.mypy] |
| 136 | +# https://mypy.readthedocs.io/en/stable/config_file.html#using-a-pyproject-toml |
| 137 | +show_error_codes = true |
| 138 | +check_untyped_defs = true |
| 139 | +follow_imports = "normal" |
| 140 | +strict_optional = true |
| 141 | +plugins = ["pydantic.mypy"] |
| 142 | +strict = true |
| 143 | +disallow_untyped_defs = true |
| 144 | +implicit_reexport = true |
0 commit comments