-
Notifications
You must be signed in to change notification settings - Fork 81
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
[I/O] Remove column interface for structure files #1398
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1398 +/- ##
==========================================
- Coverage 97.55% 97.53% -0.02%
==========================================
Files 227 227
Lines 8785 8726 -59
==========================================
- Hits 8570 8511 -59
Misses 215 215
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
It is difficult to review deletions.
I have done my best to compare the deletions with the points given in #1397 and browsed the existing files, that nothing is left.
Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the output must not be changed! Only the get interface of input files because it is broken. @seqan/core am I right? Sorry if I did not make this clear in the task! :( But I see that you have separate commits 👍 So it will be easy to revert it
With the code you removed you know cannot do fout = fin
anymore can you? Is this tested? (It is for sequence files)
Also: Please add a notion of this change in the changelog! since it is an API change :)
Yes, seqan3/test/unit/io/structure_file/structure_file_output_test.cpp Lines 378 to 380 in cfcc96e
seqan3/test/unit/io/structure_file/structure_file_output_test.cpp Lines 324 to 331 in cfcc96e
|
Well, the output files don't have a get interface so that shouldn't be a problem. I mean it would essentially boil down to the decision of whether 1 is so much better than 2. /*1*/ fout = std::tie(c1, c2, c3));
...
/*2*/ std::ranges::move(views::zip(c1, c2, c3), std::back_inserter(fout)); Note, that 1 might not be supported by all file types. Can be done very wrong by doing:
The difference is subtle and when doing wrong would result in copying the entire data into the tuple before writing it to the file. But also I haven't used either interface in a use case so there might be other valid points I am not considering.
Why not? But I am very certain that there is at least one snippet that should fail if this is not working anymore?! |
I agree the functions should be removed. You can still use assignment by range interface and do fout = views::zip(c1, c2, c3); No moving and back-inserters required :) |
I agree, we should remove the interface then. And we should add a test for the example @h-2 gave :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Just one tiny thing.
And can you merge the changelog commit into the actual commit that introduced the change? such that those appear together :)
CHANGELOG.md
Outdated
@@ -58,6 +58,11 @@ If possible, provide tooling that performs the changes, e.g. a shell-script. | |||
* **The `type_list` header has moved:** | |||
If you included `<seqan3/core/type_list.hpp>` you need to change the path to `<seqan3/core/type_list/type_list.hpp>`. | |||
|
|||
#### Input/Output |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#### Input/Output | |
#### I/O |
💅 Since this is the actual directory name ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was already a section Input/Output
in the file above so I wanted to keep it consistent. I changed both to I/O
now.
5a67567
to
4bc537f
Compare
I made two commits:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One more thing I noticed. We do not have the tag [API]. Only
[FEATURE] Whenever you implement something new and shiny
[FIX] Whenever you fix some wrong code in the source
[DOC] Whenever you do something only(!) related to the documentation
[INFRA] Whenever you change something of the build system or CI related
[TEST] Whenever you do something related to the tests (unit or benchmark)
[MISC] Whenever it does not fit to any of the above
I think MISC is fine :) If you change the names I'll merge.
change snippet and test to implementation with zip iterator
4bc537f
to
b6e51bd
Compare
Even better. |
Resolves #1397.