Skip to content
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

[Enh]: Add FireDucks support #1413

Closed
ndrezn opened this issue Nov 20, 2024 · 4 comments
Closed

[Enh]: Add FireDucks support #1413

ndrezn opened this issue Nov 20, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@ndrezn
Copy link

ndrezn commented Nov 20, 2024

FireDucks is yet another high-performance dataframe library. It intends to have API compatibility with Pandas. See: https://fireducks-dev.github.io/docs/user-guide/01-intro/

Here's the launch post: https://www.nec.com/en/press/202310/global_20231019_01.html

It's not fully mature yet, and only supports Linux. But it looks like supporting FireDucks could (eventually) be within the scope of the Narwhals project.

FireDucks is BSD-3 licensed: https://github.com/fireducks-dev/fireducks

For now it only has a Linux build.

@MarcoGorelli
Copy link
Member

thanks @ndrezn for the request!

if they do magic with the imports and you just write your code as import pandas as pd, then I'd expect it to just work...will check if that's that case

@MarcoGorelli MarcoGorelli added the enhancement New feature or request label Nov 20, 2024
@FBruzzesi
Copy link
Member

If anyone is interested in picking this up, I made a branch some time ago when someone suggested that on discord. I just merged with the main and solved conflicts and pushed it to the repo.

This is the "out of the box" pandas-like library onboarding, therefore there are around 50ish failing tests.

@MarcoGorelli
Copy link
Member

MarcoGorelli commented Nov 21, 2024

thanks! tbh I don't think fireducks is yet significant enough that we should take on long-term support of it, and more importantly, it's not open source

this might be a good use-case for the standardisation / reference implementation effort brought up in #1370

I kinda feel like generally it's OK for us to take on widely used open source projects, but when a project is neither widely used nor open source, then I think it's up to them to do the work


having said that, I have asked them how we're meant to use fireducks in tests fireducks-dev/fireducks#29

@MarcoGorelli
Copy link
Member

MarcoGorelli commented Nov 24, 2024

Just checked and it's fairly easy to allow fireducks to just work, so I've done that it #1439

looks like they return incorrect results on pretty simple tasks:

(polars-api-compat-dev) marcogorelli@DESKTOP-U8OKFP3:~/polars-api-compat-dev$ cat f.py 
# ruff: noqa
from __future__ import annotations

import pandas as pd

print(pd.Series([1], name='a').where(pd.Series([False]), pd.Series([4])))
(polars-api-compat-dev) marcogorelli@DESKTOP-U8OKFP3:~/polars-api-compat-dev$ python f.py 
0    4
Name: a, dtype: int64
(polars-api-compat-dev) marcogorelli@DESKTOP-U8OKFP3:~/polars-api-compat-dev$ python -m fireducks.pandas f.py 
0   NaN
Name: a, dtype: float64

, so I think the project still has some way to go. I've reported this bug to them

Thanks for the request! Closing as completed in #1439 then

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants