[project]
name = "dropbox_asset_transfer"
version = "0.1.0"
description = ""
requires-python = "~=3.13.0"
dependencies = [
  "boto3>=1.38.14",
  "boto3-stubs[s3,stepfunctions]>=1.36.6",
  "botocore>=1.38.14",
  "common",
  "ddtrace==3.14.4",
  "lambdacommon==4.5.0",
  "owsclient==0.12.0",
  "pydantic>=2.8.2",
  "pydantic-settings>=2.3.4",
  "secrets-manager==1.4.6",
  "validators>=0.35.0",
  "protobuf>=6.33.5",
  "requests>=2.32.4",
  "urllib3>=2.6.0",
]

[tool.uv.sources]
common = { workspace = true }

[[tool.uv.index]]
name = "theorchard"
url = "https://pypi.theorchard.io/simple/"
priority = "supplemental"

[dependency-groups]
dev = [
  "pytest>=8.3.1",
  "pytest-cov==2.11.1",
  "pytest-mock==3.5.1",
  "ruff>=0.3.4",
  "ty>=0.0.24",
  "types-requests>=2.32.4.20250913",
]

[tool.mypy]
python_version = "3.13"
show_error_codes = true
strict = true
explicit_package_bases = true
disable_error_code = ["import-untyped"]

[[tool.mypy.overrides]]
module = [
  "secrets_manager.*"
]
ignore_missing_imports = true

[tool.ruff]
line-length = 88
target-version = "py313"

[tool.ruff.lint]
select = ["C", "E", "F", "W", "B", "I", "UP", "T20", "TID252", "G"]
ignore = ["E501", "B008", "B009"]

[tool.pytest.ini_options]
pythonpath = [
  "."
]
