content: [build-system]
  build-backend = "hatchling.build"
  requires = ["hatchling"]
  
  [project]
  name = "py_neuromodulation"
  version = "0.1.4"
  authors = [{ name = "Timon Merk", email = "timon.merk@charite.de" }]
  classifiers = [
    "Development Status :: 2 - Pre-Alpha",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python",
    "Topic :: Software Development :: Libraries :: Python Modules",
  ]
  
  description = "Real-time analysis of intracranial neurophysiology recordings."
  keywords = [
    "real-time",
    "eeg",
    "ieeg",
    "dbs",
    "ecog",
    "electrocorticography",
    "deep-brain-stimulation",
    "machine-learning",
  ]
  
  license = { file = "LICENSE" }
  maintainers = [{ name = "Timon Merk" }]
  readme = "README.rst"
  requires-python = ">=3.12"
  
  dependencies = [
    # General
    "numpy >= 2.0.0",
    "mne",
    "fooof",
    "matplotlib>=3.9.0",
    "mne-bids >= 0.8",
    "mne-connectivity",
    "mrmr_selection",
    "nolds >= 0.6.1",
    "numpy >= 1.21.2",
    "pandas >= 2.0.0",
    "scipy >= 1.7.1",
    "scikit-learn >= 0.24.2",
    "mne",
    "pyparrm",
    "joblib>=1.3.2",
    "mne-lsl>=1.2.0",
    #"pyqt5",
    "pydantic>=2.7.3",
    # IO
    "mne-bids >= 0.8",
    "pyarrow>=14.0.2",
    "mne-lsl>=1.2.0",
    # Feature-specific
    "mne-connectivity",
    "fooof",
    "nolds >=0.6.1",
    "pybispectra>=1.2.0",
    "numba >= 0.60.0",    # Required to avoid uv version conflicts with pybispectra
    # Graphing
    "matplotlib>=3.9.0",
    "PyQt6",             # necessary for plotting
    "msgpack",
    "seaborn >= 0.11",
    "scikit-optimize",
    "mrmr_selection",
    "skops>=0.10.0",
    "imbalanced-learn",
    # Web-app GUI packages
    "cbor2>=5.6.4",
    "msgpack>=1.1.0",
    "fastapi",
    "pywebview",
    "uvicorn[standard]>=0.30.6",
    'uvloop ; platform_system != "Windows"',
    "llvmlite>=0.43.0",
    "numba>=0.60.0",
    "nibabel>=5.3.2",
  ]
  
  [project.optional-dependencies]
  test = ["pytest>=8.0.2", "pytest-xdist"]
  dev = ["ruff", "pytest>=8.0.2", "pytest-cov", "pytest-sugar", "notebook"]
  docs = [
    "py-neuromodulation[dev]",
    "sphinx",
    "recommonmark",
    "sphinx",
    "numpydoc",
    "sphinx-gallery",
    "pydata-sphinx-theme",
    "sphinx_togglebutton",
  ]
  
  [project.urls]
  Homepage = "https://neuromodulation.github.io/py_neuromodulation/"
  Documentation = "https://neuromodulation.github.io/py_neuromodulation/"
  Repository = "https://github.com/neuromodulation/py_neuromodulation"
  Issues = "https://github.com/neuromodulation/py_neuromodulation/issues"
  
  [project.scripts]
  run_gui = "py_neuromodulation.run_gui:main"
  
  [tool.rye]
  dev-dependencies = ["py-neuromodulation[dev]"]
  
  [tool.ruff]
  target-version = "py311"
  
  [tool.ruff.lint.per-file-ignores]
  # E402: module level import not at top of file, but we need to st PYNM_DIR and MNE_LSL_LIB first
  "**/__init__.py" = ["E402", "F401", "F403"]
  