Skip to main content

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 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


Download files

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

Source Distribution

lquery-0.1.1.tar.gz (14.7 kB view hashes)

Uploaded Source

Built Distribution

lquery-0.1.1-py3.6.egg (71.6 kB view hashes)

Uploaded Source

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