[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "torc-client"
version = "0.23.0"
description = "Workflow management system"
requires-python = ">=3.11,<3.14"
license = "BSD-3-Clause"
readme = "README.md"
authors = [
{ name = "Daniel Thom", email = "daniel.thom@nrel.gov" },
{ name = "Joseph McKinsey", email = "joseph.mckinsey@nrel.gov" },
]
keywords = ["hpc", "workflow", "pipeline"]
classifiers = [
"Development Status :: 4 - Beta",
"Natural Language :: English",
"Programming Language :: Python :: 3.12",
]
dependencies = [
"click >= 8.2, < 9",
"isodate",
"loguru",
"prettytable >= 3.10, < 4",
"pydantic >= 2.10, < 3",
"rmon",
"rich",
"rich_click",
"toml",
"urllib3 >= 2.1.0, < 3.0.0",
"python-dateutil >= 2.8.2",
"typing-extensions >= 4.7.1",
]
[project.scripts]
pytorc = "torc.cli.pytorc:cli"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
"*" = ["*.tcss"]
[project.optional-dependencies]
dev = [
"flake8",
"mypy",
"myst_parser",
"pre-commit",
"pytest",
"pytest-cov",
"ruff",
"types-toml",
]
[tool.pytest.ini_options]
pythonpath = "src"
minversion = "6.0"
addopts = "-ra"
testpaths = ["tests"]
[tool.ruff]
exclude = [
".git",
".ruff_cache",
".venv",
"_build",
"build",
"dist",
"env",
"venv",
"src/torc/openapi_client/*",
]
line-length = 99
indent-width = 4
target-version = "py312"
[tool.mypy]
check_untyped_defs = true
files = [
"src",
"tests",
]
[[tool.mypy.overrides]]
ignore_missing_imports = true
module = "isodate.*"
[tool.ruff.lint]
select = [
"C901",
"E4",
"E7",
"E9",
"EM",
"F",
"W",
]
ignore = []
fixable = ["ALL"]
unfixable = []
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
docstring-code-format = true
docstring-code-line-length = "dynamic"
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["E402"]
"**/{tests,docs,tools}/*" = ["E402"]
[tool.coverage.run]
omit = [
"src/torc/openapi_client/*",
"tests/*",
]