-
Notifications
You must be signed in to change notification settings - Fork 159
feat: IbisLazyFrame
support
#2000
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
MarcoGorelli
merged 123 commits into
narwhals-dev:main
from
rwhitten577:feature/initial-ibis-lazyframe
May 13, 2025
Merged
Changes from 25 commits
Commits
Show all changes
123 commits
Select commit
Hold shift + click to select a range
a186e7d
Initial copy of duckdb impl for ibis
rwhitten577 4a98c0b
Rename existing _ibis -> _ibis_old, update most of IbisNamespace
rwhitten577 7b25227
Update ibis namespace
rwhitten577 bbee1d2
Remove _ibis_old, update dataframe methods
rwhitten577 6c739d4
Update Expr methods
rwhitten577 70605ad
All ibis frame tests passing
rwhitten577 56a5f08
WIP ibis expr tests
rwhitten577 82c41f8
Merge branch 'main' into feature/initial-ibis-lazyframe
rwhitten577 04a41ec
Update ibis dataframe and groupby to match latest duckdb
rwhitten577 9e756e5
Update ibis expr match latest duckdb
rwhitten577 8ccff78
Update ibis expr dt, list, str to match latest duckdb
rwhitten577 6140962
Update ibis namespace and selectors to match latest duckdb
rwhitten577 15e89c9
All ibis frame tests passing
rwhitten577 81a62f0
Fix more ibis tests, esp group_by, read/scan, and std/var ddof
rwhitten577 e71d899
All ibis tests except expr_and_series passing
rwhitten577 4459ca7
More ibis expr tests passing
rwhitten577 8eb20f6
Fix ibis type issues
rwhitten577 22026ac
Merge branch 'main' into feature/initial-ibis-lazyframe
rwhitten577 f6bb893
Re-enable commented out test params
rwhitten577 5bd99df
fix(typing): Make `pyright` happy
dangotbanned 15dc406
ci(typing): Add `ibis` to `--group typing`
dangotbanned 0519a41
ci: Reuse `optional-dependencies` group
dangotbanned 4b98d22
ci(typing): Remove `ibis` from `mypy` overrides
dangotbanned fdbd3a8
revert: Undo `mypy` override removal
dangotbanned 6e44a8b
chore: Replace all `get_ibis` with an import
dangotbanned 21dd5b4
the great unbanning
dangotbanned 6f489f1
Fix ibis pyright issues on all but expr.py and namespace.py
rwhitten577 af77027
Add branch for converting nw enum to ibis
rwhitten577 a685837
Fix ibis pyright for namespace.py
rwhitten577 1b07dfe
refactor(typing): Simplify `concat`
dangotbanned 25b30e0
refactor: Also same error in `concat`
dangotbanned dceda64
fix: Collect iterable before consuming
dangotbanned 8f7f005
refactor: Simplify `concat` some more
dangotbanned 55240aa
refactor: Use more `chain.from_iterable`
dangotbanned 49e9918
a little `lit`
dangotbanned 28b7ec5
Fix ibis pyright for expr.py
rwhitten577 1ed691a
Fix ibis pyright for dataframe.py
rwhitten577 2843b7c
Add ibis to pytest gh action
rwhitten577 5f3687f
Add ibis >= 10.0 requirement around `cases`, fix interval casting
rwhitten577 5ade4b8
Merge remote-tracking branch 'upstream/main' into pr/rwhitten577/2000
dangotbanned 3248a50
refactor: Use `@require.backend_version`
dangotbanned 5df6b65
refactor(typing): Remove implict `Self`
dangotbanned ae79ca4
ci: Make sure `ibis` is installed
dangotbanned ea32978
ci: Include `ibis` in coverage
dangotbanned d0490d7
refactor: Use `not_implemented`
dangotbanned 89275e3
ci: omit `_ibis.typing`
dangotbanned 88e36c0
more coverage
dangotbanned 5467fcf
Reduce pytest 3.8 & 3.9 coverage requirement to 75
rwhitten577 95a4e4d
Merge branch 'main' into feature/initial-ibis-lazyframe
rwhitten577 9a8788c
Add ibis to _namespace.py and update to latest nw API changes
rwhitten577 7590e57
Add ibis to _namespace LazyOnly alias
rwhitten577 5245d29
no cover on ibis decimal/u128 type conversion
rwhitten577 c5df728
Clean up ibis rolling window min_samples check
rwhitten577 08ab976
Add _NativeIbis as protocol
rwhitten577 e733e61
fix(typing): Use a real guard
dangotbanned 77c91e5
fix: (`RET504`)
dangotbanned c9ca39e
chore(typing): Add some more specific members to `_NativeIbis`
dangotbanned b7b4773
refactor(typing): Avoid `mypy` even thinking about `ibis`
dangotbanned bce3412
Update ibis impl in _from_native_impl to match latest duckdb
rwhitten577 61112f5
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned 09935bd
Clean up IbisLazyFrame branches for clear test coverage
rwhitten577 9e78593
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned 4ac6325
Update IbisLazyFrame to latest Compliant*.to_narwhals
rwhitten577 ee4f7f7
Mark ibis expr str.replace and dt.nanosecond not_implemented
rwhitten577 c6ebfbf
Update LazyGroupBy._alias_native_expr type to NativeExprT
rwhitten577 1ce3762
Link to ibis issue for first/last ignoring nulls in window context
rwhitten577 fbe18f5
Merge remote-tracking branch 'upstream/main' into feature/initial-ibiβ¦
rwhitten577 f60bdb5
fix(typing): Resolve `.alias()` issues
dangotbanned 1ee7e48
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned 9e96600
chore(typing): Use typing for `native_to_narwhals_dtype`
dangotbanned 56d99c6
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned 5103d3d
chore(typing): Highlight why `pyright` sees the issue now
dangotbanned 39d5a82
Mark Ibis skew not_implemented
rwhitten577 ce6d334
Only raise on Ibis concat where how == diagonal
rwhitten577 bf584b4
Ibis remove name preserving logic in mean_horizonal
rwhitten577 4656742
Ibis don't cast to str in Expr.n_unique or Expr.len
rwhitten577 c1f8179
Ibis add more coverage to dtype conversion, fix Ibis Interval init
rwhitten577 ae0bb57
Merge branch 'main' into feature/initial-ibis-lazyframe
rwhitten577 907eff5
Add Ibis dt.truncate
rwhitten577 e59efc6
Ibis expr.len use native df.count() to include nulls
rwhitten577 5940723
pyright ignore Ibis Interval init arg
rwhitten577 c43f0fa
feat(typing): Add some typing for `IbisExprDateTimeNamespace`
dangotbanned fd6ef79
Merge branch 'feature/initial-ibis-lazyframe' of https://github.com/rβ¦
dangotbanned 1e02d89
refactor Ibis concat_str to simplify
rwhitten577 0be7628
Gate ibis expr.bucket to >= 7.1
rwhitten577 7057c1e
Cast case stmt in ibis concat_str to StringValue
rwhitten577 cd36bb9
refactor: Simplifying `expr`
dangotbanned dff6236
Merge branch 'feature/initial-ibis-lazyframe' of https://github.com/rβ¦
dangotbanned 7e5764b
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned e3b418e
feat(typing): Make `expr_str` mostly typed
dangotbanned 4a047a9
chore: Remove trailing commas
dangotbanned 8eccaf7
little less keywords
dangotbanned d150b23
Remove Ibis join predicate check for l/r lens
rwhitten577 630003a
Simplify ibis concat_str
rwhitten577 c6566e3
Remove ibis version gate on concat_str
rwhitten577 809102b
Simplify dtype check
rwhitten577 c8a1296
Remove ibis .name where not needed in namespace.py
rwhitten577 efa47c6
Remove ibis .name where not needed in expr.py
rwhitten577 7af6053
Simplify ibis group by agg
rwhitten577 1c9f1de
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned 0fbc0ec
refactor: simplify ibis df.sort
rwhitten577 661044a
refactor: simplify ibis df.sort again
rwhitten577 c6eccc4
refactor: simplify ibis df.join_asof branching & predicate handling
rwhitten577 290449d
Merge branch 'main' into feature/initial-ibis-lazyframe
rwhitten577 ccaa9dc
refactor: add util to drop ibis duplicate join cols
rwhitten577 8c29a31
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned cb7dda4
Merge remote-tracking branch 'upstream/main' into pr/rwhitten577/2000
dangotbanned 909243d
refactor: Reuse new default `LazyExpr.alias`
dangotbanned e336b53
test: Inline `polars` import
dangotbanned 75cf279
test(typing): Fix constructor/backend
dangotbanned 5dcca3d
chore: Remove unused `*args, **kwds`
dangotbanned 529c196
refactor: Simplify joining
dangotbanned 465ec68
test: add `ibis` to `DEFAULT_CONSTRUCTORS`
dangotbanned e1b0486
fix: actually store the result lol
dangotbanned e1cafb6
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned 4355857
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned 828f355
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned b962692
refactor: call ibis tbl.drop once during join
rwhitten577 68e7b8d
refactor: import ibis _ as col at top of expr.py
rwhitten577 6d950c1
refactor: ibis is_unique avoid casting to str
rwhitten577 a1f6a48
refactor: remove ibis redundant join predicate checks, add asserts foβ¦
rwhitten577 cc71730
Merge branch 'main' into feature/initial-ibis-lazyframe
rwhitten577 dd956a6
Merge branch 'main' into feature/initial-ibis-lazyframe
dangotbanned File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.