Skip to content

Implement plugin architecture for new instruments - #168

Merged
StuartLittlefair merged 7 commits into
masterfrom
plugins
Jun 26, 2026
Merged

Implement plugin architecture for new instruments#168
StuartLittlefair merged 7 commits into
masterfrom
plugins

Conversation

@StuartLittlefair

Copy link
Copy Markdown
Contributor

This PR fixes #150 by adding a plugin system for third-party instruments.

In the end, the plugin only implements the Rdata class for each new instrument, not classes like Rtime, Rhead etc. My opinion was that these were only used for ultra|hipercam specific scripts like hlogger and all the main functionality is supported just with the use of Rdata.

The only exception I think it ltimes.py, but I don't think supporting this single script is work it.

@martinjohndyer martinjohndyer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Various comments here @StuartLittlefair, if you're around it might be easier to talk through them in person? I tried to take the position of someone totally independent coming in, so some of the comments like which card are required or why the API is what it is come from that point of view.

Comment thread docs/plugins.rst
The |hiper| pipeline supports third-party instruments through a plugin system
based on Python entry-points. A plugin is a Python module that exposes a
small set of classes and a helper function, which the pipeline uses to read raw
data and present it as a stream of :class:`~hipercam.MCCD` objects.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These auto hyperlinks don't actually work at the moment, since we don't build the full autoapi. We can enable that (there's the autoapi_generate_api_docs param in config.py), but it takes a while and there are loads of warnings which is why I didn't in #161. Could be part of a larger refresh of the docs.

Comment thread docs/plugins.rst
Comment thread docs/plugins.rst Outdated
Comment thread docs/plugins.rst Outdated
Comment thread docs/plugins.rst Outdated
Comment thread docs/plugins.rst Outdated
Comment thread docs/plugins.rst
Comment thread docs/plugins.rst
Comment thread hipercam/spooler.py
Comment thread hipercam/spooler.py
Comment thread docs/plugins.rst Outdated
StuartLittlefair and others added 5 commits June 24, 2026 14:53
proper import of astropy fits module

Co-authored-by: Martin Dyer <martin.dyer@sheffield.ac.uk>
@StuartLittlefair
StuartLittlefair merged commit 30055e8 into master Jun 26, 2026
2 checks passed
@StuartLittlefair
StuartLittlefair deleted the plugins branch June 26, 2026 14:33
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.

Support for third party instruments

2 participants