Skip to content

Commit 44f8da7

Browse files
committed
feat(column): add exclude_from_color_key field to ColumnChart
refactor(value_labels): remove value_labels_always from serialization
1 parent a829331 commit 44f8da7

3 files changed

Lines changed: 8 additions & 12 deletions

File tree

datawrapper/charts/column.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,13 @@ class ColumnChart(
127127
description="List defining the order in which categories appear in the chart and legend",
128128
)
129129

130+
#: A list of columns to exclude from the color key
131+
exclude_from_color_key: list[str] = Field(
132+
default_factory=list,
133+
alias="exclude-from-color-key",
134+
description="A list of columns to exclude from the color key",
135+
)
136+
130137
#: The padding between bars as a percentage of the bar width
131138
bar_padding: int = Field(
132139
default=30,
@@ -332,6 +339,7 @@ def serialize_model(self) -> dict:
332339
self.color_category,
333340
self.category_labels,
334341
self.category_order,
342+
self.exclude_from_color_key,
335343
),
336344
"color-by-column": bool(self.color_category),
337345
**PlotHeight.serialize(

datawrapper/charts/serializers/value_labels.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,6 @@ def deserialize(
185185
result["value_labels_format"] = ""
186186
result["value_labels_placement"] = "outside"
187187

188-
# Derive value_labels_always from show mode
189-
result["value_labels_always"] = show == "always"
190-
191188
else:
192189
# Simple format field (line, arrow, stacked-bar)
193190
if "value-label-format" in api_obj:

tests/unit/serializers/test_value_labels.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ def test_deserialize_hover_mode(self):
119119
"show_value_labels": "hover",
120120
"value_labels_format": "",
121121
"value_labels_placement": "outside",
122-
"value_labels_always": False,
123122
}
124123

125124
def test_deserialize_always_mode(self):
@@ -137,7 +136,6 @@ def test_deserialize_always_mode(self):
137136
"show_value_labels": "always",
138137
"value_labels_format": "0,0",
139138
"value_labels_placement": "inside",
140-
"value_labels_always": True,
141139
}
142140

143141
def test_deserialize_off_mode(self):
@@ -154,7 +152,6 @@ def test_deserialize_off_mode(self):
154152
"show_value_labels": "off",
155153
"value_labels_format": "",
156154
"value_labels_placement": "outside",
157-
"value_labels_always": False,
158155
}
159156

160157
def test_deserialize_multiple_column_chart(self):
@@ -172,7 +169,6 @@ def test_deserialize_multiple_column_chart(self):
172169
"show_value_labels": "always",
173170
"value_labels_format": "0.0a",
174171
"value_labels_placement": "below",
175-
"value_labels_always": True,
176172
}
177173

178174
def test_deserialize_missing_value_labels_object(self):
@@ -183,7 +179,6 @@ def test_deserialize_missing_value_labels_object(self):
183179
"show_value_labels": "hover",
184180
"value_labels_format": "",
185181
"value_labels_placement": "outside",
186-
"value_labels_always": False,
187182
}
188183

189184
def test_deserialize_with_custom_format(self):
@@ -200,7 +195,6 @@ def test_deserialize_with_custom_format(self):
200195
"show_value_labels": "hover",
201196
"value_labels_format": "$0,0.00",
202197
"value_labels_placement": "outside",
203-
"value_labels_always": False,
204198
}
205199

206200

@@ -227,7 +221,6 @@ def test_round_trip_hover_mode(self):
227221
assert deserialized["show_value_labels"] == original["show"]
228222
assert deserialized["value_labels_format"] == original["format_str"]
229223
assert deserialized["value_labels_placement"] == original["placement"]
230-
assert deserialized["value_labels_always"] == original["always"]
231224

232225
def test_round_trip_always_mode(self):
233226
"""Test round-trip for always mode."""
@@ -249,7 +242,6 @@ def test_round_trip_always_mode(self):
249242
assert deserialized["show_value_labels"] == original["show"]
250243
assert deserialized["value_labels_format"] == original["format_str"]
251244
assert deserialized["value_labels_placement"] == original["placement"]
252-
assert deserialized["value_labels_always"] == original["always"]
253245

254246
def test_round_trip_off_mode(self):
255247
"""Test round-trip for off mode."""
@@ -271,4 +263,3 @@ def test_round_trip_off_mode(self):
271263
assert deserialized["show_value_labels"] == original["show"]
272264
assert deserialized["value_labels_format"] == original["format_str"]
273265
assert deserialized["value_labels_placement"] == original["placement"]
274-
assert deserialized["value_labels_always"] == original["always"]

0 commit comments

Comments
 (0)