BitmaskStats#

class tollan.utils.fmt.BitmaskStats(bm_cls: type[Flag], bitmask: npt.NDArray)[source]#

Bases: object

Compute and format statistics for bitmask flags.

Use .pformat() for a summary table.

Example

>>> from enum import Flag, auto
>>> import numpy as np
>>> class Status(Flag):
...     OK = auto()
...     WARNING = auto()
...     ERROR = auto()
>>> bitmask = np.array([1, 3, 5, 7])
>>> stats = BitmaskStats(Status, bitmask)
>>> print(stats.pformat())
name     summary
OK       4/4 (100.00%)
WARNING  2/4 (50.00%)
ERROR    2/4 (50.00%)

Attributes Summary

bitmask

bm_cls

stats

Get the statistics table.

Methods Summary

pformat()

Format statistics as string table.

Attributes Documentation

bitmask: npt.NDArray = <dataclasses._MISSING_TYPE object>#
bm_cls: type[Flag] = <dataclasses._MISSING_TYPE object>#
stats#

Get the statistics table.

Returns:

Table with columns: name, selected, total, frac, summary

Return type:

DataFrame

Methods Documentation

pformat() str[source]#

Format statistics as string table.

Returns:

Pretty-formatted table showing name and summary columns

Return type:

str