Async and Sync SQL Engine for Python, with support for PostgreSQL, MySQL, SQLite and Microsoft SQL Server.
Project description
PySQLXEngine
PySQLXEngine, a fast and minimalist SQL engine
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 INTEGER 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 INTEGER 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
Built Distribution
File details
Details for the file pysqlx_engine-0.3.0b4.tar.gz
.
File metadata
- Download URL: pysqlx_engine-0.3.0b4.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.10.2 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d8025899a47bb0b192c899847cf78a3b6b030c744d831231e11f2f98dd0491c |
|
MD5 | 15069255d3e75953cc6853c2f561b11f |
|
BLAKE2b-256 | 6d03310dd2236ab56b73810416c9bda728f07cd88e392660ad9bf3760273e0ef |
File details
Details for the file pysqlx_engine-0.3.0b4-py3-none-any.whl
.
File metadata
- Download URL: pysqlx_engine-0.3.0b4-py3-none-any.whl
- Upload date:
- Size: 33.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.10.2 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8e141417d478b3473f4bd19f0d55a0e0740f450add60cc748cad17edf1f76be |
|
MD5 | 2378c7ea9fc89a889b91d1eeae6e8cc4 |
|
BLAKE2b-256 | c797684779548ccb8f80655edb3cb925db7c31c0f0e5bf33dfd45bf49d229f01 |