content: [build-system]
  requires = ["maturin>=1.0,<2.0"]
  build-backend = "maturin"
  
  [project]
  name = "polars-trading"
  requires-python = ">=3.10"
  classifiers = [
      "Programming Language :: Rust",
      "Programming Language :: Python :: Implementation :: CPython",
      "Programming Language :: Python :: Implementation :: PyPy",
  ]
  dependencies = ["polars[plot]>=1.13"]
  dynamic = ["version"]
  
  
  [tool.ruff.format]
  docstring-code-format = true
  
  [tool.ruff]
  target-version = "py312"
  
  [tool.ruff.lint]
  select = ["ALL"]
  ignore = [
      'A003',
      'ANN401',
      'ARG002',  # todo: enable
      'ARG003',  # todo: enable
      'C901',
      'COM812',
      'D100',
      'D103',
      'D104',
      'D105',
      'D107',
      'D203',
      'D212',
      'DTZ',
      'E501',
      'FBT',
      'FIX',
      'ISC001',
      'PD',
      'PLR0911',
      'PLR0912',
      'PLR5501',
      'PLR2004',
      'PLR0913',
      'PLC0414',
      'PT011',
      'PTH',
      'RET505',
      'S',
      'SLF001',
      'TD',
      'TRY004',
      'UP',
  ]
  
  # Allow autofix for all enabled rules (when `--fix`) is provided.
  fixable = ["ALL"]
  
  # Exclude a variety of commonly ignored directories.
  exclude = [
      "tests",
      ".git",
      ".git-rewrite",
      ".mypy_cache",
      ".ruff_cache",
      "venv",
      ".ipynb",
      "venv",
  ]
  
  [tool.ruff.lint.pydocstyle]
  convention = "google"
  
  [tool.maturin]
  module-name = "polars_trading._internal"
  
  [[tool.mypy.overrides]]
  module = "polars.utils.udfs"
  ignore_missing_imports = true
  
  [tool.uv]
  dev-dependencies = [
      "build>=1.2.1",
      "commitizen>=3.29.0",
      "marimo>=0.8.8",
      "mkdocs-gen-files>=0.5.0",
      "mkdocstrings[python]>=0.26.1",
      "pip>=24.2",
      "pre-commit>=3.8.0",
      "ruff>=0.6.3",
      "setuptools>=74.1.0",
      "wheel>=0.44.0",
      "pandas>=2.2.2",
      "pyarrow>=17.0.0",
      "pytest>=8.3.2",
      "pytest-benchmark[histogram]>=4.0.0",
      "pytest-codspeed>=2.2.1",
      "mimesis>=12.1.0",
      "pytest-cov>=5.0.0",
      "maturin>=1.7.4",
  ]
  
  [tool.commitizen]
  name = "cz_conventional_commits"
  tag_format = "$version"
  version_scheme = "semver2"
  version_provider = "cargo"
  update_changelog_on_bump = true
  major_version_zero = true
  
  [tool.pytest.ini_options]
  markers = ["pandas", "benchmark"]
  python_files = ["test_*.py", "benchmark_*.py"]
  addopts = [
      "--benchmark-columns=min,mean,median,max,stddev",
      "--cov=polars_trading",
      "--cov-report=term-missing",
      "--cov-fail-under=80",
      "--cov-config=pyproject.toml",
      "-m not (pandas or benchmark)",
  ]
  [tool.coverage.run]
  omit = ["polars_trading/_testing/*"]
  