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

Uploaded Source

Built Distribution

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

Uploaded Source

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

Hashes for lquery-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ec5a8d2accba628fbf7695c869ce4c6e1f96dfa5caa8dc0c53d7a37e2bfdf2ed
MD5 4647c26b5453b34fe91ece1e8b763ab6
BLAKE2b-256 71a79f2bad5b662b1954893b636fa9210b6a2e474368b87fe14ba4bcd503a8ca

See more details on using hashes here.

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

Hashes for lquery-0.1.1-py3.6.egg
Algorithm Hash digest
SHA256 5fc3b6232ffbcb07dce1c7e6c1801ba9a9c19cab9f4ec50f30afdaf385bdc5f0
MD5 de7cc411c03cb820ec316cd0d651c52a
BLAKE2b-256 b51569a167153e2421b288ffc6e3d8b72bbf0335452e8fdc1100e7d9b759f7a6

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