No project description provided
Project description
Try bring C# linq to python 馃巿.
The library is a demo, not for production (yet).
Compare with Others
Different between lquery and others (linq for python like asq):
lquery try convert func (from bytecode) to SQL and query from database process.
Compare with CSharp
For C#:
IQueryable<?> query = null;
var items = query.Where(z => z.Name == 's').Select(z => z.Value).ToList();
So for python:
query: Queryable = None;
expr = query.where(z => z.name == 's').select(z => z.value).to_list();
for in-memory iterable
from lquery import enumerable
query: Queryable = enumerable([1, 2, 3])
# then query it
for mongodb
from lquery.extras.mongodb import MongoDbQuery
collection = # get a collection from pymongo
query: Queryable = MongoDbQuery(collection)
# then query it
linq APIs
to_memory - same as AsEnumerable() from C#
where
select
select_many
take
skip
read more examples from unittests.
Others
print reduce info
Print reduce info is easy way to check what query will compile to SQL.
code example:
>>> from lquery.extras.mongodb import MongoDbQuery
>>> mongo_query = MongoDbQuery(None)
>>> reduce_info = mongo_query\
... .where(lambda x: (x['size']['h'] == 14) & (x['size']['uom'] == 'cm'))\
... .skip(1)\
... .where(lambda x: x['size']['w'] > 15)\
... .get_reduce_info()
>>> reduce_info.print()
reduce info of:
Queryable()
.where(<function <lambda> at 0x0000025DBC661EA0>)
.skip(1)
.where(<function <lambda> at 0x0000025DBE957840>)
=>
[SQL] where(<function <lambda> at 0x0000025DBC661EA0>)
[SQL] skip(1)
[MEM] where(<function <lambda> at 0x0000025DBE957840>)
you can see the 1st where() and 1st skip() was success compile to SQL, and 2nd where() only work inside python process.
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
File details
Details for the file lquery-0.1.1.tar.gz
.
File metadata
- Download URL: lquery-0.1.1.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec5a8d2accba628fbf7695c869ce4c6e1f96dfa5caa8dc0c53d7a37e2bfdf2ed |
|
MD5 | 4647c26b5453b34fe91ece1e8b763ab6 |
|
BLAKE2b-256 | 71a79f2bad5b662b1954893b636fa9210b6a2e474368b87fe14ba4bcd503a8ca |
File details
Details for the file lquery-0.1.1-py3.6.egg
.
File metadata
- Download URL: lquery-0.1.1-py3.6.egg
- Upload date:
- Size: 71.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fc3b6232ffbcb07dce1c7e6c1801ba9a9c19cab9f4ec50f30afdaf385bdc5f0 |
|
MD5 | de7cc411c03cb820ec316cd0d651c52a |
|
BLAKE2b-256 | b51569a167153e2421b288ffc6e3d8b72bbf0335452e8fdc1100e7d9b759f7a6 |