content: [tool.poetry]
  name = "streamrip"
  version = "2.2.0"
  description = "A fast, all-in-one music downloader for Qobuz, Deezer, Tidal, and SoundCloud"
  authors = ["nathom <nathanthomas707@gmail.com>"]
  license = "GPL-3.0-only"
  readme = "README.md"
  homepage = "https://github.com/nathom/streamrip"
  repository = "https://github.com/nathom/streamrip"
  include = ["src/config.toml"]
  keywords = ["hi-res", "free", "music", "download"]
  classifiers = [
    "License :: OSI Approved :: GNU General Public License (GPL)",
    "Operating System :: OS Independent",
  ]
  packages = [{ include = "streamrip" }]
  
  [tool.poetry.scripts]
  rip = "streamrip.rip:rip"
  
  [tool.poetry.dependencies]
  python = ">=3.10 <4.0"
  mutagen = "^1.45.1"
  tomlkit = "^0.7.2"
  pathvalidate = "^2.4.1"
  simple-term-menu = { version = "^1.2.1", platform = 'darwin|linux' }
  pick = { version = "^2", platform = 'win32|cygwin' }
  windows-curses = { version = "^2.2.0", platform = 'win32|cygwin' }
  Pillow = ">=9,<11"
  deezer-py = "1.3.6"
  pycryptodomex = "^3.10.1"
  appdirs = "^1.4.4"
  m3u8 = "^0.9.0"
  aiofiles = "^0.7"
  aiohttp = "^3.9"
  aiodns = "^3.0.0"
  aiolimiter = "^1.1.0"
  pytest-mock = "^3.11.1"
  pytest-asyncio = "^0.21.1"
  rich = "^13.6.0"
  click-help-colors = "^0.9.2"
  certifi = { version = "^2025.1.31", optional = true }
  
  [tool.poetry.urls]
  "Bug Reports" = "https://github.com/nathom/streamrip/issues"
  
  [tool.poetry.dev-dependencies]
  types-click = "^7.1.2"
  types-Pillow = "^8.3.1"
  ruff = "^0.1"
  black = "^24"
  isort = "^5.9.3"
  flake8 = "^3.9.2"
  setuptools = "^67.4.0"
  pytest = "^7.4"
  
  [tool.pytest.ini_options]
  minversion = "6.0"
  addopts = "-ra -q"
  testpaths = ["tests"]
  log_level = "DEBUG"
  asyncio_mode = 'auto'
  log_cli = true
  
  [build-system]
  requires = ["poetry-core>=1.0.0"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.ruff.lint]
  # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.
  select = ["E4", "E7", "E9", "F", "I", "ASYNC", "N", "RUF", "ERA001"]
  ignore = []
  
  # Allow fix for all enabled rules (when `--fix`) is provided.
  fixable = ["ALL"]
  unfixable = []
  
  # Allow unused variables when underscore-prefixed.
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  
  [tool.ruff.format]
  # Like Black, use double quotes for strings.
  quote-style = "double"
  
  # Like Black, indent with spaces, rather than tabs.
  indent-style = "space"
  
  # Like Black, respect magic trailing commas.
  skip-magic-trailing-comma = false
  
  # Like Black, automatically detect the appropriate line ending.
  line-ending = "auto"
  
  [tool.poetry.extras]
  ssl = ["certifi"]
  