-
Notifications
You must be signed in to change notification settings - Fork 0
app enum improvements #289
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
base: dev
Are you sure you want to change the base?
Conversation
Replaces the internal EnumMapper with a template class AppEnumMapper to allow for specialization per enum type. This change improves type safety and avoids potential conflicts when dealing with multiple enum types.
6e5ec27 to
fe64af9
Compare
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||
Removes the friendship declaration between `AppEnum` and an internal helper class, as it's no longer required. This simplifies the class's interface and reduces potential coupling.
Removes a descriptive comment block in `cafAppEnumMapper.h` that is deemed redundant. The comment provided context about implementation details that are now considered self-evident.
Adds input validation to the enum mapper to prevent empty text, duplicate text/aliases/enum values, and ensures data integrity. Improves efficiency by reserving space in the mapping vector to reduce reallocations and uses algorithms for searching. Also marks some methods as noexcept. Fixes a typo in test code.
Ensures correct type resolution when accessing the AppEnumMapper instance, preventing potential type mismatch issues.
PR Type
Enhancement
Description
Refactors AppEnum to use template-based mapper class
Adds support for std::optional PDM fields
Enhances Python API with key-value store operations
Improves well path and grid property extraction capabilities
Diagram Walkthrough
File Walkthrough
30 files
Refactor AppEnum to use template mapperAdd new template-based enum mapper classAdd specialization for std::optional fieldsAdd scripting support for optional fieldsAdd stream operators for std::optionalAdd well path property extraction methodAdd well path property extraction interfaceAdd grid property sampling for positionsAdd grid property sampling interfaceAdd dogleg calculation utilitiesAdd dogleg calculation interfaceAdd get and remove operationsAdd get and remove method declarationsAdd byte vector conversion utilityAdd byte vector conversion interfaceAdd key-value store Python methodsAdd trajectory properties extractionAdd grid property sampling methodAdd well path collection accessorAdd well path collection interfaceAdd well path import methodAdd well path import interfaceAllow multiple imports of same wellExpose well path name fieldAdd ESMRY file support to dialogsAdd ESMRY file type supportAdd ESMRY file type enumEnhance realization number extractionDetect single ensemble for Everest groupingAdd get and remove service methods4 files
Handle empty strings in optional fieldsFix logic error and add ESMRY supportAdd project version check for axisFix version comparison for undefined minors8 files
Add optional fields test objectAdd optional fields test interfaceAdd optional field unit testsAdd optional field serialization testsAdd key-value store Python testsAdd grid property sampling testsAdd trajectory properties testsAdd underscore separator test1 files
Bump development version to .081 files
Update workflow to Windows 202521 files