[build-system]
requires = [
    "hatchling>=1.3.1",
    "jupyterlab~=3.1",
]
build-backend = "hatchling.build"

[project]
name = "jupyterlab-visualpython"
description = "GUI-based Python code generator for Jupyter Lab as an extension"
readme = "README.md"
requires-python = ">=3.7"
authors = [
    { name = "BlackLogic", email = "blacklogic.dev@gmail.com" },
]
keywords = [
    "Jupyter",
    "JupyterLab",
    "JupyterLab3",
]
classifiers = [
    "Framework :: Jupyter",
    "Framework :: Jupyter :: JupyterLab",
    "Framework :: Jupyter :: JupyterLab :: 3",
    "Framework :: Jupyter :: JupyterLab :: Extensions",
    "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "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",
]
version = "2.4.1"

[project.license]
file = "LICENSE"

[project.urls]
Homepage = "https://visualpython.ai"
documentation = "https://visual-python.gitbook.io/docs/getting-started/welcome-to-visual-python"
repository = "https://github.com/visualpython/visualpython"

[tool.hatch.build]
directory = "../dist/jupyterlab"
artifacts = [
    "visualpython/labextension",
]

[tool.hatch.build.targets.wheel.shared-data]
"visualpython/labextension/static" = "share/jupyter/labextensions/jupyterlab-visualpython/static"
"install.json" = "share/jupyter/labextensions/jupyterlab-visualpython/install.json"
"visualpython/labextension/package.json" = "share/jupyter/labextensions/jupyterlab-visualpython/package.json"

[tool.hatch.build.targets.sdist]
exclude = [
    ".github",
    "build.jupyterlab.sh",
]

[tool.hatch.build.hooks.jupyter-builder]
dependencies = [
    "hatch-jupyter-builder>=0.5.0",
]
build-function = "hatch_jupyter_builder.npm_builder"
ensured-targets = [
    "visualpython/labextension/static/style.js",
    "visualpython/labextension/package.json",
]
skip-if-exists = [
    "visualpython/labextension/static/style.js",
]

[tool.hatch.build.hooks.jupyter-builder.editable-build-kwargs]
build_dir = "visualpython/labextension"
source_dir = "lib"
build_cmd = "build"

[tool.hatch.build.hooks.jupyter-builder.build-kwargs]
build_cmd = "build:prod"

[tool.tbump]
field = [
    { name = "channel", default = "" },
    { name = "release", default = "" },
]
file = [
    { src = "pyproject.toml" },
    { src = "visualpython/_version.py" },
    { src = "package.json" },
]

[tool.tbump.version]
current = "2.4.1"
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}"

[license]
file = "LICENSE"
