##// END OF EJS Templates
Merge branch 'main' into revert-14625-ruffisation
M Bussonnier -
r29048:38dd7ad1 merge revert-14625-ruff...
parent child Browse files
Show More
@@ -1,385 +1,444
1 [build-system]
1 [build-system]
2 requires = ["setuptools>=61.2"]
2 requires = ["setuptools>=61.2"]
3 # We need access to the 'setupbase' module at build time.
3 # We need access to the 'setupbase' module at build time.
4 # Hence we declare a custom build backend.
4 # Hence we declare a custom build backend.
5 build-backend = "_build_meta" # just re-exports setuptools.build_meta definitions
5 build-backend = "_build_meta" # just re-exports setuptools.build_meta definitions
6 backend-path = ["."]
6 backend-path = ["."]
7
7
8 [project]
8 [project]
9 name = "ipython"
9 name = "ipython"
10 description = "IPython: Productive Interactive Computing"
10 description = "IPython: Productive Interactive Computing"
11 keywords = ["Interactive", "Interpreter", "Shell", "Embedding"]
11 keywords = ["Interactive", "Interpreter", "Shell", "Embedding"]
12 classifiers = [
12 classifiers = [
13 "Framework :: IPython",
13 "Framework :: IPython",
14 "Framework :: Jupyter",
14 "Framework :: Jupyter",
15 "Intended Audience :: Developers",
15 "Intended Audience :: Developers",
16 "Intended Audience :: Science/Research",
16 "Intended Audience :: Science/Research",
17 "License :: OSI Approved :: BSD License",
17 "License :: OSI Approved :: BSD License",
18 "Programming Language :: Python",
18 "Programming Language :: Python",
19 "Programming Language :: Python :: 3",
19 "Programming Language :: Python :: 3",
20 "Programming Language :: Python :: 3 :: Only",
20 "Programming Language :: Python :: 3 :: Only",
21 "Topic :: System :: Shells",
21 "Topic :: System :: Shells",
22 ]
22 ]
23 requires-python = ">=3.11"
23 requires-python = ">=3.11"
24 dependencies = [
24 dependencies = [
25 'colorama; sys_platform == "win32"',
25 'colorama; sys_platform == "win32"',
26 "decorator",
26 "decorator",
27 "jedi>=0.16",
27 "jedi>=0.16",
28 "matplotlib-inline",
28 "matplotlib-inline",
29 'pexpect>4.3; sys_platform != "win32" and sys_platform != "emscripten"',
29 'pexpect>4.3; sys_platform != "win32" and sys_platform != "emscripten"',
30 "prompt_toolkit>=3.0.41,<3.1.0",
30 "prompt_toolkit>=3.0.41,<3.1.0",
31 "pygments>=2.4.0",
31 "pygments>=2.4.0",
32 "stack_data",
32 "stack_data",
33 "traitlets>=5.13.0",
33 "traitlets>=5.13.0",
34 "typing_extensions>=4.6; python_version<'3.12'",
34 "typing_extensions>=4.6; python_version<'3.12'",
35 ]
35 ]
36 dynamic = ["authors", "license", "version"]
36 dynamic = ["authors", "license", "version"]
37
37
38 [project.entry-points."pygments.lexers"]
38 [project.entry-points."pygments.lexers"]
39 ipythonconsole = "IPython.lib.lexers:IPythonConsoleLexer"
39 ipythonconsole = "IPython.lib.lexers:IPythonConsoleLexer"
40 ipython = "IPython.lib.lexers:IPythonLexer"
40 ipython = "IPython.lib.lexers:IPythonLexer"
41 ipython3 = "IPython.lib.lexers:IPython3Lexer"
41 ipython3 = "IPython.lib.lexers:IPython3Lexer"
42
42
43 [project.scripts]
43 [project.scripts]
44 ipython = "IPython:start_ipython"
44 ipython = "IPython:start_ipython"
45 ipython3 = "IPython:start_ipython"
45 ipython3 = "IPython:start_ipython"
46
46
47 [project.readme]
47 [project.readme]
48 file = "long_description.rst"
48 file = "long_description.rst"
49 content-type = "text/x-rst"
49 content-type = "text/x-rst"
50
50
51 [project.urls]
51 [project.urls]
52 Homepage = "https://ipython.org"
52 Homepage = "https://ipython.org"
53 Documentation = "https://ipython.readthedocs.io/"
53 Documentation = "https://ipython.readthedocs.io/"
54 Funding = "https://numfocus.org/"
54 Funding = "https://numfocus.org/"
55 Source = "https://github.com/ipython/ipython"
55 Source = "https://github.com/ipython/ipython"
56 Tracker = "https://github.com/ipython/ipython/issues"
56 Tracker = "https://github.com/ipython/ipython/issues"
57
57
58 [project.optional-dependencies]
58 [project.optional-dependencies]
59 black = [
59 black = [
60 "black",
60 "black",
61 ]
61 ]
62 doc = [
62 doc = [
63 "docrepr",
63 "docrepr",
64 "exceptiongroup",
64 "exceptiongroup",
65 "intersphinx_registry",
65 "intersphinx_registry",
66 "ipykernel",
66 "ipykernel",
67 "ipython[test]",
67 "ipython[test]",
68 "matplotlib",
68 "matplotlib",
69 "setuptools>=18.5",
69 "setuptools>=18.5",
70 "sphinx-rtd-theme",
70 "sphinx-rtd-theme",
71 "sphinx>=1.3",
71 "sphinx>=1.3",
72 "sphinxcontrib-jquery",
72 "sphinxcontrib-jquery",
73 ]
73 ]
74 kernel = [
74 kernel = [
75 "ipykernel",
75 "ipykernel",
76 ]
76 ]
77 nbconvert = [
77 nbconvert = [
78 "nbconvert",
78 "nbconvert",
79 ]
79 ]
80 nbformat = [
80 nbformat = [
81 "nbformat",
81 "nbformat",
82 ]
82 ]
83 notebook = [
83 notebook = [
84 "ipywidgets",
84 "ipywidgets",
85 "notebook",
85 "notebook",
86 ]
86 ]
87 parallel = [
87 parallel = [
88 "ipyparallel",
88 "ipyparallel",
89 ]
89 ]
90 qtconsole = [
90 qtconsole = [
91 "qtconsole",
91 "qtconsole",
92 ]
92 ]
93 terminal = []
93 terminal = []
94 test = [
94 test = [
95 "pytest",
95 "pytest",
96 "pytest-asyncio<0.22",
96 "pytest-asyncio<0.22",
97 "testpath",
97 "testpath",
98 "pickleshare",
98 "pickleshare",
99 "packaging",
99 "packaging",
100 ]
100 ]
101 test_extra = [
101 test_extra = [
102 "ipython[test]",
102 "ipython[test]",
103 "curio",
103 "curio",
104 "matplotlib!=3.2.0",
104 "matplotlib!=3.2.0",
105 "nbformat",
105 "nbformat",
106 "numpy>=1.23",
106 "numpy>=1.23",
107 "pandas",
107 "pandas",
108 "trio",
108 "trio",
109 ]
109 ]
110 matplotlib = [
110 matplotlib = [
111 "matplotlib"
111 "matplotlib"
112 ]
112 ]
113 all = [
113 all = [
114 "ipython[black,doc,kernel,nbconvert,nbformat,notebook,parallel,qtconsole,matplotlib]",
114 "ipython[black,doc,kernel,nbconvert,nbformat,notebook,parallel,qtconsole,matplotlib]",
115 "ipython[test,test_extra]",
115 "ipython[test,test_extra]",
116 ]
116 ]
117
117
118 [tool.mypy]
118 [tool.mypy]
119 python_version = "3.10"
119 python_version = "3.10"
120 ignore_missing_imports = true
120 ignore_missing_imports = true
121 follow_imports = 'silent'
121 follow_imports = 'silent'
122 exclude = [
122 exclude = [
123 'test_\.+\.py',
123 'test_\.+\.py',
124 'IPython.utils.tests.test_wildcard',
124 'IPython.utils.tests.test_wildcard',
125 'testing',
125 'testing',
126 'tests',
126 'tests',
127 'PyColorize.py',
127 'PyColorize.py',
128 '_process_win32_controller.py',
128 '_process_win32_controller.py',
129 'IPython/core/application.py',
129 'IPython/core/application.py',
130 'IPython/core/profileapp.py',
130 'IPython/core/profileapp.py',
131 'IPython/lib/deepreload.py',
131 'IPython/lib/deepreload.py',
132 'IPython/sphinxext/ipython_directive.py',
132 'IPython/sphinxext/ipython_directive.py',
133 'IPython/terminal/ipapp.py',
133 'IPython/terminal/ipapp.py',
134 'IPython/utils/path.py',
134 'IPython/utils/path.py',
135 ]
135 ]
136 # check_untyped_defs = true
136 # check_untyped_defs = true
137 # disallow_untyped_calls = true
137 # disallow_untyped_calls = true
138 # disallow_untyped_decorators = true
138 # disallow_untyped_decorators = true
139 # ignore_errors = false
139 # ignore_errors = false
140 # ignore_missing_imports = false
140 # ignore_missing_imports = false
141 disallow_incomplete_defs = true
141 disallow_incomplete_defs = true
142 disallow_untyped_defs = true
142 disallow_untyped_defs = true
143 warn_redundant_casts = true
143 warn_redundant_casts = true
144
144
145 [[tool.mypy.overrides]]
145 [[tool.mypy.overrides]]
146 module = [
146 module = [
147 "IPython.core.crashhandler",
147 "IPython.core.crashhandler",
148 ]
148 ]
149 check_untyped_defs = true
149 check_untyped_defs = true
150 disallow_incomplete_defs = true
150 disallow_incomplete_defs = true
151 disallow_untyped_calls = true
151 disallow_untyped_calls = true
152 disallow_untyped_decorators = true
152 disallow_untyped_decorators = true
153 disallow_untyped_defs = true
153 disallow_untyped_defs = true
154 ignore_errors = false
154 ignore_errors = false
155 ignore_missing_imports = false
155 ignore_missing_imports = false
156
156
157 [[tool.mypy.overrides]]
157 [[tool.mypy.overrides]]
158 module = [
158 module = [
159 "IPython.utils.text",
159 "IPython.utils.text",
160 ]
160 ]
161 disallow_untyped_defs = true
161 disallow_untyped_defs = true
162 check_untyped_defs = false
162 check_untyped_defs = false
163 disallow_untyped_decorators = true
163 disallow_untyped_decorators = true
164
164
165 [[tool.mypy.overrides]]
165 [[tool.mypy.overrides]]
166 module = [
166 module = [
167 ]
167 ]
168 disallow_untyped_defs = false
168 disallow_untyped_defs = false
169 ignore_errors = true
169 ignore_errors = true
170 ignore_missing_imports = true
170 ignore_missing_imports = true
171 disallow_untyped_calls = false
171 disallow_untyped_calls = false
172 disallow_incomplete_defs = false
172 disallow_incomplete_defs = false
173 check_untyped_defs = false
173 check_untyped_defs = false
174 disallow_untyped_decorators = false
174 disallow_untyped_decorators = false
175
175
176
176
177 # gloabl ignore error
177 # gloabl ignore error
178 [[tool.mypy.overrides]]
178 [[tool.mypy.overrides]]
179 module = [
179 module = [
180 "IPython",
180 "IPython",
181 "IPython.conftest",
181 "IPython.conftest",
182 "IPython.core.alias",
182 "IPython.core.alias",
183 "IPython.core.async_helpers",
183 "IPython.core.async_helpers",
184 "IPython.core.autocall",
184 "IPython.core.autocall",
185 "IPython.core.builtin_trap",
185 "IPython.core.builtin_trap",
186 "IPython.core.compilerop",
186 "IPython.core.compilerop",
187 "IPython.core.completer",
187 "IPython.core.completer",
188 "IPython.core.completerlib",
188 "IPython.core.completerlib",
189 "IPython.core.debugger",
189 "IPython.core.debugger",
190 "IPython.core.display",
190 "IPython.core.display",
191 "IPython.core.display_functions",
191 "IPython.core.display_functions",
192 "IPython.core.display_trap",
192 "IPython.core.display_trap",
193 "IPython.core.displayhook",
193 "IPython.core.displayhook",
194 "IPython.core.displaypub",
194 "IPython.core.displaypub",
195 "IPython.core.events",
195 "IPython.core.events",
196 "IPython.core.excolors",
196 "IPython.core.excolors",
197 "IPython.core.extensions",
197 "IPython.core.extensions",
198 "IPython.core.formatters",
198 "IPython.core.formatters",
199 "IPython.core.getipython",
199 "IPython.core.getipython",
200 "IPython.core.guarded_eval",
200 "IPython.core.guarded_eval",
201 "IPython.core.historyapp",
201 "IPython.core.historyapp",
202 "IPython.core.hooks",
202 "IPython.core.hooks",
203 "IPython.core.inputtransformer",
203 "IPython.core.inputtransformer",
204 "IPython.core.inputtransformer2",
204 "IPython.core.inputtransformer2",
205 "IPython.core.interactiveshell",
205 "IPython.core.interactiveshell",
206 "IPython.core.logger",
206 "IPython.core.logger",
207 "IPython.core.macro",
207 "IPython.core.macro",
208 "IPython.core.magic",
208 "IPython.core.magic",
209 "IPython.core.magic_arguments",
209 "IPython.core.magic_arguments",
210 "IPython.core.magics.ast_mod",
210 "IPython.core.magics.ast_mod",
211 "IPython.core.magics.auto",
211 "IPython.core.magics.auto",
212 "IPython.core.magics.basic",
212 "IPython.core.magics.basic",
213 "IPython.core.magics.code",
213 "IPython.core.magics.code",
214 "IPython.core.magics.config",
214 "IPython.core.magics.config",
215 "IPython.core.magics.display",
215 "IPython.core.magics.display",
216 "IPython.core.magics.execution",
216 "IPython.core.magics.execution",
217 "IPython.core.magics.extension",
217 "IPython.core.magics.extension",
218 "IPython.core.magics.history",
218 "IPython.core.magics.history",
219 "IPython.core.magics.logging",
219 "IPython.core.magics.logging",
220 "IPython.core.magics.namespace",
220 "IPython.core.magics.namespace",
221 "IPython.core.magics.osm",
221 "IPython.core.magics.osm",
222 "IPython.core.magics.packaging",
222 "IPython.core.magics.packaging",
223 "IPython.core.magics.pylab",
223 "IPython.core.magics.pylab",
224 "IPython.core.magics.script",
224 "IPython.core.magics.script",
225 "IPython.core.oinspect",
225 "IPython.core.oinspect",
226 "IPython.core.page",
226 "IPython.core.page",
227 "IPython.core.payload",
227 "IPython.core.payload",
228 "IPython.core.payloadpage",
228 "IPython.core.payloadpage",
229 "IPython.core.prefilter",
229 "IPython.core.prefilter",
230 "IPython.core.profiledir",
230 "IPython.core.profiledir",
231 "IPython.core.prompts",
231 "IPython.core.prompts",
232 "IPython.core.pylabtools",
232 "IPython.core.pylabtools",
233 "IPython.core.shellapp",
233 "IPython.core.shellapp",
234 "IPython.core.splitinput",
234 "IPython.core.splitinput",
235 "IPython.core.ultratb",
235 "IPython.core.ultratb",
236 "IPython.extensions.autoreload",
236 "IPython.extensions.autoreload",
237 "IPython.extensions.storemagic",
237 "IPython.extensions.storemagic",
238 "IPython.external.qt_for_kernel",
238 "IPython.external.qt_for_kernel",
239 "IPython.external.qt_loaders",
239 "IPython.external.qt_loaders",
240 "IPython.lib.backgroundjobs",
240 "IPython.lib.backgroundjobs",
241 "IPython.lib.clipboard",
241 "IPython.lib.clipboard",
242 "IPython.lib.demo",
242 "IPython.lib.demo",
243 "IPython.lib.display",
243 "IPython.lib.display",
244 "IPython.lib.editorhooks",
244 "IPython.lib.editorhooks",
245 "IPython.lib.guisupport",
245 "IPython.lib.guisupport",
246 "IPython.lib.latextools",
246 "IPython.lib.latextools",
247 "IPython.lib.lexers",
247 "IPython.lib.lexers",
248 "IPython.lib.pretty",
248 "IPython.lib.pretty",
249 "IPython.paths",
249 "IPython.paths",
250 "IPython.sphinxext.ipython_console_highlighting",
250 "IPython.sphinxext.ipython_console_highlighting",
251 "IPython.terminal.debugger",
251 "IPython.terminal.debugger",
252 "IPython.terminal.embed",
252 "IPython.terminal.embed",
253 "IPython.terminal.interactiveshell",
253 "IPython.terminal.interactiveshell",
254 "IPython.terminal.magics",
254 "IPython.terminal.magics",
255 "IPython.terminal.prompts",
255 "IPython.terminal.prompts",
256 "IPython.terminal.pt_inputhooks",
256 "IPython.terminal.pt_inputhooks",
257 "IPython.terminal.pt_inputhooks.asyncio",
257 "IPython.terminal.pt_inputhooks.asyncio",
258 "IPython.terminal.pt_inputhooks.glut",
258 "IPython.terminal.pt_inputhooks.glut",
259 "IPython.terminal.pt_inputhooks.gtk",
259 "IPython.terminal.pt_inputhooks.gtk",
260 "IPython.terminal.pt_inputhooks.gtk3",
260 "IPython.terminal.pt_inputhooks.gtk3",
261 "IPython.terminal.pt_inputhooks.gtk4",
261 "IPython.terminal.pt_inputhooks.gtk4",
262 "IPython.terminal.pt_inputhooks.osx",
262 "IPython.terminal.pt_inputhooks.osx",
263 "IPython.terminal.pt_inputhooks.pyglet",
263 "IPython.terminal.pt_inputhooks.pyglet",
264 "IPython.terminal.pt_inputhooks.qt",
264 "IPython.terminal.pt_inputhooks.qt",
265 "IPython.terminal.pt_inputhooks.tk",
265 "IPython.terminal.pt_inputhooks.tk",
266 "IPython.terminal.pt_inputhooks.wx",
266 "IPython.terminal.pt_inputhooks.wx",
267 "IPython.terminal.ptutils",
267 "IPython.terminal.ptutils",
268 "IPython.terminal.shortcuts",
268 "IPython.terminal.shortcuts",
269 "IPython.terminal.shortcuts.auto_match",
269 "IPython.terminal.shortcuts.auto_match",
270 "IPython.terminal.shortcuts.auto_suggest",
270 "IPython.terminal.shortcuts.auto_suggest",
271 "IPython.terminal.shortcuts.filters",
271 "IPython.terminal.shortcuts.filters",
272 "IPython.utils._process_cli",
272 "IPython.utils._process_cli",
273 "IPython.utils._process_common",
273 "IPython.utils._process_common",
274 "IPython.utils._process_emscripten",
274 "IPython.utils._process_emscripten",
275 "IPython.utils._process_posix",
275 "IPython.utils._process_posix",
276 "IPython.utils.capture",
276 "IPython.utils.capture",
277 "IPython.utils.coloransi",
277 "IPython.utils.coloransi",
278 "IPython.utils.contexts",
278 "IPython.utils.contexts",
279 "IPython.utils.data",
279 "IPython.utils.data",
280 "IPython.utils.decorators",
280 "IPython.utils.decorators",
281 "IPython.utils.dir2",
281 "IPython.utils.dir2",
282 "IPython.utils.encoding",
282 "IPython.utils.encoding",
283 "IPython.utils.frame",
283 "IPython.utils.frame",
284 "IPython.utils.generics",
284 "IPython.utils.generics",
285 "IPython.utils.importstring",
285 "IPython.utils.importstring",
286 "IPython.utils.io",
286 "IPython.utils.io",
287 "IPython.utils.ipstruct",
287 "IPython.utils.ipstruct",
288 "IPython.utils.module_paths",
288 "IPython.utils.module_paths",
289 "IPython.utils.openpy",
289 "IPython.utils.openpy",
290 "IPython.utils.process",
290 "IPython.utils.process",
291 "IPython.utils.py3compat",
291 "IPython.utils.py3compat",
292 "IPython.utils.sentinel",
292 "IPython.utils.sentinel",
293 "IPython.utils.strdispatch",
293 "IPython.utils.strdispatch",
294 "IPython.utils.sysinfo",
294 "IPython.utils.sysinfo",
295 "IPython.utils.syspathcontext",
295 "IPython.utils.syspathcontext",
296 "IPython.utils.tempdir",
296 "IPython.utils.tempdir",
297 "IPython.utils.terminal",
297 "IPython.utils.terminal",
298 "IPython.utils.timing",
298 "IPython.utils.timing",
299 "IPython.utils.tokenutil",
299 "IPython.utils.tokenutil",
300 "IPython.utils.version",
300 "IPython.utils.version",
301 "IPython.utils.wildcard",
301 "IPython.utils.wildcard",
302
302
303 ]
303 ]
304 disallow_untyped_defs = false
304 disallow_untyped_defs = false
305 ignore_errors = true
305 ignore_errors = true
306 ignore_missing_imports = true
306 ignore_missing_imports = true
307 disallow_untyped_calls = false
307 disallow_untyped_calls = false
308 disallow_incomplete_defs = false
308 disallow_incomplete_defs = false
309 check_untyped_defs = false
309 check_untyped_defs = false
310 disallow_untyped_decorators = false
310 disallow_untyped_decorators = false
311
311
312 [tool.pytest.ini_options]
312 [tool.pytest.ini_options]
313 addopts = [
313 addopts = [
314 "--durations=10",
314 "--durations=10",
315 "-pIPython.testing.plugin.pytest_ipdoctest",
315 "-pIPython.testing.plugin.pytest_ipdoctest",
316 "--ipdoctest-modules",
316 "--ipdoctest-modules",
317 "--ignore=docs",
317 "--ignore=docs",
318 "--ignore=examples",
318 "--ignore=examples",
319 "--ignore=htmlcov",
319 "--ignore=htmlcov",
320 "--ignore=ipython_kernel",
320 "--ignore=ipython_kernel",
321 "--ignore=ipython_parallel",
321 "--ignore=ipython_parallel",
322 "--ignore=results",
322 "--ignore=results",
323 "--ignore=tmp",
323 "--ignore=tmp",
324 "--ignore=tools",
324 "--ignore=tools",
325 "--ignore=traitlets",
325 "--ignore=traitlets",
326 "--ignore=IPython/core/tests/daft_extension",
326 "--ignore=IPython/core/tests/daft_extension",
327 "--ignore=IPython/sphinxext",
327 "--ignore=IPython/sphinxext",
328 "--ignore=IPython/terminal/pt_inputhooks",
328 "--ignore=IPython/terminal/pt_inputhooks",
329 "--ignore=IPython/__main__.py",
329 "--ignore=IPython/__main__.py",
330 "--ignore=IPython/external/qt_for_kernel.py",
330 "--ignore=IPython/external/qt_for_kernel.py",
331 "--ignore=IPython/html/widgets/widget_link.py",
331 "--ignore=IPython/html/widgets/widget_link.py",
332 "--ignore=IPython/html/widgets/widget_output.py",
332 "--ignore=IPython/html/widgets/widget_output.py",
333 "--ignore=IPython/terminal/console.py",
333 "--ignore=IPython/terminal/console.py",
334 "--ignore=IPython/utils/_process_cli.py",
334 "--ignore=IPython/utils/_process_cli.py",
335 "--ignore=IPython/utils/_process_posix.py",
335 "--ignore=IPython/utils/_process_posix.py",
336 "--ignore=IPython/utils/_process_win32_controller.py",
336 "--ignore=IPython/utils/_process_win32_controller.py",
337 "--ignore=IPython/utils/daemonize.py",
337 "--ignore=IPython/utils/daemonize.py",
338 "--ignore=IPython/utils/eventful.py",
338 "--ignore=IPython/utils/eventful.py",
339 "--ignore=IPython/kernel",
339 "--ignore=IPython/kernel",
340 "--ignore=IPython/consoleapp.py",
340 "--ignore=IPython/consoleapp.py",
341 "--ignore=IPython/lib/kernel.py",
341 "--ignore=IPython/lib/kernel.py",
342 "--ignore=IPython/utils/jsonutil.py",
342 "--ignore=IPython/utils/jsonutil.py",
343 "--ignore=IPython/utils/localinterfaces.py",
343 "--ignore=IPython/utils/localinterfaces.py",
344 "--ignore=IPython/utils/log.py",
344 "--ignore=IPython/utils/log.py",
345 "--ignore=IPython/utils/signatures.py",
345 "--ignore=IPython/utils/signatures.py",
346 "--ignore=IPython/utils/version.py"
346 "--ignore=IPython/utils/version.py"
347 ]
347 ]
348 doctest_optionflags = [
348 doctest_optionflags = [
349 "NORMALIZE_WHITESPACE",
349 "NORMALIZE_WHITESPACE",
350 "ELLIPSIS"
350 "ELLIPSIS"
351 ]
351 ]
352 ipdoctest_optionflags = [
352 ipdoctest_optionflags = [
353 "NORMALIZE_WHITESPACE",
353 "NORMALIZE_WHITESPACE",
354 "ELLIPSIS"
354 "ELLIPSIS"
355 ]
355 ]
356 asyncio_mode = "strict"
356 asyncio_mode = "strict"
357
357
358 [tool.pyright]
358 [tool.pyright]
359 pythonPlatform="All"
359 pythonPlatform="All"
360
360
361 [tool.setuptools]
361 [tool.setuptools]
362 zip-safe = false
362 zip-safe = false
363 platforms = ["Linux", "Mac OSX", "Windows"]
363 platforms = ["Linux", "Mac OSX", "Windows"]
364 license-files = ["LICENSE"]
364 license-files = ["LICENSE"]
365 include-package-data = false
365 include-package-data = false
366
366
367 [tool.setuptools.packages.find]
367 [tool.setuptools.packages.find]
368 exclude = ["setupext"]
368 exclude = ["setupext"]
369 namespaces = false
369 namespaces = false
370
370
371 [tool.setuptools.package-data]
371 [tool.setuptools.package-data]
372 "IPython" = ["py.typed"]
372 "IPython" = ["py.typed"]
373 "IPython.core" = ["profile/README*"]
373 "IPython.core" = ["profile/README*"]
374 "IPython.core.tests" = ["*.png", "*.jpg", "daft_extension/*.py"]
374 "IPython.core.tests" = ["*.png", "*.jpg", "daft_extension/*.py"]
375 "IPython.lib.tests" = ["*.wav"]
375 "IPython.lib.tests" = ["*.wav"]
376 "IPython.testing.plugin" = ["*.txt"]
376 "IPython.testing.plugin" = ["*.txt"]
377
377
378 [tool.setuptools.dynamic]
378 [tool.setuptools.dynamic]
379 version = {attr = "IPython.core.release.__version__"}
379 version = {attr = "IPython.core.release.__version__"}
380
380
381 [tool.coverage.run]
381 [tool.coverage.run]
382 omit = [
382 omit = [
383 # omit everything in /tmp as we run tempfile
383 # omit everything in /tmp as we run tempfile
384 "/tmp/*",
384 "/tmp/*",
385 ]
385 ]
386
387 [tool.ruff.lint]
388 extend-select = [
389 # "B", # flake8-bugbear
390 # "I", # isort
391 # that will be a problem for pytest fixture unless you swap with the usefixture decorator https://docs.pytest.org/en/7.1.x/how-to/fixtures.html#use-fixtures-in-classes-and-modules-with-usefixtures
392 # "ARG", # flake8-unused-arguments
393 # "C4", # flake8-comprehensions
394 # "EM", # flake8-errmsg
395 # "ICN", # flake8-import-conventions
396 # "G", # flake8-logging-format
397 # "PGH", # pygrep-hooks
398 # "PIE", # flake8-pie
399 # "PL", # pylint
400 # "PTH", # flake8-use-pathlib
401 # "PT", # flake8-pytest-style
402 # "RET", # flake8-return
403 # "RUF", # Ruff-specific
404 # "SIM", # flake8-simplify
405 # "T20", # flake8-print
406 # "UP", # pyupgrade
407 # "YTT", # flake8-2020
408 # "EXE", # flake8-executable
409 # "PYI", # flake8-pyi
410 # "S", # flake8-bandit
411 ]
412 ignore = [
413 # "E501", # E501 Line too long (158 > 100 characters)
414 # "SIM105", # SIM105 Use `contextlib.suppress(...)`
415 # "PLR", # Design related pylint codes
416 # "S101", # Use of `assert` detected
417 "E712", # 1
418 "E713", # 1
419 "E902", # 2
420 "E702", # 3
421 "E721", # 3
422 "E401", # 5
423 "E711", # 14 Comparison to `None` should be `cond is None`
424 "E701", # 19 Multiple statements on one line (colon)
425 "E741", # 25 Ambiguous variable name: `<one letter>`
426 "E731", # 27 Do not assign a `lambda` expression, use a `def`
427 "E402", # 28 Module level import not at top of file
428 "E722", # 75 Do not use bare `except`
429 "F523", # 1
430 "F811", # 3
431 "F403", # 7
432 "F841", # 38 Local variable `...` is assigned to but never used
433 "F401", # 69 imported but unused
434 "F821", # 624 F821 Undefined name
435 ]
436 unfixable = [
437 # Don't touch print statements
438 "T201",
439 # Don't touch noqa lines
440 "RUF100",
441 ]
442
443 [tool.ruff]
444 extend-exclude = ["tests"]
General Comments 0
You need to be logged in to leave comments. Login now