content: [build-system]
  requires = ["hatchling", "hatch-vcs"]
  build-backend = "hatchling.build"
  
  [project]
  name = "audiostretchy"
  dynamic = ["version"]
  description = "AudioStretchy is a Python library and CLI tool for high-quality time-stretching of audio files without changing pitch. Uses David Bryant's audio-stretch C library with Pedalboard for versatile audio I/O."
  readme = "README.md"
  authors = [{name = "Adam Twardoch", email = "adam+github@twardoch.com"}]
  license = "BSD-3-Clause"
  license-files = ["LICENSE.txt", "AUTHORS.md"]
  requires-python = ">=3.8"
  classifiers = [
      "Development Status :: 4 - Beta",
      "Operating System :: MacOS",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: POSIX",
      "Programming Language :: C",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3.8",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Topic :: Multimedia :: Sound/Audio",
      "Topic :: Multimedia :: Sound/Audio :: Conversion",
      "Topic :: Multimedia :: Sound/Audio :: Speech",
  ]
  dependencies = [
      "fire>=0.5.0",
      "numpy>=1.23.0",
      "pedalboard>=0.8.6",
  ]
  
  [project.optional-dependencies]
  dev = [
      "pytest>=7.0.0",
      "pytest-cov>=4.0.0",
      "black>=23.0.0", 
      "ruff>=0.1.0",
      "build>=0.10.0",
  ]
  test = [
      "pytest>=7.0.0",
      "pytest-cov>=4.0.0",
      "soundfile>=0.12.0",
  ]
  
  [project.urls]
  Homepage = "https://github.com/twardoch/audiostretchy"
  Repository = "https://github.com/twardoch/audiostretchy.git"
  Issues = "https://github.com/twardoch/audiostretchy/issues"
  
  [project.scripts]
  audiostretchy = "audiostretchy.__main__:main"
  
  # Hatch configuration
  [tool.hatch.version]
  source = "vcs"
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/audiostretchy"]
  include = [
      "src/audiostretchy/**/*.py",
      "src/audiostretchy/**/*.so",
      "src/audiostretchy/**/*.dylib", 
      "src/audiostretchy/**/*.dll",
  ]
  
  [tool.hatch.build.targets.sdist]
  include = [
      "/src",
      "/tests",
      "/audio-stretch",
      "/scripts",
      "pyproject.toml",
      "README.md",
      "LICENSE.txt",
      "AUTHORS.md",
  ]
  
  # Development environment
  [tool.hatch.envs.default]
  dependencies = [
      "pytest>=7.0.0",
      "pytest-cov>=4.0.0",
      "black>=23.0.0",
      "ruff>=0.1.0",
      "build>=0.10.0",
  ]
  
  [tool.hatch.envs.test]
  dependencies = [
      "pytest>=7.0.0", 
      "pytest-cov>=4.0.0",
      "soundfile>=0.12.0",
  ]
  
  # Testing configuration
  [tool.pytest.ini_options]
  addopts = "--cov=src/audiostretchy --cov-report=term-missing --verbose"
  testpaths = ["tests"]
  python_files = ["test_*.py", "*_test.py"]
  
  # Linting and formatting
  [tool.ruff]
  line-length = 88
  target-version = "py38"
  extend-exclude = ["build", "dist"]
  
  [tool.ruff.lint]
  select = ["E", "F", "W", "I", "N", "UP", "YTT", "S", "BLE", "B", "A", "COM", "C4", "DTZ", "T10", "EM", "EXE", "ISC", "ICN", "G", "INP", "PIE", "T20", "PT", "Q", "RSE", "RET", "SLF", "SIM", "TID", "TCH", "ARG", "PTH", "ERA", "PD", "PGH", "PL", "TRY", "NPY", "RUF"]
  ignore = ["E203", "W503", "S101", "PLR0913", "PLR0912", "PLR0915", "C901"]
  
  [tool.black]
  line-length = 88
  target-version = ["py38", "py39", "py310", "py311", "py312"]
  