[project]
name = "canvasrobot"
version = "0.8.21"
description = "Library which uses Canvasapi (see https://canvasapi.readthedocs.io) to provide a CanvasRobot class."
readme = "README.md"
authors = [
    {name = "Nico de Groot", email = "ndegroot0@gmail.com"},
]

requires-python = ">=3.9,<4.0.0"
dependencies = [
    "openpyxl",
    "pydal",
    "toml",
    "keyring",
    "requests",
    "pyaml",
    "rich",
    "canvasapi",
    "attrs",
    "result",
    "pywebview<6.0.0,>=5.3.2",
    "pytz<2025.0,>=2024.2",
    "arrow<2.0.0,>=1.3.0",
    "rich-click>=1.8.4",
]

[project.scripts]
canvasrobot = "canvasrobot.commandline:run"
urltransform = "canvasrobot.urltransform:run"
#canvasgui = "canvasrobot.gui.run"

[tool.setuptools]
py-modules = ["canvasrobot"]

[tool.bumpversion]
current_version = "0.8.0"
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
serialize = ["{major}.{minor}.{patch}"]
search = "{current_version}"
replace = "{new_version}"
regex = false
ignore_missing_version = false
ignore_missing_files = false
tag = false
sign_tags = false
tag_name = "v{new_version}"
tag_message = "Bump version: {current_version} → {new_version}"
allow_dirty = false
commit = false
message = "Bump version: {current_version} → {new_version}"
commit_args = ""
setup_hooks = []
pre_commit_hooks = []
post_commit_hooks = []

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
#[build-system]
#requires = ["setuptools >= 61.0"]
#build-backend = "setuptools.build_meta"

[dependency-groups]
dev = [
    "pytest",
    "rich",
    "mock",
    "pylint",
    "ruff",
    "pymemcache",
    "mypy",
    "types-requests",
    "types-pyyaml",
    "bump-my-version",
]
[tool.uv]
default-groups = ['dev']

[tool.uv.sources]
canvasapi = { git = "https://github.com/ndegroot/canvasapi", branch="issue/440-allow-sis-ids" }
