[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.10" dependencies = [ 'colorama; sys_platform == "win32"', "decorator", "exceptiongroup; python_version<'3.11'", "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", "tomli ; python_version<'3.11'", "typing_extensions", ] kernel = [ "ipykernel", ] nbconvert = [ "nbconvert", ] nbformat = [ "nbformat", ] notebook = [ "ipywidgets", "notebook", ] parallel = [ "ipyparallel", ] qtconsole = [ "qtconsole", ] terminal = [] test = [ "pytest", "pytest-asyncio<0.22", "testpath", "pickleshare", ] 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', ] disallow_untyped_defs = true # ignore_errors = false # ignore_missing_imports = false # disallow_untyped_calls = true disallow_incomplete_defs = true # check_untyped_defs = true # disallow_untyped_decorators = true warn_redundant_casts = true [[tool.mypy.overrides]] module = [ "IPython.utils.text", ] disallow_untyped_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.crashhandler", "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.history", "IPython.core.historyapp", "IPython.core.hooks", "IPython.core.inputsplitter", "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.shimmodule", "IPython.utils.strdispatch", "IPython.utils.sysinfo", "IPython.utils.syspathcontext", "IPython.utils.tempdir", "IPython.utils.terminal", "IPython.utils.timing", "IPython.utils.tokenutil", "IPython.utils.tz", "IPython.utils.ulinecache", "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/core/inputsplitter.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/traitlets.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__"}