Skip to main content

ORM-SQLite

ORM-SQLite is

Quickstart

  1. Define a Pomodoro model

    import orm_sqlite  
    
    class Pomodoro(orm_sqlite.Model):  
    
        id = orm_sqlite.IntegerField(primary_key=True) # auto-increment
        task = orm_sqlite.StringField()
        interval = orm_sqlite.IntegerField()
    
  2. Create a Database instance

    db = orm_sqlite.Database('example.db')
    
  3. Set it as backend of Pomodoro model objects, CRUD operations thus can be performed later

    Pomodoro.objects.backend = db
    
  4. 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)   
    
  5. Retrieve all the records in the backend

    Pomodoro.objects.all()
    
  6. 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)
    
  7. 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)
    
  8. Disconnect the backend

    Pomodoro.objects.backend.close()
    

Install ORM-SQLite

$ pip install orm-sqlite

Documentation

Module Database

class orm_sqlite.Database(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri])
  • connected

    Instance attribute: Whether or not the SQLite database is connected.

  • connection

    Instance attribute: sqlite3.Connection object

  • cursor

    Instance attribute: sqlite3.Cursor object

  • 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.Row objects.

  • 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 orm_sqlite.StringField(name=None, default='')
  • name

    Instance attribute: Column name. Default: None.

  • type

    Instance attribute: Column type. Default: TEXT.

  • default

    Instance attribute: Column default value. Default: ''.

  • primary_key

    Instance attribute: Whether or not it is the primary key. Default: False.

Module IntegerField

class orm_sqlite.IntegerField(name=None, default=0, primary_key=False)
  • name

    Instance attribute: Column name. Default: None.

  • type

    Instance attribute: Column type. Default: INTEGER.

  • default

    Instance attribute: Column default value. Default: 0.

  • primary_key

    Instance attribute: Whether or not it is the primary key. Default: False.

Module FloatField

class orm_sqlite.StringField(name=None, default=0.0)
  • name

    Instance attribute: Column name. Default: None.

  • type

    Instance attribute: Column type. Default: REAL.

  • default

    Instance attribute: Column default value. Default: 0.0.

  • primary_key

    Instance attribute: Whether or not it is the primary key. Default: False.

Module Model

class orm_sqlite.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.

  • objects

    Class-only attribute: orm_sqlite.Manager object used to manage corresponding Model objects.

  • 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 Model object to table in the connected database and returns rows affected (1 or -1).

  • update()

    Instance method: Updates Model object from table in the connected database and returns rows affected (1 or -1). Dangerous.

  • delete()

    Instance method: Deletes Model object from table in the connected database and returns rows affected (1 or -1). Dangerous.

  • keys(), values(), items(), copy(), etc. methods inherited from standard dict.

Practical template for customized model:

import orm_sqlite

class MyModel(orm_sqlite.Model):

    id = orm_sqlite.IntegerField(primary_key=True) # auto-increment
    # TODO:   

Module Manager

class orm_sqlite.Manager()
  • backend

    Instance attribute: orm_sqlite.Database object serving as backend of Model objects.

  • all()

    Instance method: Returns all Model objects from table in the connected database.

  • find(filter=None, order_by=None, **extra)

    Instance method: Returns all Model objects satified the conditions from table in the connected database.

  • get(pk)

    Instance method: Returns single Model object 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 Model object to table in the connected database and returns rows affected (1 or -1).

  • update(obj)

    Instance method: Updates Model object from table in the connected database and returns rows affected (1 or -1). Dangerous.

  • remove(obj)

    Instance method: Deletes Model object from table in the connected database and returns rows affected (1 or -1). Dangerous.

  • clear()

    Instance method: Deletes all Model objects 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.logger object, logging in main module.

  • child_logger(child)

    Returns child logger, a logging.logger object, logging in auxiliary module.

Metadata

Release files for ORM-SQLite 0.0.2

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

Source distribution (sdist)

Source distribution for ORM-SQLite 0.0.2
File Size Uploaded
ORM-SQLite-0.0.2.tar.gz 7.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ORM-SQLite 0.0.2
File Interpreter ABI Platform
ORM_SQLite-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 15.5 kB

Release files / ORM-SQLite-0.0.2.tar.gz

Download URL ORM-SQLite-0.0.2.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
16601b25e8d4504df3c149ef842f953347d148922defa26eb50ae5a882d96354
BLAKE2b-256 checksum
How to use checksums
d1799f9ca7f9db65ca303cf0bc20f7d60ff0afb47c381e02dc8b37b3f328c824
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.6.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7

Release files / ORM_SQLite-0.0.2-py3-none-any.whl

Download URL ORM_SQLite-0.0.2-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dffe9ec45fddad3eba141b0699f7fed13e40426577778ec35aa1dc002308adb3
BLAKE2b-256 checksum
How to use checksums
be56bba152268a16f25ec97c7b3d58f72be779dd5c35166940a228401b952cd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.6.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

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