Skip to main content

Async and Sync SQL Engine for Python, with support for MySQL, PostgreSQL, SQLite and Microsoft SQL Server.

Project description

PySQLXEngine

PySQLXEngine Logo

PySQLXEngine, a minimalist SQL engine

Test Coverage Package version Supported Python versions


Documentation: https://carlos-rian.github.io/pysqlx-engine/

Source Code: https://github.com/carlos-rian/pysqlx-engine


PySQLXEngine supports the option of sending Raw SQL to your database.

The PySQLXEngine is a minimalist SQL Engine.

The PySQLXEngine was created and thought to be minimalistic, but very efficient. The core is write in Rust, making communication between Databases and Python more efficient.

All SQL executed using PySQLXEngine is atomic; only one instruction is executed at a time. Only the first one will be completed if you send an Insert and a select. This is one of the ways to handle SQL ingestion. As of version 0.2.0, PySQLXEngine supports transactions, where you can control BEGIN, COMMIT, ROLLBACK , ISOLATION LEVEL, etc. as you wish.

NOTE: Minimalism is not the lack of something, but having exactly what you need. PySQLXEngine aims to expose an easy interface for you to communicate with the database in a simple, intuitive way and with good help through documentation, autocompletion, typing, and good practices.


Database Support:

OS Support:

Installation

PIP

$ pip install pysqlx-engine

Poetry

$ poetry add pysqlx-engine

Async Example

Create a main.py file and add the code examples below.

from pysqlx_engine import PySQLXEngine

async def main():
    db = PySQLXEngine(uri="sqlite:./db.db")
    await db.connect()

    await db.execute(sql="CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY, name TEXT, age INT)")
    await db.execute(sql="INSERT INTO users (name, age) VALUES ('Rian', '28')")
    await db.execute(sql="INSERT INTO users (name, age) VALUES ('Carlos', '29')")

    rows = await db.query(sql="SELECT * FROM users")

    print(rows)

import asyncio
asyncio.run(main())

Sync Example

Create a main.py file and add the code examples below.

from pysqlx_engine import PySQLXEngineSync

def main():
    db = PySQLXEngineSync(uri="sqlite:./db.db")
    db.connect()

    db.execute(sql="CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY, name TEXT, age INT)")
    db.execute(sql="INSERT INTO users (name, age) VALUES ('Rian', '28')")
    db.execute(sql="INSERT INTO users (name, age) VALUES ('Carlos', '29')")

    rows = db.query(sql="SELECT * FROM users")

    print(rows)

# running the code
main()

Running the code using the terminal

$ python3 main.py

Output

[
    BaseRow(id=1, name='Rian', age=28),  
    BaseRow(id=2, name='Carlos', age=29)
]

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 Distribution

pysqlx_engine-0.2.0b13.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysqlx_engine-0.2.0b13-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file pysqlx_engine-0.2.0b13.tar.gz.

File metadata

  • Download URL: pysqlx_engine-0.2.0b13.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.2 Linux/5.15.0-1024-azure

File hashes

Hashes for pysqlx_engine-0.2.0b13.tar.gz
Algorithm Hash digest
SHA256 85d4338a07e92e208205723d9398726ef848f46cb7ea4899d97ddf288396bba5
MD5 3f0a33be2de5ee45920959a2200e485f
BLAKE2b-256 116ef0ac2962ae8a564da262087943979ea962515fb6fca57a39479617425f62

See more details on using hashes here.

File details

Details for the file pysqlx_engine-0.2.0b13-py3-none-any.whl.

File metadata

  • Download URL: pysqlx_engine-0.2.0b13-py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.2 Linux/5.15.0-1024-azure

File hashes

Hashes for pysqlx_engine-0.2.0b13-py3-none-any.whl
Algorithm Hash digest
SHA256 9a405d4be335956d0b1e5ad5f26fcff85fa1d8103f37d8b61c8d12d3fdaeacfa
MD5 21357c6ed387a6e797235db7e730ef15
BLAKE2b-256 5861e0712e4c3301015b03b6be6f01242337226f4bc0fa71c46fa744de6c348c

See more details on using hashes here.

Supported by

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