[build-system]
requires = ["hatchling>=1.9.1"]
build-backend = "hatchling.build"

[project]
name = "twscrape"
version = "0.16.0"
authors = [{ name = "vladkens", email = "v.pronsky@gmail.com" }]
description = "Twitter GraphQL and Search API implementation with SNScrape data models"
readme = "readme.md"
requires-python = ">=3.10"
keywords = ["twitter", "scrape", "scrapper", "api", "snscrape"]
license = { text = "MIT" }
classifiers = [
  'Development Status :: 4 - Beta',
  'License :: OSI Approved :: MIT License',
  'Programming Language :: Python :: 3.10',
  'Programming Language :: Python :: 3.11',
  'Programming Language :: Python :: 3.12',
  'Programming Language :: Python :: 3.13',
]
dependencies = [
  "aiosqlite>=0.17.0",
  "fake-useragent>=1.4.0",
  "httpx>=0.26.0",
  "loguru>=0.7.0",
  "pyotp>=2.9.0",
]

[project.optional-dependencies]
dev = [
  "build>=1.2.2",
  "pyright>=1.1.369",
  "pytest-asyncio>=0.23.3",
  "pytest-cov>=4.1.0",
  "pytest-httpx>=0.28.0",
  "pytest>=7.4.4",
  "ruff>=0.1.11",
]

[project.urls]
repository = "https://github.com/vladkens/twscrape"

[project.scripts]
twscrape = "twscrape.cli:run"

[tool.setuptools]
packages = ['twscrape']

[tool.hatch.build.targets.wheel]
packages = ["twscrape"]

[tool.hatch.metadata]
allow-direct-references = true

[tool.pytest.ini_options]
pythonpath = ["."]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
filterwarnings = ["ignore::DeprecationWarning"]

[tool.ruff]
line-length = 99

[tool.ruff.lint]
ignore = ["E501"]