content: [project]
  name = "isubrip"
  version = "2.6.7"
  description = "A Python package for scraping and downloading subtitles from AppleTV / iTunes movie pages."
  authors = [
      {name = "Michael Yochpaz"}
  ]
  readme = "README.md"
  keywords = [
      "iTunes",
      "AppleTV",
      "movies",
      "subtitles",
      "scrape",
      "scraper",
      "download",
      "m3u8"
  ]
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Intended Audience :: End Users/Desktop",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: MacOS",
      "Operating System :: POSIX :: Linux",
      "Topic :: Utilities",
      "License :: OSI Approved :: MIT License",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
  ]
  requires-python = ">= 3.9"
  dependencies = [
      "httpx[http2]>=0.28.1",
      "m3u8>=6.0.0",
      "pydantic>=2.10.6",
      "pydantic-settings>=2.7.1",
      "pygments>=2.19.1",  # Used by 'rich'. Specified here as version 2.18 appears to cause issues.
      "rich>=13.9.4",
      "tomli>=2.0.2",
      "wcwidth>=0.2.13",
  ]
  
  [project.urls]
  Homepage = "https://github.com/MichaelYochpaz/iSubRip"
  Repository = "https://github.com/MichaelYochpaz/iSubRip"
  Issues = "https://github.com/MichaelYochpaz/iSubRip/issues"
  Changelog = "https://github.com/MichaelYochpaz/iSubRip/blob/main/CHANGELOG.md"
  
  [project.scripts]
  isubrip = "isubrip.__main__:main"
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [tool.uv]
  dev-dependencies = [
      "mypy>=1.14.1",
      "pyperf>=2.9.0",
      "pytest>=8.4.2",
      "ruff>=0.9.3",
  ]
  
  [tool.mypy]
  check_untyped_defs = true
  disallow_untyped_defs = true
  explicit_package_bases = true
  ignore_missing_imports = true
  python_version = "3.9"
  warn_return_any = true
  exclude = ["tests/mock_data"]
  plugins = ["pydantic.mypy"]
  
  [tool.ruff]
  line-length = 120
  target-version = "py39"
  
  [tool.ruff.lint]
  select = [
      "ARG",
      "ASYNC",
      "B",
      "C4",
      "COM",
      "E",
      "F",
      "FA",
      "I",
      "INP",
      "ISC",
      "N",
      "PIE",
      "PGH",
      "PT",
      "PTH",
      "Q",
      "RSE",
      "RET",
      "RUF",
      "S",
      "SIM",
      "SLF",
      "T20",
      "TCH",
      "TID",
      "TRY",
      "UP",
  ]
  ignore = [
      "C416",
      "Q000",
      "RUF010",
      "RUF012",
      "SIM108",
      "TD002",
      "TD003",
      "TRY003",
  ]
  unfixable = ["ARG"]
  
  [tool.ruff.lint.per-file-ignores]
  "tests/*.py" = ["S101"]
  
  [tool.ruff.lint.flake8-tidy-imports]
  ban-relative-imports = "all"
  
  [tool.ruff.lint.flake8-quotes]
  docstring-quotes = "double"
  
  [tool.ruff.lint.isort]
  force-sort-within-sections = true
  
  [tool.ruff.lint.pyupgrade]
  keep-runtime-typing = true
  