Skip to main content

A fast and easy-to-use asyncio ORM(Object-relational Mapper) for performing C.R.U.D. ops within RBDMS tables using python

Project description

A fast and easy-to-use asyncio ORM(Object-relational Mapper) for performing C.R.U.D. ops within RBDMS tables using python.

Documentation Status PyPI version

Key Features

  • asyncio ready
  • database / table query cache
  • SQL-like query syntax
  • Automatic schema discovery / migrations

Documentation

https://aiopyql.readthedocs.io/

Instalation

$ virtualenv -p python3.7 aiopyql-env

$ source aiopyql-env/bin/activate
(aiopyql-env)$ pip install aiopyql

Compatable Databases

Getting Started

import asyncio
from aiopyql import data

async def main():

    #sqlite connection
    sqlite_db = await data.Database.create(
        database="testdb"
    )

    # create table
    await db.create_table(
        'keystore',
        [
            ('key', str, 'UNIQUE NOT NULL'),
            ('value', str)
        ],
        'key',
        cache_enabled=True
    )

    # insert
    await db.tables['keystore'].insert(
        key='foo',
        value={'bar': 30}
    )

    # update
    await db.tables['keystore'].update(
        value={'bar': 31},
        where={'key': 'foo'}
    )

    # delete
    await db.tables['keystore'].delete(
        where={'key': 'foo'}
    )
loop = asyncio.new_event_loop()
loop.run_until_complete(main())

Recipies

See other usage examples in recipies.

Postgres

import asyncio
from aiopyql import data

async def main():
    mysql_db = await data.Database.create(
        database='postgres_database',
        user='postgres',
        password='my-secret-pw',
        host='localhost',
        port=5432,
        db_type='postgres'
    )

loop = asyncio.new_event_loop()
loop.run_until_complete(main())

Mysql

import asyncio
from aiopyql import data

async def main():
    mysql_db = await data.Database.create(
        database='mysql_database',
        user='mysqluser',
        password='my-secret-pw',
        host='localhost',
        port=3306,
        db_type='mysql'
    )

loop = asyncio.new_event_loop()
loop.run_until_complete(main())

Idea / Suggestion / Issue

  • Submit an Issue
  • Create a Pull request

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

aiopyql-0.359-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file aiopyql-0.359-py3-none-any.whl.

File metadata

  • Download URL: aiopyql-0.359-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

File hashes

Hashes for aiopyql-0.359-py3-none-any.whl
Algorithm Hash digest
SHA256 137e15cbaa7e57572d733ad2318988123a5f9b33f95117ee4157c2f6b160ba2a
MD5 ff99ba4a3d341e8bb0085f7a09c0cab0
BLAKE2b-256 96e75658aa1cc8a7d154d2d74cbb10d0f5cec405d9307ad547de7633966d4200

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page