Module textual.features

Expand source code
from __future__ import annotations

import sys

from typing import cast

if sys.version_info >= (3, 8):
    from typing import Final, Literal
else:
    from typing_extensions import Final, Literal

FEATURES: Final = {"devtools", "debug", "headless"}

FeatureFlag = Literal["devtools", "debug", "headless"]


def parse_features(features: str) -> frozenset[FeatureFlag]:
    """Parse features env var

    Args:
        features (str): Comma separated feature flags

    Returns:
        frozenset[FeatureFlag]: A frozen set of known features.
    """

    features_set = frozenset(
        feature.strip().lower() for feature in features.split(",") if feature.strip()
    ).intersection(FEATURES)

    return cast("frozenset[FeatureFlag]", features_set)

Functions

def parse_features(features: str) ‑> frozenset[FeatureFlag]

Parse features env var

Args

features : str
Comma separated feature flags

Returns

frozenset[FeatureFlag]
A frozen set of known features.
Expand source code
def parse_features(features: str) -> frozenset[FeatureFlag]:
    """Parse features env var

    Args:
        features (str): Comma separated feature flags

    Returns:
        frozenset[FeatureFlag]: A frozen set of known features.
    """

    features_set = frozenset(
        feature.strip().lower() for feature in features.split(",") if feature.strip()
    ).intersection(FEATURES)

    return cast("frozenset[FeatureFlag]", features_set)