Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ardilla

Downloads PyPI - Python Version PyPI GitHub Documentation Status

Ardilla (pronounced ahr-dee-yah) means "SQuirreL" in spanish.

This library aims to be a simple way to add an SQLite database and basic C.R.U.D. methods to python applications. It uses pydantic for data validation and supports a sync engine as well as an async (aiosqlite) version.

Who and what is this for

This library is well suited for developers seeking to incorporate SQLite into their python applications to use simple C.R.U.D. methods. It excels in its simplicity and ease of implementation while it may not be suitable for those who require more complex querying, intricate relationships or top performance.

For developers who desire more advanced features, there are other libraries available, such as tortoise-orm, sqlalchemy, pony or peewee.

Find Ardilla's source code here

Documentation can be accessed here

install

Install lastest release from PyPi

pip install -U ardilla
pip install -U ardilla[async]
pip install -U ardilla[dev]
  • async instaslls aiosqlite
  • dev installs formatting and testing dependencies

Or install the lastest changes directly from github

pip install git+https://github.com/chrisdewa/ardilla.git
pip install git+https://github.com/chrisdewa/ardilla.git#egg=ardilla[async]
pip install git+https://github.com/chrisdewa/ardilla.git#egg=ardilla[dev]

How to use

from ardilla import Engine, Model, Crud
from pydantic import Field

class User(Model):
    id: int = Field(primary=True, autoincrement=True) 
    name: str
    age: int

def main():
    with Engine('db.sqlite') as engine:
      user = crud.get_or_none(id=1) # user with id of 1
      user2, was_created = crud.get_or_create(id=2, name='chris', age=35)
      users = crud.get_many(name='chris') # all users named chris
      user3 = User(id=3, name='moni', age=35)
      user.age += 1 # it's her birthday
      crud.save_one(user3)
      crud.save_many(user, user2, user3)

Supported CRUD methods:

  • crud.insert Inserts a record, rises errors if there's a conflict
  • crud.insert_or_ignore Inserts a record or silently ignores if it already exists
  • crud.save_one upserts an object
  • crud.save_many upserts many objects
  • crud.get_all equivalent to SELECT * FROM tablename
  • crud.get_many returns all the objects that meet criteria
  • crud.get_or_create returns an tuple of the object and a bool, True if the object was newly created
  • crud.get_or_none Returns the first object meeting criteria if any
  • crud.delete_one Deletes an object
  • crud.delete_many Deletes many objects

Examples:

Metadata

Release files for ardilla 0.4.0b0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ardilla 0.4.0b0
File Size Uploaded
ardilla-0.4.0b0.tar.gz 20.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ardilla 0.4.0b0
File Interpreter ABI Platform
ardilla-0.4.0b0-py3-none-any.whl Python 3 none any Details

Total release size: 42.7 kB

Release files / ardilla-0.4.0b0.tar.gz

Download URL ardilla-0.4.0b0.tar.gz
Size 20.3 kB
Tags Source
SHA-256 checksum
How to use checksums
62a638c0cdb1afe387e2b08097a48c07a590bc08a581e134cbedfd6d1d8b2ee2
BLAKE2b-256 checksum
How to use checksums
e56a7aeeda56b723d3e1d1fa6b149f0da0b8e810d73afdc4743fd8fa6b7d7c57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / ardilla-0.4.0b0-py3-none-any.whl

Download URL ardilla-0.4.0b0-py3-none-any.whl
Size 22.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
400302b5980adf168503800e2c12ccc842cbbcaa7e71cc315d63ff3346080f8a
BLAKE2b-256 checksum
How to use checksums
bc98f49ba048d74cd198e46375562a066fd6860d979fb25f3e56ecbc170cbf6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page