-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
Hi, and thanks as always!
While the resulting line is shorter than the width limit, it's without the tradeoff of fewer lines.
I'm requesting that either this behavior change, or that a new parameter be offered, to forgo inlining when the structure has a length of 1 and there is no nesting (either a list with one item which is a string, or a dict with one entry whose value is a string).
Another way of putting it: don't use the inline form when the alternative is already a single line.
Current behavior:
>>> from nestedtext import dumps
>>> print(dumps({'mode': 'plain'}, width=20))
{mode: plain}
>>> print(dumps({'navigation': {'mode': 'plain'}}, width=20))
navigation:
{mode: plain}
>>> print(dumps({'mode': [1]}, width=20))
{mode: [1]}
>>> print(dumps([1], width=20))
[1]
>>> print(dumps([1, 2], width=20))
[1, 2]
>>> print(dumps([{'mode': 'one'}], width=20))
[{mode: one}]Requested behavior:
>>> from nestedtext import dumps
>>> print(dumps({'mode': 'plain'}, width=20))
mode: plain
>>> print(dumps({'navigation': {'mode': 'plain'}}, width=20))
navigation:
mode: plain
>>> print(dumps({'mode': [1]}, width=20))
{mode: [1]}
>>> print(dumps([1], width=20))
- 1
>>> print(dumps([1, 2], width=20))
[1, 2]
>>> print(dumps([{'mode': 'one'}], width=20))
[{mode: one}]Diff of current and requested behavior from above:
--- current.py 2026-01-27 13:49:06.581031210 -0500
+++ requested.py 2026-01-27 13:48:56.801759721 -0500
@@ -1,16 +1,16 @@
>>> from nestedtext import dumps
>>> print(dumps({'mode': 'plain'}, width=20))
-{mode: plain}
+mode: plain
>>> print(dumps({'navigation': {'mode': 'plain'}}, width=20))
navigation:
- {mode: plain}
+ mode: plain
>>> print(dumps({'mode': [1]}, width=20))
{mode: [1]}
>>> print(dumps([1], width=20))
-[1]
+- 1
>>> print(dumps([1, 2], width=20))
[1, 2]Side by side view of the same diff:

Metadata
Metadata
Assignees
Labels
No labels