Database agnostic query system
Project description
link.dbrequest is a database agnostic query system.
See documentation for more informations.
Installation
pip install link.dbrequest
Features
database agnostic
lazy query resolving
cached queries
queries are unique
Examples
Getting a backend:
from link.middleware.core import Middleware
# Will open a QueryManager using a MongoDB backend
manager = Middleware.get_middleware_by_uri('query+mongo://localhost:27107/mydatabase/mycollection')
# Will open a QueryManager using a SQL backend
manager = Middleware.get_middleware_by_uri('query+sql://localhost:5432/mydatabase/mytable')
Operations on the backend:
from link.dbrequest.expression import E, F
from link.dbrequest.assignment import A
from link.dbrequest.comparison import C
query = manager.all() # get an iterable over all elements
manager.create(A('foo', 'bar')) # put document {'foo': 'bar'} into database
doc = manager.get(C('foo') != 'bar') # get single element, or None
Operations on queries:
docs = list(query) # iterate over query to execute the request
docs = list(query) # use cache when iterating again
# create a new query from the first one
q2 = query.filter(C('foo') == 'bar')
assert query is not q2
# exclude documents without a field named "bar"
q3 = q2.exclude(~C('bar'))
# filter documents "weight > 5" and "prop1 < prop2 * 5"
q4 = q3.filter((C('weight') > 5) & (C('prop1') < (E('prop2') * 5)))
# set "prop3 = prop1 + prop2" on q2 result
docs = q2.update(A('prop3', E('prop1') + E('prop2')))
# delete documents
q3.delete()
Operations on documents:
# save/delete a single document
doc.save()
doc.delete()
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
link.dbrequest-0.11.tar.gz
(13.7 kB
view details)
Built Distribution
File details
Details for the file link.dbrequest-0.11.tar.gz
.
File metadata
- Download URL: link.dbrequest-0.11.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
8ed1051b99558aea1be1927d7c6d89a9e019aa8662e824cbb01e80af2bbb20f4
|
|
MD5 |
eb7b7c892e0381502f7778d7cf5210b8
|
|
BLAKE2b-256 |
2deccdfc2b97b70f3d4d779e0ec0304ebfa701afd1360f01e35c418d29d68f1f
|
File details
Details for the file link.dbrequest-0.11-py2.py3-none-any.whl
.
File metadata
- Download URL: link.dbrequest-0.11-py2.py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
5b6cc795cf546f5e8e10823b18e16c7e090ff0625ba8f3474dcf9e48d1c5662e
|
|
MD5 |
2bacda48143f7fec3325bdf83c71d75f
|
|
BLAKE2b-256 |
3617628cb734547d2903bca11e64387393d479ed9a7eea73e43842df7a201172
|