[tool.poetry] name = "aws_lambda_powertools" version = "2.23.1" description = "Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity." authors = ["Amazon Web Services"] include = ["aws_lambda_powertools/py.typed", "THIRD-PARTY-LICENSES"] classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT No Attribution License (MIT-0)", "Natural Language :: English", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", ] repository = "https://github.com/aws-powertools/powertools-lambda-python" documentation = "https://docs.powertools.aws.dev/lambda/python/" readme = "README.md" keywords = ["aws_lambda_powertools", "aws", "tracing", "logging", "lambda", "powertools", "feature_flags", "idempotency", "middleware"] # MIT-0 is not recognized as an existing license from poetry. # By using `MIT` as a license value, a `License :: OSI Approved :: MIT License` classifier is added to the classifiers list. license = "MIT" [tool.poetry.urls] "Issue tracker" = "https://github.com/aws-powertools/powertools-lambda-python/issues" "Releases" = "https://github.com/aws-powertools/powertools-lambda-python/releases" [tool.poetry.dependencies] python = "^3.7.4" aws-xray-sdk = { version = "^2.8.0", optional = true } fastjsonschema = { version = "^2.14.5", optional = true } pydantic = { version = "^1.8.2", optional = true } boto3 = { version = "^1.20.32", optional = true } typing-extensions = "^4.6.2" datadog-lambda = { version = "^4.77.0", optional = true } [tool.poetry.dev-dependencies] coverage = {extras = ["toml"], version = "^7.2"} pytest = "^7.4.1" black = "^23.3" boto3 = "^1.18" isort = "^5.11.5" pytest-cov = "^4.1.0" pytest-mock = "^3.11.1" pdoc3 = "^0.10.0" pytest-asyncio = "^0.21.1" bandit = "^1.7.5" radon = "^6.0.1" xenon = "^0.9.1" mkdocs-git-revision-date-plugin = "^0.3.2" mike = "^1.1.2" pytest-xdist = "^3.3.1" aws-cdk-lib = "^2.88.0" "aws-cdk.aws-apigatewayv2-alpha" = "^2.38.1-alpha.0" "aws-cdk.aws-apigatewayv2-integrations-alpha" = "^2.38.1-alpha.0" "aws-cdk.aws-apigatewayv2-authorizers-alpha" = "^2.38.1-alpha.0" pytest-benchmark = "^4.0.0" mypy-boto3-appconfig = "^1.28.36" mypy-boto3-cloudformation = "^1.28.36" mypy-boto3-cloudwatch = "^1.28.36" mypy-boto3-dynamodb = "^1.28.36" mypy-boto3-lambda = "^1.28.36" mypy-boto3-logs = "^1.28.36" mypy-boto3-secretsmanager = "^1.28.36" mypy-boto3-ssm = "^1.28.36" mypy-boto3-s3 = "^1.28.36" mypy-boto3-xray = "^1.28.36" types-requests = "^2.31.0" typing-extensions = "^4.6.2" mkdocs-material = "^9.2.7" filelock = "^3.12.2" checksumdir = "^1.2.0" mypy-boto3-appconfigdata = "^1.28.36" ijson = "^3.2.2" typed-ast = { version = "^1.5.5", python = "< 3.8"} hvac = "^1.1.1" aws-requests-auth = "^0.4.3" datadog-lambda = "^4.77.0" [tool.poetry.extras] parser = ["pydantic"] validation = ["fastjsonschema"] tracer = ["aws-xray-sdk"] all = ["pydantic", "aws-xray-sdk", "fastjsonschema"] # allow customers to run code locally without emulators (SAM CLI, etc.) aws-sdk = ["boto3"] datadog=["datadog-lambda"] [tool.poetry.group.dev.dependencies] cfn-lint = "0.79.9" mypy = "^1.1.1" types-python-dateutil = "^2.8.19.6" httpx = ">=0.23.3,<0.25.0" sentry-sdk = "^1.22.2" ruff = ">=0.0.272,<0.0.288" retry2 = "^0.9.5" [tool.coverage.run] source = ["aws_lambda_powertools"] omit = ["tests/*", "aws_lambda_powertools/exceptions/*", "aws_lambda_powertools/utilities/parser/types.py", "aws_lambda_powertools/utilities/jmespath_utils/envelopes.py"] branch = true [tool.coverage.html] directory = "test_report" title = "Powertools for AWS Lambda (Python) Test Coverage" [tool.coverage.report] fail_under = 90 exclude_lines = [ # Have to re-enable the standard pragma "pragma: no cover", # Don't complain about missing debug-only code: "def __repr__", "if self.debug", # Don't complain if tests don't hit defensive assertion code: "raise AssertionError", "raise NotImplementedError", # Don't complain if non-runnable code isn't run: "if 0:", "if __name__ == .__main__.:", # Ignore runtime type checking "if TYPE_CHECKING:", # Ignore type function overload "@overload", ] [tool.isort] profile = "black" # resolves conflict with black skip = "example" [tool.black] line-length = 120 exclude = ''' ( /( \.eggs # exclude a few common directories in the | \.git # root of the project | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist )/ | example ) ''' [tool.pytest.ini_options] minversion = "6.0" addopts = "-ra -vv" testpaths = "./tests" markers = [ "perf: marks perf tests to be deselected (deselect with '-m \"not perf\"')", ] # MAINTENANCE: Remove these lines when drop support to Pydantic v1 filterwarnings=[ "ignore:.*The `parse_obj` method is deprecated*:DeprecationWarning", "ignore:.*The `parse_raw` method is deprecated*:DeprecationWarning", "ignore:.*load_str_bytes is deprecated*:DeprecationWarning", "ignore:.*The `dict` method is deprecated; use `model_dump` instead*:DeprecationWarning", "ignore:.*Pydantic V1 style `@validator` validators are deprecated*:DeprecationWarning" ] [build-system] requires = ["poetry-core>=1.3.2"] build-backend = "poetry.core.masonry.api" # poetry-core (PR #318) stopped generating setup.py by default, this enables it again. [tool.poetry.build] generate-setup-file = true [tool.poetry_bumpversion.file."aws_lambda_powertools/shared/version.py"] search = 'VERSION = "{current_version}"' replace = 'VERSION = "{new_version}"'