Skip to content

Conversation

@Schmluk
Copy link
Collaborator

@Schmluk Schmluk commented Oct 1, 2025

  • Implements Introspection
  • Adds Introspection viewer

Remaining todos:

  • Will cleanup the readme
  • There is a bug that type params are always marked as default further down the tree, will fix this.

Otherwise runs, feel free to give it a try and LMK what you think!

@Schmluk Schmluk requested a review from nathanhhughes October 1, 2025 17:11
@Schmluk Schmluk marked this pull request as ready for review October 2, 2025 02:25
@Schmluk
Copy link
Collaborator Author

Schmluk commented Oct 2, 2025

  • Fixed the bugs and readme, I think this is good to be tested / let me know if there is feedback!

Copy link
Collaborator

@nathanhhughes nathanhhughes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Very excited to try it out

if (!fs::exists(file)) {
std::stringstream ss;
ss << "File " << file << " does not exist!";
ss << "File '" << file << "' does not exist!";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(minor) the streaming operator for filepaths adds quotes by default (I think you end up with the literal '"/some/filepath"' unless you do file.string()

} catch (const std::exception& e) {
std::stringstream ss;
ss << "Failure for " << file << ": " << e.what();
ss << "Failure for '" << file << "': " << e.what();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto for the filesystem streaming operator

RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install(DIRECTORY introspection_viewer/ DESTINATION ${CMAKE_INSTALL_BINDIR})
install(PROGRAMS introspection_viewer/introspection_viewer.py
RENAME config_utilities_viewer
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor preference for config-utilities-viewer to match composite-configs stylistically

~RegistrationGuard() {
internal::ConfigFactory<BaseT>::template removeEntry<ConfigT>(type);
internal::ObjectWithConfigFactory<BaseT, Args...>::removeEntry(type);
internal::ModuleRegistry::registerConfig<DerivedT, ConfigT>(type);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I missing something for why this has to be re-registered in the destructor? I don't think this changes too much when running the unit tests via ctest, but might break the factory registration tests when running all the tests locally

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! I have honestly no idea how that got there 😱

@Schmluk Schmluk merged commit fd91fa8 into main Oct 2, 2025
1 check passed
@Schmluk Schmluk deleted the feature/inrtospection branch October 2, 2025 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants