diff --git a/.changeset/red-onions-check.md b/.changeset/red-onions-check.md new file mode 100644 index 00000000..6ebd7099 --- /dev/null +++ b/.changeset/red-onions-check.md @@ -0,0 +1,5 @@ +--- +'@e2b/data-extractor': patch +--- + +Omit blank figures diff --git a/chart_data_extractor/e2b_charts/main.py b/chart_data_extractor/e2b_charts/main.py index 7e748add..7f51dbbd 100644 --- a/chart_data_extractor/e2b_charts/main.py +++ b/chart_data_extractor/e2b_charts/main.py @@ -88,6 +88,14 @@ def get_chart_from_ax( return chart +def is_figure_blank(axes: List[Axes]) -> bool: + """Check if a Matplotlib figure is blank (has no user-added artists).""" + for ax in axes: + if ax.has_data(): + return False # The figure contains user-added data + return True # No data found, figure is blank + + def chart_figure_to_chart(figure: Figure) -> Optional[Chart]: """ This method is used to extract data from the figure object to a dictionary @@ -95,7 +103,7 @@ def chart_figure_to_chart(figure: Figure) -> Optional[Chart]: # Get all Axes objects from the Figure axes = figure.get_axes() - if not axes: + if not axes or is_figure_blank(axes): return elif len(axes) > 1: return SuperChart(figure=figure) diff --git a/chart_data_extractor/tests/graphs/test_bar.py b/chart_data_extractor/tests/charts/test_bar.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_bar.py rename to chart_data_extractor/tests/charts/test_bar.py diff --git a/chart_data_extractor/tests/charts/test_blank.py b/chart_data_extractor/tests/charts/test_blank.py new file mode 100644 index 00000000..5aa77861 --- /dev/null +++ b/chart_data_extractor/tests/charts/test_blank.py @@ -0,0 +1,10 @@ +import matplotlib.pyplot as plt + +from e2b_charts import chart_figure_to_chart +from e2b_charts.charts import BarChart, ChartType + + +def test_blank_chart(): + figure, _ = plt.subplots() + chart = chart_figure_to_chart(figure) + assert chart is None diff --git a/chart_data_extractor/tests/graphs/test_box_and_whiskers.py b/chart_data_extractor/tests/charts/test_box_and_whiskers.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_box_and_whiskers.py rename to chart_data_extractor/tests/charts/test_box_and_whiskers.py diff --git a/chart_data_extractor/tests/graphs/test_categorical_scale.py b/chart_data_extractor/tests/charts/test_categorical_scale.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_categorical_scale.py rename to chart_data_extractor/tests/charts/test_categorical_scale.py diff --git a/chart_data_extractor/tests/graphs/test_datetime_scale.py b/chart_data_extractor/tests/charts/test_datetime_scale.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_datetime_scale.py rename to chart_data_extractor/tests/charts/test_datetime_scale.py diff --git a/chart_data_extractor/tests/graphs/test_line.py b/chart_data_extractor/tests/charts/test_line.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_line.py rename to chart_data_extractor/tests/charts/test_line.py diff --git a/chart_data_extractor/tests/graphs/test_log_graph.py b/chart_data_extractor/tests/charts/test_log_graph.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_log_graph.py rename to chart_data_extractor/tests/charts/test_log_graph.py diff --git a/chart_data_extractor/tests/graphs/test_pie.py b/chart_data_extractor/tests/charts/test_pie.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_pie.py rename to chart_data_extractor/tests/charts/test_pie.py diff --git a/chart_data_extractor/tests/graphs/test_scatter.py b/chart_data_extractor/tests/charts/test_scatter.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_scatter.py rename to chart_data_extractor/tests/charts/test_scatter.py diff --git a/chart_data_extractor/tests/graphs/test_supergraph.py b/chart_data_extractor/tests/charts/test_supergraph.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_supergraph.py rename to chart_data_extractor/tests/charts/test_supergraph.py diff --git a/chart_data_extractor/tests/graphs/test_unknown.py b/chart_data_extractor/tests/charts/test_unknown.py similarity index 100% rename from chart_data_extractor/tests/graphs/test_unknown.py rename to chart_data_extractor/tests/charts/test_unknown.py