Changelog

v0.37.2 (2023-10-05)

  • Require ingredient ids to be strings that don’t start with underscore

v0.37.1 (2023-09-19)

  • Handle NullType columns

v0.37.0 (2023-09-18)

  • Update sqlalchemy to 1.4

  • Drop support for SummarizeOver

v0.36.7 (2023-09-19)

  • Handle NullType columns

v0.36.6 (2023-08-24)

  • Properly quote order_by columns when using labels strategy

v0.36.5 (2023-08-17)

  • Get engine consistently

v0.36.4 (2023-08-17)

  • Ensure filters appear in sorted order

v0.36.3 (2023-08-17)

  • Fix quoting of order_by columns when using labels strategy

v0.36.2 (2023-08-14)

  • Improve quoting of order_by columns when using labels strategy

v0.36.1 (2023-08-01)

  • Add lastday(date, datepart) for bigquery/snowflake

v0.36.0 (2023-07-18)

  • Add a strict flag to automatic_filters with default true

  • Add extract(datepart, date) and add an optional datepart to datediff

v0.35.5 (2023-06-12)

  • Fix count(*) in PaginateCountOver

v0.35.4 (2023-06-12)

  • Support expressions for database column names that contain spaces

v0.35.3 (2023-06-12)

  • Fix default group by strategy for dimensions in snowflake and mssql databases

v0.35.2 (2023-06-01)

  • Allow snowflake timestamps in expressions

v0.35.1 (2023-04-20)

  • Allow expression builder to be passed to Shelf.from_config constructor.

v0.35.0 (2023-04-09)

  • Add PaginateCountOver, a simpler pagination counter

v0.34.1 (2023-04-06)

  • Add datediff function, improve aggregation

v0.34.0 (2023-04-06)

  • Support a dictionary of literal or aggregate constants when defining shelves from config.

v0.33.0 (2023-03-17)

  • Allow shelves to be built with more than one table reference.

v0.32.1 (2023-01-26)

  • Allow automatic filters to be applied more than once to a recipe

  • Ensure datatypes are always str

v0.32.0 (2023-01-19)

  • cache parsed ingredient fields and the result of their validation in the context of a specific grammar

v0.31.6 (2022-12-07)

  • Add a utility function make_schema

v0.31.5 (2022-06-13)

  • Fix timestamp conversion functions in bigquery

v0.31.4 (2022-04-04)

  • Support and operator in complex filters

v0.31.3 (2022-04-04)

  • no changes

v0.31.2 (2022-03-25)

  • Disallow literal-only expressions

  • Allow count for boolean expressions

v0.31.1 (2022-03-24)

  • Add caching for total_count

v0.31.0 (2022-03-23)

  • Allow nested operators and values within an in operator

  • “notin” filter operator is refactored to not use separate code from in. Instead we generate the in code and then

    wrap it in _not. This will change the sql generated when automatic filtering but the results will be the same.

  • Code cleanups and refactorings

v0.30.1 (2022-03-22)

  • Fix an error in ordering with mixed case columns/labels when using snowflake

  • Update requirements to use lark

  • Update requirements for dateparser past a broken version (See issue https://github.com/scrapinghub/dateparser/issues/1045)

  • Don’t create expression grammar for columns with invalid names

v0.30.0 (2022-02-15)

  • Breaking chagne: removed support for v1 ingredient configuration.

  • Refactor tests to use unittests

  • Add type annotations

  • Add substr function

v0.29.3 (2021-12-07)

  • Add support for like and ilike in parsed expressions

v0.29.1 (2021-12-03)

  • Fix automatic filters when dimension ids contain double underscores

v0.29.0 (2021-11-17)

  • Improve mssql support

v0.28.1 (2021-10-28)

  • Fix for splitting operators in automatic filters

v0.28.0 (2021-10-15)

  • Add directives that will convert dates and datetimes to the nearest year/month/day

v0.27.1 (2021-09-14))

  • Allow compound selection to take a list of json encoded strings

v0.27.0 (2021-08-26)

  • Update requirements

  • Drop support for python3.6

  • Save metric and dimension keys without deduping

v0.26.1 (2021-07-29)

  • Fix aggregation for PaginateInline extension

v0.26.0 (2021-07-15)

  • Add PaginateInline extension

v0.25.1 (2021-06-15)

  • Fix datatype tracking in some cases

v0.25.0 (2021-06-07)

  • Add to date syntax

  • Avoid installing a top-level tests package in setup.py

v0.24.1 (2021-06-10)

  • Fix datatype tracking in some cases

v0.24.0 (2021-05-14)

  • Track the datatype used by ingredient columns

  • Require parsed metrics to generate a number

v0.23.4 (2021-05-03)

  • Improve automatic filtering with uncompilable ingredients

v0.23.3 (2021-04-29)

  • Fix column_type for timestamps

v0.23.2 (2021-02-09)

  • Apply a default ordering when paginating

v0.23.1 (2021-02-08)

  • Fix sql generation of timestamp truncated columns in bigquery

v0.23.0 (2021-02-01)

  • Improve the lark parser to validate explicitly using the database columns and column types available in the data.

  • Run a validation phase on a parsed tree to make sure that arguments are correct types.

  • Return descriptive errors

  • Improve cross database support

v0.22.1 (2020-12-23)

  • Like and ilike filter generation is more lenient

v0.22.0 (2020-12-10)

  • Drop python2 support

v0.21.0 (2020-10-20)

  • Add [syntax] to disambiguate database columns in parsed fields

  • Save original config to ingredient when generating parsed fields.

v0.20.1 (2020-10-07)

  • Fix issue with parsing >= and <=

v0.20.0 (2020-10-02)

  • Update total_count to use caching

  • Fix datatime auto conversions

0.19.1 (2020-09-10)

  • Drop python2.7 testing support (Python2.7 support will be dropped in 0.20)

  • Improve type identification in Ingredient.build_filter

0.19.0 (2020-09-04)

  • Support and documentation for compound selection in automatic filters

  • Support for different sqlalchemy generation when using parsed fields

  • Add support for date conversions and percentiles in bigquery.

  • Ingredient.build_filters now returns SQLAlchemy BinaryExpression rather than Filter objects.

0.18.1 (2020-08-07)

  • Fix a bug in filter binning

  • Happy birthday, Zoe!

0.18.0 (2020-07-31)

  • Add automatic filter binning for redshift to reduce required query compilations

  • Add parsed field converters to perform casting and date truncation.

0.17.2 (2020-07-21)

  • Fix Paginate search to use value roles

0.17.1 (2020-07-09)

  • Fix parsed syntax for field IS NULL

0.17.0 (2020-06-26)

  • Set bucket default label to “Not found”

  • Use sureberus to validate lookup is a dictionary if present in Dimension config

  • Fix to ensure pagination page is 1 even if there is no data

  • On shelf construction, create InvalidIngredient for ingredients that fail construction

0.16.0 (2020-06-19)

  • Ignore order_by on a recipe if the ingredient has not been added to the dimensions or metrics.

  • Allows case insensitivity in “kind:” and support “kind: Measure” as an alternative to “kind: Metric”

  • Fix like/ilike and pagination_q filtering against dimensions that have a non-string ID.

  • Fix parsed sql generation for AND and OR

  • Fix parsed sql generation for division when one of the terms is a constant (like sum(people) / 100.0)

  • Adds IS NULL as a boolean expression

  • Adds “Intelligent date” calculations to allow more useful date calculations relative to current date

0.15.0 (2020-05-08)

  • Ignore order_by if ingredients have not been added

  • Support measure as a synonym for metric and be lenient about capitalization in shelf config

0.14.0 (2020-03-06)

  • Support graceful ingredient failures when ingredients can not be constructed from config.

0.13.1 (2020-02-11)

  • Fix a pg8000 issue

0.13.0 (2020-01-28)

  • Extend grouping strategies so recipes can also order by column labels

  • Create a new shelf configuration that uses lark to parse text into SQLAlchemy.

0.12.0 (2019-11-25)

  • remove flapjack_stack and pyhash dependencies

  • Add percentile aggregations to metrics from config.

  • Use more accurate fetched_from_cache caching query attribute

  • Add grouping strategies so recipes can group by column labels

0.11.0 (2019-11-07)

  • Add Paginate extension

  • Fix deterministic Anonymization in python3

  • CI improvements

0.10.0 (2019-08-07)

  • Support multiple quickselects which are ORed together

0.9.0 (2019-08-07)

  • Replace quickfilter with quickselect

  • Improve and publish docs on at recipe.readthedocs.io

  • Happy birthday, Zoe!

0.8.0 (2019-07-08)

  • Add cache control options.

0.7.0 (2019-06-24)

  • Support date ranges in configuration defined ingredients

  • Add like, ilike, between in ingredients defined from config

  • Better handling in automatic filters when Nones appear in lists

  • Remove dirty flag

  • Ingredients defined from config support safe division by default

  • [ISSUE-37] Allow Dimension defined from config to be defined using buckets

0.6.2 (2019-06-11)

0.1.0 (2017-02-05)

  • First release on PyPI.