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 Details

class cs.project_metricclass_manager

Manages the project granularity 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_flags characterizing the new metric class.
Return type:

project_metricclass

Returns:

The newly-created project_metricclass .

Raises:

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>
static lookup(tag)

Get the project_metricclass that has the specified tag.

Parameters:tag (str) – The metric class tag.
Return type:project_metricclass
Returns:The project_metricclass with the specified tag.
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 a project_metricclass_manager .

Return type:project_metricclass_iterator
Returns: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