[project] name = "workspace" version = "1.0.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ "boto3>=1.37.17", "google-api-python-client>=2.190.0", "google-auth-oauthlib>=1.2.4", "pydantic>=2.12.5", "pydantic-settings>=2.11.0", "pytest>=8.3.5", "uplink>=0.10.0", ] [tool.pytest.ini_options] pythonpath = ["src"] testpaths = ["tests"] addopts = [ "--cov=src/content_automation", "--cov-report=term-missing", "--cov-fail-under=70", ] [dependency-groups] dev = [ "bandit[toml]>=1.9.4", "black>=26.3.1", "isort>=8.0.1", "pre-commit>=4.5.1", "pytest-cov>=7.0.0", "ruff>=0.15.6", "ty>=0.0.22", ] [tool.black] line-length = 88 target-version = ["py313"] include = "\\.pyi?$" [tool.isort] profile = "black" line_length = 88 py_version = 313 src_paths = ["src", "tests"] [tool.bandit] exclude_dirs = ["tests", ".venv", ".git", "build", "dist"] skips = ["B105"] targets = ["src"] [tool.ruff] line-length = 88 target-version = "py313" src = ["src", "tests"] [tool.ruff.lint] select = ["E", "F", "I"] [tool.ty.environment] python-version = "3.13" root = ["./src"] [tool.ty.src] include = ["src", "tests"] [tool.ty.analysis] replace-imports-with-any = [ "uplink.**", "googleapiclient.**", "google_auth_oauthlib.**", "boto3.**", "botocore.**", ] [[tool.ty.overrides]] include = ["src/content_automation/adapters/social/instagram.py"] [tool.ty.overrides.rules] invalid-type-form = "ignore" empty-body = "ignore"