-
Notifications
You must be signed in to change notification settings - Fork 100
Expand file tree
/
Copy pathpyproject.toml
More file actions
161 lines (139 loc) · 5.41 KB
/
pyproject.toml
File metadata and controls
161 lines (139 loc) · 5.41 KB
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
148
149
150
151
152
153
154
155
156
157
[build-system]
requires = ["setuptools>=77.0.3"]
build-backend = "setuptools.build_meta"
[project]
name = "pyfda"
dynamic = ["dependencies", "optional-dependencies", "version"]
authors = [{name = "Christian Münker", email = "mail07@chipmuenk.de"}]
maintainers = [{name = "Christian Münker", email = "mail07@chipmuenk.de"}]
keywords=["digital", "discrete time", "filter design", "DSP", "IIR", "FIR", "GUI"]
description = "Design and analyse digital filters (float and fixpoint) with a user-friendly GUI."
readme = {file = "README.md", content-type = "text/markdown"}
license = "MIT"
license-files = ["LICEN[CS]E*", "AUTHORS.md"]
requires-python = ">=3.10"
classifiers = [
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
'Development Status :: 4 - Beta',
# Indicate who your project is intended for
'Intended Audience :: Developers',
'Intended Audience :: Education',
'Topic :: Scientific/Engineering',
'Topic :: Education',
# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
]
[project.urls]
# Homepage = "https://pyfda.org"
Documentation = "https://pyfda.readthedocs.io/"
Repository = "https://github.com/chipmuenk/pyfda"
Issues = "https://github.com/chipmuenk/pyfda/issues"
Changelog = "https://github.com/chipmuenk/pyfda/blob/main/CHANGELOG.md"
[project.scripts]
# creates a console script "pyfdax" that calls the main() function in pyfda/pyfdax.py
pyfdax = "pyfda.pyfdax:main"
[project.gui-scripts]
# only for Windows, creates pyfda.exe that does not pop up a console window
pyfdax_no_term = "pyfda.pyfdax:main"
# [project.entry-points."spam.magical"]
# tomatoes = "spam:main_tomatoes"
[tool.setuptools]
# By default, include-package-data is true in pyproject.toml,
# so you do NOT have to specify this line. This respects MANIFEST.in
# and includes non-code files specified there.
include-package-data = true
[tool.setuptools.packages.find]
# Tells the build-system (setuptools) where to find packages in the project
where = ["."]
# [tool.setuptools.package-data]
# mypkg = ["*.txt", "*.rst"]
[tool.setuptools.dynamic]
dependencies = { file = ["requirements.txt"] }
optional-dependencies.dev = { file = ["requirements-dev.txt"] }
version = {attr = "pyfda.__version__"}
[tool.ruff]
line-length = 100
target-version = "py312"
exclude = [
"widget_templates",
"old",
"tests",
".venv",
"build",
"dist",
"bak",
"__pycache__",
"*.pyc",
"*.pyo",
"*.pyd",
".pytest_cache",
"*.egg",
]
[tool.ruff.lint]
# select rules to enable for linting
select = [
# "B", # flake8-bugbear: find likely bugs and design problems
"B006", # mutable-argument-default, equivalent to "W0102" dangerous default value as argument
"B018", # useless-expression on strings (flake8-bugbear)
"E3", # blank lines, indentation, etc. (pycodestyle)
"E7", # pycodestyle errors (like missing whitespace or newline at end of file)
"F", # pyflakes
# "G", # flake8-logging-format
# "C90", # max. mccabe complexity of functions
# "I", # isort of imports
"NPY201", # numpy 2 style guide violations
"W", # pycodestyle warnings (like trailing whitespace)
"RET", # flake8-return (unnecessary "else"/"elif" after "return",
# remove the leading "el" from "elif" (no-else-return, R1705)
"RUF012", # mutable-class-default, equivalent to "W0102"
"G004", # Use lazy % formatting in logging functions (logging-fstring-interpolation)
"UP008", # use super() instead of super-call-with-parameters
"UP031", # Use format specifiers instead of percent
"UP032", # Use f-strings instead of str.format()
]
ignore = ["E501", # line too long
# "W503", # line break before binary operator
# "F403", # 'from module import *' used; unable to detect undefined names
# "E203" # whitespace before ':', conflicts with black
]
# ignore these tasks
task-tags = ["TODO", "FIXME"]
# list of rules that are considered fixable, use
# ruff check --fix [--unsafe-fixes]
# to apply them automatically
fixable = [
"W291", # trailing whitespace
"W292", #missing newline at end of file
"W293", # blank line contains whitespace
"E303", # too many blank lines
"E302", "E305", # expected 2 blank lines, found 1
"E231", # missing whitespace after ','
"E221", # multiple spaces before operator
"E225", # missing whitespace around operator
"E226", # missing whitespace around arithmetic operator
"E222", # multiple spaces around operator
"E714", # test for object identity should be 'is' or 'is not'
"F541", # f-string missing placeholders
# "I001", # isort import formatting
]
[tool.ruff.format]
quote-style = "double"
indent-style = "tab"
[tool.mypy]
python_version = "3.10"
strict = true
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
[tool.mypy.overrides]
module = ["tests.*"]
disallow_untyped_defs = false