SQLite VEC ORM
SQLite VEC ORM is
- a lightweight ORM for SQLite with VEC support
- written in Python (3.7+) Standard Library
Quickstart
-
Define a
Pomodoromodelimport sqlite_orm class Pomodoro(sqlite_orm.Model): id = sqlite_orm.IntegerField(primary_key=True) # auto-increment task = sqlite_orm.StringField() interval = sqlite_orm.IntegerField()
-
Create a
Databaseinstancedb = sqlite_orm.Database('example.db')
-
Set it as backend of
Pomodoromodel objects, CRUD operations thus can be performed laterPomodoro.objects.backend = db
-
Create a Pomodoro timer record (primary key is auto-increment) and insert it to backend (auto-commited)
pomodoro = Pomodoro({'task': 'do something', 'interval': 25}) pomodoro.save()
which is equivalent to
pomodoro = Pomodoro({'task': 'do something', 'interval': 25}) Pomodoro.objects.add(pomodoro)
-
Retrieve all the records in the backend
Pomodoro.objects.all()
-
Retrieve single record by its primary key and update it (auto-commited)
obj = Pomodoro.objects.get(pk=1) obj['task'] = 'do something else' obj.update()
which is equivalent to
obj = Pomodoro.objects.get(pk=1) obj['task'] = 'do something else' Pomodoro.objects.update(obj)
-
Retrieve single record by its primary key and delete it (auto-commited)
Pomodoro.objects.get(pk=1).delete()
which is equivalent to
obj = Pomodoro.objects.get(pk=1) Pomodoro.objects.remove(obj)
-
Disconnect the backend
Pomodoro.objects.backend.close()
Install SQLite VEC ORM
$ pip install orm-sqlite
Documentation
Module Database
class sqlite_orm.Database(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri])
-
connectedInstance attribute: Whether or not the SQLite database is connected.
-
connectionInstance attribute:
sqlite3.Connectionobject -
cursorInstance attribute:
sqlite3.Cursorobject -
connect()Instance method: Connects the SQLite database if disconnected.
-
close()Instance method: Disconnects the SQLite database if connected.
-
select(sql, *args, size=None)Instance method: Returns query results, a list of
sqlite3.Rowobjects. -
execute(sql, *args, autocommit=True)Instance method: Executes an SQL statement and returns rows affected.
-
commit()Instance method: Commits the staged transaction.
Module StringField
class sqlite_orm.StringField(name=None, default='')
-
nameInstance attribute: Column name. Default:
None. -
typeInstance attribute: Column type. Default:
TEXT. -
defaultInstance attribute: Column default value. Default:
''. -
primary_keyInstance attribute: Whether or not it is the primary key. Default:
False.
Module IntegerField
class sqlite_orm.IntegerField(name=None, default=0, primary_key=False)
-
nameInstance attribute: Column name. Default:
None. -
typeInstance attribute: Column type. Default:
INTEGER. -
defaultInstance attribute: Column default value. Default:
0. -
primary_keyInstance attribute: Whether or not it is the primary key. Default:
False.
Module FloatField
class sqlite_orm.StringField(name=None, default=0.0)
-
nameInstance attribute: Column name. Default:
None. -
typeInstance attribute: Column type. Default:
REAL. -
defaultInstance attribute: Column default value. Default:
0.0. -
primary_keyInstance attribute: Whether or not it is the primary key. Default:
False.
Module Model
class sqlite_orm.Model(*args, **kwargs)
-
__table__Class attribute: Table.
-
__mappings__Class attribute: Object Relational Mappings (ORMs).
-
__primary_key__Class attribute: Primary key.
-
__fields__Class attribute: Fields except primary key.
-
objectsClass-only attribute:
sqlite_orm.Managerobject used to manage correspondingModelobjects. -
exists()Class-only method: Whether or not the table exists in the connected database.
-
create()Class-only method: Create the table if not exists in the connected database.
-
drop()Class-only method: Drop the table if exists in the connected database,
objects.backend.commit()needed to confirm. Extremely Dangerous. -
save()Instance method: Inserts
Modelobject to table in the connected database and returns rows affected (1 or -1). -
update()Instance method: Updates
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
delete()Instance method: Deletes
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
keys(),values(),items(),copy(), etc. methods inherited from standarddict.
Practical template for customized model:
import sqlite_orm
class MyModel(sqlite_orm.Model):
id = sqlite_orm.IntegerField(primary_key=True) # auto-increment
# TODO:
Module Manager
class sqlite_orm.Manager()
-
backendInstance attribute:
sqlite_orm.Databaseobject serving as backend ofModelobjects. -
all()Instance method: Returns all
Modelobjects from table in the connected database. -
find(filter=None, order_by=None, **extra)Instance method: Returns all
Modelobjects satified the conditions from table in the connected database. -
get(pk)Instance method: Returns single
Modelobject by its primary key from table in the connected database. -
exists(pk)Instance method: Whether or not a primary key exists in the table from the connected database.
-
aggregate(self, expression, filter=None)Instance method: Returns the result of an aggregate function performed on table in the connected database.
-
add(obj)Instance method: Inserts
Modelobject to table in the connected database and returns rows affected (1 or -1). -
update(obj)Instance method: Updates
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
remove(obj)Instance method: Deletes
Modelobject from table in the connected database and returns rows affected (1 or -1). Dangerous. -
clear()Instance method: Deletes all
Modelobjects from table in the connected database and returns rows affected (1 or -1),backend.commit()needed to confirm. Extremely Dangerous.
Helper Function
-
root_logger(log_dir='.')Returns root logger, a
logging.loggerobject, logging in main module. -
child_logger(child)Returns child logger, a
logging.loggerobject, logging in auxiliary module.
Related Projects
- Inspired by Django ORM
Metadata
Release files for sqlite-orm-vec-qpython 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sqlite_orm_vec_qpython-0.1.5.tar.gz | 826.3 kB | Without provenance | Details for sqlite_orm_vec_qpython-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sqlite_orm_vec_qpython-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for sqlite_orm_vec_qpython-0.1.5-py3-none-any.whl |
Total release size: 1.7 MB
Release files / sqlite_orm_vec_qpython-0.1.5.tar.gz
| Download URL | sqlite_orm_vec_qpython-0.1.5.tar.gz |
|---|---|
| Size | 826.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8dd64c16dc40c2260e1ec9deb8768420e30caa1b67fb4687d80809e8b9f88eef
|
|
BLAKE2b-256 checksum How to use checksums |
3a4830f92a299fdd9d776dc8d7edb7a26f323698c0e55f92a1de8696ce38482e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.7
|
Release files / sqlite_orm_vec_qpython-0.1.5-py3-none-any.whl
| Download URL | sqlite_orm_vec_qpython-0.1.5-py3-none-any.whl |
|---|---|
| Size | 825.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bd48c03d6d04ee21d58a55c892395274d0417412fe193f753bc830e93abb20b2
|
|
BLAKE2b-256 checksum How to use checksums |
f5b3187d43d462a900c5ff258ccf71b90d817093f9b97f973e55cf9273a8b14f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.7
|
Security for sqlite-orm-vec-qpython 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.