Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions datawrapper/charts/column.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,13 @@ class ColumnChart(
description="List defining the order in which categories appear in the chart and legend",
)

#: A list of columns to exclude from the color key
exclude_from_color_key: list[str] = Field(
default_factory=list,
alias="exclude-from-color-key",
description="A list of columns to exclude from the color key",
)

#: The padding between bars as a percentage of the bar width
bar_padding: int = Field(
default=30,
Expand Down Expand Up @@ -332,6 +339,7 @@ def serialize_model(self) -> dict:
self.color_category,
self.category_labels,
self.category_order,
self.exclude_from_color_key,
),
"color-by-column": bool(self.color_category),
**PlotHeight.serialize(
Expand Down
3 changes: 0 additions & 3 deletions datawrapper/charts/serializers/value_labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,9 +185,6 @@ def deserialize(
result["value_labels_format"] = ""
result["value_labels_placement"] = "outside"

# Derive value_labels_always from show mode
result["value_labels_always"] = show == "always"

else:
# Simple format field (line, arrow, stacked-bar)
if "value-label-format" in api_obj:
Expand Down
9 changes: 0 additions & 9 deletions tests/unit/serializers/test_value_labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ def test_deserialize_hover_mode(self):
"show_value_labels": "hover",
"value_labels_format": "",
"value_labels_placement": "outside",
"value_labels_always": False,
}

def test_deserialize_always_mode(self):
Expand All @@ -137,7 +136,6 @@ def test_deserialize_always_mode(self):
"show_value_labels": "always",
"value_labels_format": "0,0",
"value_labels_placement": "inside",
"value_labels_always": True,
}

def test_deserialize_off_mode(self):
Expand All @@ -154,7 +152,6 @@ def test_deserialize_off_mode(self):
"show_value_labels": "off",
"value_labels_format": "",
"value_labels_placement": "outside",
"value_labels_always": False,
}

def test_deserialize_multiple_column_chart(self):
Expand All @@ -172,7 +169,6 @@ def test_deserialize_multiple_column_chart(self):
"show_value_labels": "always",
"value_labels_format": "0.0a",
"value_labels_placement": "below",
"value_labels_always": True,
}

def test_deserialize_missing_value_labels_object(self):
Expand All @@ -183,7 +179,6 @@ def test_deserialize_missing_value_labels_object(self):
"show_value_labels": "hover",
"value_labels_format": "",
"value_labels_placement": "outside",
"value_labels_always": False,
}

def test_deserialize_with_custom_format(self):
Expand All @@ -200,7 +195,6 @@ def test_deserialize_with_custom_format(self):
"show_value_labels": "hover",
"value_labels_format": "$0,0.00",
"value_labels_placement": "outside",
"value_labels_always": False,
}


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

def test_round_trip_always_mode(self):
"""Test round-trip for always mode."""
Expand All @@ -249,7 +242,6 @@ def test_round_trip_always_mode(self):
assert deserialized["show_value_labels"] == original["show"]
assert deserialized["value_labels_format"] == original["format_str"]
assert deserialized["value_labels_placement"] == original["placement"]
assert deserialized["value_labels_always"] == original["always"]

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