[tool.poetry]
name = "dapd-api-scraper"
version = "0.3.13"
description = "DAPD API Scraper"
authors = ["Fuad Asadullayev <fuad.asadullayev@gmail.com>"]
include = ["dapd_api_scraper"]

[[tool.poetry.source]]
name = "delphi"
url = "https://artifacts-internal.delphiplatform.io/repository/pypi-all/simple"

[tool.poetry.scripts]
dapd-api-scraper = "dapd_api_scraper.main:main"

[tool.poetry.dependencies]
python = "^3.10"
sentry-sdk = "^1.10.1"
boto3 = "^1.26.7"
orjson = "^3.8.1"
PyJWT = {extras = ["crypto"], version = "^2.6.0"}
pydantic = {extras = ["dotenv"], version = "^1.10.2"}
datadog = "^0.44.0"
retry = "^0.9.2"
structlog = "^22.2.0"
SQLAlchemy = "^1.4.45"
httpx = {version = "^0.23.3"}
asyncpg = "^0.27.0"

[tool.poetry.dev-dependencies]
pytest = "^7.2.0"
pytest-cov = "^4.0.0"
isort = "^5.10.1"
mypy = "^0.990"
black = "^22.10.0"
pylint = "^2.15.5"
pytest-asyncio = "^0.20.2"
pytest-mock = "^3.10.0"
types-retry = "^0.9.9"
sqlalchemy2-stubs = "^0.0.2-alpha.30"
boto3-stubs = "^1.26.51"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.pylint]
min-public-methods = 1
max-args = 6
max-line-length = 100
extension-pkg-whitelist = [
    "orjson",
]
ignored-argument-names = "args|kwargs"
disable = [
    "missing-module-docstring",
    "missing-class-docstring",
    "missing-function-docstring",
    "too-few-public-methods",
    "broad-except",
    "broad-exception-raised",
    "arguments-differ",
    "no-name-in-module",
    "too-many-branches",
    "too-many-locals",
    "unused-argument",
]

[tool.pytest.ini_options]
asyncio_mode = "auto"
markers = [
    "integration: Integration tests",
]

[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
plugins = [
    "sqlalchemy.ext.mypy.plugin",
]

[[tool.mypy.overrides]]
module = [
    "structlog",
]
follow_imports = "skip"

[tool.black]
line-length = 100
target-version = ['py310']
include = '\.pyi?$'
