content: # List/Specify python version
  # uv python list
  # uv python pin python3.13
  # Install default + dev dependencies with torch for CPU/cu126:
  # uv sync --extra cpu -U
  # uv sync --extra cu126 -U
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [project.urls]
  # homepage = ""
  repository = "https://github.com/TY-Cheng/torchvinecopulib"
  documentation = "https://ty-cheng.github.io/torchvinecopulib/"
  
  [project]
  name = "torchvinecopulib"
  version = "1.1.2"
  requires-python = ">=3.11"
  authors = [{ name = "Tuoyuan Cheng", email = "tuoyuan.cheng@nus.edu.sg" }]
  description = "Fitting and sampling vine copulas using PyTorch."
  readme = "README.md"
  keywords = ["vine copula", "copula", "torch", "conditional simulation"]
  classifiers = [
      # "Private :: Do Not Upload",
      "License :: OSI Approved :: MIT License",
      "Environment :: GPU :: NVIDIA CUDA :: 12",
      "Operating System :: Microsoft :: Windows :: Windows 10",
      "Operating System :: POSIX :: Linux",
      "Operating System :: MacOS",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Topic :: Scientific/Engineering",
  ]
  dependencies = ["numpy>=2", "scipy", "fastkde==2.1.3", "pyvinecopulib"]
  
  [dependency-groups]
  dev = [
      "blitz-bayesian-pytorch",
      "ccxt",
      "coverage",
      "datasets",
      "docformatter",
      "flake8",
      "furo",
      "ipykernel",
      "kagglehub",
      "matplotlib",
      "missingno",
      "mypy",
      "pandas",
      "pytest-cov",
      "pytest",
      "python-dotenv",
      "ruff",
      "scikit-learn",
      "sphinx_pyproject",
      "sphinx",
      "tokenize-rt",
      "torchvision",
      "ucimlrepo",
      "yfinance",
  ]
  
  [project.optional-dependencies]
  cpu = ["torch>=2"]
  cu126 = ["torch>=2"]
  cu128 = ["torch>=2"]
  examples = ["pytorch-lightning", "tqdm"]
  
  [tool.uv]
  managed = true
  default-groups = ["dev"]
  conflicts = [[{ extra = "cpu" }, { extra = "cu126" }, { extra = "cu128" }]]
  
  [tool.uv.sources]
  torch = [
      { index = "torch-cpu", extra = "cpu" },
      { index = "torch-cu126", extra = "cu126" },
      { index = "torch-cu128", extra = "cu128" },
  ]
  
  [[tool.uv.index]]
  name = "torch-cpu"
  url = "https://download.pytorch.org/whl/cpu"
  explicit = true
  
  [[tool.uv.index]]
  name = "torch-cu126"
  url = "https://download.pytorch.org/whl/cu126"
  explicit = true
  
  [[tool.uv.index]]
  name = "torch-cu128"
  url = "https://download.pytorch.org/whl/cu128"
  explicit = true
  
  [[tool.uv.index]]
  name = "testpypi"
  url = "https://test.pypi.org/simple/"
  publish-url = "https://test.pypi.org/legacy/"
  explicit = true
  
  [tool.ruff]
  line-length = 99
  
  [tool.ruff.format]
  quote-style = "double"
  indent-style = "space"
  docstring-code-format = true
  docstring-code-line-length = 99
  
  [tool.ruff.lint.pycodestyle]
  max-doc-length = 99
  max-line-length = 99
  
  [tool.docformatter]
  wrap-summaries = 99
  wrap-descriptions = 99
  blank-lines-around-summary = true
  in-place = true
  make-summary-multi-line = true
  pre-summary-space = true
  recursive = true
  skip-ignore = false
  
  [tool.flake8]
  max-line-length = 127
  extend-ignore = ["E203", "W503"]
  exclude = [".venv", "build", "dist", "docs"]
  per-file-ignores = [
      "torchvinecopulib/vinecop/__init__.py: E501, C901",
      "torchvinecopulib/bicop/__init__.py: E501, C901",
      "torchvinecopulib/util/__init__.py: E501, C901",
  ]
  
  [tool.sphinx-pyproject]
  source-dir = "docs"
  build-dir = "docs/_build"
  all_files = true
  extensions = [
      "sphinx.ext.autodoc",
      "sphinx.ext.autosectionlabel",
      "sphinx.ext.autosummary",
      "sphinx.ext.coverage",
      "sphinx.ext.doctest",
      "sphinx.ext.extlinks",
      "sphinx.ext.githubpages",
      "sphinx.ext.graphviz",
      "sphinx.ext.ifconfig",
      "sphinx.ext.imgconverter",
      "sphinx.ext.inheritance_diagram",
      "sphinx.ext.intersphinx",
      "sphinx.ext.napoleon",
      "sphinx.ext.todo",
      "sphinx.ext.viewcode",
  ]
  exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
  html_theme = "furo"
  