From 95abdc0bbbf20b3f149c060fa5e898f9f43f4410 Mon Sep 17 00:00:00 2001 From: Giovanni Grano Date: Wed, 11 Dec 2024 17:17:46 -0500 Subject: [PATCH 1/5] clean docs; enrich the readme --- .github/workflows/docs.yml | 42 ---- Makefile | 5 - README.md | 48 ++++- docs/Makefile | 21 -- docs/_static/localstack-horizontal.png | Bin 119107 -> 0 bytes docs/conf.py | 59 ----- docs/index.rst | 52 ----- docs/modules.rst | 7 - pyproject.toml | 1 - uv.lock | 284 ------------------------- 10 files changed, 38 insertions(+), 481 deletions(-) delete mode 100644 .github/workflows/docs.yml delete mode 100644 docs/Makefile delete mode 100644 docs/_static/localstack-horizontal.png delete mode 100644 docs/conf.py delete mode 100644 docs/index.rst delete mode 100644 docs/modules.rst diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 2d0ce53..0000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Build sphinx documentation - -on: - push: - paths: - - 'docs/**' - branches: - - main - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v3 - - - name: Install uv - uses: astral-sh/setup-uv@v3 - - - name: Install project - run: | - make install-dev - - - name: Generate docs - run: | - source .venv/bin/activate - make sphinx-docs - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: html-docs - path: docs/_build/html/ - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - if: github.ref == 'refs/heads/main' - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: docs/_build/html diff --git a/Makefile b/Makefile index 9f8ce05..d680319 100644 --- a/Makefile +++ b/Makefile @@ -23,11 +23,6 @@ clean-generated: ## Cleanup generated code generate: ## Generate the code from the OpenAPI specs ./bin/generate.sh -sphinx-docs: ## Generate the documentation; uses the sphinx-generated Makefile in docs to clean and build html - ($(VENV_RUN); sphinx-apidoc --implicit-namespaces -o docs localstack-sdk-python/localstack) - $(MAKE) -C docs clean - $(MAKE) -C docs html - format: ($(VENV_RUN); python -m ruff format --exclude packages .; python -m ruff check --output-format=full --exclude packages --fix .) diff --git a/README.md b/README.md index b1ae867..9444f38 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # LocalStack Python SDK [![PyPI version](https://img.shields.io/pypi/v/localstack-sdk-python)](https://pypi.org/project/localstack-sdk-python/) +![Integration Tests](https://github.com/github/docs/actions/workflows/test.yml/badge.svg) This is the Python SDK for LocalStack. LocalStack offers a number of developer endpoints (see [docs](https://docs.localstack.cloud/references/internal-endpoints/)). @@ -10,19 +11,46 @@ This SDK provides a programmatic and easy way to interact with them. ### Project Structure -This project follows the following structure: +This project is composed by two Python packages: -- `packages/localstack-sdk-generated` is a Python project generated from the OpenAPI specs with [openapi-generator](https://github.com/OpenAPITools/openapi-generator). -LocalStack's OpenAPI specs are available in the [openapi repository](https://github.com/localstack/openapi). -- `localstack-sdk-python` is the main project that has `localstack-sdk-generated` as the main dependency. +- `packages/localstack-sdk-generated`: generated from the LocalStack's OpenAPI specs with [openapi-generator](https://github.com/OpenAPITools/openapi-generator). +The LocalStack's OpenAPI specs are available in the [openapi repository](https://github.com/localstack/openapi). +This package is not meant to be manually modified, as it needs to be generated every time from the specs. +- `localstack-sdk-python`: the user-facing SDK that consumed `localstack-sdk-generated` as its main dependency. -Developers are not supposed to modify at all `localstack-sdk-generated`. -The code needs to be re-generated from specs every time using the `generate.sh` script in the `bin` folder. +### Installation -This project uses [uv](https://github.com/astral-sh/uv) as package/project manager. +Create and activate a virtual environment and then install the Python SDK: -### Install & Run +```shell +pip install localstack-sdk-python +``` + +#### From Source + +This project uses [uv](https://github.com/astral-sh/uv) as a package manager. +On a Unix system, you can install `uv` with the standalone installer: + +```shell +curl -LsSf https://astral.sh/uv/install.sh | sh +``` + +Once `uv` is installed, you can install the project from source with: + +```shell +make install +``` + +To run the integration test suite: + +```shell +make test +``` -You can simply run `make install-dev` to install the two packages and the needed dependencies. -`make test` runs the test suite. Note that LocalStack (pro) should be running in the background to execute the test. + +### Quickstart + +To get started with our SDK, check out the [official documentation](https://docs.localstack.cloud/user-guide/tools/localstack-sdk/python/). +You'll find comprehensive guides and detailed code samples that demonstrate how to use the various features provided +by the SDK. diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index eb12baa..0000000 --- a/docs/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Minimal makefile for Sphinx documentation -# Mostly use by the project Makefile to access the clean and html targets -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_static/localstack-horizontal.png b/docs/_static/localstack-horizontal.png deleted file mode 100644 index 3c40da772a98cb6ffc0e7e5fbd12785a9be4e22e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119107 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

@8^#pcw3E#e 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 diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 9febad2..0000000 --- a/docs/conf.py +++ /dev/null @@ -1,59 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# For the full list of built-in configuration values, see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Project information ----------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information - -import os -import sys - -sys.path.insert(0, os.path.abspath("../localstack-sdk-python/localstack")) - - -def _get_version() -> str: - with open(os.path.abspath("../VERSION"), "r") as f: - version = f.read() - return version - - -project = "LocalStack Python SDK" -copyright = "2024, LocalStack Team" -author = "LocalStack Team" -release = _get_version() - -# -- General configuration --------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration - -# enable auto-doc extension -extensions = ["sphinx.ext.autodoc"] - -templates_path = ["_templates"] -exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] - - -# -- Options for HTML output ------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output - -html_theme = "alabaster" -html_static_path = ["_static"] - -html_sidebars = { - "**": [ - "about.html", - "searchfield.html", - "navigation.html", - ] -} - -html_theme_options = { - "extra_nav_links": { - "Source": "https://github.com/localstack/localstack-sdk-python", - "Issues": "https://github.com/localstack/localstack-sdk-python/issues", - "PyPI": "https://pypi.org/project/localstack-sdk-python/", - }, - "description": "Python SDK to interact with LocalStack developer endpoints", - "github_user": "localstack", - "github_repo": "localstack-sdk-python", -} diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 8ef51b2..0000000 --- a/docs/index.rst +++ /dev/null @@ -1,52 +0,0 @@ -.. image:: _static/localstack-horizontal.png - :align: center - :target: https://localstack.cloud - -This is the documentation for the Python -`LocalStack's SDK `_. - -LocalStack offers a number of developer endpoints to programmatically interact -with LocalStack's features. - -The complete OpenAPI spec can be found in the -`OpenAPI repository `_. - -Installation ------------- - -We recommend to user virtual environments to manage the dependencies of your project. - -To create and activate a virtual environment inside your project run: - -.. code-block:: shell - - python3 -m venv venv - -You can activate the correspondent provider with: - -.. code-block:: shell - - . venv/bin/activate - -With the activated environment, use the following command to install the LocalStack Python SDK. - -.. code-block:: shell - - pip install localstack-sdk-python - -Getting Started ---------------- - -To learn about the basic SDK concepts and see how you can use it, please have a look at our -official `LocalStack documentation `_. - -API Reference -------------- - -If you are looking for information on a specific function, class or -method, this part of the documentation is for you. - -.. toctree:: - :maxdepth: 1 - - modules \ No newline at end of file diff --git a/docs/modules.rst b/docs/modules.rst deleted file mode 100644 index 0c7973d..0000000 --- a/docs/modules.rst +++ /dev/null @@ -1,7 +0,0 @@ -API Reference -============= - -.. toctree:: - :maxdepth: 4 - - localstack.sdk \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index a81248b..fba9e55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,6 @@ dev-dependencies=[ "pytest>=8.3.3", "ruff>=0.6.9", "boto3>=1.35.40", - "sphinx>=8.1.3" ] [tool.uv.sources] diff --git a/uv.lock b/uv.lock index db5a055..c0e910e 100644 --- a/uv.lock +++ b/uv.lock @@ -11,15 +11,6 @@ members = [ "localstack-sdk-python", ] -[[package]] -name = "alabaster" -version = "1.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929 }, -] - [[package]] name = "annotated-types" version = "0.7.0" @@ -29,15 +20,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, ] -[[package]] -name = "babel" -version = "2.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/74/f1bc80f23eeba13393b7222b11d95ca3af2c1e28edca18af487137eefed9/babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316", size = 9348104 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/20/bc79bc575ba2e2a7f70e8a1155618bb1301eaa5132a8271373a6903f73f8/babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", size = 9587599 }, -] - [[package]] name = "boto3" version = "1.35.40" @@ -66,69 +48,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0c/1f/48869905da0090c061b127caf13e722e95d95772d54bba3bc0aedee3ff33/botocore-1.35.40-py3-none-any.whl", hash = "sha256:072cc47f29cb1de4fa77ce6632e4f0480af29b70816973ff415fbaa3f50bd1db", size = 12617487 }, ] -[[package]] -name = "certifi" -version = "2024.8.30" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", size = 168507 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 }, - { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 }, - { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 }, - { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 }, - { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 }, - { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 }, - { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 }, - { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 }, - { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 }, - { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 }, - { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 }, - { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 }, - { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 }, - { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 }, - { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 }, - { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 }, - { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 }, - { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 }, - { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 }, - { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 }, - { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 }, - { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 }, - { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 }, - { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 }, - { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 }, - { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 }, - { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 }, - { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 }, - { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 }, - { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 }, - { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 }, - { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 }, - { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 }, - { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 }, - { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 }, - { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 }, - { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 }, - { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 }, - { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 }, - { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 }, - { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 }, - { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 }, - { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 }, - { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 }, - { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 }, - { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, -] - [[package]] name = "colorama" version = "0.4.6" @@ -138,33 +57,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, ] -[[package]] -name = "docutils" -version = "0.21.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408 }, -] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, -] - -[[package]] -name = "imagesize" -version = "1.4.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769 }, -] - [[package]] name = "iniconfig" version = "2.0.0" @@ -174,18 +66,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] -[[package]] -name = "jinja2" -version = "3.1.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271 }, -] - [[package]] name = "jmespath" version = "1.0.1" @@ -235,7 +115,6 @@ dev = [ { name = "boto3" }, { name = "pytest" }, { name = "ruff" }, - { name = "sphinx" }, ] [package.metadata] @@ -246,55 +125,6 @@ dev = [ { name = "boto3", specifier = ">=1.35.40" }, { name = "pytest", specifier = ">=8.3.3" }, { name = "ruff", specifier = ">=0.6.9" }, - { name = "sphinx", specifier = ">=8.1.3" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 }, - { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 }, - { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 }, - { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120 }, - { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032 }, - { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 }, - { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 }, - { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 }, - { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094 }, - { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521 }, - { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, - { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, - { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, - { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, - { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, - { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, - { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, - { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, - { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, - { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, ] [[package]] @@ -376,15 +206,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a5/ae/e14b0ff8b3f48e02394d8acd911376b7b66e164535687ef7dc24ea03072f/pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5", size = 1919411 }, ] -[[package]] -name = "pygments" -version = "2.18.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, -] - [[package]] name = "pytest" version = "8.3.3" @@ -412,21 +233,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, ] -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, -] - [[package]] name = "ruff" version = "0.6.9" @@ -473,96 +279,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 }, ] -[[package]] -name = "snowballstemmer" -version = "2.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/44/7b/af302bebf22c749c56c9c3e8ae13190b5b5db37a33d9068652e8f73b7089/snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", size = 86699 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a", size = 93002 }, -] - -[[package]] -name = "sphinx" -version = "8.1.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "alabaster" }, - { name = "babel" }, - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "docutils" }, - { name = "imagesize" }, - { name = "jinja2" }, - { name = "packaging" }, - { name = "pygments" }, - { name = "requests" }, - { name = "snowballstemmer" }, - { name = "sphinxcontrib-applehelp" }, - { name = "sphinxcontrib-devhelp" }, - { name = "sphinxcontrib-htmlhelp" }, - { name = "sphinxcontrib-jsmath" }, - { name = "sphinxcontrib-qthelp" }, - { name = "sphinxcontrib-serializinghtml" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125 }, -] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300 }, -] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530 }, -] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705 }, -] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071 }, -] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743 }, -] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072 }, -] - [[package]] name = "typing-extensions" version = "4.12.2" From cfb02ac6aa00afe327b2e6d6c4922168f355f9a8 Mon Sep 17 00:00:00 2001 From: Giovanni Grano Date: Thu, 12 Dec 2024 14:58:22 -0500 Subject: [PATCH 2/5] Update README.md Co-authored-by: Alexander Rashed <2796604+alexrashed@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9444f38..2d1b3a3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # LocalStack Python SDK [![PyPI version](https://img.shields.io/pypi/v/localstack-sdk-python)](https://pypi.org/project/localstack-sdk-python/) -![Integration Tests](https://github.com/github/docs/actions/workflows/test.yml/badge.svg) +[![Integration Tests](https://github.com/localstack/localstack-sdk-python/actions/workflows/test.yml/badge.svg)](https://github.com/localstack/localstack-sdk-python/actions/workflows/test.yml) This is the Python SDK for LocalStack. LocalStack offers a number of developer endpoints (see [docs](https://docs.localstack.cloud/references/internal-endpoints/)). From 6bcc0ddb34bee4110355de733093626d92c4d386 Mon Sep 17 00:00:00 2001 From: Giovanni Grano Date: Thu, 12 Dec 2024 14:58:33 -0500 Subject: [PATCH 3/5] Update README.md Co-authored-by: Alexander Rashed <2796604+alexrashed@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d1b3a3..bdbc7f5 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This SDK provides a programmatic and easy way to interact with them. This project is composed by two Python packages: - `packages/localstack-sdk-generated`: generated from the LocalStack's OpenAPI specs with [openapi-generator](https://github.com/OpenAPITools/openapi-generator). -The LocalStack's OpenAPI specs are available in the [openapi repository](https://github.com/localstack/openapi). +The LocalStack's OpenAPI specs are available in [localstack/openapi](https://github.com/localstack/openapi). This package is not meant to be manually modified, as it needs to be generated every time from the specs. - `localstack-sdk-python`: the user-facing SDK that consumed `localstack-sdk-generated` as its main dependency. From 5715654b03eff333ea5951d2c0664d226934a3ac Mon Sep 17 00:00:00 2001 From: Giovanni Grano Date: Thu, 12 Dec 2024 14:58:45 -0500 Subject: [PATCH 4/5] Update README.md Co-authored-by: Alexander Rashed <2796604+alexrashed@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bdbc7f5..aa0b424 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This package is not meant to be manually modified, as it needs to be generated e ### Installation -Create and activate a virtual environment and then install the Python SDK: +You can install the LocalStack Python SDK with `pip`: ```shell pip install localstack-sdk-python From 83b25118873e0dabb80a169b17f33926461e80b7 Mon Sep 17 00:00:00 2001 From: Giovanni Grano Date: Thu, 12 Dec 2024 14:58:54 -0500 Subject: [PATCH 5/5] Update README.md Co-authored-by: Alexander Rashed <2796604+alexrashed@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aa0b424..441f204 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,6 @@ Note that LocalStack (pro) should be running in the background to execute the te ### Quickstart -To get started with our SDK, check out the [official documentation](https://docs.localstack.cloud/user-guide/tools/localstack-sdk/python/). +To get started with our SDK, check out the [official documentation on https://docs.localstack.cloud](https://docs.localstack.cloud/user-guide/tools/localstack-sdk/python/). You'll find comprehensive guides and detailed code samples that demonstrate how to use the various features provided by the SDK.