content: [build-system]
  build-backend = "setuptools.build_meta"
  requires = [
      "setuptools>=64",
      "setuptools-scm>=7",
  ]
  
  [project]
  name = "jitcode"
  dynamic = ["version"]
  description = "Just-in-Time Compilation for Ordinary Differential Equations"
  readme = "README.rst"
  license = { text = "BSD-3-Clause" }
  authors = [
      { name = "Gerrit Ansmann", email = "gansmann@uni-bonn.de" },
  ]
  requires-python = ">=3.6"
  classifiers = [
      "Development Status :: 4 - Beta",
      "License :: OSI Approved :: BSD License",
      "Operating System :: POSIX",
      "Operating System :: MacOS :: MacOS X",
      "Operating System :: Microsoft :: Windows",
      "Programming Language :: Python",
      "Topic :: Scientific/Engineering :: Mathematics",
  ]
  dependencies = [
  	"jitcxde_common>=1.5.4",
      "numpy",
      "scipy",
      "symengine>=0.3.1.dev0",
  ]
  
  [project.optional-dependencies]
  test = [
      # NOTE: required for expr.simplify (symengine calls sympy for that)
      # https://github.com/symengine/symengine.py/issues/405
      "sympy"
  ]
  
  [project.urls]
  Documentation = "https://jitcode.readthedocs.io"
  Homepage = "http://github.com/neurophysik/jitcode"
  
  [tool.setuptools.packages.find]
  include = [
      "jitcode*",
  ]
  
  [tool.setuptools.package-data]
  jitcode = [
      "jitced_template.c",
  ]
  
  [tool.setuptools_scm]
  write_to = "jitcode/version.py"
  local_scheme = "no-local-version"
  
  [tool.ruff]
  target-version = "py37"
  line-length = 320
  
  [tool.ruff.lint]
  select = [
      "A",   # flake8-builtins
      "B",   # flake8-bugbear
      "C4",  # flake8-comprehensions
      "E",   # flake8
      "F",   # flake8
      "I",   # flake8-isort
      "NPY", # numpy
      "Q",   # flake8-quotes
      "RUF", # ruff
      "UP",  # pyupgrade
      "W",   # flake8
  ]
  ignore = [
      "A001",     # shadowing-builtin-variable
      "A005",     # shadowing-builtin-module
      "C409",     # incorrectly-parenthesized-tuple-in-subscript
      "E203",     # whitespace-before-punctuation
      "E402",     # module-import-not-at-top-of-file
      "E501",     # line-too-long
      "E731",     # assign-to-lambda
      "RUF001",   # ambiguous-unicode-character-string
      "RUF002",   # ambiguous-unicode-character-docstring
      "RUF003",   # ambiguous-unicode-character-comment
      "W191",     # indentation-contains-tabs
      "W293",     # blank-line-with-whitespace
  ]
  
  [tool.ruff.lint.flake8-quotes]
  docstring-quotes = "double"
  inline-quotes = "double"
  multiline-quotes = "double"
  
  [tool.ruff.lint.isort]
  combine-as-imports = true
  known-local-folder = [ "jitcode", "scenarios" ]
  known-first-party = [ "jitcxde_common" ]
  lines-after-imports = 2
  