content: [build-system]
  requires = ["flit_core >=3.2,<4"]
  build-backend = "flit_core.buildapi"
  
  
  [project]
  name = "tawazi"
  dynamic = ["version", "description"]
  authors = [{ name = "Mindee", email = "contact@mindee.com" }]
  maintainers = [
      { name = "Bashir Abdel Wahed" },
      { name = "Matthias Cremieux" },
      { name = "Maxime Churin" },
  ]
  license = { file = "LICENSE" }
  readme = "README.md"
  requires-python = ">=3.9,<4"
  dependencies = [
      "networkx>=2,<4",
      "pydantic",
      "PyYaml>=6",
      "typing_extensions>=4.4.0",
      "packaging",
  ]
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: Apache Software License",
      "Operating System :: MacOS",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: OS Independent",
      "Operating System :: POSIX :: Linux",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Topic :: Software Development :: Libraries",
      "Topic :: Software Development :: Libraries :: Python Modules",
      "Topic :: Utilities",
      "Typing :: Typed",
  ]
  keywords = ["parallel", "DAG", "scheduler", "Python"]
  urls = { "GitHub" = "https://github.com/mindee/tawazi", "Documentation" = "https://mindee.github.io/tawazi/" }
  
  [project.optional-dependencies]
  graphviz = ["graphviz"]
  
  
  dev = [
      "numpy",
      "pytest>=7.1.2",
      "pytest-asyncio",
      "pytest-mock",
      "pytest-cov>=4.0.0",
      "pytest-codeblocks",
      "pre-commit",
      "multiprocessing_on_dill",
      "pathos",
  ]
  
  doc = [
      "mkdocs>=1.4.0",
      "mike==1.1.2",
      "mkdocs-exclude==1.0.2",
      "mkdocs-material==9.2.6",
      "mkdocstrings-python",
  ]
  
  pydantic1 = ["pydantic>=1.0.0,<2"]
  
  [tool.pytest.ini_options]
  addopts = "--pdbcls=IPython.terminal.debugger:TerminalPdb --cov-report=term-missing:skip-covered  --cov-report=lcov:cov.info --junit-xml=pytest-junit.xml --cov=tawazi"
  
  [tool.mypy]
  python_version = "3.9"
  # --strict
  disallow_any_generics = true
  disallow_untyped_defs = true
  no_implicit_optional = true
  warn_redundant_casts = true
  warn_unused_ignores = true
  warn_return_any = true
  implicit_reexport = false
  strict_equality = true
  # --strict end
  
  [[tool.mypy.overrides]]
  module = "graphviz.*,networkx.*,yaml.*,multiprocessing_on_dill.*,pathos.*"
  ignore_missing_imports = true
  
  [tool.black]
  skip-magic-trailing-comma = true
  line-length = 100
  
  
  [tool.ruff]
  # Use of assert detected
  ignore = ["E501", "S101"]
  src = ["src"]
  line-length = 100
  target-version = "py39"
  select = [
      "B",
      "D",
      "E",
      "F",
      "I",
      "N",
      "PGH",
      "UP",
      "S",
      "T20",
      "TID",
      "W",
      "RET",
  ]
  
  [tool.ruff.per-file-ignores]
  "tests/*.py" = ["D"]
  "scripts/*.py" = ["D", "PGH"]
  
  [tool.ruff.flake8-tidy-imports]
  ban-relative-imports = "parents"
  
  [tool.ruff.pydocstyle]
  convention = "google"
  