content: [build-system]
  requires = ["setuptools>=61.0", "setuptools_scm[toml]>=6.2"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "condor"
  description = "A package for disciplined systems modeling on a deadline"
  readme = "README.rst"
  dynamic = ["version"]
  authors = [
      { name="Benjamin W. L. Margolis", email="benjamin.margolis@nasa.gov" },
      { name="Kenneth R. Lyons", email="kenneth.r.lyons@nasa.gov" },
  ]
  license = "NASA-1.3"
  license-files = ["LICENSE"]
  requires-python = ">=3.9"
  classifiers = [
      "Programming Language :: Python :: 3",
      "Operating System :: OS Independent",
  ]
  
  dependencies = [
      "numpy",
      "scipy",
      "casadi>=3.7.2",
      "ndsplines>=0.2.0post0",
  ]
  
  [project.optional-dependencies]
  examples = ["matplotlib"]
  
  [dependency-groups]
  lint = ["ruff"]
  test = ["pytest", "pytest-cov"]
  docs = [
      "sphinx",
      "sphinx-gallery",
      "matplotlib",
      "furo",
      "sphinx-copybutton",
  ]
  dev = [
      {include-group = "lint"},
      {include-group = "test"},
      {include-group = "docs"},
  ]
  
  
  [project.urls]
  Repository = "https://github.com/nasa/condor"
  Documentation = "https://nasa.github.io/condor"
  Issues = "https://github.com/nasa/condor/issues"
  
  [tool.setuptools_scm]
  write_to = "src/condor/_version.py"
  
  [tool.ruff]
  exclude = ["design/*"]
  
  [tool.ruff.lint]
  select = [
      "S", # flake8-bandit
      "B", # flake8-bugbear
      "EM", # flake8-errmsg
      "PT", # flake8-pytest-style
      "SIM", # flake8-simplify
      "I", # isort
      "NPY", # numpy-specific-rules
      "N", # pep8-naming
      "PERF", # perflint
      "E","W", # pycodestyle
      # "D", # pydocstyle
      "F", # pyflakes
      "PL", # pylint
      "UP", # pyupgrade
  ]
  ignore = [
      "F821", # Undefined name ... (too dynamic)
      "D1", # Missing docstring in ... (use doc coverage for now)
      "PLR09", # Too many statements/arguments/etc (preference)
      "PLR2004", # Magic value used in comparison (preference)
  ]
  
  [tool.ruff.lint.per-file-ignores]
  "docs/*" = [
      "E402", # Module level import not at top of file, ok in tutorials
      "E305", # Expected 2 blank lines afer class or function definition
      "S101", # asserts ok in doc examples
      "N802", # Non-lowercase functions ok in mathy examples
      "N803", # Non-lowercase argument names
      "N806", # Non-lowercase variables
      "N815", # Mixed case variables
      "N816", # Mixed case variables
  ]
  "tests/*" = [
      "F841", # Local variable assigned but never used, ok in smoke tests
      "S101", # asserts ok in tests
  ]
  
  [tool.isort]
  profile = "black"
  
  [tool.pytest.ini_options]
  minversion = "7"
  testpaths = ["tests"]
  log_cli_level = "INFO"
  xfail_strict = true
  addopts = [
      "-ra",
      "--strict-config",
      "--strict-markers",
      # "--pdbcls=IPython.terminal.debugger:TerminalPdb",
  ]
  # filterwarnings = ["error"]
  