-
Notifications
You must be signed in to change notification settings - Fork 6
Refactor developer API with transports and app launcher #67
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
Conversation
|
Considering that the Epics/Tango control system support is intended to give the external interface for the controller rather than carry out the "business logic" - the name |
|
I believe in the same topic there is merit in:
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #67 +/- ##
==========================================
+ Coverage 86.74% 87.52% +0.77%
==========================================
Files 25 28 +3
Lines 1056 1162 +106
==========================================
+ Hits 916 1017 +101
- Misses 140 145 +5 ☔ View full report in Codecov by Sentry. |
|
I broadly agree with these changes. It is interesting that you have repurposed the |
This was also difficult to name. It is basically no backend, just an interactive python shell where you can manually poke things. |
Thanks Gary. This is indeed still a bit coarse. Hmm that merge is a very interesting idea - I like it. There is another thing to consider which is that Tom has proposed that we should produce a schema for each device (controller config and transport config) |
I see! The soft ioc dependency confused me, I would hope to try break interdependency. Tom has supported both the idea of dropping the interactive terminal and just using a debugger but equally also the idea of an interactive terminal that works for all transport options to just poke variables. Im not sure we will be able to do an interactive terminal for Tango (or webserver) without solving the higher problem of running multiple transports at once because I run the server in the main thread as I dont get an option to pass an event loop. |
|
@GDYendell A minimal example: When executed: Example of the config which conforms to the expected schema (to do: handling of a k8s values.yaml) |
4eb422a to
b099d41
Compare
b099d41 to
9edc6a4
Compare
GDYendell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comments on first commit
|
I am broadly in agreement with the changes so far, but this adds more use of "mapping" within controller, which I don't like. I think we should have a new class Also I think this is beginning to overlap with #87 so we should keep that in mind. |
This reverts commit c3874c9.
|
@GDYendell Ready |
GDYendell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Happy to squash merge because it is not clear what commits this could be broken into that would still be functional in isolation, but could you write a good summary of all the things that are being added/changed here when you do the merge?
|
Agreed. Thanks for all the review comments @GDYendell - I think its looking neat now. Can do |
Now that im working on a device with both an epics and tango option, im finding the current public interface a bit clumsy
Particularly:
INFO: PVXS QSRV2 is loaded, permitted, and ENABLED) .To think about:
[project.optional-dependencies]to install only what is needed in the manner done by the Polars librarypip install 'fastcs[tango]'This is opinionated so heres a draft
Im proposing to go from:
To:
A tango instance will then look like:
Heres my example device DiamondLightSource/thorlabs-mff-fastcs#8