---
source: crates/ruff_python_formatter/tests/fixtures.rs
input_file: crates/ruff_python_formatter/resources/test/fixtures/black/cases/function2.py
---
## Input

```python
def f(
  a,
  **kwargs,
) -> A:
    with cache_dir():
        if something:
            result = (
                CliRunner().invoke(black.main, [str(src1), str(src2), "--diff", "--check"])
            )
    limited.append(-limited.pop())  # negate top
    return A(
        very_long_argument_name1=very_long_value_for_the_argument,
        very_long_argument_name2=-very.long.value.for_the_argument,
        **kwargs,
    )
def g():
    "Docstring."
    def inner():
        pass
    print("Inner defs should breathe a little.")
def h():
    def inner():
        pass
    print("Inner defs should breathe a little.")


if os.name == "posix":
    import termios
    def i_should_be_followed_by_only_one_newline():
        pass
elif os.name == "nt":
    try:
        import msvcrt
        def i_should_be_followed_by_only_one_newline():
            pass

    except ImportError:

        def i_should_be_followed_by_only_one_newline():
            pass

elif False:

    class IHopeYouAreHavingALovelyDay:
        def __call__(self):
            print("i_should_be_followed_by_only_one_newline")
else:

    def foo():
        pass

with hmm_but_this_should_get_two_preceding_newlines():
    pass
```

## Black Differences

```diff
--- Black
+++ Ruff
@@ -36,7 +36,6 @@
 
     def i_should_be_followed_by_only_one_newline():
         pass
-
 elif os.name == "nt":
     try:
         import msvcrt
@@ -54,7 +53,6 @@
     class IHopeYouAreHavingALovelyDay:
         def __call__(self):
             print("i_should_be_followed_by_only_one_newline")
-
 else:
 
     def foo():
```

## Ruff Output

```python
def f(
    a,
    **kwargs,
) -> A:
    with cache_dir():
        if something:
            result = CliRunner().invoke(
                black.main, [str(src1), str(src2), "--diff", "--check"]
            )
    limited.append(-limited.pop())  # negate top
    return A(
        very_long_argument_name1=very_long_value_for_the_argument,
        very_long_argument_name2=-very.long.value.for_the_argument,
        **kwargs,
    )


def g():
    "Docstring."

    def inner():
        pass

    print("Inner defs should breathe a little.")


def h():
    def inner():
        pass

    print("Inner defs should breathe a little.")


if os.name == "posix":
    import termios

    def i_should_be_followed_by_only_one_newline():
        pass
elif os.name == "nt":
    try:
        import msvcrt

        def i_should_be_followed_by_only_one_newline():
            pass

    except ImportError:

        def i_should_be_followed_by_only_one_newline():
            pass

elif False:

    class IHopeYouAreHavingALovelyDay:
        def __call__(self):
            print("i_should_be_followed_by_only_one_newline")
else:

    def foo():
        pass


with hmm_but_this_should_get_two_preceding_newlines():
    pass
```

## Black Output

```python
def f(
    a,
    **kwargs,
) -> A:
    with cache_dir():
        if something:
            result = CliRunner().invoke(
                black.main, [str(src1), str(src2), "--diff", "--check"]
            )
    limited.append(-limited.pop())  # negate top
    return A(
        very_long_argument_name1=very_long_value_for_the_argument,
        very_long_argument_name2=-very.long.value.for_the_argument,
        **kwargs,
    )


def g():
    "Docstring."

    def inner():
        pass

    print("Inner defs should breathe a little.")


def h():
    def inner():
        pass

    print("Inner defs should breathe a little.")


if os.name == "posix":
    import termios

    def i_should_be_followed_by_only_one_newline():
        pass

elif os.name == "nt":
    try:
        import msvcrt

        def i_should_be_followed_by_only_one_newline():
            pass

    except ImportError:

        def i_should_be_followed_by_only_one_newline():
            pass

elif False:

    class IHopeYouAreHavingALovelyDay:
        def __call__(self):
            print("i_should_be_followed_by_only_one_newline")

else:

    def foo():
        pass


with hmm_but_this_should_get_two_preceding_newlines():
    pass
```


