Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #3299

[ANN] Squint: Simple query interface for tabular data.

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Shawn Brown <03sjbrown@gmail.com>
Newsgroups comp.lang.python.announce
Subject [ANN] Squint: Simple query interface for tabular data.
Date Sat, 11 Jan 2020 15:03:28 -0500
Lines 83
Approved python-announce-list@python.org
Message-ID <157878285175.21108.python-announce-list@python.org> (permalink)
References <CA+a2dP-4980y3YdcnDv4r8Ls2Mz1_jG2zpPLnbwv0j0mmSrENg@mail.gmail.com>
Reply-To python-list@python.org
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding quoted-printable
X-Trace news.uni-berlin.de RZyr5YLEETuqoheBEijT2goGLQ9taBA3vEsJzrhaXt4A==
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'tutorial': 0.03; 'objects': 0.05; 'pip': 0.05; 'url-ip:140/8': 0.05; 'url- ip:151.101.0.223/32': 0.05; 'url-ip:151.101.128.223/32': 0.05; 'url-ip:151.101.192.223/32': 0.05; 'url-ip:151.101.64.223/32': 0.05; 'manipulate': 0.07; 'url:project': 0.07; 'url:pypi': 0.07; 'by,': 0.09; 'pandas': 0.09; 'subject:ANN': 0.09; 'subject:query': 0.09; 'url:tutorial': 0.09; 'feedback': 0.09; 'url:github': 0.10; 'python': 0.13; 'install': 0.14; 'subject:] ': 0.15; 'can:': 0.16; 'dictionary': 0.16; 'dropped': 0.16; 'link]': 0.16; 'memory.': 0.16; 'result.': 0.16; 'structure': 0.16; 'url- ip:104.208.221.96/32': 0.16; 'url-ip:104.208.221/24': 0.16; 'url- ip:104.208/16': 0.16; 'url:readthedocs': 0.16; 'url:stable': 0.16; 'to:addr:python-announce-list': 0.17; '8bit%:19': 0.17; 'file,': 0.20; 'uses': 0.23; 'group.': 0.24; 'url:io': 0.27; "skip:' 20": 0.27; 'using': 0.28; 'version': 0.28; 'evaluate': 0.28; 'message- id:@mail.gmail.com': 0.29; 'subject:for': 0.30; 'interface': 0.31; 'returns': 0.31; 'received:google.com': 0.31; 'subject:[': 0.32; 'from:addr:gmail.com': 0.34; 'url-ip:151.101/16': 0.35; 'url- ip:151/8': 0.35; 'header:In-Reply-To:1': 0.36; 'syntax': 0.36; '\xc2\xa0\xc2\xa0\xc2\xa0': 0.36; 'results': 0.37; 'subject:: ': 0.38; "skip:' 10": 0.39; 'selected': 0.60; 'skip:l 10': 0.61; 'completely': 0.63; 'format.': 0.65; 'selection': 0.65; 'sources.': 0.65; 'sql': 0.65; 'links:': 0.73; 'field': 0.84; 'note:': 0.84; 'eagerly': 0.84; 'elements.': 0.84; 'lists,': 0.84; 'previews': 0.84; 'query': 0.84; 'results,': 0.84
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=0o3ih8zYnnFFVqtRT8Rdy0Od+HBfzuxd/It+sQwZ/wE=; b=PPm8dgy/nd+IqV5yQ4H8AntM3WU4zv6OuPQ4+rs4ECO/pgB4tbFkSwu8OUVGVNqdRN gJ/GR3fiUVOgPYbNVt/VAcQzAsQNRXPKqpGVLqYbTxhVG+lqPNRB6T5wi37lYqbi2mbS waRAWmSEy7M8ndymgaAfWRPWwrPYyuFPFdXl4Oukg1GrKRLudG3sFYKLNKg8EzRmIqNC /TEhu73FlFeEXWWOxzs7GBiZVy2kXVL4UmUJU7X45cQO/jM/KIGPzWlSON5VryNVU6cX cHXcKdC/fyBZ2SBV5oslma+BrJs8oi2PDgLY0gMZCG0Q1hdqqeyVlZXJGUrE/DRHF/Eh JeVQ==
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=0o3ih8zYnnFFVqtRT8Rdy0Od+HBfzuxd/It+sQwZ/wE=; b=CQcfC8naCJezveLq0nTZyQ0raweowEk0oA+i17XbrvsF0jgZX/LdmbEZ+99zkwYe7c dvxW/aXayfKlz1TuZWgUxlI6wTwLJgwaMv69t4UO6czHuaQwwbvwDCJgRo5CywEpt9Fm EiON95hZbyOIjTdPdzE4x3PAGI9MGqKoHyGQTZHH8QJf2fBvo0SvEsijOnfniXn6BsL3 EZRnSRbu/wBtv9Elyw2sfP/xSrUhawrH5D9FSCTIglS/njj/8v2bhSIXn4n8kXkdukJL T4a5BhorG9p9oHNtLw+FfKV2lwGpvvQt0prgMi7kzjlK/7pEpvtgi4QdzjQQKFqhDie0 ehuw==
X-Gm-Message-State APjAAAXXmwsRi7lcQIPzFBDNdIowVqvaDcuZuq8ljwxIPmCjyHVPnANU YyFv7LeJJWX8/sE81bdWdBtFmlFMcQjAkOJCL/xl7Q==
X-Google-Smtp-Source APXvYqwFUTFELfmGgq0prWMdALSY+tuuxfFyKBEbNKadoaLFYy4qsxe/jq9X+P7qEaXWjZHlR3zNISqNhqa1P6tSpeU=
X-Received by 2002:a17:906:b841:: with SMTP id ga1mr9564195ejb.184.1578773242387; Sat, 11 Jan 2020 12:07:22 -0800 (PST)
In-Reply-To <CA+a2dP-4980y3YdcnDv4r8Ls2Mz1_jG2zpPLnbwv0j0mmSrENg@mail.gmail.com>
X-MailFrom 03sjbrown@gmail.com
X-Mailman-Rule-Hits emergency
X-Mailman-Rule-Misses dmarc-mitigation; no-senders; approved
Message-ID-Hash KWHN7MMULIMZ37DNSRZ2ONM5LHJM3B32
X-Message-ID-Hash KWHN7MMULIMZ37DNSRZ2ONM5LHJM3B32
X-Mailman-Approved-At Sat, 11 Jan 2020 17:47:25 -0500
X-Content-Filtered-By Mailman/MimeDel 3.3.1
X-Mailman-Version 3.3.1
Precedence list
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
Archived-At <https://mail.python.org/archives/list/python-announce-list@python.org/message/KWHN7MMULIMZ37DNSRZ2ONM5LHJM3B32/>
List-Archive <https://mail.python.org/archives/list/python-announce-list@python.org/>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Post <mailto:python-announce-list@python.org>
List-Subscribe <mailto:python-announce-list-join@python.org>
List-Unsubscribe <mailto:python-announce-list-leave@python.org>
Xref csiph.com comp.lang.python.announce:3299

Show key headers only | View raw


[RESEND WITH CORRECTED LINK]


Squint version 0.1.0 has been released:


* New query previews provide convenient feedback at the interactive prompt.

* Completely rewritten tutorial
https://squint.readthedocs.io/en/stable/tutorial/
<https://squint.readthedocs.io/tutorial/>

* Added support for Python 3.9 and dropped support for 3.3, 3.2, and 2.6.



What is Squint:


Squint is a simple query interface for tabular data. A core feature of
Squint is that the structure of a query's selection determines the
structure of its result.



Squint is available from the PyPI:


    pip install squint



With Squint You Can:


* Select data using Python literals—sets, lists, dictionaries, etc.—and
fetch results in the same format.

* Aggregate, map, filter, reduce, and otherwise manipulate data.

* Lazily iterate over results, write them to a file, or eagerly evaluate
them in memory.

* Analyze data from CSV, Excel, SQL, and other data sources.


Links:


* Docs: https://squint.readthedocs.io/

* PyPI: https://pypi.org/project/squint/

* Source: https://github.com/shawnbrown/squint



Syntax Comparison:


    # SQL

    SELECT A, SUM(B) FROM mydata WHERE C='xyz' GROUP BY A;



    # Pandas

    df[['A', 'B']][df['C'] == 'xyz'].groupby('A').sum()



    # Squint

select({'A': 'B'}, C='xyz').sum()


Note: Squint uses `dict` objects to select groups of values—the *key*
determines the field to group by, and the *value* determines the contents
of each group. Fetching the results of such a query returns a dictionary of
selected elements.

Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread


Thread

[ANN] Squint: Simple query interface for tabular data. Shawn Brown <03sjbrown@gmail.com> - 2020-01-11 15:03 -0500

csiph-web