Simple sqlite3-based ORM
Project description
wurm
Wurm is a simple sqlite3-based ORM.
Usage
# create a table:
@dataclass
class Point(wurm.Table):
x: int
y: int
# types currently supported: int, str, bytes, bool, float, datetime.time,
# datetime.date, datetime.datetime, pathlib.Path
# sqlite3 connections cannot be shared, so call setup_connection once per thread
wurm.setup_connection(sqlite3.connect(":memory:"))
# adding new instances to the database:
point = Point(1, 0)
print(point.rowid) # None
point.insert()
print(point.rowid) # 1
# making changes:
point.x = 2
point.commit()
# simple queries:
point = Point[1] # get by rowid
del Point[1] # delete by rowid
point.delete() # delete from an object
all_points = list(Point) # iterate over a table to get instances for all rows
number_of_points = len(Point) # get the total number of rows in the table
Installation
wurm is distributed on PyPI as a universal wheel and is available on Linux/macOS and Windows and supports Python 3.7+.
$ pip install wurm
Changelog
0.1.0
Add wurm.Table.query() and wurm.Query.
Remove wurm.Table[rowid] getter and deleter.
Add documentation for the public interface.
0.0.2
Ensure tables are created, even in edge cases.
Add support for date, time, datetime and Path.
Add wurm.Unique[T].
License
wurm is distributed under the terms of the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wurm-0.1.0.tar.gz.
File metadata
- Download URL: wurm-0.1.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
897603a3dcfc6502a3674d71e8d681489cd5b9c9d1f9df7a94a3a3fb6b2fd43b
|
|
| MD5 |
5d83d425e98ed48bac5d4605b2fa36d1
|
|
| BLAKE2b-256 |
e390964b0f7d91da29e013711e68116bc7dff481230a47f92aef5dba37ea98ae
|
File details
Details for the file wurm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wurm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7f44f52127ec33dcbb6818912efb2ba64868f8a0ad353c9be866ff1e91bb50d
|
|
| MD5 |
36c2815dac288d74921095fd7c851b7c
|
|
| BLAKE2b-256 |
bd6c266a63a078afc33fdede08fe216d30005b958e91691726c1761262572945
|