Move ModuleSpec, ParamField and ParamSchema to cjwmodule package. Now, modules' unit tests can use a pattern that prevents invalid params.
Make the params dictionary we pass to a module exactly the same as the params seen in the UI (when valid). Previously, there were subtle differences that made for inconsistent module code (Pandas "tab" param was a complex object; Arrow "tab" param was an str).
Make cjwmodule.pandas.framework package, with pandas_v0, arrow_v0 and (upcoming) arrow_v1 frameworks. The framework handles conversion to/from Thrift messages.
Nix Thrift TableMetadata: it was usually redundant (a "pyarrow.string" column has Workbench type "text", always) and this new convention gives a way for Arrow modules to output number formats and date resolutions.
Finally, we can write Arrow modules that output dates.
Revamp Thrift protocol and kernel
ModuleSpec
,ParamField
andParamSchema
tocjwmodule
package. Now, modules' unit tests can use a pattern that prevents invalid params.params
dictionary we pass to a module exactly the same as theparams
seen in the UI (when valid). Previously, there were subtle differences that made for inconsistent module code (Pandas "tab" param was a complex object; Arrow "tab" param was an str).cjwmodule.pandas.framework
package, withpandas_v0
,arrow_v0
and (upcoming)arrow_v1
frameworks. The framework handles conversion to/from Thrift messages.TableMetadata
: it was usually redundant (a "pyarrow.string" column has Workbench type "text", always) and this new convention gives a way for Arrow modules to output number formats and date resolutions.Finally, we can write Arrow modules that output dates.