Metadata-Version: 2.1
Name: peewee-aio
Version: 0.0.15
Summary: Peewee support for async frameworks (Asyncio, Trio)
Home-page: https://github.com/klen/peewee-aio
Author: Kirill Klenov
Author-email: horneds@gmail.com
License: MIT
Project-URL: Documentation, https://github.com/klen/peewee-aio
Project-URL: Source code, https://github.com/klen/peewee-aio
Project-URL: Issue tracker, https://github.com/klen/peewee-aio/issues
Keywords: peewee,asyncio,trio,orm
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Framework :: AsyncIO
Classifier: Framework :: Trio
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: peewee (>3)
Requires-Dist: aio-databases (>=0.3.7)
Requires-Dist: cached-property ; python_version < "3.8"
Provides-Extra: mysql
Requires-Dist: aio-databases[aiomysql] ; extra == 'mysql'
Provides-Extra: postgresql
Requires-Dist: aio-databases[aiopg] ; extra == 'postgresql'
Provides-Extra: sqlite
Requires-Dist: aio-databases[aiosqlite] ; extra == 'sqlite'
Provides-Extra: tests
Requires-Dist: aio-databases[aiomysql,aiopg,aiosqlite] ; extra == 'tests'
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: pytest-aio ; extra == 'tests'
Requires-Dist: pytest-mypy ; extra == 'tests'

# Peewee-AIO

Async support for [Peewee ORM](https://github.com/coleifer/peewee)

[![Tests Status](https://github.com/klen/peewee-aio/workflows/tests/badge.svg)](https://github.com/klen/peewee-aio/actions)
[![PYPI Version](https://img.shields.io/pypi/v/peewee-aio)](https://pypi.org/project/peewee-aio/)
[![Python Versions](https://img.shields.io/pypi/pyversions/peewee-aio)](https://pypi.org/project/peewee-aio/)

## Features

* Make [Peewee ORM](https://github.com/coleifer/peewee) to work async
* Supports PostgresQL, MySQL, SQLite

## Requirements

* python >= 3.7

## Installation

**peewee-aio** should be installed using pip:

```shell
$ pip install peewee-aio
```

You can install optional database drivers with:

```shell
$ pip install peewee-aio[sqlite]
$ pip install peewee-aio[postgresql]
$ pip install peewee-aio[mysql]
```

### Quickstart

```python
    import peewee
    from peewee_aio import Manager

    manager = Manager('sqlite:///:memory:')

    class TestModel(manager.Model):
        text = peewee.CharField()

    async def handler():

        # Initialize the database
        async with manager:

            # Create the table in database
            await TestModel.create_table()

            # Create a record
            test = await TestModel.create(text="I'm working!")
            assert test
            assert test.id

            # Iterate through records
            async for test in TestModel.select():
                assert test
                assert test.id

            # Change records
            test.text = "I'm changed'
            await test.save()

            # Update records
            await TestModel.update({'text': "I'm updated'"}).where(TestModel.id == test.id)

            # Delete records
            await TestModel.delete().where(TestModel.id == test.id)

            # Drop the table in database
            await TestModel.drop_table()

    # Run the handler with your async library
    import asyncio

    asyncio.run(handler())
```

## Usage

TODO

## Bug tracker

If you have any suggestions, bug reports or annoyances please report them to
the issue tracker at https://github.com/klen/peewee-aio/issues


## Contributing

Development of the project happens at: https://github.com/klen/peewee-aio


## License

Licensed under a [MIT License](http://opensource.org/licenses/MIT)


