refactor(impala): replace custom pooling with sqlalchemy QueuePool
BREAKING CHANGE: use other methods for pinging the database
refactor: remove deprecated functions and classes
BREAKING CHANGE: functions, methods and classes marked as deprecated are removed now
refactor(ir): remove node.root_tables() and unify parent table handling
BREAKING CHANGE: removed Node.root_tables() method, use ibis.expr.analysis.find_immediate_parent_tables() instead
refactor(ir): remove DestructValue expressions
The DestructValue expressions didn't have corresponding operation nodes. BREAKING CHANGE: removed ir.DestructValue, ir.DestructScalar and ir.DestructColumn, use table.unpack() instead
refactor(ir): remove lin.lineage() since it's not used anywhere
BREAKING CHANGE: ibis.expr.lineage.lineage() is now removed
refactor(common): move Parameter and Signature to validators.py
also make the Signature object validatable
BREAKING CHANGE: use ibis.common.validators.{Patameter, Signature} instead
fix(pandas): use localized UTC time for now operation
Unify the result of pandas/dask with the rest of the backends BREAKING CHANGE: Use timezone conversion functions to compute the original machine localized value
refactor(ir): remove intermediate expressions
The objective of this refactor is to achieve a simpler, stricter and more generic internal representation by removing intermediate Expression objects so there is a single Expression object wrapping an Operation tree only to provide the user-facing API but all the internals work with homogeneous Operation trees. BREAKING CHANGE: Expr(Op(Expr(Op(Expr(Op))))) is now represented as Expr(Op(Op(Op))), so code using ibis internals must be migrated
refactor(ir): resolve circular imports so operations can be globally …
…imported for types BREAKING CHANGE: Removed Node.output_type in favor of abstractmethod Node.to_expr() which now must be explicitly implemented
refactor(ir): remove sch.HasSchema and introduce ops.Projection base …
…class for ops.Selection BREAKING CHANGE: HasSchema is no longer available, directly subclass ops.TableNode and implement schema property instead
refactor(ir): remove node.blocks() in favor of more explicit type han…
…dling BREAKING CHANGE: Node.blocks() method has been removed.
refactor(ir): remove Node.inputs since it is an implementation detail…
… of the pandas backend BREAKING CHANGE: removed ops.Node.inputs property, use the multipledispatched get_node_arguments() function in the pandas backend
refactor(ir): generalize handling and traversal of node sequences
previously node attributes contained tuple of other nodes which required additional isinstance checks for traversals, now all the traversable elements of the tree are node instances BREAKING CHANGE: removed Node.flat_args(), directly use node.args property instead
refactor(ir): make all value operations 'Named' for more consistent n…
…aming semantics BREAKING CHANGE: node.has_resolved_name() is removed, use isinstance(node, ops.Named) instead; node.resolve_name() is removed use node.name instead
perf: fix join performance by avoiding Projection construction
This avoids the large number of repeated traversals on construction.
refactor(ir): remove pydantic dependency and make grounds more compos…
…able BREAKING CHANGE: Annotable is mutable by default now
style: pre-commit.ci autoupdate
updates: - [github.com/asottile/pyupgrade: v2.37.3 → v2.38.0](asottile/pyupgrade@v2.37.3...v2.38.0)
chore(dev-deps): remove ipdb from dev-dependencies
This package incorrect requires setuptools at runtime which causes nix builds to break with an infinite recursion error, because setuptools is required for bootstrapping. I put up a PR to address this a few days ago--gotcha/ipdb#254 it's not clear whether the project is maintained.