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

Plugins #30

Draft
wants to merge 12 commits into
base: dev
Choose a base branch
from
Draft

Plugins #30

wants to merge 12 commits into from

Conversation

sezelt
Copy link
Member

@sezelt sezelt commented Jan 7, 2025

This adds the ability to extend py4DGUI using a plugin mechanism. Classes living in the py4d_browser_plugin namespace and possessing certain attributes are automatically discovered and loaded. Currently the interface is minimal, and plugins have complete access to the DataViewer object, but more over time the interface will become more strictly prescribed. As this develops, all non-core features (including ones currently available in the browser) will be implemented as plugins, and this should also help to clarify how to make an effective interface between the core and the plugins.

To-dos:

  • Re-implement calibration menu as internal plugin
  • Re-implement tcBF as internal plugin
  • Re-implement EMPAD2 raw reader as external plugin
  • Create API for plugins to access detector ROI information
  • Update calibration and tcBF plugins to use ROI API

The intention is that this will allow for greater flexibility when adding advanced analysis features as well as the ability to control acquisition hardware directly in the GUI. This also helps maintain a clean separation of state between the core functionality and any ancillary features.

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.

1 participant