[build-system]
requires = ["hatchling>=0.25"]
build-backend = "hatchling.build"
[project]
name = "jupyter_client"
version = "7.4.9"
description = "Jupyter protocol implementation and client libraries"
keywords = [ "Interactive", "Interpreter", "Shell", "Web",]
classifiers = [
"Framework :: Jupyter",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: System Administrators",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
]
requires-python = ">=3.7"
dependencies = [
"entrypoints",
"jupyter_core>=4.9.2",
"nest-asyncio>=1.5.4",
"python-dateutil>=2.8.2",
"pyzmq>=23.0",
"tornado>=6.2",
"traitlets",
]
[[project.authors]]
name = "Jupyter Development Team"
email = "jupyter@googlegroups.com"
[project.readme]
file = "README.md"
content-type = "text/markdown"
[project.license]
file = "COPYING.md"
[project.urls]
Homepage = "https://jupyter.org"
[project.optional-dependencies]
test = [
"codecov",
"coverage",
"ipykernel>=6.12",
"ipython",
"mypy",
"pre-commit",
"pytest",
"pytest-asyncio>=0.18",
"pytest-cov",
"pytest-timeout",
]
doc = [
"ipykernel",
"myst-parser",
"sphinx>=1.3.6",
"sphinx_rtd_theme",
"sphinxcontrib_github_alt",
]
[project.scripts]
jupyter-kernelspec = "jupyter_client.kernelspecapp:KernelSpecApp.launch_instance"
jupyter-run = "jupyter_client.runapp:RunApp.launch_instance"
jupyter-kernel = "jupyter_client.kernelapp:main"
[project.entry-points."jupyter_client.kernel_provisioners"]
local-provisioner = "jupyter_client.provisioning:LocalProvisioner"
[tool.black]
line-length = 100
skip-string-normalization = true
target_version = [
"py37",
"py38",
"py39",
"py310",
]
[tool.jupyter-releaser]
skip = ["check-links"]
[tool.check-manifest]
ignore = [".mailmap", "*.yml", "*.yaml"]
[tool.tbump.version]
current = "7.4.9"
regex = '''
(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
((?P<channel>a|b|rc|.dev)(?P<release>\d+))?
'''
[tool.tbump.git]
message_template = "Bump to {new_version}"
tag_template = "v{new_version}"
[[tool.tbump.file]]
src = "jupyter_client/_version.py"
[[tool.tbump.file]]
src = "pyproject.toml"
[tool.pytest.ini_options]
addopts = "-raXs --durations 10 --color=yes --doctest-modules"
testpaths = [
"jupyter_client/tests/"
]
timeout = 300
# Restore this setting to debug failures
# timeout_method = "thread"
asyncio_mode = "auto"
filterwarnings= [
# Fail on warnings
"error",
# We need to handle properly closing loops as part of https://github.com/jupyter/jupyter_client/issues/755.
"ignore:unclosed <socket.socket:ResourceWarning",
"ignore:unclosed event loop:ResourceWarning",
# Workaround for https://github.com/tornadoweb/tornado/issues/3106
# (To be fixed in Tornado 6.2)
"ignore:There is no current event loop:DeprecationWarning",
# ZMQ uses Future internally, which raises a DeprecationWarning
# When there is no loop running.
# We could eventually find a way to make sure these are only created
# when there is a running event loop.
"ignore:There is no current event loop:DeprecationWarning:zmq",
# Workaround for jupyter_core warning.
"module:Jupyter is migrating its paths to use standard platformdirs:DeprecationWarning",
"ignore:zmq.tests.BaseZMQTestCase is deprecated in pyzmq 25:DeprecationWarning",
]
[tool.mypy]
check_untyped_defs = true
disallow_any_generics = false
disallow_incomplete_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
no_implicit_reexport = false
pretty = true
show_error_context = true
show_error_codes = true
strict_equality = true
strict_optional = true
warn_unused_configs = true
warn_redundant_casts = true
warn_return_any = false
warn_unused_ignores = true
[[tool.mypy.overrides]]
module = [
"traitlets.*",
"jupyter_core.*",
"ipykernel",
"entrypoints"
]
ignore_missing_imports = true