Skip to content

Conversation

@GDYendell
Copy link
Contributor

@GDYendell GDYendell commented Dec 17, 2025

@codecov
Copy link

codecov bot commented Dec 17, 2025

Codecov Report

❌ Patch coverage is 96.42857% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.83%. Comparing base (d3a4858) to head (3257e71).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
src/fastcs/controllers/base_controller.py 92.59% 2 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #293   +/-   ##
=======================================
  Coverage   90.83%   90.83%           
=======================================
  Files          70       70           
  Lines        2488     2510   +22     
=======================================
+ Hits         2260     2280   +20     
- Misses        228      230    +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@GDYendell GDYendell force-pushed the commands branch 3 times, most recently from 423b7b7 to 3a18861 Compare December 17, 2025 17:08
@GDYendell GDYendell requested a review from shihab-dls December 17, 2025 17:09
@GDYendell GDYendell changed the title Command improvements Refactor Methods to allow overridding @command methods Dec 17, 2025
@GDYendell GDYendell changed the base branch from main to pva-command-buttons December 17, 2025 17:12
Base automatically changed from pva-command-buttons to main December 19, 2025 16:12
Tag existing method with __unbound_command__ / __unbound_scan__ instead
of replacing with callable Command / Scan
Check attributes for this metadata in _bind_attrs
Store Command / Scan instances in self.__command_methods / self.__scan
Replace search in build_controller_api with accessing these members
Remove lazy imports from controller and replace with TYPE_CHECKING
import in methods. This feels more natural, as controllers needs methods
for isinstance checks, whereas methods just needs controllers for type
hinting.

e.g.
/workspaces/fastcs-eiger/src/fastcs_eiger/controllers/odin/eiger_odin_controller.py:28:15
- error: "arm_when_ready" overrides symbol of same name in class
"EigerController"
    "UnboundCommand[EigerOdinController]" is not assignable to
"UnboundCommand[EigerController]"
        Type parameter "Controller_T@UnboundCommand" is invariant, but
"EigerOdinController" is not the same as "EigerController"
(reportIncompatibleVariableOverride)
@GDYendell GDYendell merged commit 9ebdf4d into main Dec 19, 2025
11 checks passed
@GDYendell GDYendell deleted the commands branch December 19, 2025 16:24
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