Metadata-Version: 2.1
Name: peewee-aio
Version: 0.0.5
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.5)
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)

## Features

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

## Requirements

* python >= 3.7

## Installation

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

```shell
$ pip install peewee-orm
```

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(peewee.Model):
        text = peewee.CharField()

    async def handler():

        # Initialize the database
        async with manager:

            # Create the table in database
            await manager.create_tables(TestModel, safe=True)

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

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

            # Drop the table in database
            await manager.drop_tables(TestModel, safe=True)

    # 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)


