Skip to main content

A simple NoSQL-like interface for SQLite

Project description

ODETA

ODETA is a lightweight ORM-like library for SQLite that allows you to perform NoSQL-like operations. It provides a simple and intuitive interface for interacting with SQLite databases, making it easy to store and retrieve JSON data.

Features

  • CRUD Operations: Easily perform create, read, update, and delete operations.
  • Querying: Support for simple and complex queries.
  • ULID Generation: Automatically generate ULIDs for unique record identifiers.
  • Table Management: Create, drop, and truncate tables.
  • Row Counting: Count the number of rows in a table.
  • Fetch by ID: Retrieve a single row by its ID.

Installation

You can install ODETA using pip:

pip install odeta

Usage

Initialization

First, import the LocalBase class and create a database instance:

from odeta import LocalBase

db = LocalBase('my_database.db')

Creating and Inserting Data

Create a table and insert data:

table = db('my_table')

data = {
    'name': 'John Doe',
    'age': 30,
    'email': 'john.doe@example.com'
}

response = table.put(data)
print(response)  # {'id': 'system_generated_unqiue_id', 'msg': 'success'}

Querying Data

Fetch all records or filter records based on a query:

# Fetch all records
all_records = table.fetchall() # You can put query too in this fetchall({...}), it will gather all rows with OR condition.
print(all_records)

# Fetch records with a specific query AND condition.
filtered_records = table.fetch({'name?contains': 'John'})
print(filtered_records)

Updating Data

Update a record by its ID:

update_data = {
    'name': 'Jane Doe',
    'age': 25,
    'email': 'jane.doe@example.com'
}

table.update(update_data, 'record_id')

Deleting Data

Delete a record by its ID:

table.delete('record_id')

Additional Operations

Truncate Table

Remove all rows from the table:

table.truncate()

Drop Table

Completely remove the table from the database:

table.drop()

Count Rows

Count the number of rows in the table:

row_count = table.count()
print(row_count)

Find by ID

Retrieve a single row by its ID:

record = table.get('record_id')
print(record)

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Contact

For any questions or feedback, please contact tech.manujpr@gmail.com.


Thank you for using ODETA!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odeta-0.2.12.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odeta-0.2.12-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file odeta-0.2.12.tar.gz.

File metadata

  • Download URL: odeta-0.2.12.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.2

File hashes

Hashes for odeta-0.2.12.tar.gz
Algorithm Hash digest
SHA256 0a22732a3c159de783892e72ac3e5c09aa70326e8e7ae7a3d8598974c4c7f3bf
MD5 487cf6b7788d8a46f26b69c257a508a7
BLAKE2b-256 2ea26115700e64866659b286fce3e8e462a3122c01269b90d3f4605a4366186e

See more details on using hashes here.

File details

Details for the file odeta-0.2.12-py3-none-any.whl.

File metadata

  • Download URL: odeta-0.2.12-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.2

File hashes

Hashes for odeta-0.2.12-py3-none-any.whl
Algorithm Hash digest
SHA256 235ed6894c0604240fc0f0c87fc4f4b7b18a482eedf6405d8eb57f9a6a8ef79a
MD5 d0f59b9aa87f8da1d112aa365214025f
BLAKE2b-256 489693e9fcd118e8c8e832278ac7cd6218136333937c028e084b06f2aed6c24b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page