content: # As per https://github.com/pypa/setuptools/blob/main/docs/userguide/quickstart.rst
  ##################################
  #           Project              #
  ##################################
  
  [project]
  name = "meegkit"
  authors = [
      {name = "Nicolas Barascud", email = "nicolas.barascud@gmail.com"},
  ]
  license = {text = "BSD (3-clause)"}
  dynamic = ["version", "dependencies"]
  description = "M/EEG denoising in Python"
  readme = {file = "README.md", content-type = "text/markdown"}
  requires-python = ">=3.8"
  
  [project.urls]
  homepage = "https://nbara.github.io/python-meegkit"
  repository = "https://github.com/nbara/python-meegkit"
  documentation = "https://nbara.github.io/python-meegkit"
  tracker = "https://github.com/nbara/python-meegkit/issues"
  
  [project.optional-dependencies]
  extra = ["pymanopt"]
  docs = ["sphinx", "sphinx-gallery", "sphinx-bootstrap_theme", "sphinx-copybutton",
          "sphinxemoji", "numpydoc", "pydata-sphinx-theme", "pillow", "jupyter-sphinx",
          "ghp-import", "meegkit[extra]"]
  tests = ["pytest", "pytest-cov", "codecov", "codespell", "ruff", "meegkit[extra]"]
  
  ##################################
  #       Package building         #
  ##################################
  
  [build-system]
  requires = ["setuptools>=62.0.0", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [tool.setuptools]
  zip-safe = false
  include-package-data = true
  
  [tool.setuptools.dynamic]
  version = {attr = "meegkit.__version__"}
  dependencies = {file = ["requirements.txt"]}
  
  [tool.setuptools.packages.find]
  exclude = ["tests*", "examples*", "doc*"]
  
  ##################################
  #          Codespell             #
  ##################################
  
  [tool.codespell]
  skip = """*.html,*.fif,*.eve,*.gz,*.tgz,*.zip,*.mat,*.stc,
            *.label,*.w,*.bz2,*.annot,*.sulc,*.log,*.local-copy,
            *.orig_avg,*.inflated_avg,*.gii,*.pyc,*.doctree,*.pickle,
            *.inv,*.png,*.edf,*.touch,*.thickness,*.nofix,*.volume,
            *.defect_borders,*.mgh,lh.*,rh.*,COR-*,*.examples,.xdebug_mris_calc
            ,bad.segments,BadChannels,*.hist,empty_file,*.orig,*.js,*.map,*.pdf,
            *.ipynb,searchindex.dat,*.c"""
  ignore-words-list = "hist,dof,datas,mot"
  quiet-level = 3
  interactive = 0
  write-changes = false
  
  ##################################
  #     Linter configuration       #
  ##################################
  [tool.ruff]
  lint.select = ["D", "E", "F", "B", "Q", "NPY", "I", "ICN", "UP"]
  line-length = 90
  target-version = "py312"
  lint.ignore = ["E731", "B006", "B028", "UP038", "D100", "D105", "D212"]
  
  [tool.ruff.lint.per-file-ignores]
  "__init__.py" = ["F401"]
  "test_*.py" = ["D101", "D102", "D103", "D"]
  "example_*.py" = ["D205", "D400", "D212"]
  
  [tool.ruff.lint.pydocstyle]
  convention = "numpy"
  
  ##################################
  #      Pytest, Coverage          #
  ##################################
  
  [tool.pytest.ini_options]
  timeout = 1200
  testpaths = ["tests/"]
  filterwarnings = [
      "ignore:Call to deprecated create function FieldDescriptor",
      "ignore:Call to deprecated create function Descriptor",
      "ignore:Call to deprecated create function EnumDescriptor",
      "ignore:Call to deprecated create function EnumValueDescriptor",
      "ignore:Call to deprecated create function FileDescriptor",
      "ignore:Call to deprecated create function OneofDescriptor"
  ]
  addopts = """
      --color=yes
      --durations 10
      """
  
  [tool.coverage.run]
  branch = true
  data_file = "build/reports/coverage/.meegkit"
  omit = [
      "*/python?.?/*",
      "*/site-packages/pytest/*",
      "*/setup.py",
      "*/tests/*",
      "*/examples/*",
  ]
  
  [tool.coverage.report]
  skip_covered = true
  skip_empty = true
  exclude_lines = [
      "pragma: no cover",
      "def __repr__",
      "raise AssertionError",
      "raise NotImplementedError",
      "if __name__ == .__main__.:"
  ]
  
  [tool.coverage.html]
  directory = "build/reports/coverage/html"
  
  [tool.coverage.xml]
  output = "build/reports/coverage/meegkit.xml"
  
  ##################################
  #         Documentation          #
  ##################################
  [tool.sphinx.build]
  source-dir = "doc/"
  build-dir  = "doc/_build"
  all_files  = 1
  