Skip to content

Commit 7935efe

Browse files
authored
Allow setting sort_keys on current ConsoleRenderer (hynek#756)
1 parent 17f4023 commit 7935efe

File tree

4 files changed

+35
-1
lines changed

4 files changed

+35
-1
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ You can find our backwards-compatibility policy [here](https://github.com/hynek/
3030
```
3131
[#749](https://github.com/hynek/structlog/pull/749)
3232

33+
- Same for *sort_keys*.
34+
3335
- Added `structlog.dev.ConsoleRenderer.get_default_column_styles` for reuse the default column styles.
3436
[#741](https://github.com/hynek/structlog/pull/741)
3537

docs/api.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ API Reference
7676
.. automodule:: structlog.dev
7777

7878
.. autoclass:: ConsoleRenderer
79-
:members: get_default_level_styles, get_default_column_styles, exception_formatter
79+
:members: get_default_level_styles, get_default_column_styles, exception_formatter, sort_keys
8080

8181
.. autofunction:: get_active_console_renderer
8282
.. autoexception:: NoConsoleRendererConfiguredError

src/structlog/dev.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,22 @@ def exception_formatter(self, value: ExceptionRenderer) -> None:
856856
"""
857857
self._exception_formatter = value
858858

859+
@property
860+
def sort_keys(self) -> bool:
861+
"""
862+
Whether to sort keys when formatting.
863+
864+
.. versionadded:: 25.5.0
865+
"""
866+
return self._sort_keys
867+
868+
@sort_keys.setter
869+
def sort_keys(self, value: bool) -> None:
870+
"""
871+
.. versionadded:: 25.5.0
872+
"""
873+
self._sort_keys = value
874+
859875

860876
_SENTINEL = object()
861877

tests/test_dev.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,22 @@ def test_exception_formatter_property(self, cr):
696696
assert sentinel is cr.exception_formatter
697697
assert sentinel is cr._exception_formatter
698698

699+
def test_sort_keys_property(self, cr):
700+
"""
701+
The sort_keys setting can be set and retrieved without re-instantiating
702+
ConsoleRenderer.
703+
"""
704+
assert cr.sort_keys is True
705+
assert cr._sort_keys is True
706+
707+
cr.sort_keys = False
708+
assert cr.sort_keys is False
709+
assert cr._sort_keys is False
710+
711+
cr.sort_keys = True
712+
assert cr.sort_keys is True
713+
assert cr._sort_keys is True
714+
699715

700716
class TestSetExcInfo:
701717
def test_wrong_name(self):

0 commit comments

Comments
 (0)