epicsarchiver.statistics.pv_names ================================= .. py:module:: epicsarchiver.statistics.pv_names .. autoapi-nested-parse:: PV Names module, methods for dealing with PV Names. Attributes ---------- .. autoapisummary:: epicsarchiver.statistics.pv_names.LOG epicsarchiver.statistics.pv_names.PV_NAME_REGEX epicsarchiver.statistics.pv_names.PV_NAME_PARTS epicsarchiver.statistics.pv_names.INVALID_SUFFIXES Functions --------- .. autoapisummary:: epicsarchiver.statistics.pv_names._get_pv_parts epicsarchiver.statistics.pv_names._count_pvs_with_parts epicsarchiver.statistics.pv_names._map_pv_name_parts_to_pvs epicsarchiver.statistics.pv_names._get_pv_parts_stats epicsarchiver.statistics.pv_names.log_pv_parts_stats epicsarchiver.statistics.pv_names._check_suffix_match epicsarchiver.statistics.pv_names._check_internal epicsarchiver.statistics.pv_names._check_names epicsarchiver.statistics.pv_names.get_invalid_names Module Contents --------------- .. py:data:: LOG :type: logging.Logger .. py:data:: PV_NAME_REGEX :value: '(?P[a-zA-Z0-9\\-]+):(?P[a-zA-Z\\-]+)\\-[0-9a-zA-Z]+:*' .. py:data:: PV_NAME_PARTS :value: ['system', 'device'] .. py:function:: _get_pv_parts(pv: str) -> list[str] .. py:function:: _count_pvs_with_parts(pvs: set[str], named_parts: set[str]) -> list[tuple[str, int]] .. py:function:: _map_pv_name_parts_to_pvs(pvs: set[str]) -> dict[str, set[str]] .. py:function:: _get_pv_parts_stats(pvs: set[str]) -> dict[str, list[tuple[str, int]]] Generate count of pvs with statistics per pv name part. :param pvs: Set of pvs :type pvs: set[str] :returns: count of each pv with specific part .. py:function:: log_pv_parts_stats(pvs: set[str]) -> None Log the number of pvs affected by statistics per part of the pv name. :param pvs: List of PVs with found statistics :type pvs: set[str] .. py:data:: INVALID_SUFFIXES :value: ['ACCESS', 'Access', 'BaseVersion', 'EPICS_VERS', 'EPICS_VERSION', 'GTIM_CUR_SRC',... .. py:function:: _check_suffix_match(pv: str) -> str | None .. py:function:: _check_internal(pv: str) -> bool .. py:function:: _check_names(pvs: set[str]) -> list[epicsarchiver.statistics.models.stat_responses.NameCheckResponse] .. py:function:: get_invalid_names(archiver: epicsarchiver.statistics.services.archiver_statistics.ArchiverWrapper) -> list[epicsarchiver.statistics.models.stat_responses.NameCheckResponse] :async: Checks a list of pvs has an invalid suffix or is internal (contains #). :param archiver: Archiver to check :type archiver: ArchiverWrapper :returns: Response to check :rtype: list[NameCheckResponse]