Asynchronous functions and tools for AWS services. There is a limited focus on s3 and AWS Batch and Lambda. Additional services could be added, but this project is likely to retain a limited focus. For general client solutions, see aioboto3 and aiobotocore, which wrap botocore
The API documentation is at readthedocs
This project has a very limited focus. For general client solutions, see aioboto3 and aiobotocore, which wrap botocore to patch it with features for async coroutines using aiohttp and asyncio.
This project is alpha-status with a 0.x.y API version that could break. There is no promise to support or develop it extensively, at this time.
pip install -U aio-aws[all]
pip check # pip might not guarantee consistent packages
poetry will try to guarantee consistent packages or fail.
# with optional extras
poetry add aio-aws --extras all
# pyproject.toml snippet
[tool.poetry.dependencies]
python = "^3.7"
# with optional extras
aio-aws = {version = "^0.1.0", extras = ["all"]}
# or, to make it an optional extra
aio-aws = {version = "^0.1.0", extras = ["all"], optional = true}
[tool.poetry.extras]
aio-aws = ["aio-aws"]
To use the source code, it can be cloned directly. Contributions are welcome via github flow and pull requests. To contribute to the project, first fork it and clone the forked repository.
The following setup assumes that
miniconda3 and
poetry are installed already
(and make
4.x).
- https://docs.conda.io/en/latest/miniconda.html
- recommended for creating virtual environments with required versions of python
- see https://github.com/dazza-codes/conda-venv
- https://python-poetry.org/docs/
- recommended for managing a python project with pip dependencies for both the project itself and development dependencies
git clone https://github.com/dazza-codes/aio-aws
cd aio-aws
conda create -n aio-aws python=3.8
conda activate aio-aws
make init # calls poetry install
make test
Note: on OSX, install GNU make >= 4.x using homebrew and substitute
gmake
for make
.
Install pipx and use it to install versionner.
pipx install versionner
ver --help
With pipx
and versionner
installed, it can be used to manage releases
for any python library. See the documentation for ver
for details on
how to manage sem-ver library releases. See .versionner.rc
file for
details of the project configuration.
Copyright 2019-2023 Darren Weber
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Inspiration for this project comes from various open source projects that use the Apache 2 license, including but not limited to:
- Apache Airflow: https://github.com/apache/airflow
- aiobotocore: https://github.com/aio-libs/aiobotocore
- botocore: https://github.com/boto/botocore