[build-system] requires = [ "hatchling>=1.10.0", "jupyterlab>=4.1.0,<5", ] build-backend = "hatchling.build" [project] name = "nbgrader" description = "A system for assigning and grading notebooks" readme = "README.md" requires-python = ">=3.8" authors = [ { name = "Jupyter Development Team", email = "jupyter@googlegroups.com" }, ] keywords = [ "Grading", "Homework", "Jupyter", "JupyterLab", "Notebooks", ] 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", ] dependencies = [ "alembic>=1.7", "ipython>=8.10.0", "ipywidgets>=7.6", "Jinja2>=3", "jsonschema>=3", "jupyter_client<9", "jupyter_server>=2", "jupyterlab>=4.1.0,<5", "jupyterlab_server", "nbclient>=0.6.1", "nbconvert>=6", "notebook>=7.0.2,<8", "python-dateutil>=2.8", "rapidfuzz>=1.8", "requests>=2.26", "setuptools", "sqlalchemy>=1.4,<3", "PyYAML>=6.0", ] version = "0.9.1" [project.license] file = "LICENSE" [project.optional-dependencies] dev = [ "tbump", "toml", ] docs = [ "myst-parser", "sphinx>=7,<8", "sphinx-autodoc-typehints", "sphinx_rtd_theme>=1.3", ] tests = [ "codecov", "coverage", "jupyter_packaging", "nbval>=0.11.0", "pytest-cov", "pytest-jupyter", "pytest-rerunfailures", "pytest-tornasync", "pytest-xdist", "pytest>=7", "requests-mock", "wheel", ] [project.scripts] nbgrader = "nbgrader.apps.nbgraderapp:main" [project.urls] Homepage = "https://github.com/jupyter/nbgrader" [tool.hatch.build] artifacts = [ "nbgrader/labextension/", "nbgrader/tests/", "nbgrader/docs/", "nbgrader/server_extensions/", ] [tool.hatch.build.targets.sdist] include = [ "/etc", "/nbgrader", "/schema", "/src", "/style", "/*.*" ] exclude = [ "/.github", ] [tool.hatch.build.targets.wheel.shared-data] "etc/jupyter/jupyter_server_config.d" = "etc/jupyter/jupyter_server_config.d" "nbgrader/labextension/static" = "share/jupyter/labextensions/nbgrader/static" "install.json" = "share/jupyter/labextensions/nbgrader/install.json" "nbgrader/labextension/package.json" = "share/jupyter/labextensions/nbgrader/package.json" "nbgrader/labextension/schemas/nbgrader" = "share/jupyter/labextensions/nbgrader/schemas/nbgrader" [tool.hatch.build.hooks.jupyter-builder] dependencies = [ "hatch-jupyter-builder>=0.7", ] build-function = "hatch_jupyter_builder.npm_builder" ensured-targets = [ "nbgrader/labextension/static/style.js", "nbgrader/labextension/package.json", ] skip-if-exists = [ "nbgrader/labextension/static/style.js", ] [tool.hatch.build.hooks.jupyter-builder.editable-build-kwargs] build_dir = "nbgrader/labextension" source_dir = "src" build_cmd = "install:labextension" npm = [ "jlpm", ] [tool.hatch.build.hooks.jupyter-builder.build-kwargs] build_cmd = "build:prod" npm = [ "jlpm", ] [tool.jupyter-releaser.hooks] after-bump-version = [ "python tools/post-bump.py", ] before-build-npm = [ "python -m pip install 'jupyterlab>=4'", "jlpm", "jlpm build:prod", ] before-build-python = [ "jlpm clean:all", ] [tool.tbump.version] current = "0.9.1" regex = ''' (?P\d+)\.(?P\d+)\.(?P\d+) ((?Pa|b|rc|.dev)(?P\d+))? ''' [tool.tbump.git] message_template = "Bump to {new_version}" tag_template = "v{new_version}" [[tool.tbump.before_commit]] name = "check changelog" cmd = "grep -q {new_version} CHANGELOG.md" [[tool.tbump.file]] src = "nbgrader/_version.py" version_template = '({major}, {minor}, {patch}, "{channel}", "{release}")' [[tool.tbump.file]] src = "pyproject.toml" [[tool.tbump.file]] src = "src/assignment_list/index.ts" [[tool.tbump.file]] src = "src/course_list/index.ts" [[tool.tbump.file]] src = "src/validate_assignment/index.ts" [[tool.tbump.field]] name = "channel" default = "" [[tool.tbump.field]] name = "release" default = "" [tool.check-wheel-contents] ignore = ["W002", "W004"]