Metadata-Version: 2.1
Name: awsync
Version: 0.4.3
Summary: An asynchronous, fully-typed AWS API library with a focus on being understandable, reliable, and maintainable.
Home-page: https://github.com/JKCT/awsync
License: Apache-2.0
Keywords: aws,async,boto,request,sdk,typed
Author: JKCT
Author-email: jkct@visceralfx.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Dist: httpx (>=0.27.0,<0.28.0)
Project-URL: Documentation, https://jkct.github.io/awsync/
Project-URL: Repository, https://github.com/JKCT/awsync
Description-Content-Type: text/markdown

# awsync

![CICD](https://github.com/JKCT/awsync/actions/workflows/cicd.yaml/badge.svg)

An asynchronous, fully-typed AWS API library with a focus on being understandable, reliable, and maintainable.

Read [the documentation](https://jkct.github.io/awsync/).

**NOTE: Currently a work in progress!**
Only a few API methods currently implemented for testing and development.

## Usage

```python
"Module main."
from asyncio import run
from httpx import AsyncClient

from awsync.client import Client
from awsync.models.aws import Region, Credentials


async def main() -> int:
    "Main function."
    async with AsyncClient() as httpx_client:
        client = Client(
            credentials=Credentials.from_environment(),
            httpx_client=httpx_client,
        )
        response = await client.list_stack_resources(
            region=Region.us_east_1, stack_name="Example-Stack-Name"
        )
        print(response)
    return 0


if __name__ == "__main__":
    run(main())
```

## Local Developer Setup

Requirements:

- [mise](https://mise.jdx.dev/)
- [python](https://www.python.org/) 3.8 or greater
- [poetry](https://python-poetry.org/)

### Repository Mangement

This repository uses [mise](https://mise.jdx.dev/) for tool and task management.

List all available commands with `mise tasks`.

### Package Management

This repository uses [poetry](https://python-poetry.org/) for python package management.

- `poetry install --sync` install/update dependencies, aliased to `mise run init`.
- `poetry add` add a dependency ie. `poetry add black`.
- `poetry add -D` add a development dependency ie. `poetry add -D black`.
- `poetry remove` remove a dependency ie. `poetry remove black`.
- `poetry shell` activate the python virtual environment for access to installed packages.
- `exit` exit the python virtual environment.

