Skip to content

synt.tokens.kv_pair ¤

pair module-attribute ¤

pair = KVPair

Alias for KVPair.

kv module-attribute ¤

kv = KVPair

Alias for KVPair.

KVPair ¤

Bases: Expression

A key-value pair, aka a: b.

This is mainly used in dict initializing ({a: b}).

Source code in synt/tokens/kv_pair.py
class KVPair(Expression):
    r"""A key-value pair, aka `a: b`.

    This is mainly used in dict initializing (`{a: b}`)."""

    key: Expression
    """Key expression."""
    value: Expression
    """Value expression."""
    precedence = ExprPrecedence.Atom
    expr_type = ExprType.KeyValuePair

    def __init__(self, key: IntoExpression, value: IntoExpression):
        """Initialize a key-value pair.

        Args:
            key: Key expression.
            value: Value expression.

        Examples:
            ```python
            kv_pair = kv(id_("a"), id_("b"))
            assert kv_pair.into_code() == "a: b"
            ```
        """
        self.key = key.into_expression()
        self.value = value.into_expression()

    def into_code(self) -> str:
        return f"{self.key.into_code()}: {self.value.into_code()}"

precedence class-attribute instance-attribute ¤

precedence = Atom

expr_type class-attribute instance-attribute ¤

expr_type = KeyValuePair

key instance-attribute ¤

key: Expression = into_expression()

Key expression.

value instance-attribute ¤

value: Expression = into_expression()

Value expression.

__init__ ¤

__init__(key: IntoExpression, value: IntoExpression)

Initialize a key-value pair.

Parameters:

Name Type Description Default
key IntoExpression

Key expression.

required
value IntoExpression

Value expression.

required

Examples:

kv_pair = kv(id_("a"), id_("b"))
assert kv_pair.into_code() == "a: b"
Source code in synt/tokens/kv_pair.py
def __init__(self, key: IntoExpression, value: IntoExpression):
    """Initialize a key-value pair.

    Args:
        key: Key expression.
        value: Value expression.

    Examples:
        ```python
        kv_pair = kv(id_("a"), id_("b"))
        assert kv_pair.into_code() == "a: b"
        ```
    """
    self.key = key.into_expression()
    self.value = value.into_expression()

into_code ¤

into_code() -> str
Source code in synt/tokens/kv_pair.py
def into_code(self) -> str:
    return f"{self.key.into_code()}: {self.value.into_code()}"