|
|
[build-system]
|
|
|
requires = ["setuptools>=61.2"]
|
|
|
# We need access to the 'setupbase' module at build time.
|
|
|
# Hence we declare a custom build backend.
|
|
|
build-backend = "_build_meta" # just re-exports setuptools.build_meta definitions
|
|
|
backend-path = ["."]
|
|
|
|
|
|
[project]
|
|
|
name = "ipython"
|
|
|
description = "IPython: Productive Interactive Computing"
|
|
|
keywords = ["Interactive", "Interpreter", "Shell", "Embedding"]
|
|
|
classifiers = [
|
|
|
"Framework :: IPython",
|
|
|
"Framework :: Jupyter",
|
|
|
"Intended Audience :: Developers",
|
|
|
"Intended Audience :: Science/Research",
|
|
|
"License :: OSI Approved :: BSD License",
|
|
|
"Programming Language :: Python",
|
|
|
"Programming Language :: Python :: 3",
|
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
|
"Topic :: System :: Shells",
|
|
|
]
|
|
|
requires-python = ">=3.11"
|
|
|
dependencies = [
|
|
|
'colorama; sys_platform == "win32"',
|
|
|
"decorator",
|
|
|
"jedi>=0.16",
|
|
|
"matplotlib-inline",
|
|
|
'pexpect>4.3; sys_platform != "win32" and sys_platform != "emscripten"',
|
|
|
"prompt_toolkit>=3.0.41,<3.1.0",
|
|
|
"pygments>=2.4.0",
|
|
|
"stack_data",
|
|
|
"traitlets>=5.13.0",
|
|
|
"typing_extensions>=4.6; python_version<'3.12'",
|
|
|
]
|
|
|
dynamic = ["authors", "license", "version"]
|
|
|
|
|
|
[project.entry-points."pygments.lexers"]
|
|
|
ipythonconsole = "IPython.lib.lexers:IPythonConsoleLexer"
|
|
|
ipython = "IPython.lib.lexers:IPythonLexer"
|
|
|
ipython3 = "IPython.lib.lexers:IPython3Lexer"
|
|
|
|
|
|
[project.scripts]
|
|
|
ipython = "IPython:start_ipython"
|
|
|
ipython3 = "IPython:start_ipython"
|
|
|
|
|
|
[project.readme]
|
|
|
file = "long_description.rst"
|
|
|
content-type = "text/x-rst"
|
|
|
|
|
|
[project.urls]
|
|
|
Homepage = "https://ipython.org"
|
|
|
Documentation = "https://ipython.readthedocs.io/"
|
|
|
Funding = "https://numfocus.org/"
|
|
|
Source = "https://github.com/ipython/ipython"
|
|
|
Tracker = "https://github.com/ipython/ipython/issues"
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
black = [
|
|
|
"black",
|
|
|
]
|
|
|
doc = [
|
|
|
"docrepr",
|
|
|
"exceptiongroup",
|
|
|
"intersphinx_registry",
|
|
|
"ipykernel",
|
|
|
"ipython[test]",
|
|
|
"matplotlib",
|
|
|
"setuptools>=18.5",
|
|
|
"sphinx-rtd-theme",
|
|
|
"sphinx>=1.3",
|
|
|
"sphinxcontrib-jquery",
|
|
|
]
|
|
|
kernel = [
|
|
|
"ipykernel",
|
|
|
]
|
|
|
nbconvert = [
|
|
|
"nbconvert",
|
|
|
]
|
|
|
nbformat = [
|
|
|
"nbformat",
|
|
|
]
|
|
|
notebook = [
|
|
|
"ipywidgets",
|
|
|
"notebook",
|
|
|
]
|
|
|
parallel = [
|
|
|
"ipyparallel",
|
|
|
]
|
|
|
qtconsole = [
|
|
|
"qtconsole",
|
|
|
]
|
|
|
terminal = []
|
|
|
test = [
|
|
|
"pytest",
|
|
|
"pytest-asyncio<0.22",
|
|
|
"testpath",
|
|
|
"pickleshare",
|
|
|
"packaging",
|
|
|
]
|
|
|
test_extra = [
|
|
|
"ipython[test]",
|
|
|
"curio",
|
|
|
"matplotlib!=3.2.0",
|
|
|
"nbformat",
|
|
|
"numpy>=1.23",
|
|
|
"pandas",
|
|
|
"trio",
|
|
|
]
|
|
|
matplotlib = [
|
|
|
"matplotlib"
|
|
|
]
|
|
|
all = [
|
|
|
"ipython[black,doc,kernel,nbconvert,nbformat,notebook,parallel,qtconsole,matplotlib]",
|
|
|
"ipython[test,test_extra]",
|
|
|
]
|
|
|
|
|
|
[tool.mypy]
|
|
|
python_version = "3.10"
|
|
|
ignore_missing_imports = true
|
|
|
follow_imports = 'silent'
|
|
|
exclude = [
|
|
|
'test_\.+\.py',
|
|
|
'IPython.utils.tests.test_wildcard',
|
|
|
'testing',
|
|
|
'tests',
|
|
|
'PyColorize.py',
|
|
|
'_process_win32_controller.py',
|
|
|
'IPython/core/application.py',
|
|
|
'IPython/core/profileapp.py',
|
|
|
'IPython/lib/deepreload.py',
|
|
|
'IPython/sphinxext/ipython_directive.py',
|
|
|
'IPython/terminal/ipapp.py',
|
|
|
'IPython/utils/_process_win32.py',
|
|
|
'IPython/utils/path.py',
|
|
|
]
|
|
|
# check_untyped_defs = true
|
|
|
# disallow_untyped_calls = true
|
|
|
# disallow_untyped_decorators = true
|
|
|
# ignore_errors = false
|
|
|
# ignore_missing_imports = false
|
|
|
disallow_incomplete_defs = true
|
|
|
disallow_untyped_defs = true
|
|
|
warn_redundant_casts = true
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
module = [
|
|
|
"IPython.core.crashhandler",
|
|
|
]
|
|
|
check_untyped_defs = true
|
|
|
disallow_incomplete_defs = true
|
|
|
disallow_untyped_calls = true
|
|
|
disallow_untyped_decorators = true
|
|
|
disallow_untyped_defs = true
|
|
|
ignore_errors = false
|
|
|
ignore_missing_imports = false
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
module = [
|
|
|
"IPython.utils.text",
|
|
|
]
|
|
|
disallow_untyped_defs = true
|
|
|
check_untyped_defs = false
|
|
|
disallow_untyped_decorators = true
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
module = [
|
|
|
]
|
|
|
disallow_untyped_defs = false
|
|
|
ignore_errors = true
|
|
|
ignore_missing_imports = true
|
|
|
disallow_untyped_calls = false
|
|
|
disallow_incomplete_defs = false
|
|
|
check_untyped_defs = false
|
|
|
disallow_untyped_decorators = false
|
|
|
|
|
|
|
|
|
# gloabl ignore error
|
|
|
[[tool.mypy.overrides]]
|
|
|
module = [
|
|
|
"IPython",
|
|
|
"IPython.conftest",
|
|
|
"IPython.core.alias",
|
|
|
"IPython.core.async_helpers",
|
|
|
"IPython.core.autocall",
|
|
|
"IPython.core.builtin_trap",
|
|
|
"IPython.core.compilerop",
|
|
|
"IPython.core.completer",
|
|
|
"IPython.core.completerlib",
|
|
|
"IPython.core.debugger",
|
|
|
"IPython.core.display",
|
|
|
"IPython.core.display_functions",
|
|
|
"IPython.core.display_trap",
|
|
|
"IPython.core.displayhook",
|
|
|
"IPython.core.displaypub",
|
|
|
"IPython.core.events",
|
|
|
"IPython.core.excolors",
|
|
|
"IPython.core.extensions",
|
|
|
"IPython.core.formatters",
|
|
|
"IPython.core.getipython",
|
|
|
"IPython.core.guarded_eval",
|
|
|
"IPython.core.historyapp",
|
|
|
"IPython.core.hooks",
|
|
|
"IPython.core.inputtransformer",
|
|
|
"IPython.core.inputtransformer2",
|
|
|
"IPython.core.interactiveshell",
|
|
|
"IPython.core.logger",
|
|
|
"IPython.core.macro",
|
|
|
"IPython.core.magic",
|
|
|
"IPython.core.magic_arguments",
|
|
|
"IPython.core.magics.ast_mod",
|
|
|
"IPython.core.magics.auto",
|
|
|
"IPython.core.magics.basic",
|
|
|
"IPython.core.magics.code",
|
|
|
"IPython.core.magics.config",
|
|
|
"IPython.core.magics.display",
|
|
|
"IPython.core.magics.execution",
|
|
|
"IPython.core.magics.extension",
|
|
|
"IPython.core.magics.history",
|
|
|
"IPython.core.magics.logging",
|
|
|
"IPython.core.magics.namespace",
|
|
|
"IPython.core.magics.osm",
|
|
|
"IPython.core.magics.packaging",
|
|
|
"IPython.core.magics.pylab",
|
|
|
"IPython.core.magics.script",
|
|
|
"IPython.core.oinspect",
|
|
|
"IPython.core.page",
|
|
|
"IPython.core.payload",
|
|
|
"IPython.core.payloadpage",
|
|
|
"IPython.core.prefilter",
|
|
|
"IPython.core.profiledir",
|
|
|
"IPython.core.prompts",
|
|
|
"IPython.core.pylabtools",
|
|
|
"IPython.core.shellapp",
|
|
|
"IPython.core.splitinput",
|
|
|
"IPython.core.ultratb",
|
|
|
"IPython.extensions.autoreload",
|
|
|
"IPython.extensions.storemagic",
|
|
|
"IPython.external.qt_for_kernel",
|
|
|
"IPython.external.qt_loaders",
|
|
|
"IPython.lib.backgroundjobs",
|
|
|
"IPython.lib.clipboard",
|
|
|
"IPython.lib.demo",
|
|
|
"IPython.lib.display",
|
|
|
"IPython.lib.editorhooks",
|
|
|
"IPython.lib.guisupport",
|
|
|
"IPython.lib.latextools",
|
|
|
"IPython.lib.lexers",
|
|
|
"IPython.lib.pretty",
|
|
|
"IPython.paths",
|
|
|
"IPython.sphinxext.ipython_console_highlighting",
|
|
|
"IPython.terminal.debugger",
|
|
|
"IPython.terminal.embed",
|
|
|
"IPython.terminal.interactiveshell",
|
|
|
"IPython.terminal.magics",
|
|
|
"IPython.terminal.prompts",
|
|
|
"IPython.terminal.pt_inputhooks",
|
|
|
"IPython.terminal.pt_inputhooks.asyncio",
|
|
|
"IPython.terminal.pt_inputhooks.glut",
|
|
|
"IPython.terminal.pt_inputhooks.gtk",
|
|
|
"IPython.terminal.pt_inputhooks.gtk3",
|
|
|
"IPython.terminal.pt_inputhooks.gtk4",
|
|
|
"IPython.terminal.pt_inputhooks.osx",
|
|
|
"IPython.terminal.pt_inputhooks.pyglet",
|
|
|
"IPython.terminal.pt_inputhooks.qt",
|
|
|
"IPython.terminal.pt_inputhooks.tk",
|
|
|
"IPython.terminal.pt_inputhooks.wx",
|
|
|
"IPython.terminal.ptutils",
|
|
|
"IPython.terminal.shortcuts",
|
|
|
"IPython.terminal.shortcuts.auto_match",
|
|
|
"IPython.terminal.shortcuts.auto_suggest",
|
|
|
"IPython.terminal.shortcuts.filters",
|
|
|
"IPython.utils._process_cli",
|
|
|
"IPython.utils._process_common",
|
|
|
"IPython.utils._process_emscripten",
|
|
|
"IPython.utils._process_posix",
|
|
|
"IPython.utils.capture",
|
|
|
"IPython.utils.coloransi",
|
|
|
"IPython.utils.contexts",
|
|
|
"IPython.utils.data",
|
|
|
"IPython.utils.decorators",
|
|
|
"IPython.utils.dir2",
|
|
|
"IPython.utils.encoding",
|
|
|
"IPython.utils.frame",
|
|
|
"IPython.utils.generics",
|
|
|
"IPython.utils.importstring",
|
|
|
"IPython.utils.io",
|
|
|
"IPython.utils.ipstruct",
|
|
|
"IPython.utils.module_paths",
|
|
|
"IPython.utils.openpy",
|
|
|
"IPython.utils.process",
|
|
|
"IPython.utils.py3compat",
|
|
|
"IPython.utils.sentinel",
|
|
|
"IPython.utils.strdispatch",
|
|
|
"IPython.utils.sysinfo",
|
|
|
"IPython.utils.syspathcontext",
|
|
|
"IPython.utils.tempdir",
|
|
|
"IPython.utils.terminal",
|
|
|
"IPython.utils.timing",
|
|
|
"IPython.utils.tokenutil",
|
|
|
"IPython.utils.version",
|
|
|
"IPython.utils.wildcard",
|
|
|
|
|
|
]
|
|
|
disallow_untyped_defs = false
|
|
|
ignore_errors = true
|
|
|
ignore_missing_imports = true
|
|
|
disallow_untyped_calls = false
|
|
|
disallow_incomplete_defs = false
|
|
|
check_untyped_defs = false
|
|
|
disallow_untyped_decorators = false
|
|
|
|
|
|
[tool.pytest.ini_options]
|
|
|
addopts = [
|
|
|
"--durations=10",
|
|
|
"-pIPython.testing.plugin.pytest_ipdoctest",
|
|
|
"--ipdoctest-modules",
|
|
|
"--ignore=docs",
|
|
|
"--ignore=examples",
|
|
|
"--ignore=htmlcov",
|
|
|
"--ignore=ipython_kernel",
|
|
|
"--ignore=ipython_parallel",
|
|
|
"--ignore=results",
|
|
|
"--ignore=tmp",
|
|
|
"--ignore=tools",
|
|
|
"--ignore=traitlets",
|
|
|
"--ignore=IPython/core/tests/daft_extension",
|
|
|
"--ignore=IPython/sphinxext",
|
|
|
"--ignore=IPython/terminal/pt_inputhooks",
|
|
|
"--ignore=IPython/__main__.py",
|
|
|
"--ignore=IPython/external/qt_for_kernel.py",
|
|
|
"--ignore=IPython/html/widgets/widget_link.py",
|
|
|
"--ignore=IPython/html/widgets/widget_output.py",
|
|
|
"--ignore=IPython/terminal/console.py",
|
|
|
"--ignore=IPython/utils/_process_cli.py",
|
|
|
"--ignore=IPython/utils/_process_posix.py",
|
|
|
"--ignore=IPython/utils/_process_win32.py",
|
|
|
"--ignore=IPython/utils/_process_win32_controller.py",
|
|
|
"--ignore=IPython/utils/daemonize.py",
|
|
|
"--ignore=IPython/utils/eventful.py",
|
|
|
"--ignore=IPython/kernel",
|
|
|
"--ignore=IPython/consoleapp.py",
|
|
|
"--ignore=IPython/lib/kernel.py",
|
|
|
"--ignore=IPython/utils/jsonutil.py",
|
|
|
"--ignore=IPython/utils/localinterfaces.py",
|
|
|
"--ignore=IPython/utils/log.py",
|
|
|
"--ignore=IPython/utils/signatures.py",
|
|
|
"--ignore=IPython/utils/version.py"
|
|
|
]
|
|
|
doctest_optionflags = [
|
|
|
"NORMALIZE_WHITESPACE",
|
|
|
"ELLIPSIS"
|
|
|
]
|
|
|
ipdoctest_optionflags = [
|
|
|
"NORMALIZE_WHITESPACE",
|
|
|
"ELLIPSIS"
|
|
|
]
|
|
|
asyncio_mode = "strict"
|
|
|
|
|
|
[tool.pyright]
|
|
|
pythonPlatform="All"
|
|
|
|
|
|
[tool.setuptools]
|
|
|
zip-safe = false
|
|
|
platforms = ["Linux", "Mac OSX", "Windows"]
|
|
|
license-files = ["LICENSE"]
|
|
|
include-package-data = false
|
|
|
|
|
|
[tool.setuptools.packages.find]
|
|
|
exclude = ["setupext"]
|
|
|
namespaces = false
|
|
|
|
|
|
[tool.setuptools.package-data]
|
|
|
"IPython" = ["py.typed"]
|
|
|
"IPython.core" = ["profile/README*"]
|
|
|
"IPython.core.tests" = ["*.png", "*.jpg", "daft_extension/*.py"]
|
|
|
"IPython.lib.tests" = ["*.wav"]
|
|
|
"IPython.testing.plugin" = ["*.txt"]
|
|
|
|
|
|
[tool.setuptools.dynamic]
|
|
|
version = {attr = "IPython.core.release.__version__"}
|
|
|
|
|
|
[tool.coverage.run]
|
|
|
omit = [
|
|
|
# omit everything in /tmp as we run tempfile
|
|
|
"/tmp/*",
|
|
|
]
|
|
|
|