content: # Copyright 2023-2025 The MathWorks, Inc.
  
  [build-system]
  requires = ["hatchling>=1.5.0", "jupyterlab>=4.0.0,<5", "hatch-nodejs-version>=0.3.2"]
  build-backend = "hatchling.build"
  
  [project]
  name = "jupyter-matlab-proxy"
  version = "0.17.1"
  description = "MATLAB Integration for Jupyter"
  readme = "README.md"
  license = { file = "LICENSE.md" }
  requires-python = ">=3.8"
  authors = [
      { name = "The MathWorks Inc.", email = "jupyter-support@mathworks.com" },
  ]
  keywords = [
      "Jupyter",
      "Jupyter Proxy",
      "Jupyter Server Proxy",
      "MATLAB",
      "MATLAB Integration for Jupyter",
      "MATLAB Proxy",
      "MATLAB Web Desktop",
      "Remote MATLAB Web Access",
      "JupyterLab",
      "MATLAB Kernel for Jupyter",
  ]
  classifiers = [
      "Framework :: Jupyter",
      "Framework :: Jupyter :: JupyterLab",
      "Intended Audience :: Developers",
      "Natural Language :: English",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3.8",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
  ]
  
  dependencies = [
      "aiohttp",
      "ipykernel>=6.0.3",
      "jupyter-client",
      "jupyter-server-proxy>=4.1.0",
      "matlab-proxy>=0.26.0",
      "psutil",
      "requests",
  ]
  
  [project.urls]
  Homepage = "https://github.com/mathworks/jupyter-matlab-proxy"
  
  [project.optional-dependencies]
  dev = [
      "black",
      "jupyter-kernel-test",
      "pytest",
      "pytest-aiohttp",
      "pytest-asyncio",
      "pytest-cov",
      "pytest-mock",
      "pytest-playwright",
  ]
  
  [project.scripts]
  # Note: If the following name of the script is updated, it should also be updated
  # in main function of kernelspec.py
  install-matlab-kernelspec = "jupyter_matlab_kernel.kernelspec:main"
  
  [tool.hatch.envs.hatch-test]
  features = [
      "dev",
  ]
  
  [[tool.hatch.envs.hatch-test.matrix]]
  python = ["3.9", "3.10", "3.11", "3.12", "3.13"]
  
  [project.entry-points.jupyter_serverproxy_servers]
  matlab = "jupyter_matlab_proxy:setup_matlab"
  
  [project.entry-points.matlab_proxy_configs]
  Jupyter = "jupyter_matlab_proxy.jupyter_config:config"
  
  [tool.hatch.version]
  source = "nodejs"
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/jupyter_matlab_kernel", "src/jupyter_matlab_proxy"]
  
  [tool.hatch.build.targets.sdist]
  artifacts = [
      "src/jupyter_matlab_labextension/jupyter_matlab_labextension/labextension",
  ]
  exclude = [".github"]
  
  # Used to call hatch_build.py
  [tool.hatch.build.hooks.custom]
  
  [tool.hatch.build.targets.wheel.shared-data]
  "src/jupyter_matlab_labextension/jupyter_matlab_labextension/labextension" = "share/jupyter/labextensions/jupyter_matlab_labextension"
  "src/jupyter_matlab_labextension/install.json" = "share/jupyter/labextensions/jupyter_matlab_labextension/install.json"
  "src/jupyter_matlab_kernel/kernelspec" = "share/jupyter/kernels/jupyter_matlab_kernel"
  
  [tool.hatch.build.hooks.jupyter-builder]
  dependencies = ["hatch-jupyter-builder>=0.8.1"]
  build-function = "hatch_jupyter_builder.npm_builder"
  ensured-targets = [
      "src/jupyter_matlab_labextension/jupyter_matlab_labextension/labextension/static/style.js",
      "src/jupyter_matlab_labextension/jupyter_matlab_labextension/labextension/package.json",
  ]
  skip-if-exists = [
      "src/jupyter_matlab_labextension/jupyter_matlab_labextension/labextension/static/style.js",
  ]
  
  [tool.hatch.build.hooks.jupyter-builder.build-kwargs]
  path = "src/jupyter_matlab_labextension"
  build_cmd = "build:prod"
  npm = ["jlpm"]
  
  [tool.hatch.build.hooks.jupyter-builder.editable-build-kwargs]
  path = "src/jupyter_matlab_labextension"
  build_cmd = "install:extension"
  npm = ["jlpm"]
  
  
  [tool.pytest.ini_options]
  minversion = "6.0"
  addopts = "-ra -q"
  asyncio_mode = "auto"
  asyncio_default_fixture_loop_scope = "function"
  testpaths = ["tests"]
  filterwarnings = ["ignore::DeprecationWarning", "ignore::RuntimeWarning"]
  
  [tool.coverage.run]
  source = ["jupyter_matlab_proxy", "jupyter_matlab_kernel"]
  omit = ["**/__main__.py"]
  branch = true
  