- Changed calling behavior of Select to make columns argument optional.
Now defaults to
fieldnames
when columns are omitted. - Fixed preview of queries that return empty containers.
Added a Query preview feature for interactive use:
>>> select({'fruit': 'kilos'}).sum() Query(<squint.Select object at 0x7f209c30>, {'fruit': ['kilos']}).sum() ---- preview ---- {'apple': 50, 'grape': 10, 'pair': 20, ...
Previews provide immediate feedback when building queries interactively. Once the query is finished, you can evaluate it with the fetch() or execute() methods as before.
The preview feature works with the standard interactive prompt, IPython, bpython, and Jupyter. However, at the time of this release, ptpython does not support this type of customization.
Added rewritten and expanded tutorial documentation.
Changed Result attribute from "evaluation_type" to "evaltype" (the old name is now deprecated).
Added Python 3.9 testing and support.
Removed support for very old versions of Python (2.6, 3.2, and 3.3).
- Added a package description.
- Added get-reader (with optional extras) to installation requirements.
- First public release of squint as its own repository.
- Added traceback handling to create_index() method.
- Removed non-squint/datatest-specific commits from version history.
- Changed name of Selector class to Select ("Selector" is now deprecated).
- Added Python 3.8 testing and support.
- Added Predicate class to formalize behavior--also provides inverse-matching with the inversion operator (~).
- Added new methods to Query class:
- Added unwrap() to remove single-element containers and return their unwrapped contents.
- Added starmap() to unpack grouped arguments when applying a function to elements.
- Changed Query class:
- Added flatten() method to serialize dictionary results.
- Added to_csv() method to quickly save results as a CSV file.
- Changed reduce() method to accept "initializer_factory" as an optional argument.
- Changed filter() method to support predicate matching.
- Added True and False as predicates to support "truth value testing" on arbitrary objects (to match on truthy or falsy).
- Changed Selector class keyword filtering to support predicate matching.
- Added formal predicate object handling.
- Changed DataSource to Selector, DataQuery to Query, and DataResult to Result.
- Changed DataQuery selections now default to a list type when no outer-container is specified.
- Added DataQuery.apply() method for group-wise function application.
- Added support for user-defined functions to narrow DataSource selections.
- Fixed bug in DataQuery.map() method--now converts set types into lists.
- Added proper __repr__() support to DataSource and DataQuery.
- Changed DataQuery so it fails early if bad "select" syntax is used or if unknown columns are selected.
- Added __copy__() method to DataQuery.
- Changed DataQuery select behavior to fail immediately when invalid syntax is used (rather than later when attempting to execute the query).
- Added query optimization and a simpler and more expressive syntax.
- First public release of rewritten code base.
- Begin each section with the date followed by the version number in parenthesis. Use the following format: "YYYY-MM-DD (x.y.z)".
- The initial bullet-point may provide a one-line description of the release.
- Following bullet-points should begin with "Added", "Changed", "Fixed", or "Removed" when describing the notable changes.
- Limit lines to 80 character width.