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

```python
long_kwargs_single_line = my_function(
    foo="test, this is a sample value",
    bar=some_long_value_name_foo_bar_baz if some_boolean_variable else some_fallback_value_foo_bar_baz,
    baz="hello, this is a another value",
)

multiline_kwargs_indented = my_function(
    foo="test, this is a sample value",
    bar=some_long_value_name_foo_bar_baz
    if some_boolean_variable
    else some_fallback_value_foo_bar_baz,
    baz="hello, this is a another value",
)

imploding_kwargs = my_function(
    foo="test, this is a sample value",
    bar=a
    if foo
    else b,
    baz="hello, this is a another value",
)

imploding_line = (
    1
    if 1 + 1 == 2
    else 0
)

exploding_line = "hello this is a slightly long string" if some_long_value_name_foo_bar_baz else "this one is a little shorter"

positional_argument_test(some_long_value_name_foo_bar_baz if some_boolean_variable else some_fallback_value_foo_bar_baz)

def weird_default_argument(x=some_long_value_name_foo_bar_baz
        if SOME_CONSTANT
        else some_fallback_value_foo_bar_baz):
    pass

nested = "hello this is a slightly long string" if (some_long_value_name_foo_bar_baz if
                                                    nesting_test_expressions else some_fallback_value_foo_bar_baz) \
    else "this one is a little shorter"

generator_expression = (
    some_long_value_name_foo_bar_baz if some_boolean_variable else some_fallback_value_foo_bar_baz for some_boolean_variable in some_iterable
)


def limit_offset_sql(self, low_mark, high_mark):
    """Return LIMIT/OFFSET SQL clause."""
    limit, offset = self._get_limit_offset_params(low_mark, high_mark)
    return " ".join(
        sql
        for sql in (
            "LIMIT %d" % limit if limit else None,
            ("OFFSET %d" % offset) if offset else None,
        )
        if sql
    )


def something():
    clone._iterable_class = (
        NamedValuesListIterable
        if named
        else FlatValuesListIterable
        if flat
        else ValuesListIterable
    )


def foo(wait: bool = True):
    # This comment is two
    # lines long

    # This is only one
    time.sleep(1) if wait else None
    time.sleep(1) if wait else None

    # With newline above
    time.sleep(1) if wait else None
    # Without newline above
    time.sleep(1) if wait else None


a = "".join(
    (
        "",  # comment
        "" if True else "",
    )
)
```

## Black Differences

```diff
--- Black
+++ Ruff
@@ -1,20 +1,16 @@
 long_kwargs_single_line = my_function(
     foo="test, this is a sample value",
-    bar=(
-        some_long_value_name_foo_bar_baz
-        if some_boolean_variable
-        else some_fallback_value_foo_bar_baz
-    ),
+    bar=some_long_value_name_foo_bar_baz
+    if some_boolean_variable
+    else some_fallback_value_foo_bar_baz,
     baz="hello, this is a another value",
 )
 
 multiline_kwargs_indented = my_function(
     foo="test, this is a sample value",
-    bar=(
-        some_long_value_name_foo_bar_baz
-        if some_boolean_variable
-        else some_fallback_value_foo_bar_baz
-    ),
+    bar=some_long_value_name_foo_bar_baz
+    if some_boolean_variable
+    else some_fallback_value_foo_bar_baz,
     baz="hello, this is a another value",
 )
 
@@ -40,11 +36,9 @@
 
 
 def weird_default_argument(
-    x=(
-        some_long_value_name_foo_bar_baz
-        if SOME_CONSTANT
-        else some_fallback_value_foo_bar_baz
-    ),
+    x=some_long_value_name_foo_bar_baz
+    if SOME_CONSTANT
+    else some_fallback_value_foo_bar_baz,
 ):
     pass
 
@@ -60,11 +54,9 @@
 )
 
 generator_expression = (
-    (
-        some_long_value_name_foo_bar_baz
-        if some_boolean_variable
-        else some_fallback_value_foo_bar_baz
-    )
+    some_long_value_name_foo_bar_baz
+    if some_boolean_variable
+    else some_fallback_value_foo_bar_baz
     for some_boolean_variable in some_iterable
 )
 
@@ -86,7 +78,9 @@
     clone._iterable_class = (
         NamedValuesListIterable
         if named
-        else FlatValuesListIterable if flat else ValuesListIterable
+        else FlatValuesListIterable
+        if flat
+        else ValuesListIterable
     )
 
 
```

## Ruff Output

```python
long_kwargs_single_line = my_function(
    foo="test, this is a sample value",
    bar=some_long_value_name_foo_bar_baz
    if some_boolean_variable
    else some_fallback_value_foo_bar_baz,
    baz="hello, this is a another value",
)

multiline_kwargs_indented = my_function(
    foo="test, this is a sample value",
    bar=some_long_value_name_foo_bar_baz
    if some_boolean_variable
    else some_fallback_value_foo_bar_baz,
    baz="hello, this is a another value",
)

imploding_kwargs = my_function(
    foo="test, this is a sample value",
    bar=a if foo else b,
    baz="hello, this is a another value",
)

imploding_line = 1 if 1 + 1 == 2 else 0

exploding_line = (
    "hello this is a slightly long string"
    if some_long_value_name_foo_bar_baz
    else "this one is a little shorter"
)

positional_argument_test(
    some_long_value_name_foo_bar_baz
    if some_boolean_variable
    else some_fallback_value_foo_bar_baz
)


def weird_default_argument(
    x=some_long_value_name_foo_bar_baz
    if SOME_CONSTANT
    else some_fallback_value_foo_bar_baz,
):
    pass


nested = (
    "hello this is a slightly long string"
    if (
        some_long_value_name_foo_bar_baz
        if nesting_test_expressions
        else some_fallback_value_foo_bar_baz
    )
    else "this one is a little shorter"
)

generator_expression = (
    some_long_value_name_foo_bar_baz
    if some_boolean_variable
    else some_fallback_value_foo_bar_baz
    for some_boolean_variable in some_iterable
)


def limit_offset_sql(self, low_mark, high_mark):
    """Return LIMIT/OFFSET SQL clause."""
    limit, offset = self._get_limit_offset_params(low_mark, high_mark)
    return " ".join(
        sql
        for sql in (
            "LIMIT %d" % limit if limit else None,
            ("OFFSET %d" % offset) if offset else None,
        )
        if sql
    )


def something():
    clone._iterable_class = (
        NamedValuesListIterable
        if named
        else FlatValuesListIterable
        if flat
        else ValuesListIterable
    )


def foo(wait: bool = True):
    # This comment is two
    # lines long

    # This is only one
    time.sleep(1) if wait else None
    time.sleep(1) if wait else None

    # With newline above
    time.sleep(1) if wait else None
    # Without newline above
    time.sleep(1) if wait else None


a = "".join(
    (
        "",  # comment
        "" if True else "",
    )
)
```

## Black Output

```python
long_kwargs_single_line = my_function(
    foo="test, this is a sample value",
    bar=(
        some_long_value_name_foo_bar_baz
        if some_boolean_variable
        else some_fallback_value_foo_bar_baz
    ),
    baz="hello, this is a another value",
)

multiline_kwargs_indented = my_function(
    foo="test, this is a sample value",
    bar=(
        some_long_value_name_foo_bar_baz
        if some_boolean_variable
        else some_fallback_value_foo_bar_baz
    ),
    baz="hello, this is a another value",
)

imploding_kwargs = my_function(
    foo="test, this is a sample value",
    bar=a if foo else b,
    baz="hello, this is a another value",
)

imploding_line = 1 if 1 + 1 == 2 else 0

exploding_line = (
    "hello this is a slightly long string"
    if some_long_value_name_foo_bar_baz
    else "this one is a little shorter"
)

positional_argument_test(
    some_long_value_name_foo_bar_baz
    if some_boolean_variable
    else some_fallback_value_foo_bar_baz
)


def weird_default_argument(
    x=(
        some_long_value_name_foo_bar_baz
        if SOME_CONSTANT
        else some_fallback_value_foo_bar_baz
    ),
):
    pass


nested = (
    "hello this is a slightly long string"
    if (
        some_long_value_name_foo_bar_baz
        if nesting_test_expressions
        else some_fallback_value_foo_bar_baz
    )
    else "this one is a little shorter"
)

generator_expression = (
    (
        some_long_value_name_foo_bar_baz
        if some_boolean_variable
        else some_fallback_value_foo_bar_baz
    )
    for some_boolean_variable in some_iterable
)


def limit_offset_sql(self, low_mark, high_mark):
    """Return LIMIT/OFFSET SQL clause."""
    limit, offset = self._get_limit_offset_params(low_mark, high_mark)
    return " ".join(
        sql
        for sql in (
            "LIMIT %d" % limit if limit else None,
            ("OFFSET %d" % offset) if offset else None,
        )
        if sql
    )


def something():
    clone._iterable_class = (
        NamedValuesListIterable
        if named
        else FlatValuesListIterable if flat else ValuesListIterable
    )


def foo(wait: bool = True):
    # This comment is two
    # lines long

    # This is only one
    time.sleep(1) if wait else None
    time.sleep(1) if wait else None

    # With newline above
    time.sleep(1) if wait else None
    # Without newline above
    time.sleep(1) if wait else None


a = "".join(
    (
        "",  # comment
        "" if True else "",
    )
)
```
