# --function-definition-extra-indent = False
# --other-line-continuation-extra-indent = False
def function(
    arg1_with_very_long_name: int,
    arg2_with_very_long_name: float,
    arg3_with_very_long_name: list,
):
    print('Hello world')


def func2(
    arg1_with_very_long_name: int,
    arg2_with_very_long_name: float,
    arg3_with_very_long_name: list,
) -> None:
    print('Hello world')


def func3(a, b, c, d, e) -> int:
    return 2


def outer(
    arg1_with_very_long_name: int,
    *,
    arg2_with_very_long_name: float,
    arg3_with_very_long_name: list,
) -> int:
    def middle(
        arg1_with_very_long_name: int,
        arg2_with_very_long_name: float,
        arg3_with_very_long_name: list,
        *args,
    ):
        def inner(
            arg1_with_very_long_name: int,
            arg2_with_very_long_name: float,
            arg3_with_very_long_name: list,
            *args,
            **kwargs,
        ):
            return 1

        print('middle layer')
        return 2

    return 3


class A:
    def __init__(
        self,
        arg1_with_very_long_name: int,
        arg2_with_very_long_name: float,
        *,
        arg3_with_very_long_name: list,
    ) -> None:
        print('hello world')

    def outer(
        self,
        arg1_with_very_long_name: int,
        *,
        arg2_with_very_long_name: float,
        arg3_with_very_long_name: list,
    ) -> int:
        def middle(
            arg1_with_very_long_name: int,
            arg2_with_very_long_name: float,
            arg3_with_very_long_name: list,
            *args,
        ):
            def inner(
                arg1_with_very_long_name: int,
                arg2_with_very_long_name: float,
                arg3_with_very_long_name: list,
                *args,
                **kwargs,
            ):
                class B:
                    def __init__(
                        self,
                        arg1_with_very_long_name: int,
                        arg2_with_very_long_name: float,
                        arg3_with_very_long_name: list,
                        *args,
                        **kwargs,
                    ):
                        print('initialized')

                return 1

            print('middle layer')
            return 2

        return 3


aa = [
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
]


bb = func1(
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
)


cc = {
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    value_with_very_very_very_very_very_very_long_name,
    123123123123123123123123123123123123123123123123123,
    'value_with_very_very_very_very_very_very_long_name',
}


if (
    value_with_very_very_very_very_very_very_long_name
    and value_with_very_very_very_very_very_very_long_name
    and value_with_very_very_very_very_very_very_long_name
    and value_with_very_very_very_very_very_very_long_name
    and value_with_very_very_very_very_very_very_long_name
    and value_with_very_very_very_very_very_very_long_name
    and value_with_very_very_very_very_very_very_long_name
):
    print(123)


some_val_with_very_long_name = (
    'very very very long string' + 'this is an even longer string'
)
