# ********** Please don't edit this file!
# ********** It has been generated automatically by dae_devops version 0.5.4.dev0+g1fb30ef.d20230527.
# ********** For repository_name dls-bxflow

[build-system]
requires = ["setuptools>=64", "setuptools_scm[toml]>=6.2", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "dls-bxflow"
classifiers = [
    "Development Status :: 3 - Alpha",
    "License :: OSI Approved :: Apache Software License",
    "Programming Language :: Python :: 3.10",
]
description = "Distributed beamline automated data processing workflow engine and gui platform core."
dependencies = ["aio-pika", "dask[distributed]", "dls-servbase", "dls-mainiac", "dls-multiconf", "dls-utilpack", "dls-pairstream", "future", "graypy", "h5py", "ispyb==6.13.0", "ipykernel", "jsonpickle", "lxml", "nbclient", "nbconvert", "nbformat", "pika", "prettytable", "pyyaml", "ruamel.yaml", "stomp.py", "workflows", "beautifulsoup4"]
dynamic = ["version"]
license.file = "LICENSE"
readme = "README.md"
requires-python = ">=3.10"

[project.optional-dependencies]
dev = [
    "black==22.12.0",
    "mypy",
    "flake8-isort",
    "Flake8-pyproject",
    "pipdeptree",
    "pre-commit",
    "pytest-cov",
    "pydocstyle[toml]",
    "tox-direct",
    "types-mock",
    "types-PyYAML",
]
docs = [
    "pydata-sphinx-theme>=0.12",
    "sphinx-argparse",
    "sphinx-autobuild",
    "sphinx-copybutton",
    "sphinx-design",
    "tox-direct",
    "nbsphinx",
    "pandoc",
    "ipykernel",
    "h5py",
    "matplotlib",
]

[project.scripts]
dls-bxflow = "dls_bxflow_lib.__main__:main"
"dls-bxflow.cli" = "dls_bxflow_cli.main:main"

[project.urls]
gitlab = "https://gitlab.diamond.ac.uk/scisoft/bxflow/dls-bxflow"

[[project.authors]] # Further authors may be added by duplicating this section
email = "david.erb@diamond.ac.uk"
name = "David Erb"


[tool.setuptools_scm]
write_to = "src/dls_bxflow_lib/_version.py"

[tool.mypy]
ignore_missing_imports = true # Ignore missing stubs in imported modules

[tool.isort]
float_to_top = true
profile = "black"

[tool.flake8]
extend-ignore = [
    "E501", # Allow long lines that black doesn't fix.
    "E203", # See https://github.com/PyCQA/pycodestyle/issues/373
    "F811", # support typing.overload decorator
    "F722", # allow Annotated[typ, some_func("some string")]
]
max-line-length = 88 # Respect black's line length (default 88),
exclude = [".tox", "venv"]


[tool.pytest.ini_options]
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
addopts = "    --tb=native -vv --doctest-modules --doctest-glob=\"*.rst\"\n    --cov=dls_bxflow_lib --cov-report term --cov-report xml:cov.xml\n    "
# https://iscinumpy.gitlab.io/post/bound-version-constraints/#watch-for-warnings
filterwarnings = "error"
# Doctest python code in docs, python code in src docstrings, test functions in tests
testpaths = "docs src tests"

[tool.coverage.run]
data_file = "/tmp/dls_bxflow_lib.coverage"

[tool.coverage.paths]
# Tests are run from installed location, map back to the src directory
source = ["src", "**/site-packages/"]

# tox must currently be configured via an embedded ini string
# See: https://github.com/tox-dev/tox/issues/999
[tool.tox]
legacy_tox_ini = "[tox]\nskipsdist=True\n\n[testenv:{pre-commit,mypy,pytest,docs}]\n# Don't create a virtualenv for the command, requires tox-direct plugin\ndirect = True\npassenv = *\nallowlist_externals = \n    pytest \n    pre-commit\n    mypy\n    sphinx-build\n    sphinx-autobuild\ncommands =\n    pytest: pytest {posargs}\n    mypy: mypy src tests {posargs}\n    pre-commit: pre-commit run --all-files {posargs}\n    docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html\n"

# dae_devops_fingerprint 360bf0c450e119e24130fdf6a4e98ae8
