Module neosvrpy.utils

This module define some generic function use at multiple places in the package.

Expand source code
"""
This module define some generic function use at multiple
places in the package.
"""

from enum import Enum
from .classes import OwnerType

def nested_asdict_factory(data):
    """Factory for convert dataclasses as dict.

    Can be use when a dataclass have an Enum.
    Example:

    ```
    dataclasses.asdict(
        <dataclass>,
        dict_factory=nested_asdict_factory,
    )
    ```
    """

    def convert_value(obj):
        if isinstance(obj, Enum):
            return obj.value
        return obj

    return dict((k, convert_value(v)) for k, v in data)

def getOwnerType(ownerId: str) -> str:
    if ownerId.startswith('U-'):
        return OwnerType.USER
    elif ownerId.startswith('G-'):
        return OwnerType.GROUP
    elif ownerId.startswith('M-'):
        return OwnerType.MACHINE
    else:
        return OwnerType.INVALID

Functions

def getOwnerType(ownerId: str) ‑> str
Expand source code
def getOwnerType(ownerId: str) -> str:
    if ownerId.startswith('U-'):
        return OwnerType.USER
    elif ownerId.startswith('G-'):
        return OwnerType.GROUP
    elif ownerId.startswith('M-'):
        return OwnerType.MACHINE
    else:
        return OwnerType.INVALID
def nested_asdict_factory(data)

Factory for convert dataclasses as dict.

Can be use when a dataclass have an Enum. Example:

dataclasses.asdict(
    <dataclass>,
    dict_factory=nested_asdict_factory,
)
Expand source code
def nested_asdict_factory(data):
    """Factory for convert dataclasses as dict.

    Can be use when a dataclass have an Enum.
    Example:

    ```
    dataclasses.asdict(
        <dataclass>,
        dict_factory=nested_asdict_factory,
    )
    ```
    """

    def convert_value(obj):
        if isinstance(obj, Enum):
            return obj.value
        return obj

    return dict((k, convert_value(v)) for k, v in data)