[build-system]
requires = ["setuptools >= 77.0.3", "versioningit"]
build-backend = "setuptools.build_meta"

[project]
name = "acti-data-analyzer"
description = "A library for processing and analyzing actigraphic data."
readme = "README.md"

authors = [{name = "Piotr Biegański", email = "pbieganski@fuw.edu.pl"}]
license = "GPL-3.0-or-later"
requires-python = ">= 3.11"

keywords = ["actigraphy", "sleep", "circadian rhythms"]

classifiers = [
    "Natural Language :: English",
    "Topic :: Scientific/Engineering",
    "Development Status :: 5 - Production/Stable",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
    "Operating System :: OS Independent",
    "Environment :: Console",
]

dynamic = ["version"]
# version = "1.0.0"

dependencies = ['numpy~=2.3.0',
        'tqdm~=4.67.1',
        'ciso8601~=2.3.1',
        'multiprocess~=0.70.16',
        'scipy~=1.16.0',
        'piecewise-regression~=1.5.0',
        'matplotlib~=3.10.7',
        'pandas~=2.3.3'
]

[project.urls]
"Homepage" = "https://gitlab.com/fuw_software/aktygrafy"

[project.optional-dependencies]
gui = ["dearpygui~=2.1.1"]

test = ["pytest~=9.0.0",
        "pytest-order",
        "pytest-randomly",
        "flake8~=7.0.0",
        "flake8-pyproject",
        "mypy~=1.18.2",
        "mypy_extensions",
]

docs = ["sphinx~=8.2",
        "sphinx-autoapi~=3.6",
        "sphinx-book-theme~=1.1",
        "commonmark~=0.9.1"]


[tool.setuptools]
include-package-data = true


[tool.versioningit]

[tool.versioningit.vcs]
default-tag = "0.0.1"

[tool.versioningit.write]
file = "src/ada/_version.py"


[tool.flake8]
include = ["src/ada",
           "src/ada_gui",
           "src/pygt3x"]

exclude = [".eggs",
          ".git",
          "_env",
          "__pycache__",
          "*_pb2.py",
          "*_rc.py",
          "*_ui.py",
          "versioneer.py",
          "_version.py",
          "venv",
          ".venv",
          "build",
          "docs",
          "src/ada_gui/config_parser.py",
          "src/ada_gui/assets",
          "src/ada_gui/static"
]
doctests = true
ignore = ["W503", "E741", "E731", "W293", "E303", "E501", "C901", "E266"]
max-line-length = 120
max-complexity = 11


[tool.mypy]
ignore_missing_imports = true


[tool.pytest]
addopts = ["-vvv", "--randomly-seed=1234", "--randomly-dont-reorganize"]
testpaths = ["test"]