starplast.strategy_card
The strategy card: what a strategy answers and how well it works, before any prose.
Selecting a strategy in the Strategies tab shows this card first. It is built to be read in a few seconds and to look the same for every strategy, so two cards can be compared by eye:
header number and name, the method as a chip, the calibration grade as a coloured badge,
and one plain line saying what it answers;
four bars the same four positions on every card (`scorecard.headline`): Better than chance,
Reach, and the two metrics of the strategy's task a biologist asks about first --
each with its 95% interval and a tick at its chance level, and a plain sentence on
hover;
buttons Run, Test and Details (the Guide, the Settings and the Results tables, one click
away);
about four collapsed lines -- what it does, how it is evaluated, what failure looks like,
what success looks like (`strategy_explainers`) -- each opening to its full text;
examples one real failure and one real success, side by side as mini scorecards, and what
the successful run added about genes nobody has labeled.
The bars are painted, not tables, so the eye reads lengths instead of numbers. Colours come from the theme the application is showing, never a literal at a call site.
The palette of the theme the application is showing now.
A rounded label: filled for a grade or verdict, outlined for a method chip.
One headline bar: plain label and value, a painted bar with its interval and chance tick,
and the technical name small underneath. compact drops the technical line (mini cards).
The four headline bars, stacked, in the same positions for every strategy.
A one-line label that shortens its text with an ellipsis rather than wrapping.
The card's stylesheet for the theme in force: sizes relative to the body text size.
About this test: four fields, each one line until opened.
A mini scorecard for one worked example: what was asked, the verdict, four small bars and the one or two sentences saying why it failed or what it found.
What the successful run added: its top calls for genes without a known label.
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal's arguments.
The default view of one strategy: header, four bars, buttons, about, examples.
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal's arguments.
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal's arguments.
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal's arguments.
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal's arguments.
pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal's arguments.
Apply the card stylesheet for the theme and text size in force; True if it changed.