Socket
Socket
Sign inDemoInstall

minislite

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Protect your apps from supply chain attacks

Install

minislite

Mini and Secure SQLite ORM

    0.99

Maintainers
1

Readme

MiniSLite

MiniSLite is a secure and mini SQLite ORM module.

Install

From Pypi

The script is available on PyPI. To install with pip:

pip install minislite

From Source Code

git clone https://github.com/ahmetkotan/minislite
cd minislite
python setup.py build
python setup.py install

Usage

Create Model

from minislite import MiniSLiteModel
from minislite import DatabaseField


class Person(MiniSLiteModel):
    # Only field_type is required
    name = DatabaseField(field_type=str, unique=False, not_null=True, auto_increment=False)
    last_name = DatabaseField(field_type=str, default="mini")
    age = DatabaseField(field_type=int, not_null=False)

    # Optionals
    table_name = "person"
    unique_together = ["name", "last_name"]

Create Database and Add Model

from minislite import MiniSLiteDb

database = MiniSLiteDb("minis.db")
database.add_model(Person)

Create and Update Object

person1 = Person(name="mini", last_name="slite")  # not created
person1.age = 1
person1.save()  # created

person2 = Person.objects.create(name="mini2", last_name="slite")  # created
person2.age = 2
person2.save()  # updated

person3 = Person.objects.create(name="mini3", last_name="slite", age=10)  # created
person4 = Person.objects.create(name="mini4", last_name="slite", age=20)  # created

Update All Objects

Person.objects.update(last_name="slite-updated")

Filter/Get and Delete Object

first_person = Person.objects.first()
last_person = Person.objects.last()

person_objects = Person.objects.filter(last_name="slite-updated")
# or
# person_objects = Person.objects.all()
for person in person_objects:
    print(person.name)

person_obj = Person.objects.get(name="mini")
person_obj.delete()

Special Filters

  • gt, gte, lt, lte for integer, bool and float fields
  • contains, startswith, endswith for string fields
older_than_10 = Person.objects.filter(age__gt=10)[0]
print(older_than_10.name)  # mini4

Delete All Objects

Person.objects.delete(i_am_sure=True)

Clean All Tables or Drop Model

database.clean_tables()
database.drop_model(Person)

Exceptions

from minislite.exceptions import RecordNotFoundError, AlreadyExistsError, DatabaseNotFoundError, \
    AreYouSureError, WhereOperatorError
  • RecordNotFoundError: If you use objects.get() and that is not found in database
  • AlreadyExistsError: Raise this exception when an object creating or saving. Check your unique=True fields and unique_together fields.
  • DatabaseNotFoundError: Cannot use TableManager if you don't initialize MiniSLiteDb()
  • AreYouSureError: Raise this exception if you want to delete all objects(objects.delete()) in model. Add i_am_sure=True arguments.
  • WhereOperatorError: Raise this exception if you use integer operator for string field. Or vice versa.

Development and Contribution

See; CONTRIBUTING.md

FAQs


Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc