with \
     make_context_manager1() as cm1, \
     make_context_manager2() as cm2, \
     make_context_manager3() as cm3, \
     make_context_manager4() as cm4 \
:
    pass


# Leading comment
with \
     make_context_manager1() as cm1, \
     make_context_manager2(), \
     make_context_manager3() as cm3, \
     make_context_manager4() \
:
    pass


with \
     new_new_new1() as cm1, \
     new_new_new2() \
:
    pass


with (
     new_new_new1() as cm1,
     new_new_new2()
):
    pass


# Leading comment.
with (
     # First comment.
     new_new_new1() as cm1,
     # Second comment.
     new_new_new2()
     # Last comment.
):
    pass


with \
    this_is_a_very_long_call(looong_arg1=looong_value1, looong_arg2=looong_value2) as cm1, \
    this_is_a_very_long_call(looong_arg1=looong_value1, looong_arg2=looong_value2, looong_arg3=looong_value3, looong_arg4=looong_value4) as cm2 \
:
    pass


with mock.patch.object(
    self.my_runner, "first_method", autospec=True
) as mock_run_adb, mock.patch.object(
    self.my_runner, "second_method", autospec=True, return_value="foo"
):
    pass


with xxxxxxxx.some_kind_of_method(
    some_argument=[
        "first",
        "second",
        "third",
    ]
).another_method() as cmd:
    pass


async def func():
    async with \
        make_context_manager1() as cm1, \
        make_context_manager2() as cm2, \
        make_context_manager3() as cm3, \
        make_context_manager4() as cm4 \
    :
        pass

    async with some_function(
        argument1, argument2, argument3="some_value"
    ) as some_cm, some_other_function(
        argument1, argument2, argument3="some_value"
    ):
        pass



# don't remove the brackets here, it changes the meaning of the code.
with (x, y) as z:
    pass


# output


with (
    make_context_manager1() as cm1,
    make_context_manager2() as cm2,
    make_context_manager3() as cm3,
    make_context_manager4() as cm4,
):
    pass


# Leading comment
with (
    make_context_manager1() as cm1,
    make_context_manager2(),
    make_context_manager3() as cm3,
    make_context_manager4(),
):
    pass


with new_new_new1() as cm1, new_new_new2():
    pass


with new_new_new1() as cm1, new_new_new2():
    pass


# Leading comment.
with (
    # First comment.
    new_new_new1() as cm1,
    # Second comment.
    new_new_new2(),
    # Last comment.
):
    pass


with (
    this_is_a_very_long_call(
        looong_arg1=looong_value1, looong_arg2=looong_value2
    ) as cm1,
    this_is_a_very_long_call(
        looong_arg1=looong_value1,
        looong_arg2=looong_value2,
        looong_arg3=looong_value3,
        looong_arg4=looong_value4,
    ) as cm2,
):
    pass


with (
    mock.patch.object(self.my_runner, "first_method", autospec=True) as mock_run_adb,
    mock.patch.object(
        self.my_runner, "second_method", autospec=True, return_value="foo"
    ),
):
    pass


with xxxxxxxx.some_kind_of_method(
    some_argument=[
        "first",
        "second",
        "third",
    ]
).another_method() as cmd:
    pass


async def func():
    async with (
        make_context_manager1() as cm1,
        make_context_manager2() as cm2,
        make_context_manager3() as cm3,
        make_context_manager4() as cm4,
    ):
        pass

    async with (
        some_function(argument1, argument2, argument3="some_value") as some_cm,
        some_other_function(argument1, argument2, argument3="some_value"),
    ):
        pass


# don't remove the brackets here, it changes the meaning of the code.
with (x, y) as z:
    pass
