# --function-definition-extra-indent = True
# --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'
)
