feat: intelmqctl interface #2646
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My proposal is to implement miniterface. This gives us various advantages.
Automatic GUI and colourful helps
If left empty, there is an automatic wizzard. Note the file-picker button.
The automatic wizzard for intelmqctl has multiple steps, according to the subcommands:
Automatic TUI
On machines without display (ex. through SSH), there is an automatic fallback for a mouse-clickable text interface.
Transparent parser
Instead of the
argparse, I've refactored the configuration to dataclasses.So instead of this structure we have something more readable.
The dataclass mentioned:
IDE benefits
The miniterface would have worked with our argparse too but refactoring into dataclasses will give us benefits. Automatic type control, IDE suggestions and IDE is now able to show hints (which is impossible with the old
argparse).Also, it allows us a direct usage of complex types instead of the basic ones the
arpgarsesupports. It works well withEnums,Paths, dates, etc.Conclusion
The functionality is equal. Are you interested in this PR, what do you think? Are there any changes I should catch up?