class project_metricclass_manager¶
Manages the project granularity metric classes ( project_metricclass ) associated with an analysis.
Use a project_metricclass_iterator to iterate over the project-granularity metric classes associated with an analysis. For example:
for e in project_metricclass_manager.metricclasses():
print('project_metricclass: ', e)
project_metricclass_manager Members¶
| Constructors | none |
| Static Methods | create(), lookup(), metricclasses() |
project_metricclass_manager Details¶
-
class
cs.project_metricclass_manager¶ Manages the
projectgranularity metric classes (project_metricclass) associated with an analysis.-
static
create(tag, desc[, flags = metricclass_flags.NONE])¶ Create and return a new
project_metricclass, without specifying a computation function.Parameters: - tag (str) –
A short name (tag) that will, in combination with the granularity, uniquely identify this metric class. The tag must:
- Start with characters matching [a-zA-Z]
- Only contain characters matching [a-zA-Z][0-9] _-
- Have length <= 15 characters
- desc (str) – A human-readable description of the metric. When a metric shows up in a user interface, this is what is displayed.
- flags (
metricclass_flags) – (optional)metricclass_flagscharacterizing the new metric class.
Return type: Returns: The newly-created
project_metricclass.Raises: result.ELEMENT_ALREADY_PRESENTif there is already aproject_metricclasswhose tag istag.result.ERROR_INVALID_ARGUMENTiftagordescdoes not conform to the requirements described above.result.ERROR_INVALID_PHASE_FOR_OPERATIONif called outside the top level scope of the plug-in.
Only suitable for use in your plug-in’s top-level scope. Do not use it inside visitors.
Use this form if your plug-in will be explicitly computing all values for the new metric class and reporting them with
project_metricclass.report().If you want to create a metric class whose values will be computed and reported automatically by CodeSonar, use a metric function decorator.
>>> project_metricclass_manager.create('macro', 'normal', metricclass_flags.POST_ANALYSIS) <cs.metricclass macro>
>>> project_metricclass_manager.create('right_to_left', '-D__LDBL_HAS_QUIET_NAN__=1') <cs.metricclass right_to_left>
- tag (str) –
-
static
lookup(tag)¶ Get the
project_metricclassthat has the specifiedtag.Parameters: tag (str) – The metric class tag. Return type: project_metricclassReturns: The project_metricclasswith the specifiedtag.Raises: result.ELEMENT_NOT_PRESENT>>> project_metricclass_manager.lookup('LCodeOnly') <cs.metricclass LCodeOnly>
-
static
metricclasses()¶ Get an iterator over the metric classes (
project_metricclass) in aproject_metricclass_manager.Return type: project_metricclass_iteratorReturns: The initialized iterator. >>> for mc in project_metricclass_manager.metricclasses(): # iteration managed by project_metricclass_iterator.__iter__() ... # and project_metriclass_iterator.__next__() ... if 'com' in mc.tag().lower(): ... print(mc.tag()) ... LCom LComOnly
-
static