Skip to main content

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


Download files

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

Source Distribution

wurm-0.1.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

wurm-0.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

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

Hashes for wurm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 897603a3dcfc6502a3674d71e8d681489cd5b9c9d1f9df7a94a3a3fb6b2fd43b
MD5 5d83d425e98ed48bac5d4605b2fa36d1
BLAKE2b-256 e390964b0f7d91da29e013711e68116bc7dff481230a47f92aef5dba37ea98ae

See more details on using hashes here.

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

Hashes for wurm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7f44f52127ec33dcbb6818912efb2ba64868f8a0ad353c9be866ff1e91bb50d
MD5 36c2815dac288d74921095fd7c851b7c
BLAKE2b-256 bd6c266a63a078afc33fdede08fe216d30005b958e91691726c1761262572945

See more details on using hashes here.

Supported by

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