[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "python_workflow_definition" description = "Python Workflow Definition - workflow interoperability for aiida, jobflow and pyiron" authors = [ { name = "Jan Janssen", email = "janssen@mpie.de" }, { name = "Janine George", email = "janine.geogre@bam.de" }, { name = "Julian Geiger", email = "julian.geiger@psi.ch" }, { name = "Xing Wang", email = "xing.wang@psi.ch" }, { name = "Marnik Bercx", email = "marnik.bercx@psi.ch" }, { name = "Christina Ertural", email = "christina.ertural@bam.de" }, ] license = { file = "LICENSE" } dependencies = [ "numpy>=1.21", "pydantic>=2.7.0,<2.14.0", ] dynamic = ["version"] [project.optional-dependencies] aiida = [ "aiida-workgraph>=0.5.1,<=0.9.0", ] jobflow = [ "jobflow>=0.1.18,<=0.3.1", ] pyiron = [ "pyiron_base>=0.11.10,<=0.15.19", ] pyiron_workflow = [ "pyiron_workflow>=0.13.0,<=0.18.0", ] executorlib = [ "executorlib>=1.7.4,<=1.10.3", ] plot = [ "pygraphviz>=1.10,<=1.14", "networkx>=2.8.8,<=3.5", "ipython>=7.33.0,<=9.8.0", ] [tool.ruff] exclude = ["documentation", "example_workflows", "tests", "binder", "_version.py"] [tool.ruff.lint] select = [ # pycodestyle "E", # Pyflakes "F", # pyupgrade "UP", # flake8-bugbear "B", # flake8-simplify "SIM", # isort "I", # flake8-comprehensions "C4", # eradicate "ERA", # pylint "PL", ] ignore = [ # ignore line-length violations "E501", # Too many statements "PLR0915", # Too many branches "PLR0912", ] [tool.hatch.build] include = [ "src/python_workflow_definition" ] [tool.hatch.build.hooks.vcs] version-file = "src/python_workflow_definition/_version.py" [tool.hatch.build.targets.sdist] include = [ "src/python_workflow_definition" ] [tool.hatch.build.targets.wheel] packages = [ "src/python_workflow_definition" ] [tool.hatch.version] source = "vcs" path = "src/python_workflow_definition/_version.py" [tool.coverage.run] source = ["python_workflow_definition"] command_line = "-m unittest discover tests"