Build
* build(pyproject.toml): specify numpy version
Specifies the numpy version to make sure we are using secure versions. The security patches require >1.22.2, however, which is incompatible with python 3.7, so a split version specification is givern. Security met for python >= 3.8. Note, as well, that the numpy team rate all affected vulnerabilities very, very low. ([`8db2338`](https://github.com/PRQL/pyprql/commit/8db2338a5a311ef3d25a9e7eba91bc5db9a8cf21))
* build(pyproject.toml): add pandas
Requires a split version specification, as pandas 1.3 does not support 3.10, while pandas 1.4 does not support 3.7 ([`88d988f`](https://github.com/PRQL/pyprql/commit/88d988f567c0e63f0f4964b73ddb60858ed578e8))
Ci
* ci(cicd.yml): correct action path ([`ae0e7f7`](https://github.com/PRQL/pyprql/commit/ae0e7f7ab611a5be91305c0baa8d419c66010a4f))
* ci(cicd.yml): use custom nox action
Update our cicd action to use our personal nox composite action. ([`b5337e3`](https://github.com/PRQL/pyprql/commit/b5337e328325f1eb985c181a38232218a947a3cc))
* ci(action.yml): add custom set-up nox
Given that the current set up nox action is broken, we create our own, and add some additional features, including caching of the nox install and isntallation of poetry.
Inspired by: https://github.com/scikit-build/scikit-build/blob/master/.github/actions/setup-nox/action.yml ([`da56480`](https://github.com/PRQL/pyprql/commit/da564806bf14a1bc6e10f511f0d2d62d38e02314))
Documentation
* docs(cli.py): document connect_str properly
Lints prefer init documented directly under class. ([`95e568d`](https://github.com/PRQL/pyprql/commit/95e568d6ba4bd581ba276290cc4dd10dff9a87f4))
* docs: Adding more prql examples ([`2e5149e`](https://github.com/PRQL/pyprql/commit/2e5149e36d167bb16d82de30676941b7c3f519a4))
* docs: Adding prql examples ([`8ae2070`](https://github.com/PRQL/pyprql/commit/8ae2070a6d07c51c5df201de4a73a7435942478f))
Feature
* feat(cli.py): support reading from tsvs
Now users can read from TSVs as well! ([`d2d675b`](https://github.com/PRQL/pyprql/commit/d2d675b7f398f8b32b27117cff1d2305ee85a811))
* feat(*): support saving to tsv
Users can now dump to TSV files. Need to add support for reading from them as well. ([`5a2630f`](https://github.com/PRQL/pyprql/commit/5a2630f7314b0a2ad04333b745d870f39d083486))
* feat(cli.py): support cli saving to csv
Now, users can dump query results to csv for downstream processing. ([`79382c1`](https://github.com/PRQL/pyprql/commit/79382c1aef6bd0e9c7f1e4686fde84b1e11b5f6d))
* feat(prql.py): parse to statements
Adds to statement support to the AST, allowing for parsing of to in a pipeline. ([`2808f26`](https://github.com/PRQL/pyprql/commit/2808f26fb13b82d3800b6e0e92f3a12733291b9e))
* feat(prql.py): adds grammar for to
Borrowing from the structure used for Joins, this grammar provides a parse-able `to` clause. Currently, it only implements a grammar for CSVs, but it could be easily expanded to support additional filetypes. THE PARSING IS NOT HERE IMPLEMENTED. ([`3899c89`](https://github.com/PRQL/pyprql/commit/3899c89fcd6dc735a2fe6a09fd488bfff0a0fb4b))
* feat(cli.py): import csv
If the passed connection string points to a csv, then an in-memory sqlite database is created, and the contents of the csv are dumped to the database. This could cause performance issues with very large databases - both from storing the database in memory, and a speed hit for using pd.DataFrame.to_sql to dump the dataframe. However, performance seems satisfactory on reasonable sized datasets. ([`c847eb2`](https://github.com/PRQL/pyprql/commit/c847eb269b0f48889e5b625b97377283a54b1bd1))
* feat: Adding expression parsing for complex expressions without requiring &39;()&39; ([`855ebd0`](https://github.com/PRQL/pyprql/commit/855ebd0166e06f9d1e288c63b7e529f73e105e61))
* feat: adding completion for show columns and \d+ ([`7b7f676`](https://github.com/PRQL/pyprql/commit/7b7f6768a4519de7ac8fbdc8458b57fe35b8baf7))
* feat: Adding code completion on table names for &39;:&39;, fixes the handling of prev_selection by clearing out on whitespace ([`46f7676`](https://github.com/PRQL/pyprql/commit/46f7676af190d1e5d008cc9f283628a2a47304f2))
Fix
* fix(prql.lark): match file names directly
Provides a regex to directly match file names for parsing. I&39;m reasonably confident there is probably an edge case, but this seems to handle most path situations I can think of. ([`259763b`](https://github.com/PRQL/pyprql/commit/259763b877f9e4385c60f3a986961b9a533892df))
* fix(prql.lark): support extensions for to statement
file_name should be of type name to allow for extensions.
This doesn&39;t cover full file paths yet. Common separators (eg /, ~) still fail to parse correctly. ([`82325a6`](https://github.com/PRQL/pyprql/commit/82325a66c5d5d73e8382011fe2ca681f24914aa6))
* fix(prql.parl): add filename parameter
I&39;d forgot to add a filename parameter when constructing the grammar. ([`f567cd6`](https://github.com/PRQL/pyprql/commit/f567cd6b0a8e2e58488ef392e3d212159ab76f2a))
* fix: Closes 20, All derives should now be in where clause ([`c736b25`](https://github.com/PRQL/pyprql/commit/c736b25b97a3fc7b3a2f873df6860139626b38d2))
* fix: Closes 21, replace_tables now available to all to_sql transformations ([`eb12075`](https://github.com/PRQL/pyprql/commit/eb1207595af4f86df9496c1c7d441b5ab4f8b566))
* fix: Final commit for fix11 ([`421fb04`](https://github.com/PRQL/pyprql/commit/421fb044b687a63547c45562193ad18c4940145e))
* fix: Fix11 , use the AST in the completer. This adds support for table aliases when completing fields. ([`9e79119`](https://github.com/PRQL/pyprql/commit/9e79119b0fd308ab5928f50e447e4623a9ed18c2))
* fix: Fixes 10 typing a letter afer period was not auto completing ([`ee8c7f5`](https://github.com/PRQL/pyprql/commit/ee8c7f57bd84e0b535441b546a96949f57280ecb))
Refactor
* refactor(prql.py): ignore type errors in 3.7
For some reason, some false positive type errors are thrown for 2 lines in python 3.7 only. As they pass in >= 3.8 and are definitely not errors, they are ignored. ([`043e96c`](https://github.com/PRQL/pyprql/commit/043e96c4a34a2154d26158b8e7936750d1e8a2ba))
* refactor: Fixes 24, had junk data in the database causing weird results ([`f2d6058`](https://github.com/PRQL/pyprql/commit/f2d6058309be6878d0c30bd9ffc7de79128651cc))
* refactor: updating grammar to not require () around expressions ([`3a6852a`](https://github.com/PRQL/pyprql/commit/3a6852a3d219e9b80bcc637d90783d95a906e855))
* refactor: clean up ([`559dab1`](https://github.com/PRQL/pyprql/commit/559dab108e9069a053306702cd97395dccee0834))
* refactor: allowing for order named arg on sort placeable anywhere ([`5fd0c1f`](https://github.com/PRQL/pyprql/commit/5fd0c1f92fe0f3021de369cfaa7b905ffcb90a68))
* refactor(*): improve CLI structure
Move logic for running CLI into __init__, while providing a separate module for each of the main components of the CLI (Lexer, Style, Completer, CLI). ([`bc9bb72`](https://github.com/PRQL/pyprql/commit/bc9bb72a20ca5119203cf02d404a618c847f9a85))
Style
* style(*): apply lints ([`f2769e9`](https://github.com/PRQL/pyprql/commit/f2769e97d32150d06d0cb9bd6b43a4794b541043))
Test
* test(test_grammar.py): exapnd to test coverage
Expands test coverage for complex file names with the to clause, using parametrisation to provide coverage for both windows and Linux/Mac cases. ([`0c1f06e`](https://github.com/PRQL/pyprql/commit/0c1f06eed1f06f6ca638292780ec351825007346))
* test(test_grammar.py): add unit tests for to statements
Includes a (currently) failing test for complex file names. Will need to fix this in a future commit. ([`e8ff715`](https://github.com/PRQL/pyprql/commit/e8ff715b1c5cc76ee5b6a19eb1672ec169b2bec1))
* test(test_grammar.py): correct index
The searched for string in the test_aggregates_grammar_nested should occur at position == 0, not > 0. ([`3c68f01`](https://github.com/PRQL/pyprql/commit/3c68f01f322ab5e9f8f3969c201a212d0651b75a))
Unknown
* Merge pull request 26 from qorrect/feat_to_csv
Support writing to CSVs/TSVs ([`ca5b587`](https://github.com/PRQL/pyprql/commit/ca5b587a4e9631a5fe6ba9d16a4af569d18ea3e4))
* Merge branch &39;feat_csv&39;
Provides support for reading a tabular csv into an in-memory sqlite
database, assuming headers are in the first row, and there is no index
column. ([`9126d4f`](https://github.com/PRQL/pyprql/commit/9126d4f49ad1f8559efe3573bb1a68e0c6027a9e))
* Merge remote-tracking branch &39;origin/main&39; ([`c3c0da3`](https://github.com/PRQL/pyprql/commit/c3c0da37beb9cb573fc88dec022ffa1155bca59f))
* Merge pull request 25 from qorrect/fix11
Fix11 ([`1504f8c`](https://github.com/PRQL/pyprql/commit/1504f8ca0a543cec62dd856bab15ee26a309c405))
* Merge pull request 23 from qorrect/fix11
Fix11, refactors the AutoCompleter to use the AST , fixes various auto completion issues ([`a2dc156`](https://github.com/PRQL/pyprql/commit/a2dc15684fcf6f8d0602c44901b89c778a4051d5))