-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
147 lines (132 loc) · 4.59 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
140
141
142
143
144
145
146
147
[project]
name = "symmetria"
version = "0.3.0"
description = "Symmetria provides an intuitive, thorough, and comprehensive framework for interacting with the symmetric group and its elements."
authors = [
{name = "Vasco Schiavo"},
]
maintainers = [
{name = "Vasco Schiavo"},
]
readme = {file="README.md", content-type="text/markdown"}
requires-python = ">=3.9,<3.13"
keywords = [
"math",
"mathematics",
"symmetry",
"permutation",
]
classifiers = [
"Intended Audience :: Education",
"Intended Audience :: Developers",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Topic :: Education",
"Topic :: Scientific/Engineering :: Mathematics",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Operating System :: Unix",
"Operating System :: MacOS",
"Programming Language :: Python",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
[project.optional-dependencies]
dev = [
"pre-commit",
"pytest",
"pytest-cov",
]
docs = [
"jupyter",
"myst-parser",
"nbsphinx>=0.8.6",
"numpydoc",
"sphinx-rtd-theme",
"sphinx_book_theme",
"sphinx<8.0.0,!=7.2.0",
"sphinx-design<0.6.0",
"sphinx-issues<5.0.0",
"sphinx-gallery<0.17.0",
"sphinx-panels",
"tabulate",
]
[project.urls]
Homepage = "https://github.com/VascoSch92/symmetria"
Repository = "https://github.com/VascoSch92/symmetria"
Documentation = "https://symmetria.readthedocs.io/en/latest/"
[project.license]
file = "LICENSE"
[build-system]
requires = ["setuptools>61", "wheel", "toml", "build"]
build-backend = "setuptools.build_meta"
[project.scripts]
symmetria = "symmetria.__main__:main"
[tool.pytest.ini_options]
cache_dir = "tests/.cache/pytest"
log_cli = true
log_level = "DEBUG"
log_format = "%(asctime)s %(levelname)s %(message)s"
log_date_format = "%Y-%m-%d %H:%M:%S"
[tool.ruff]
cache-dir = "tests/.cache/ruff"
# Set of rules enabled
lint.select = [
"ARG002", # Checks for the presence of unused arguments in instance method definitions
"ANN201", # Missing return type annotation for public function
"E", # Pycodestyle Error
"F", # Pyflakes
"B", # Flake8-bugbear
"W", # Pycodestyle Warning
"RET504", # Checks for variable assignments that immediately precede a return of the assigned variable.
"B023", # Checks for function definitions that use a loop variable
"D200", # One-line docstring should fit on one line
"D202", # No blank lines allowed after function docstring
"D211", # Checks for docstrings on class definitions that are preceded by a blank line.
"D300", # Use triple double quotes """
"D301", # Escape sequence in docstring
"D400", # Checks for docstrings in which the first line does not end in a period
"D401", # First line imperative mode
"D403", # Checks for docstrings that do not start with a capital letter.
"D404", # First word of the docstring should not be "This"
"D419", # Checks for empty docstrings.
"UP003", # Use {} instead of type(...)
"UP008", # Use super() instead of super(_class_, self)
"UP011", # Unnecessary parentheses to functools.lru_cache
"UP027", # Replace unpacked list comprehension with a generator expression
"UP032", # Use f-string instead of format call
"C4", # flake8-comprehensions
"ICN", # flake8-import-conventions
"NPY", # NumPy-specific rules (NPY)
"ARG", # flake8-unused-arguments
"PLE0604", # Invalid object in __all__, must contain only strings
"PLE0605", # Invalid format for __all__, must be tuple or list
"PIE", # flake8-pie
"PTH", # flake8-use-pathlib
"Q000",
"LOG", # checks for impropriate use of logging
"Q002", # flake-8 double quotes for dosctring
"I001", # Import block is un-sorted or un-formatted
]
# Ignored rules
lint.ignore = [
"C400", # Unnecessary generator (rewrite using list())
"F821", # Checks for uses of undefined names
]
# ignore unusued imports in the __init__
lint.per-file-ignores = {"symmetria/__init__.py" = ["F401", "F403"]}
# Set the max length of a line
line-length = 121
# The style in which the output message should be formatted
output-format = "grouped"
lint.flake8-quotes.inline-quotes = "double"
lint.flake8-quotes.docstring-quotes = "double"
lint.flake8-quotes.multiline-quotes = "double"
lint.isort.combine-as-imports = true
lint.isort.length-sort = true
[tool.ruff.format]
indent-style = "space"
skip-magic-trailing-comma = false