Avaiga / taipy

Turns Data and AI algorithms into production-ready web applications in no time.
https://www.taipy.io
Apache License 2.0
15.26k stars 1.84k forks source link

Tabular Data: support a callback to change unsupported data type to supported one #457

Open FredLL-Avaiga opened 1 year ago

FredLL-Avaiga commented 1 year ago

What would that feature address display unsupported data type

Description of the ideal solution If a dataframe holds a column with unsupported data, we could handle a user callback that would transform that column to a supported type

Caveats performance ?

Other options Raise an error (as of today)

Acceptance Criteria

ScalarJerk commented 1 month ago

@FredLL-Avaiga to clarify, we're creating a user callback that alerts users of unsupported type errors and then suggests them to convert the data into a supported type as well? (which the user may accept or declineand fix the data by himself)

FredLL-Avaiga commented 1 month ago

That is not what I had in mind. The objective is to allow the dev to define a callback that would transform a specific data from an unknown data-type to a supported data-type (that would fit in a DataFrame) At the moment, we support datetime (ie transform them to str) so that the Dataframe can be jsonified

quest-bot[bot] commented 4 weeks ago

New Quest! image New Quest!

A new Quest has been launched in @Avaiga’s repo. Merge a PR that solves this issue to loot the Quest and earn your reward.


Some loot has been stashed in this issue to reward the solver!

🗡 Comment @quest-bot embark to check-in for this Quest and start solving the issue. Other solvers will be notified!

⚔️ When you submit a PR, comment @quest-bot loot #457 to link your PR to this Quest.

Questions? Check out the docs.

eleensmathew commented 4 weeks ago

Can i work on this?

FlorianJacta commented 4 weeks ago

@ScalarJerk Do you aim to work on this issue?

@eleensmathew You have already been assigned to another issue.

Ujj1225 commented 3 weeks ago

can i work on this issue?

FlorianJacta commented 3 weeks ago

@Ujj1225, I am assigning you this issue. Thank you for your contribution!

Ujj1225 commented 3 weeks ago

@FlorianJacta @FredLL-Avaiga
can i get more insights on this? I checked into the codebase and its huge. Can you tell me in which part of the code is the data is loaded, inspected, or converted into a dataframe?

In a file _data_manager.py I found a __create method, here there is a point where data_node_config._properties.copy() is used. I feel this might be the right place to handle unsupported data types by adding a check for data types in the props. Since the data nodes are created based on configurations, the place to handle unsupported data types might be during or right after the node's creation or configuration process, right?

Can you please provide me more insights on this?

FlorianJacta commented 3 weeks ago

I will let the R&D answer you. Maybe, @FabienLelaquais can also jump on this discussion

FredLL-Avaiga commented 3 weeks ago

In the code you can check how we use data_accessors to transform different types of data into tabular data that is handled by our front end component. The indirections are done in the class _DataAccessors

In that class, we return an _InvalidDataAccessor when we cannot handle the type of data.

The aim of this issue is to add a callback to Gui (like on_change or on_action) to let the developer change an unsupported data into a supported data type. I would propose on_invalid_data but I guess @FabienLelaquais might have a better proposition

Ujj1225 commented 3 weeks ago

So, gui has to get a function where it should let developers set a custom function that defines how to handle and transform unsupported data types? I have completed a design which allows the developer to register a function that will change unsupported data types to supported ones And if developer doesnt define a callback, everything will proceed as it is. Will this work or is there something i am missing here?

FredLL-Avaiga commented 3 weeks ago

Please create a PR and we can discuss on that base

Ujj1225 commented 3 weeks ago

@quest-bot embark

quest-bot[bot] commented 3 weeks ago

@Ujj1225 has embarked on their Quest. 🗡

This is not an assignment to the issue. Please check the repo’s contribution guidelines before submitting a PR.

Questions? Check out the docs.

quest-bot[bot] commented 3 weeks ago

🧚 @Ujj1225 has submitted PR https://github.com/Avaiga/taipy/issues/2028 and is claiming the loot.

Keep up the pace, or you'll be left in the shadows.

Questions? Check out the docs.

github-actions[bot] commented 1 week ago

This issue has been labelled as "🥶Waiting for contributor" because it has been inactive for more than 14 days. If you would like to continue working on this issue, please add another comment or create a PR that links to this issue. If a PR has already been created which refers to this issue, then you should explicitly mention this issue in the relevant PR. Otherwise, you will be unassigned in 14 days. For more information please refer to the contributing guidelines.