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

feat: Improve error handling of TaggedTable #450

Merged
merged 14 commits into from
Jul 13, 2023

Conversation

jxnior01
Copy link
Contributor

Closes #150

Summary of Changes

  • feat: Validated inputs of functions
  • feat: Raised appropriate exceptions with appropriate messages
  • docs: Modified docs
  • tests: Tested all exceptions

@jxnior01 jxnior01 requested a review from a team as a code owner July 13, 2023 12:33
@jxnior01 jxnior01 linked an issue Jul 13, 2023 that may be closed by this pull request
@github-actions
Copy link
Contributor

github-actions bot commented Jul 13, 2023

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ PYTHON black 11 0 0 1.54s
✅ PYTHON mypy 11 0 3.3s
✅ PYTHON ruff 11 0 0 0.13s
✅ REPOSITORY git_diff yes no 0.1s

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

@Marsmaennchen221
Copy link
Contributor

Do we really want to catch every error twice? We already have the logic in the Table methods so the logic stays the same. If we want to change the logic of one of the errors we would have to do this in both the Table and the TaggedTable. I would prefer to only write additional errors in TaggedTable if they only occur in the TaggedTable methods or if they differ from the Table error logic/messages

@jxnior01
Copy link
Contributor Author

Do we really want to catch every error twice? We already have the logic in the Table methods so the logic stays the same. If we want to change the logic of one of the errors we would have to do this in both the Table and the TaggedTable. I would prefer to only write additional errors in TaggedTable if they only occur in the TaggedTable methods or if they differ from the Table error logic/messages

That makes sense, it's not ideal. I'll revise my changes to include additional error handling where necessary.

@codecov
Copy link

codecov bot commented Jul 13, 2023

Codecov Report

Merging #450 (963a1ce) into main (6a097a4) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main      #450   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           49        49           
  Lines         2715      2714    -1     
=========================================
- Hits          2715      2714    -1     
Impacted Files Coverage Δ
src/safeds/data/tabular/containers/_table.py 100.00% <100.00%> (ø)
...rc/safeds/data/tabular/containers/_tagged_table.py 100.00% <100.00%> (ø)

jxnior01 and others added 4 commits July 13, 2023 18:42
…eady raised in `Table`

docs: Improved some docstrings in `Table` and `TaggedTable`
refactor: Fixed the order of column names for `UnknownColumnError` in `Table.add_row` and `Table.add_rows` and improved consistency
feat: Removed `SchemaMismatchError` as we don't need it
…ithub.com/Safe-DS/Stdlib into 150-improve-error-handling-of-taggedtable

� Conflicts:
�	src/safeds/data/tabular/containers/_tagged_table.py
@Marsmaennchen221
Copy link
Contributor

@jxnior01 I removed additional errors that are being raised by the methods from the Table class

@jxnior01
Copy link
Contributor Author

@jxnior01 I removed additional errors that are being raised by the methods from the Table class

Thanks. That was helpful.

@zzril
Copy link
Contributor

zzril commented Jul 13, 2023

Looks good to me, although I've spotted a few cases where we don't make use of the new "suggest columns" feature when raising an UnknownColumnNameError.
Not sure what our criterion is about when to make use of that, though.

Can merge if you like.

@zzril zzril merged commit c5da544 into main Jul 13, 2023
8 checks passed
@zzril zzril deleted the 150-improve-error-handling-of-taggedtable branch July 13, 2023 21:12
lars-reimann pushed a commit that referenced this pull request Jul 13, 2023
## [0.15.0](v0.14.0...v0.15.0) (2023-07-13)

### Features

* Add copy method for tables ([#405](#405)) ([72e87f0](72e87f0)), closes [#275](#275)
* add gaussian noise to image ([#430](#430)) ([925a505](925a505)), closes [#381](#381)
* add schema conversions when adding new rows to a table and schema conversion when creating a new table ([#432](#432)) ([6e9ff69](6e9ff69)), closes [#404](#404) [#322](#322) [#127](#127) [#322](#322) [#127](#127)
* add test for empty tables for the method `Table.sort_rows` ([#431](#431)) ([f94b768](f94b768)), closes [#402](#402)
* added color adjustment feature ([#409](#409)) ([2cbee36](2cbee36)), closes [#380](#380)
* added test_repr table tests ([#410](#410)) ([cb77790](cb77790)), closes [#349](#349)
* discretize table ([#327](#327)) ([5e3da8d](5e3da8d)), closes [#143](#143)
* Improve error handling of TaggedTable ([#450](#450)) ([c5da544](c5da544)), closes [#150](#150)
* Maintain tagging in methods inherited from `Table` class ([#332](#332)) ([bc73a6c](bc73a6c)), closes [#58](#58)
* new error class `OutOfBoundsError` ([#438](#438)) ([1f37e4a](1f37e4a)), closes [#262](#262)
* rename several `Table` methods for consistency ([#445](#445)) ([9954986](9954986)), closes [#439](#439)
* suggest similar columns if column gets accessed that doesnt exist ([#385](#385)) ([6a097a4](6a097a4)), closes [#203](#203)

### Bug Fixes

* added the missing ids in parameterized tests ([#412](#412)) ([dab6419](dab6419)), closes [#362](#362)
* don't warn if `Imputer` transforms column without missing values ([#448](#448)) ([f0cb6a5](f0cb6a5))
* Warnings raised by underlying seaborn and numpy libraries  ([#425](#425)) ([c4143af](c4143af)), closes [#357](#357)
@lars-reimann
Copy link
Member

🎉 This PR is included in version 0.15.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@lars-reimann lars-reimann added the released Included in a release label Jul 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released Included in a release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve error handling of TaggedTable
5 participants