Skip to content

Releases: machow/siuba

v0.2.0

29 Mar 19:07
29595a6
Compare
Choose a tag to compare

What's Changed

  • Refactor siu submodule (#338)
    • made siu.py a folder, split into different submodules for visitors, dispatchers, calls, etc..
  • feat(ci): publish main branch docs to netlify (#395)
  • docs(siu): flesh out docs for calls, symbolics, dispatchers (#397)
  • ci: Pin setup-gcloud to v0 instead of master (#405)
  • feat: use codata dispatch in SQL translation (#398)
    • all sql column operation concrete signatures changed, to allow operations in operations
    • old:
    @mean.register
    def _mean(col: SqlColumn): ...
    • new:
    @mean.register
    def _mean(codata: SqlColumn, col): ...
  • feat: support sqlite window functions (#406)
  • ci: bigquery tests run in parallel. Reduces time from 15 mins to about 2 mins.

refactor siu dispatch

20 Mar 20:42
Compare
Choose a tag to compare

This is a dev release to support...

  • enable creating a LazyTbl from a subquery (for dbcooper-py)
  • early preview of snowflake dialect

Fix inferring join cols in semi join; add grouped df console representation

20 Jan 22:37
6ea39e1
Compare
Choose a tag to compare

Fixes

  • Error in pandas semi_join errored when no join cols were specified (#351; PR #374)

Misc

  • Add an extra test for fast_mutate (#355 #372 )

Support pandas 1.3, fix broken windows install

19 Jan 23:04
Compare
Choose a tag to compare

⚠️ Note: this is a re-release of alpha v1.0.0a3 to be v0.1.1. This will allow users to easily install these releases using pip. Changelog copied below.

Fixes

  • fix(ci): allow testing multiple bigquery test branches at the same time (#360)
  • fix(pandas): fast methods support DataFrame aggs like n() (#363)
  • fix(pandas): support pandas 1.3 (#366)
  • fix(install): fix windows install breaking due to utf-8 in README (#370)

Refactor SQL tooling and create ops submodule. Support for MySQL and Bigquery.

19 Jan 17:06
Compare
Choose a tag to compare

⚠️ Note: this is a re-release of alpha v1.0.0a2 to be v0.1.0. This will allow users to easily install these releases using pip. Changelog copied below.

This is an alpha release for v1.0.0. There will likely be extensive changes through January as I work to refactor the core API.

Big changes

  • Added ops submodule (and removed spec submodule).
    • This contains generic functions for pandas methods.
    • Has method data needed to translate pandas expressions to SQL (e.g. whether something is a property, or uses an accessor).
  • Refactored SQL translation mechanism:
    • Base dialect that others extend.
    • Over clauses in translate.py now have a func class method. This generates a constructor for a specific sql translation.
    • Now uses a pandas translator from ops submodule.

Features:

  • Support bigquery as a SQL dialect (#322)
  • Support MySQL as a SQL dialect. (a9b97a9)
  • ci: add test deployment to action (#354)

Support pandas 1.3, fix broken windows install

12 Jan 20:01
f335156
Compare
Choose a tag to compare

Fixes

  • fix(ci): allow testing multiple bigquery test branches at the same time (#360)
  • fix(pandas): fast methods support DataFrame aggs like n() (#363)
  • fix(pandas): support pandas 1.3 (#366)
  • fix(install): fix windows install breaking due to utf-8 in README (#370)

Refactor SQL tooling and create ops submodule. Support for MySQL and Bigquery.

19 Dec 03:36
44b291c
Compare
Choose a tag to compare

This is an alpha release for v1.0.0. There will likely be extensive changes through January as I work to refactor the core API.

Big changes

  • Added ops submodule (and removed spec submodule).
    • This contains generic functions for pandas methods.
    • Has method data needed to translate pandas expressions to SQL (e.g. whether something is a property, or uses an accessor).
  • Refactored SQL translation mechanism:
    • Base dialect that others extend.
    • Over clauses in translate.py now have a func class method. This generates a constructor for a specific sql translation.
    • Now uses a pandas translator from ops submodule.

Features:

  • Support bigquery as a SQL dialect (#322)
  • Support MySQL as a SQL dialect. (a9b97a9)
  • ci: add test deployment to action (#354)

SQLAlchemy 1.4 support and slicing fix

21 Jun 13:44
Compare
Choose a tag to compare

This release adds support for SQLAlchemy 1.4, does some light refactoring, and fixes a slicing issue.

Fixes

  • Make compatible with SQLAlchemy 1.4. #327
  • Properly represent symbolics when indexing with multiple slices (e.g. _[1:2, _.a:_.b]). #325

Features

  • Refactored fast group operations to use generic functions (regroup(), broadcast_agg(), is_compatible()). #310
  • Enable piping to attributes (e.g. pipe(_.some_col)). #325

QA

  • Migrated to github actions. #299

SQL and fast grouped method improvements

29 Aug 23:59
f34cfed
Compare
Choose a tag to compare

Much of this release is setting up for...

  • fast methods to become drop-in replacements for their slow, reference implementation counterparts!
  • SQL fixes and features for funneljoin-py

Fixes

  • Pandas anti_join breaking when on argument is a string (#264)
  • Sql now resets order by after joins (#277)
  • Fixed major regression for sql where filter with multiple arguments did strange and terrible things (#277)
  • Sql summarize correctly makes a subquery when group_by references a recently created column (#278)
  • Sql right_join had to switch lhs and rhs, but was not correctly handling all implications of that. Specifically how key columns are kept, and suffixes used. (#279)

Features

  • Fast grouped methods determine whether they can run quickly, fallback if not, along with a warning. Lambdas can be used to explicitly take the slower, reference implementation route (#268).
  • Fast grouped methods allow property operations that return dim 0 results, like dtype. (#269)
  • - in sql arrange now produces the correct DESC, rather than being a - operation (#280)
  • pandas arrange now works on grouped data. i.e. DataFrameGroupBy. (#280)

QA

  • a slew of tests!

Misc bug fixes

15 Aug 02:22
2573413
Compare
Choose a tag to compare

Fixes

  • anti_join in pandas no longer breaks when on argument is a string. E.g. anti_join(df1, df2, on = "some_col") #264
  • fct_collapse now correctly keeps missing values (#262)