diff --git a/python/datafusion/dataframe_formatter.py b/python/datafusion/dataframe_formatter.py
index 27f00f9c3..2323224b8 100644
--- a/python/datafusion/dataframe_formatter.py
+++ b/python/datafusion/dataframe_formatter.py
@@ -135,9 +135,6 @@ class DataFrameHtmlFormatter:
session
"""
- # Class variable to track if styles have been loaded in the notebook
- _styles_loaded = False
-
def __init__(
self,
max_cell_length: int = 25,
@@ -260,23 +257,6 @@ def set_custom_header_builder(self, builder: Callable[[Any], str]) -> None:
"""
self._custom_header_builder = builder
- @classmethod
- def is_styles_loaded(cls) -> bool:
- """Check if HTML styles have been loaded in the current session.
-
- This method is primarily intended for debugging UI rendering issues
- related to style loading.
-
- Returns:
- True if styles have been loaded, False otherwise
-
- Example:
- >>> from datafusion.dataframe_formatter import DataFrameHtmlFormatter
- >>> DataFrameHtmlFormatter.is_styles_loaded()
- False
- """
- return cls._styles_loaded
-
def format_html(
self,
batches: list,
@@ -315,18 +295,7 @@ def format_html(
# Build HTML components
html = []
- # Only include styles and scripts if:
- # 1. Not using shared styles, OR
- # 2. Using shared styles but they haven't been loaded yet
- include_styles = (
- not self.use_shared_styles or not DataFrameHtmlFormatter._styles_loaded
- )
-
- if include_styles:
- html.extend(self._build_html_header())
- # If we're using shared styles, mark them as loaded
- if self.use_shared_styles:
- DataFrameHtmlFormatter._styles_loaded = True
+ html.extend(self._build_html_header())
html.extend(self._build_table_container_start())
@@ -338,7 +307,7 @@ def format_html(
html.append("")
# Add footer (JavaScript and messages)
- if include_styles and self.enable_cell_expansion:
+ if self.enable_cell_expansion:
html.append(self._get_javascript())
# Always add truncation message if needed (independent of styles)
@@ -375,14 +344,20 @@ def format_str(
def _build_html_header(self) -> list[str]:
"""Build the HTML header with CSS styles."""
- html = []
- html.append("")
+ html.append(f"")
return html
def _build_table_container_start(self) -> list[str]:
@@ -570,28 +545,31 @@ def _get_default_css(self) -> str:
def _get_javascript(self) -> str:
"""Get JavaScript code for interactive elements."""
return """
-
- """
+
+"""
class FormatterManager:
@@ -712,24 +690,9 @@ def reset_formatter() -> None:
>>> reset_formatter() # Reset formatter to default settings
"""
formatter = DataFrameHtmlFormatter()
- # Reset the styles_loaded flag to ensure styles will be reloaded
- DataFrameHtmlFormatter._styles_loaded = False
set_formatter(formatter)
-def reset_styles_loaded_state() -> None:
- """Reset the styles loaded state to force reloading of styles.
-
- This can be useful when switching between notebook sessions or
- when styles need to be refreshed.
-
- Example:
- >>> from datafusion.html_formatter import reset_styles_loaded_state
- >>> reset_styles_loaded_state() # Force styles to reload in next render
- """
- DataFrameHtmlFormatter._styles_loaded = False
-
-
def _refresh_formatter_reference() -> None:
"""Refresh formatter reference in any modules using it.
diff --git a/python/tests/test_dataframe.py b/python/tests/test_dataframe.py
index c9ae38d8e..a3870ead8 100644
--- a/python/tests/test_dataframe.py
+++ b/python/tests/test_dataframe.py
@@ -42,7 +42,6 @@
configure_formatter,
get_formatter,
reset_formatter,
- reset_styles_loaded_state,
)
from datafusion.expr import Window
from pyarrow.csv import write_csv
@@ -2177,27 +2176,15 @@ def test_html_formatter_shared_styles(df, clean_formatter_state):
# First, ensure we're using shared styles
configure_formatter(use_shared_styles=True)
- # Get HTML output for first table - should include styles
html_first = df._repr_html_()
-
- # Verify styles are included in first render
- assert "