Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

aiodesa

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aiodesa

AIODesa offers a straightforward and 100% Python interface for managing asynchronous data access. By leveraging Python's built-ins and standard library, it seamlessly wraps around AioSqlite, providing a hassle-free experience. With AIODesa, you can define, generate, and commit data effortlessly, thanks to shared objects for tables and records.

  • 0.2.0
  • PyPI
  • Socket score

Maintainers
1

Asyncio Dead Easy Sql API

MyPy Pytest Code Style Pylint Flake8 Read The Docs Changie Logs

Simplify Your Personal Projects with AIODesa

Are you tired of the hassle of setting up complex databases for small scale applications and personal projects? Designed to streamline monotony, AIODesa makes managing asynchronous database access easy. Perfect for smaller-scale applications where extensive database operations are not a priority.

No need to write even a single line of raw SQL.

A straightforward and 100% Python interface for managing asynchronous database API's by leveraging Python's built-ins and standard library. It wraps around AioSqlite, providing a hassle-free experience to define, generate, and commit data effortlessly, thanks to shared objects for tables and records.

Ideal for Personal Projects

AIODesa is specifically crafted for simpler projects where database IO is minimal. It's not intended for heavy production use but rather serves as an excellent choice for personal projects that require SQL structured data persistence without the complexity of a full-scale database setup. SQLite is leveraged here, meaning youre free to use other SQLite drivers to consume and transform the data if your project outgrows AIODesa.

Read the docs

AIODesa

Usage

Install via pip

pip install aiodesa

Sample API usage:

from aiodesa import Db
import asyncio
from dataclasses import dataclass
from aiodesa.utils.tables import ForeignKey, UniqueKey, PrimaryKey, set_key


async def main():
	# Define structure for both tables and records
	# Easily define key types
	@dataclass
	@set_key(PrimaryKey("username"), UniqueKey("id"), ForeignKey("username", "anothertable"))
	class UserEcon:
		username: str
		credits: int | None = None
		points: int | None = None
		id: str | None = None
		table_name: str = "user_economy"


	async with Db("database.sqlite3") as db:
		# Create table from UserEcon class
		await db.read_table_schemas(UserEcon)

		# Insert a record
		record = db.insert(UserEcon)
		await record('sockheadrps', id="fffff")

		# Update a record
		record = db.update(UserEcon, column_identifier="username")
		await record('sockheadrps', points=2330, id="1234")
		
		# Find All in a table
		find_all_users = db.find_all(UserEcon)
		all_users = await find_all_users()
		for user in all_users:
			print(user.username)

asyncio.run(main())


Development:

Ensure poetry is installed:

pip install poetry

Install project using poetry

poetry add git+https://github.com/sockheadrps/AIODesa.git
poetry install

create a python file for using AIODesa and activate poetry virtual env to run it

poetry shell
poetry run python main.py

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc