Source code for vyra_base.defaults.constants
from dataclasses import dataclass
from enum import Enum
from typing import Final, NamedTuple
import uuid
# Namespace to generate unique uuidv5 for a specific module id
MODULE_ID_NAMESPACE: uuid.UUID = uuid.uuid5(uuid.NAMESPACE_DNS, "VYRA")
[docs]
class RequiredVersion(Enum):
"""
Constants used in the V.Y.R.A. universe.
According to "Pyright", annotations like ``Final[str]`` are not allowed.
"""
PYTHON_MIN = (3, 9, 0)
[docs]
@dataclass(slots=True, frozen=True)
class FeederConstants:
"""
Constants for feeder limits.
:cvar MAX_DEFAULT_LENGTH: Default maximum length.
:cvar MAX_PULLREQUESTSFEED_LENGTH: Maximum length for pull requests feed.
:cvar MAX_NEWSFEED_LENGTH: Maximum length for news feed.
:cvar MAX_ERRORFEED_LENGTH: Maximum length for error feed.
:cvar MAX_STATEFEED_LENGTH: Maximum length for state feed.
"""
MAX_DEFAULT_LENGTH: Final[int] = 1000
MAX_PULLREQUESTSFEED_LENGTH: Final[int] = 1000
MAX_NEWSFEED_LENGTH: Final[int] = 1000
MAX_ERRORFEED_LENGTH: Final[int] = 1000
MAX_STATEFEED_LENGTH: Final[int] = 1000
[docs]
@dataclass(slots=True, frozen=True)
class LoggerConstants:
"""
Constants for logger configuration.
:cvar MAX_QUEUE_LENGTH: Maximum queue length for logger.
"""
MAX_QUEUE_LENGTH: Final[int] = 1000
[docs]
@dataclass(slots=True, frozen=True)
class TimeoutConstants:
"""
Sets all constants for handling timeout and message length of the different connection types like async, UDP.
:cvar CONNECT: Timeout for connect (seconds).
:cvar SEND: Timeout for send (seconds).
:cvar RECEIVE: Timeout for receive (seconds).
:cvar CLOSED: Timeout for closed state (seconds).
"""
CONNECT: Final[int] = 5
SEND: Final[int] = 5
RECEIVE: Final[int] = 5
CLOSED: Final[int] = 5
[docs]
@dataclass(slots=True, frozen=True)
class MessageLengthConstants:
"""
Constants for message length.
:cvar RECEIVE: Maximum receive message length (bytes).
"""
RECEIVE: Final[int] = 4096
[docs]
@dataclass(slots=True, frozen=True)
class CyclicRefreshConstants:
"""
Set the cyclic refresh time for the different modules in milliseconds.
:cvar NEWSFEED: Refresh time for news feed (ms).
:cvar LOGGER: Refresh time for logger (ms).
"""
NEWSFEED: Final[int] = 100
LOGGER: Final[int] = 20