Skip to content

synt.expr.tuple ¤

tuple_ module-attribute ¤

tuple_ = Tuple

Alias Tuple.

tup module-attribute ¤

tup = Tuple

Alias Tuple.

Tuple ¤

Bases: Expression

Tuple expression.

Examples:

t = tup(litstr("abc"))
assert t.into_code() == "('abc',)"
Source code in synt/expr/tuple.py
class Tuple(expr.Expression):
    r"""Tuple expression.

    Examples:
        ```python
        t = tup(litstr("abc"))
        assert t.into_code() == "('abc',)"
        ```
    """

    items: list[expr.Expression]
    """Tuple items."""

    precedence = expr.ExprPrecedence.Atom
    expr_type = expr.ExprType.Tuple

    def __init__(self, *items: expr.IntoExpression):
        """Initialize a tuple expression.

        Args:
            items: Tuple items.
        """
        self.items = [i.into_expression() for i in items]

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

    def into_code_implicit(self) -> str:
        """Convert the tuple into a string representation implicitly, omitting the parentheses."""
        item_text = ", ".join(x.into_code() for x in self.items)
        if len(self.items) == 1:
            item_text += ","
        return item_text

precedence class-attribute instance-attribute ¤

precedence = Atom

expr_type class-attribute instance-attribute ¤

expr_type = Tuple

items instance-attribute ¤

1
2
3
items: list[Expression] = [
    into_expression() for i in items
]

Tuple items.

__init__ ¤

__init__(*items: IntoExpression)

Initialize a tuple expression.

Parameters:

Name Type Description Default
items IntoExpression

Tuple items.

()
Source code in synt/expr/tuple.py
def __init__(self, *items: expr.IntoExpression):
    """Initialize a tuple expression.

    Args:
        items: Tuple items.
    """
    self.items = [i.into_expression() for i in items]

into_code ¤

into_code() -> str
Source code in synt/expr/tuple.py
def into_code(self) -> str:
    return f"({self.into_code_implicit()})"

into_code_implicit ¤

into_code_implicit() -> str

Convert the tuple into a string representation implicitly, omitting the parentheses.

Source code in synt/expr/tuple.py
def into_code_implicit(self) -> str:
    """Convert the tuple into a string representation implicitly, omitting the parentheses."""
    item_text = ", ".join(x.into_code() for x in self.items)
    if len(self.items) == 1:
        item_text += ","
    return item_text