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
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 link.dbrequest-0.16.tar.gz.
File metadata
- Download URL: link.dbrequest-0.16.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba8cb7c63b5c8ffa5e9ae5e0530d095955e4bddcb2dd01df26533be49f12f330
|
|
| MD5 |
52291b131bde65bce9199d3a0a51792e
|
|
| BLAKE2b-256 |
48e21cca6ac93c52e746927f50c257d679831a6a591607292d1cde4f9083f6e1
|
File details
Details for the file link.dbrequest-0.16-py2.py3-none-any.whl.
File metadata
- Download URL: link.dbrequest-0.16-py2.py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d654654aaedce71f53d418f8f85f0992e6f75d20eca75992da592da1aad8a26
|
|
| MD5 |
515a4db10d5dccfce77a50e038b948f4
|
|
| BLAKE2b-256 |
b34694eaa9280ad19d16d2093be2d7f2709d1704d68387ad9527014580ca2a0b
|