Skip to content

Releases: ibis-project/ibis

3.1.0

26 Jul 09:54
Compare
Choose a tag to compare

3.1.0 (2022-07-26)

Features

  • add __getattr__ support to StructValue (75bded1)
  • allow selection subclasses to define new node args (2a7dc41)
  • api: accept Schema objects in public ibis.schema (0daac6c)
  • api: add .tables accessor to BaseBackend (7ad27f0)
  • api: add e function to public API (3a07e70)
  • api: add ops.StructColumn operation (020bfdb)
  • api: add cume_dist operation (6b6b185)
  • api: add toplevel ibis.connect() (e13946b)
  • api: handle literal timestamps with timezone embedded in string (1ae976b)
  • api: ibis.connect() default to duckdb for parquet/csv extensions (ff2f088)
  • api: make struct metadata more convenient to access (3fd9bd8)
  • api: support tab completion for backends (eb75fc5)
  • api: underscore convenience api (81716da)
  • api: unnest (98ecb09)
  • backends: allow column expressions from non-foreign tables on the right side of isin/notin (e1374a4)
  • base-sql: implement trig and math functions (addb2c1)
  • clickhouse: add ability to pass arbitrary kwargs to Clickhouse do_connect (583f599)
  • clickhouse: implement ops.StructColumn operation (0063007)
  • clickhouse: implement array collect (8b2577d)
  • clickhouse: implement ArrayColumn (1301f18)
  • clickhouse: implement bit aggs (f94a5d2)
  • clickhouse: implement clip (12dfe50)
  • clickhouse: implement covariance and correlation (a37c155)
  • clickhouse: implement degrees (7946c0f)
  • clickhouse: implement proper type serialization (80f4ab9)
  • clickhouse: implement radians (c7b7f08)
  • clickhouse: implement strftime (222f2b5)
  • clickhouse: implement struct field access (fff69f3)
  • clickhouse: implement trig and math functions (c56440a)
  • clickhouse: support subsecond timestamp literals (e8698a6)
  • compiler: restore intersect_class and difference_class overrides in base SQL backend (2c46a15)
  • dask: implement trig functions (e4086bb)
  • dask: implement zeroifnull (38487db)
  • datafusion: implement negate (69dd64d)
  • datafusion: implement trig functions (16803e1)
  • duckdb: add register method to duckdb backend to load parquet and csv files (4ccc6fc)
  • duckdb: enable find_in_set test (377023d)
  • duckdb: enable group_concat test (4b9ad6c)
  • duckdb: implement ops.StructColumn operation (211bfab)
  • duckdb: implement approx_count_distinct (03c89ad)
  • duckdb: implement approx_median (894ce90)
  • duckdb: implement arbitrary first and last aggregation (8a500bc)
  • duckdb: implement NthValue (1bf2842)
  • duckdb: implement strftime (aebc252)
  • duckdb: return the ir.Table instance from DuckDB's register API (0d05d41)
  • mysql: implement FindInSet (e55bbbf)
  • mysql: implement StringToTimestamp (169250f)
  • pandas: implement bitwise aggregations (37ff328)
  • pandas: implement degrees (25b4f69)
  • pandas: implement radians (6816b75)
  • pandas: implement trig functions (1fd52d2)
  • pandas: implement zeroifnull (48e8ed1)
  • postgres/duckdb: implement covariance and correlation (464d3ef)
  • postgres: implement ArrayColumn (7b0a506)
  • pyspark: implement approx_count_distinct (1fe1d75)
  • pyspark: implement approx_median (07571a9)
  • pyspark: implement covariance and correlation (ae818fb)
  • pyspark: implement degrees (f478c7c)
  • pyspark: implement nth_value (abb559d)
  • pyspark: implement nullifzero (640234b)
  • pyspark: implement radians (18843c0)
  • pyspark: implement trig functions (fd7621a)
  • pyspark: implement Where (32b9abb)
  • pyspark: implement xor (550b35b)
  • pyspark: implement zeroifnull (db13241)
  • pyspark: topk support (9344591)
  • sqlalchemy: add degrees and radians (8b7415f)
  • sqlalchemy: add xor translation rule (2921664)
  • sqlalchemy: allow non-primitive arrays ([4e02918](4e02918...
Read more

3.0.2

28 Apr 16:30
Compare
Choose a tag to compare

3.0.2 (2022-04-28)

Bug Fixes

  • docs: fix tempdir location for docs build (dcd1b22)

3.0.1

28 Apr 15:16
Compare
Choose a tag to compare

3.0.1 (2022-04-28)

Bug Fixes

  • build: replace version before exec plugin runs (573139c)

3.0.0

25 Apr 17:44
Compare
Choose a tag to compare

3.0.0 (2022-04-25)

⚠ BREAKING CHANGES

  • ir: The following are breaking changes due to simplifying expression internals
    • ibis.expr.datatypes.DataType.scalar_type and DataType.column_type factory
      methods have been removed, DataType.scalar and DataType.column class
      fields can be used to directly construct a corresponding expression instance
      (though prefer to use operation.to_expr())
    • ibis.expr.types.ValueExpr._name and ValueExpr._dtype`` fields are not accassible anymore. While these were not supposed to used directly now ValueExpr.has_name(), ValueExpr.get_name()andValueExpr.type()` methods
      are the only way to retrieve the expression's name and datatype.
    • ibis.expr.operations.Node.output_type is a property now not a method,
      decorate those methods with @property
    • ibis.expr.operations.ValueOp subclasses must define output_shape and
      output_dtype properties from now on (note the datatype abbreviation dtype
      in the property name)
    • ibis.expr.rules.cast(), scalar_like() and array_like() rules have been
      removed
  • api: Replace t["a"].distinct() with t[["a"]].distinct().
  • deps: The sqlalchemy lower bound is now 1.4
  • ir: Schema.names and Schema.types attributes now have tuple type rather than list
  • expr: Columns that were added or used in an aggregation or
    mutation would be alphabetically sorted in compiled SQL outputs. This
    was a vestige from when Python dicts didn't preserve insertion order.
    Now columns will appear in the order in which they were passed to
    aggregate or mutate
  • api: dt.float is now dt.float64; use dt.float32 for the previous behavior.
  • ir: Relation-based execute_node dispatch rules must now accept tuples of expressions.
  • ir: removed ibis.expr.lineage.{roots,find_nodes} functions
  • config: Use ibis.options.graphviz_repr = True to enable
  • hdfs: Use fsspec instead of HDFS from ibis
  • udf: Vectorized UDF coercion functions are no longer a public API.
  • The minimum supported Python version is now Python 3.8
  • config: register_option is no longer supported, please submit option requests upstream
  • backends: Read tables with pandas.read_hdf and use the pandas backend
  • The CSV backend is removed. Use Datafusion for CSV execution.
  • backends: Use the datafusion backend to read parquet files
  • Expr() -> Expr.pipe()
  • coercion functions previously in expr/schema.py are now in udf/vectorized.py
  • api: materialize is removed. Joins with overlapping columns now have suffixes.
  • kudu: use impala instead: https://kudu.apache.org/docs/kudu_impala_integration.html
  • Any code that was relying implicitly on string-y
    behavior from UUID datatypes will need to add an explicit cast first.

Features

  • add repr_html for expressions to print as tables in ipython (cd6fa4e)
  • add duckdb backend (667f2d5)
  • allow construction of decimal literals (3d9e865)
  • api: add ibis.asc expression (efe177e), closes #1454
  • api: add has_operation API to the backend (4fab014)
  • api: implement type for SortExpr (ab19bd6)
  • clickhouse: implement string concat for clickhouse (1767205)
  • clickhouse: implement StrRight operation (67749a0)
  • clickhouse: implement table union (e0008d7)
  • clickhouse: implement trim, pad and string predicates (a5b7293)
  • datafusion: implement Count operation (4797a86)
  • datatypes: unbounded decimal type (f7e6f65)
  • date: add ibis.date(y,m,d) functionality (26892b6), closes #386
  • duckdb/postgres/mysql/pyspark: implement .sql on tables for mixing sql and expressions (00e8087)
  • duckdb: add functionality needed to pass integer to interval test (e2119e8)
  • duckdb: implement _get_schema_using_query (93cd730)
  • duckdb: implement now() function (6924f50)
  • duckdb: implement regexp replace and extract (18d16a7)
  • implement force argument in sqlalchemy backend base class (9df7f1b)
  • implement coalesce for the pyspark backend (8183efe)
  • implement semi/anti join for the pandas backend (cb36fc5)
  • implement semi/anti join for the pyspark backend (3e1ba9c)
  • implement the remaining clickhouse joins (b3aa1f0)
  • ir: rewrite and speed up expression repr (45ce9b2)
  • mysql: implement _get_schema_from_query (456cd44)
  • mysql: move string join impl up to alchemy for mysql (77a8eb9)
  • postgres: implement _get_schema_using_query (f2459eb)
  • pyspark: implement Distinct for pyspark (4306ad9)
  • pyspark: implement log base b for pyspark (527af3c)
  • pyspark: implement percent_rank and enable testing (c051617)
  • repr: add interval info to interval repr (df26231)
  • sqlalchemy: implement ilike (43996c0)
  • sqlite: implement date_truncate (3ce4f2a)
  • sqlite: implement ISO week of year (714ff7b)
  • sqlite: implement string join and concat (6f5f353)
  • support of arrays and tuples for clickhouse (db512a8)
  • ver: dynamic version identifiers (408f862)

Bug Fixes

  • added wheel to pyproject toml for venv users (b0b8e5c)
  • allow major version changes in CalVer dependencies (9c3fbe5)
  • annotable: allow optional arguments at any position (778995f), closes #3730
  • api: add ibis.map and .struct (327b342), closes #3118
  • api: map string multiplication with integer to repeat method (b205922)
  • api: thread suffixes parameter to individual join methods (31a9aff)
  • change TimestampType to Timestamp (e0750be)
  • clickhouse: disconnect from clickhouse when computing version (11cbf08)
  • clickhouse: use a context manager for execution ([a471225](https://github.com/ibis-project/ibi...
Read more

2.1.1

12 Jan 23:12
Compare
Choose a tag to compare

2.1.1 (2022-01-12)

Bug Fixes

  • setup.py: set the correct version number for 2.1.0 (f3d267b)

2.1.0

12 Jan 20:22
Compare
Choose a tag to compare

2.1.0 (2022-01-12)

Bug Fixes

  • consider all packages' entry points (b495cf6)
  • datatypes: infer bytes literal as binary #2915 (#3124) (887efbd)
  • deps: bump minimum dask version to 2021.10.0 (e6b5c09)
  • deps: constrain numpy to ensure wheels are used on windows (70c308b)
  • deps: update dependency clickhouse-driver to ^0.1 || ^0.2.0 (#3061) (a839d54)
  • deps: update dependency geoalchemy2 to >=0.6,<0.11 (4cede9d)
  • deps: update dependency pyarrow to v6 (#3092) (61e52b5)
  • don't force backends to override do_connect until 3.0.0 (4b46973)
  • execute materialized joins in the pandas and dask backends (#3086) (9ed937a)
  • literal: allow creating ibis literal with uuid (#3131) (b0f4f44)
  • restore the ability to have more than two option levels (#3151) (fb4a944)
  • sqlalchemy: fix correlated subquery compilation (43b9010)
  • sqlite: defer db connection until needed (#3127) (5467afa), closes #64

Features

  • allow column_of to take a column expression (dbc34bb)
  • ci: More readable workflow job titles (#3111) (d8fd7d9)
  • datafusion: initial implementation for Arrow Datafusion backend (3a67840), closes #2627
  • datafusion: initial implementation for Arrow Datafusion backend (75876d9), closes #2627
  • make dayofweek impls conform to pandas semantics (#3161) (9297828)

Reverts

  • "ci: install gdal for fiona" (8503361)