[build-system] requires = ["hatchling>=1.5.0", "hatch-nodejs-version>=0.3.2", "jupyter-builder>=1.0.0,<2"] build-backend = "hatchling.build" [project] name = "snapshot" readme = "README.md" license = { file = "LICENSE" } requires-python = ">=3.10" classifiers = [ "Framework :: Jupyter", "Framework :: Jupyter :: JupyterLab", "Framework :: Jupyter :: JupyterLab :: 4", "Framework :: Jupyter :: JupyterLab :: Extensions", "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", ] dependencies = [ "jupyter_server>=2.4.0,<3", ] dynamic = ["version", "description", "authors", "urls", "keywords"] [project.optional-dependencies] dev = [ "jupyterlab>=4", "jupyter-builder>=1.0.0", ] test = [ "coverage", "pytest", "pytest-asyncio", "pytest-cov", "pytest-jupyter[server]>=0.6.0" ] s3 = [ "boto3>=1.34.0", ] [[tool.uv.index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple/" default = true [tool.hatch.version] source = "nodejs" [tool.hatch.metadata.hooks.nodejs] fields = ["description", "authors", "urls", "keywords"] [tool.hatch.build.targets.sdist] artifacts = ["snapshot/labextension"] exclude = [".github", "binder"] [tool.hatch.build.targets.wheel.shared-data] "snapshot/labextension" = "share/jupyter/labextensions/snapshot" "install.json" = "share/jupyter/labextensions/snapshot/install.json" "jupyter-config/server-config" = "etc/jupyter/jupyter_server_config.d" [tool.hatch.build.hooks.version] path = "snapshot/_version.py" [tool.hatch.build.hooks.jupyter-builder] dependencies = ["hatch-jupyter-builder>=0.5"] build-function = "hatch_jupyter_builder.npm_builder" ensured-targets = [ "snapshot/labextension/static/style.js", "snapshot/labextension/package.json", ] skip-if-exists = ["snapshot/labextension/static/style.js"] [tool.hatch.build.hooks.jupyter-builder.build-kwargs] build_cmd = "build:prod" npm = ["jlpm"] [tool.hatch.build.hooks.jupyter-builder.editable-build-kwargs] build_cmd = "install:extension" npm = ["jlpm"] source_dir = "src" build_dir = "snapshot/labextension" [tool.jupyter-releaser.options] version_cmd = "hatch version" [tool.jupyter-releaser.hooks] before-build-npm = [ "python -m pip install 'jupyter-builder>=1.0.0,<2'", "jlpm", "jlpm build:prod" ] before-build-python = ["jlpm clean:all"] [tool.check-wheel-contents] ignore = ["W002"]