Skip to content

Commit 19ad6c7

Browse files
committed
dev: refactor column re-creation
We're gonna have to call this for every change to the easy change properties.
1 parent f3a0d11 commit 19ad6c7

File tree

1 file changed

+34
-37
lines changed

1 file changed

+34
-37
lines changed

src/structlog/dev.py

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -684,17 +684,18 @@ def add_meaningless_arg(arg: str) -> None:
684684
styles = self.get_default_column_styles(colors, force_colors)
685685

686686
self._repr_native_str = repr_native_str
687-
688-
self._configure_columns(
689-
styles=styles,
690-
level_styles=self.get_default_level_styles(colors)
687+
self._styles = styles
688+
self._level_styles = (
689+
self.get_default_level_styles(colors)
691690
if level_styles is None
692-
else level_styles,
693-
pad_level=pad_level,
694-
timestamp_key=timestamp_key,
695-
event_key=event_key,
696-
pad_event=pad_event,
691+
else level_styles
697692
)
693+
self._pad_event = pad_event
694+
self._timestamp_key = timestamp_key
695+
self._event_key = event_key
696+
self._pad_level = pad_level
697+
698+
self._configure_columns()
698699

699700
@classmethod
700701
def get_default_column_styles(
@@ -730,71 +731,67 @@ def get_default_column_styles(
730731

731732
return _colorful_styles
732733

733-
def _configure_columns(
734-
self,
735-
*,
736-
styles: ColumnStyles,
737-
level_styles: dict[str, str],
738-
pad_level: bool,
739-
timestamp_key: str,
740-
event_key: str,
741-
pad_event: int,
742-
) -> None:
734+
def _configure_columns(self) -> None:
743735
"""
744-
Re-configures columns according to the given styles and parameters.
736+
Re-configure self._columns and self._default_column_formatter
737+
according to our current settings.
738+
739+
Overwrite existing columns settings, regardless of whether they were
740+
explicitly passed by the user or derived by us.
745741
"""
746-
self._styles = styles
747-
level_to_color = level_styles.copy()
742+
level_to_color = self._level_styles.copy()
748743

749744
for key in level_to_color:
750-
level_to_color[key] += styles.bright
745+
level_to_color[key] += self._styles.bright
751746
self._longest_level = len(
752747
max(level_to_color.keys(), key=lambda e: len(e))
753748
)
754749

755750
self._default_column_formatter = KeyValueColumnFormatter(
756-
styles.kv_key,
757-
styles.kv_value,
758-
styles.reset,
751+
self._styles.kv_key,
752+
self._styles.kv_value,
753+
self._styles.reset,
759754
value_repr=self._repr,
760755
width=0,
761756
)
762757

763758
logger_name_formatter = KeyValueColumnFormatter(
764759
key_style=None,
765-
value_style=styles.bright + styles.logger_name,
766-
reset_style=styles.reset,
760+
value_style=self._styles.bright + self._styles.logger_name,
761+
reset_style=self._styles.reset,
767762
value_repr=str,
768763
prefix="[",
769764
postfix="]",
770765
)
771766

772-
level_width = 0 if not pad_level else None
767+
level_width = 0 if not self._pad_level else None
773768

774769
self._columns = [
775770
Column(
776-
timestamp_key,
771+
self._timestamp_key,
777772
KeyValueColumnFormatter(
778773
key_style=None,
779-
value_style=styles.timestamp,
780-
reset_style=styles.reset,
774+
value_style=self._styles.timestamp,
775+
reset_style=self._styles.reset,
781776
value_repr=str,
782777
),
783778
),
784779
Column(
785780
"level",
786781
LogLevelColumnFormatter(
787-
level_to_color, reset_style=styles.reset, width=level_width
782+
level_to_color,
783+
reset_style=self._styles.reset,
784+
width=level_width,
788785
),
789786
),
790787
Column(
791-
event_key,
788+
self._event_key,
792789
KeyValueColumnFormatter(
793790
key_style=None,
794-
value_style=styles.bright,
795-
reset_style=styles.reset,
791+
value_style=self._styles.bright,
792+
reset_style=self._styles.reset,
796793
value_repr=str,
797-
width=pad_event,
794+
width=self._pad_event,
798795
),
799796
),
800797
Column("logger", logger_name_formatter),

0 commit comments

Comments
 (0)