diff --git a/mkdocs.yml b/mkdocs.yml index 13930db6133..f97d46ebc3e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -136,6 +136,42 @@ copyright: Copyright © 2023 Amazon Web Services plugins: - git-revision-date - search + - mkdocstrings: + default_handler: python + enable_inventory: true + handlers: + python: + import: + - https://docs.python.org/3/objects.inv + options: + # General + allow_inspection: true + show_source: true + show_bases: true + # Headings + heading_level: 2 + #show_root_heading: false + #show_root_toc_entry: true + #show_root_full_path: true + #show_root_members_full_path: false + #show_object_full_path: false + #show_category_heading: true + # Members + filters: ["!^_[^_]"] + group_by_category: true + show_submodules: false + # Docstrings + docstring_style: numpy + docstring_options: + ignore_init_summary: true + docstring_section_style: spacy + merge_init_into_class: true + show_if_no_docstring: false + # Signature + annotations_path: brief + show_signature: true + show_signature_annotations: true + separate_signature: true extra_css: - stylesheets/extra.css diff --git a/poetry.lock b/poetry.lock index 0cc1a03a5ae..05aaefe81be 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.0.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. [[package]] name = "annotated-types" @@ -235,14 +235,14 @@ typeguard = ">=2.13.3,<4.3.0" [[package]] name = "aws-cdk-cloud-assembly-schema" -version = "39.2.7" +version = "39.2.9" description = "Cloud Assembly Schema" optional = false python-versions = "~=3.8" groups = ["dev"] files = [ - {file = "aws_cdk.cloud_assembly_schema-39.2.7-py3-none-any.whl", hash = "sha256:80330f993605d65d00369f38cb8ac99ad757ef7158985656a77ac5b2712c565c"}, - {file = "aws_cdk_cloud_assembly_schema-39.2.7.tar.gz", hash = "sha256:980250fb7ef871ea12b58ebb91df5b83da10f69810917bdcd8e0c1d02411516c"}, + {file = "aws_cdk.cloud_assembly_schema-39.2.9-py3-none-any.whl", hash = "sha256:3d16bbe45a463e5327b3d618e1501a2f4ecc6a8764dea71b045e431976135bc8"}, + {file = "aws_cdk_cloud_assembly_schema-39.2.9.tar.gz", hash = "sha256:ed82fc47eee25888fedeb3f668d61e7fb22b0afa393d5ae5cc9e44e75113b85b"}, ] [package.dependencies] @@ -436,18 +436,18 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "boto3" -version = "1.36.7" +version = "1.36.10" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "boto3-1.36.7-py3-none-any.whl", hash = "sha256:ab501f75557863e2d2c9fa731e4fe25c45f35e0d92ea0ee11a4eaa63929d3ede"}, - {file = "boto3-1.36.7.tar.gz", hash = "sha256:ae98634efa7b47ced1b0d7342e2940b32639eee913f33ab406590b8ed55ee94b"}, + {file = "boto3-1.36.10-py3-none-any.whl", hash = "sha256:5f8d5c2024a2d1411d3d67abb7357ec7d4c6162e3f1c396dc9b79d042cfd0a80"}, + {file = "boto3-1.36.10.tar.gz", hash = "sha256:d2f1010db699326b26fbd465d91c4b49177c9d995d7e72c0f31335f139efa0d2"}, ] [package.dependencies] -botocore = ">=1.36.7,<1.37.0" +botocore = ">=1.36.10,<1.37.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.11.0,<0.12.0" @@ -456,14 +456,14 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-stubs" -version = "1.36.7" -description = "Type annotations for boto3 1.36.7 generated with mypy-boto3-builder 8.8.0" +version = "1.36.10" +description = "Type annotations for boto3 1.36.10 generated with mypy-boto3-builder 8.9.0" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "boto3_stubs-1.36.7-py3-none-any.whl", hash = "sha256:d5d3f1f537c4d317f1f11b1cb4ce8f427822204936e29419b43c709ec54758ea"}, - {file = "boto3_stubs-1.36.7.tar.gz", hash = "sha256:197bdbacd3a9085c6310a06f21616f30f6103ed8be67705962620ac4587ba1fb"}, + {file = "boto3_stubs-1.36.10-py3-none-any.whl", hash = "sha256:fda0b92e50e0b30ac54807b9e10e06e9224f699ccce80be8ac426cdc63f09ff1"}, + {file = "boto3_stubs-1.36.10.tar.gz", hash = "sha256:fdf82fbe27c4b909df13080922fe27b2e565bf5b546bfec9805e66e983c1b5d9"}, ] [package.dependencies] @@ -530,7 +530,7 @@ bedrock-data-automation-runtime = ["mypy-boto3-bedrock-data-automation-runtime ( bedrock-runtime = ["mypy-boto3-bedrock-runtime (>=1.36.0,<1.37.0)"] billing = ["mypy-boto3-billing (>=1.36.0,<1.37.0)"] billingconductor = ["mypy-boto3-billingconductor (>=1.36.0,<1.37.0)"] -boto3 = ["boto3 (==1.36.7)"] +boto3 = ["boto3 (==1.36.10)"] braket = ["mypy-boto3-braket (>=1.36.0,<1.37.0)"] budgets = ["mypy-boto3-budgets (>=1.36.0,<1.37.0)"] ce = ["mypy-boto3-ce (>=1.36.0,<1.37.0)"] @@ -893,14 +893,14 @@ xray = ["mypy-boto3-xray (>=1.36.0,<1.37.0)"] [[package]] name = "botocore" -version = "1.36.7" +version = "1.36.10" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" groups = ["main", "dev"] files = [ - {file = "botocore-1.36.7-py3-none-any.whl", hash = "sha256:a6c6772d777af2957ac9975207fac1ccc4ce101408b85e9b5e3c5ba0bb949102"}, - {file = "botocore-1.36.7.tar.gz", hash = "sha256:9abc64bde5e7d8f814ea91d6fc0a8142511fc96427c19fe9209677c20a0c9e6e"}, + {file = "botocore-1.36.10-py3-none-any.whl", hash = "sha256:45c8a6e01dc18d44a13ba688f1d60ad562db8154b08c46b412387ea040a741c2"}, + {file = "botocore-1.36.10.tar.gz", hash = "sha256:d27bb73f0ea81395527a6298ac0a7ea5b2958094169f7cf7d48e3f4e4bc21b65"}, ] [package.dependencies] @@ -912,18 +912,18 @@ urllib3 = [ ] [package.extras] -crt = ["awscrt (==0.23.4)"] +crt = ["awscrt (==0.23.8)"] [[package]] name = "botocore-stubs" -version = "1.36.7" +version = "1.36.9" description = "Type annotations and code completion for botocore" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "botocore_stubs-1.36.7-py3-none-any.whl", hash = "sha256:77052e3a86a3f77383c638db63379652bafac3a2b310954392e0cfb3dacd3dad"}, - {file = "botocore_stubs-1.36.7.tar.gz", hash = "sha256:51c51da5379d3e4c4cb7e3dbe8451f572ecbfe6a5ced3a76a6b958941ef72409"}, + {file = "botocore_stubs-1.36.9-py3-none-any.whl", hash = "sha256:76fc0651fc4e7d9a83de944d109f4d779a064265c5f243699718e1d06104efd9"}, + {file = "botocore_stubs-1.36.9.tar.gz", hash = "sha256:786857fc9f4e11f16b62e0383b8d60a3a03a9ac10fe23d57d1fa726e77626535"}, ] [package.dependencies] @@ -977,14 +977,14 @@ ujson = ["ujson (>=5.7.0)"] [[package]] name = "cdk-nag" -version = "2.35.2" +version = "2.35.4" description = "Check CDK v2 applications for best practices using a combination on available rule packs." optional = false python-versions = "~=3.8" groups = ["dev"] files = [ - {file = "cdk_nag-2.35.2-py3-none-any.whl", hash = "sha256:5348d4595622d67f841bbd7a490f28fa9fa3ae59193381e43b508780785b1004"}, - {file = "cdk_nag-2.35.2.tar.gz", hash = "sha256:af58a7ef38784c1398f856136f76057e68f74837fcd3bb655b78b4fba379ca60"}, + {file = "cdk_nag-2.35.4-py3-none-any.whl", hash = "sha256:f9d0f6ffbe79aecc082697d57810aa1ed2b62f2dc582c487f37dcbb2812274bf"}, + {file = "cdk_nag-2.35.4.tar.gz", hash = "sha256:5389ffd6689576708039edf9cc3a155de46e6950edaff27fb7db4a05bedafb26"}, ] [package.dependencies] @@ -1445,20 +1445,20 @@ requests = ">=2.6.0" [[package]] name = "datadog-lambda" -version = "6.104.0" +version = "6.105.0" description = "The Datadog AWS Lambda Library" optional = true python-versions = "<4,>=3.8.0" groups = ["main"] markers = "extra == \"datadog\"" files = [ - {file = "datadog_lambda-6.104.0-py3-none-any.whl", hash = "sha256:72092f9057764515ef1e2fdf1cf25f82bfa70296411af9121db896e4a35fdf6e"}, - {file = "datadog_lambda-6.104.0.tar.gz", hash = "sha256:eeb2ff0e4387812e7caf17e501d93fea3d85e3f9bb79581fb37556580d5a1c46"}, + {file = "datadog_lambda-6.105.0-py3-none-any.whl", hash = "sha256:447d13b6f4971da8aa1227e554a1c2f8985b62aaacbb182bc093a7e048cd1fc4"}, + {file = "datadog_lambda-6.105.0.tar.gz", hash = "sha256:59d7900b2136e14441dc29de4ff778301d2c8175cc26caf3819c648293357fbb"}, ] [package.dependencies] -datadog = ">=0.41.0,<1.0.0" -ddtrace = ">=2.17.0" +datadog = ">=0.51.0,<1.0.0" +ddtrace = ">=2.20.0" ujson = ">=5.9.0" wrapt = ">=1.11.2,<2.0.0" @@ -1683,7 +1683,7 @@ description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["dev"] -markers = "python_version < \"3.11.0\"" +markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -1792,6 +1792,21 @@ gitdb = ">=4.0.1,<5" doc = ["sphinx (>=7.1.2,<7.2)", "sphinx-autodoc-typehints", "sphinx_rtd_theme"] test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] +[[package]] +name = "griffe" +version = "1.5.6" +description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "griffe-1.5.6-py3-none-any.whl", hash = "sha256:b2a3afe497c6c1f952e54a23095ecc09435016293e77af8478ed65df1022a394"}, + {file = "griffe-1.5.6.tar.gz", hash = "sha256:181f6666d5aceb6cd6e2da5a2b646cfb431e47a0da1fda283845734b67e10944"}, +] + +[package.dependencies] +colorama = ">=0.4" + [[package]] name = "h11" version = "0.14.0" @@ -2440,6 +2455,23 @@ watchdog = ">=2.0" i18n = ["babel (>=2.9.0)"] min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.4)", "jinja2 (==2.11.1)", "markdown (==3.3.6)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "mkdocs-get-deps (==0.2.0)", "packaging (==20.5)", "pathspec (==0.11.1)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "watchdog (==2.0)"] +[[package]] +name = "mkdocs-autorefs" +version = "1.3.0" +description = "Automatically link across pages in MkDocs." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "mkdocs_autorefs-1.3.0-py3-none-any.whl", hash = "sha256:d180f9778a04e78b7134e31418f238bba56f56d6a8af97873946ff661befffb3"}, + {file = "mkdocs_autorefs-1.3.0.tar.gz", hash = "sha256:6867764c099ace9025d6ac24fd07b85a98335fbd30107ef01053697c8f46db61"}, +] + +[package.dependencies] +Markdown = ">=3.3" +markupsafe = ">=2.0.1" +mkdocs = ">=1.1" + [[package]] name = "mkdocs-get-deps" version = "0.2.0" @@ -2516,6 +2548,52 @@ files = [ {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, ] +[[package]] +name = "mkdocstrings" +version = "0.27.0" +description = "Automatic documentation from sources, for MkDocs." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "mkdocstrings-0.27.0-py3-none-any.whl", hash = "sha256:6ceaa7ea830770959b55a16203ac63da24badd71325b96af950e59fd37366332"}, + {file = "mkdocstrings-0.27.0.tar.gz", hash = "sha256:16adca6d6b0a1f9e0c07ff0b02ced8e16f228a9d65a37c063ec4c14d7b76a657"}, +] + +[package.dependencies] +click = ">=7.0" +importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} +Jinja2 = ">=2.11.1" +Markdown = ">=3.6" +MarkupSafe = ">=1.1" +mkdocs = ">=1.4" +mkdocs-autorefs = ">=1.2" +platformdirs = ">=2.2" +pymdown-extensions = ">=6.3" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.10\""} + +[package.extras] +crystal = ["mkdocstrings-crystal (>=0.3.4)"] +python = ["mkdocstrings-python (>=0.5.2)"] +python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] + +[[package]] +name = "mkdocstrings-python" +version = "1.13.0" +description = "A Python handler for mkdocstrings." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "mkdocstrings_python-1.13.0-py3-none-any.whl", hash = "sha256:b88bbb207bab4086434743849f8e796788b373bd32e7bfefbf8560ac45d88f97"}, + {file = "mkdocstrings_python-1.13.0.tar.gz", hash = "sha256:2dbd5757e8375b9720e81db16f52f1856bf59905428fd7ef88005d1370e2f64c"}, +] + +[package.dependencies] +griffe = ">=0.49" +mkdocs-autorefs = ">=1.2" +mkdocstrings = ">=0.26" + [[package]] name = "mpmath" version = "1.3.0" @@ -2730,14 +2808,14 @@ typing-extensions = {version = "*", markers = "python_version < \"3.12\""} [[package]] name = "mypy-boto3-s3" -version = "1.36.0" -description = "Type annotations for boto3 S3 1.36.0 service generated with mypy-boto3-builder 8.8.0" +version = "1.36.9" +description = "Type annotations for boto3 S3 1.36.9 service generated with mypy-boto3-builder 8.8.0" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "mypy_boto3_s3-1.36.0-py3-none-any.whl", hash = "sha256:a65ccb6be7b7ebf907887268d44975e435b1fc1164fc0a25de310e2b832f7e91"}, - {file = "mypy_boto3_s3-1.36.0.tar.gz", hash = "sha256:80a881847b0e1fbc5edcad8b2870c110e31e7ef128db42402b70c159b7e93d5a"}, + {file = "mypy_boto3_s3-1.36.9-py3-none-any.whl", hash = "sha256:506edd56892452dff5b673e3c79a11b6f8935076ce4a9daaac4cda708a176201"}, + {file = "mypy_boto3_s3-1.36.9.tar.gz", hash = "sha256:368c963969eda65bb3a9df61e87510dd8b3247cce59f559c2ec6c43d5796bef5"}, ] [package.dependencies] @@ -3207,14 +3285,14 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pymdown-extensions" -version = "10.14.1" +version = "10.14.2" description = "Extension pack for Python Markdown." optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "pymdown_extensions-10.14.1-py3-none-any.whl", hash = "sha256:637951cbfbe9874ba28134fb3ce4b8bcadd6aca89ac4998ec29dcbafd554ae08"}, - {file = "pymdown_extensions-10.14.1.tar.gz", hash = "sha256:b65801996a0cd4f42a3110810c306c45b7313c09b0610a6f773730f2a9e3c96b"}, + {file = "pymdown_extensions-10.14.2-py3-none-any.whl", hash = "sha256:f45bc5892410e54fd738ab8ccd736098b7ff0cb27fdb4bf24d0a0c6584bc90e1"}, + {file = "pymdown_extensions-10.14.2.tar.gz", hash = "sha256:7a77b8116dc04193f2c01143760a43387bd9dc4aa05efacb7d838885a7791253"}, ] [package.dependencies] @@ -3264,14 +3342,14 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments [[package]] name = "pytest-asyncio" -version = "0.25.2" +version = "0.25.3" description = "Pytest support for asyncio" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pytest_asyncio-0.25.2-py3-none-any.whl", hash = "sha256:0d0bb693f7b99da304a0634afc0a4b19e49d5e0de2d670f38dc4bfa5727c5075"}, - {file = "pytest_asyncio-0.25.2.tar.gz", hash = "sha256:3f8ef9a98f45948ea91a0ed3dc4268b5326c0e7bce73892acc654df4262ad45f"}, + {file = "pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3"}, + {file = "pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a"}, ] [package.dependencies] @@ -4113,7 +4191,7 @@ description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["dev"] -markers = "python_version < \"3.11.0\"" +markers = "python_full_version <= \"3.11.0a6\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -4637,4 +4715,4 @@ validation = ["fastjsonschema"] [metadata] lock-version = "2.1" python-versions = ">=3.9,<4.0.0" -content-hash = "d9f1328c56d8cbad3242d4f5f5f7ca04482270605a7505994dfc2872847dff05" +content-hash = "2bd6190fb26fceb1fa2b7efd2a3904b47130cbd38d2608c22091f1ec10495672" diff --git a/pyproject.toml b/pyproject.toml index 368bd50a4a3..cb9a50b3080 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -122,6 +122,7 @@ testcontainers = { extras = ["redis"], version = ">=3.7.1,<5.0.0" } multiprocess = "^0.70.16" boto3-stubs = {extras = ["appconfig", "appconfigdata", "cloudformation", "cloudwatch", "dynamodb", "lambda", "logs", "s3", "secretsmanager", "ssm", "xray"], version = "^1.34.139"} nox = "^2024.4.15" +mkdocstrings-python = "^1.13.0" [tool.coverage.run] source = ["aws_lambda_powertools"] @@ -134,9 +135,6 @@ omit = [ ] branch = true -[tool.poetry.requires-plugins] -poetry-plugin-export = "^1.9.0" - [tool.coverage.html] directory = "test_report" title = "Powertools for AWS Lambda (Python) Test Coverage"