Safe-DS / DSL

Statically checked Data Science programs.
https://dsl.safeds.com
MIT License
11 stars 0 forks source link

feat: eda plot view #1161

Closed SmiteDeluxe closed 1 month ago

SmiteDeluxe commented 1 month ago

Closes #955 Closes #986

Summary of Changes

Implemented history/action structure for webview to add new actions to state and have them (if external and info not already present) send execute requests to runner that are then cancellable or deployed in correct order. Only fully working for Plots/Tabs at the moment, that are on deploy added to tabs state and set as currentIndex. All Tabs and Table retain their state. Runner uses existing methods in RunnerAPI to get back to relevant state by executing past manipulating actions and then returns the result of the new action (only if plots right now).

Tabs can be created by selecting columns and right clicking, zooming in on profiling images or by creating an empty tab with the plus icon in the sidebar. There in the guided menu users can change the current Tab to display other info. At that point the tab will go into building state and show prompts, loading screens and buttons accordingly. Typings are adapted to abstract as much as possible (mainly around column count for tabs, none, one and two) and stores are heavily used for reactivity.

github-actions[bot] commented 1 month ago

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ CSS stylelint 1 0 0 1.71s
✅ JSON jsonlint 1 0 0.19s
✅ JSON npm-package-json-lint yes no 0.75s
✅ JSON prettier 21 0 0 3.36s
✅ JSON v8r 1 0 2.55s
✅ REPOSITORY git_diff yes no 0.25s
✅ TSX eslint 19 0 0 9.73s
✅ TYPESCRIPT eslint 9 0 0 8.44s
✅ TYPESCRIPT prettier 9 0 0 1.55s

See detailed report in MegaLinter reports _Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff_

_MegaLinter is graciously provided by OX Security_

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (1a24a18) to head (7364077). Report is 1 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1161 +/- ## ========================================= Coverage 100.00% 100.00% ========================================= Files 110 110 Lines 19238 19238 Branches 4114 4114 ========================================= Hits 19238 19238 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

SmiteDeluxe commented 1 month ago

@lars-reimann a note on this: Creating a boxplot on a non-numeric column throws an error. For other plots this works fine. Should I manually disallow boxplots for categorical columns (with my limited interpretation of categorical vs numerical atm) or is there smth to be done elsewhere?

lars-reimann commented 1 month ago

@SmiteDeluxe There are several options:

We could also add the options ignore_errors and ignore_warnings to the program (soon run) message (=> https://github.com/Safe-DS/Runner/issues/113).

SmiteDeluxe commented 1 month ago

@lars-reimann Will go wit the is_numeric then for now and disallow boxplots for other columns. Will do a new PR for that after this is merged!

lars-reimann commented 1 month ago

@lars-reimann Will go wit the is_numeric then for now and disallow boxplots for other columns. Will do a new PR for that after this is merged!

Alright. I probably won't be able to review this PR before the weekend.

lars-reimann commented 1 month ago

Although, maybe I'll find time to review it tomorrow morning and do another release for the lab. Looks awesome at first glance!

SmiteDeluxe commented 1 month ago

@lars-reimann for this: ExperimentalDataType.is_numeric

Do I need to define my own stubs?

lars-reimann commented 1 month ago

Nope, it's in the latest release.

lars-reimann commented 1 month ago

:tada: This PR is included in version 0.16.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket: