Пример #1
0
def _transform_formatted_value(node):
    if node.value and node.value.lineno == 1:
        if node.lineno != node.value.lineno:
            new_node = astroid.FormattedValue(lineno=node.lineno,
                                              col_offset=node.col_offset,
                                              parent=node.parent)
            new_value = _clone_node_with_lineno(node=node.value,
                                                lineno=node.lineno,
                                                parent=new_node)
            new_node.postinit(value=new_value, format_spec=node.format_spec)
            return new_node
Пример #2
0
def create_format_spec_node(node: ast.Call, value: ast.Name, format_spec: str) -> ast.FormattedValue:
    formatted_value_node = ast.FormattedValue(lineno=node.lineno, col_offset=node.col_offset, parent=node.parent)
    specifications: Optional[ast.JoinedStr]
    if format_spec:
        specifications = ast.JoinedStr(lineno=node.lineno, col_offset=node.col_offset, parent=node.parent,)
        specifications.postinit(values=[ast.Const(format_spec.replace(":", ""))])
    else:
        specifications = None

    formatted_value_node.postinit(value=ast.Name(value.name), format_spec=specifications)

    return formatted_value_node
Пример #3
0
def format_to_fstring_transform(node):

    f_string_node = astroid.JoinedStr(
        lineno=node.lineno,
        col_offset=node.col_offset,
        parent=node.parent,
    )
    formatted_value_node = astroid.FormattedValue(
        lineno=node.lineno,
        col_offset=node.col_offset,
        parent=node.parent,
    )
    formatted_value_node.postinit(value=node.args[0])

    # Removes the {} since it will be represented as
    # formatted_value_node
    string = astroid.Const(node.func.expr.value.replace('{}', ''))

    print node
    f_string_node.postinit(values=[string, formatted_value_node])
    node.keywords = "a"
    return astroid.Const(node.func.expr.value.replace('{}', ''))