-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathpyproject.toml
More file actions
157 lines (153 loc) · 6.29 KB
/
pyproject.toml
File metadata and controls
157 lines (153 loc) · 6.29 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
# SPDX-FileCopyrightText: 2020 cusy GmbH
#
# SPDX-License-Identifier: BSD-3-Clause
[project]
name = "python4datascience"
version = "24.2.0"
description = """\
Unterrichtsmaterialien für die Cusy-Schulungen zu Python-basierten Data-Science-Workflows: \
https://cusy.io/de/seminars\
"""
readme = "README.rst"
license = "BSD-3-Clause"
license-files = [ "LICENSE" ]
authors = [
{ name = "Veit Schiele", email = "veit@cusy.io" },
]
requires-python = ">=3.10"
classifiers = [
"Operating System :: OS Independent",
"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",
]
dependencies = []
urls."Bug Tracker" = "https://github.com/cusyio/Python4DataScience/issues"
urls.Homepage = "https://github.com/cusyio/Python4DataScience/"
[dependency-groups]
dev = [
"codespell",
"pre-commit",
"vale",
{ include-group = "docs" },
]
docs = [
"furo",
"ipython",
"ipywidgets",
"matplotlib",
"nbsphinx",
"notebook",
"sphinx",
"sphinx-copybutton",
"sphinx-inline-tabs",
"sphinx-lint",
"sphinx-notfound-page",
"sphinx-sitemap",
"sphinxcontrib-svg2pdfconverter",
"sphinxext-opengraph", # matplotlib is required for social cards
]
[tool.setuptools]
packages = []
[tool.ruff]
line-length = 79
src = [ "docs", "fastAPI" ]
extend-exclude = [
"docs/productive/qa/requests/*",
"docs/workspace/ipython/examples.ipynb", # `np.*mean*?` is valid iPython syntax
]
lint.select = [ "ALL" ]
lint.ignore = [
"ANN", # We don’t use type annotations
"COM812", # May cause conflicts when used with the formatter
"D", # We prefer our own docstring style, not pydocstyle.
"G004", # Logging statements should be allowed to use f-strings
"INP001", # Most `*.py` files are not part of a namespace package
"PD002", # For now, we ignore that inplace should be avoided; see also PDEP-8
"PD010", # For now, we’ll ignore that `.unstack` should be replaced with `.pivot_table`.
"PD013", # For now, we’ll ignore that `.stack` should be replaced with `.melt`.
"PLR2004", # Magic values in comparison are fine for simple examples
"T201", # `print` used in Jupyter notebooks are not typically a problem
]
lint.per-file-ignores."docs/clean-prep/hypothesis.ipynb" = [
"F811", # Redefinition of `parse_email` is fine
"RET504", # Sssignment to `result` before `return` statement improves readability
"S101", # Use of `assert` is fine in test functions
]
lint.per-file-ignores."docs/clean-prep/voluptuous.ipynb" = [
"PERF203", # For now, the performance overhead in `try`-`except` within a loop is fine
"S101", # For now, use of `assert` is fine
]
lint.per-file-ignores."docs/conf.py" = [
"A001", # Sphinx expects the variable `copyright`
"E501", # Lines in `linkcheck_allowed_redirect` cannot be broken
"ERA001", # ommented-out code is fine in the sphinx config
"RUF001", # `–` is fine
"S605", # Starting the process with a shell should be fine
"S607", # Starting the git process with a partial executable path is fine
]
lint.per-file-ignores."docs/data-processing/apis/grpc/accounts_pb2.py" = [
"E501", # Line with serialized_pb is not too long
"ERA001", # Commented-out code generated by the protocol buffer compiler is fine
"SLF001", # iNo private member is accessed
]
lint.per-file-ignores."docs/data-processing/apis/grpc/accounts_pb2_grpc.py" = [
"FBT002", # The default positional argument will be needed later
"N802", # For now, the function names stay uppercase
"PLR0913", # Many arguments in this function definition are fine
]
lint.per-file-ignores."docs/data-processing/apis/grpc/accounts_server.py" = [
"N802", # For now, the function names for the grpc example remain uppercase
"PLW2901", # For now, the `for` loop variable `account` is overwritten by the assignment target
]
lint.per-file-ignores."docs/data-processing/apis/grpc/tests/test_accounts.py" = [
"ARG001", # Function argument `grpc_stub` is defined in the fixture
"PLW2901", # For now, the `for` loop variable `account` overwritten by the assignment target
"S101", # `assert` in test modules are ok
]
lint.per-file-ignores."docs/data-processing/serialisation-formats/csv/example.ipynb" = [
"C416", # Dict comprehension iterates over the keys of a mapping
]
lint.per-file-ignores."docs/data-processing/serialisation-formats/pickle/pickle-examples.ipynb" = [
"S301", # The security warning for `pickle` and modules is in the notebook
]
lint.per-file-ignores."docs/performance/asyncio-example.ipynb" = [
"S311", # Standard pseudo-random generators are not used here for cryptographic purposes
]
lint.per-file-ignores."docs/performance/ipython-profiler.ipynb" = [
"S311", # Standard pseudo-random generators are not used here for cryptographic purposes
]
lint.per-file-ignores."docs/performance/scalene.ipynb" = [
"F811", # Redefinition of `profile_me` is fine here
]
lint.per-file-ignores."docs/performance/threading-example.ipynb" = [
"PLW0603", # For now, using the global statement is fine
"S311", # Standard pseudo-random generators are not used here for cryptographic purposes
"SIM113", # For now, we don’t us `enumerate()` for index variables in `for` loop
]
lint.per-file-ignores."docs/workspace/ipython/importing.ipynb" = [
"A004", # Import `get_ipython` is not shadowing a Python builtin
"RET503", # For now, missing explicit `return` at the end of function is fine
"S102", # For now, we will continue to use `exec`
]
lint.per-file-ignores."docs/workspace/ipython/magics.ipynb" = [
"F821", # Names defines by the shell command
"PERF401", # This example compares performance using list comprehension
]
lint.per-file-ignores."docs/workspace/ipython/mypackage/foo.ipynb" = [
"RET504", # Shell assignment before `return` statement is fine
]
lint.per-file-ignores."docs/workspace/pandas/apply.ipynb" = [
"F821", # `top_cy` is defined
]
lint.isort.known-first-party = [
"Python4DataScience",
]
lint.isort.lines-after-imports = 2
lint.isort.lines-between-types = 1
[tool.codespell]
skip = "*.csv, *.html, *.pdf, *.ipynb, ./docs/_build/*, ./styles/*"
ignore-words-list = "AAS, ans, bund, comit, fo, Groth, nd, Ned, ORE, ore, Redict, redict, registr, reStructedText, splitted"