{"id":9731,"library":"facets-overview","title":"Facets Overview","description":"Facets Overview is a Python library that generates interactive visualizations for analyzing machine learning datasets. It processes data into protobufs, which are then rendered by front-end web components (Polymer). The library is currently at version 1.1.1, with the last release in 2017, indicating it is no longer actively maintained.","status":"abandoned","version":"1.1.1","language":"en","source_language":"en","source_url":"http://github.com/pair-code/facets","tags":["visualization","data exploration","machine learning","jupyter","protobuf","abandoned"],"install":[{"cmd":"pip install facets-overview","lang":"bash","label":"Install with pip"}],"dependencies":[],"imports":[{"note":"Main class for generating feature statistics protobufs.","symbol":"GenericFeatureStatisticsGenerator","correct":"from facets_overview.generic_feature_statistics_generator import GenericFeatureStatisticsGenerator"},{"note":"Protobuf definition for feature statistics.","symbol":"FeatureStatisticsList","correct":"from facets_overview.feature_statistics_pb2 import FeatureStatisticsList"}],"quickstart":{"code":"import pandas as pd\nfrom facets_overview.generic_feature_statistics_generator import GenericFeatureStatisticsGenerator\nfrom IPython.display import display, HTML\n\n# Example data\ndata = [\n    {'feature1': 1, 'feature2': 'cat'},\n    {'feature1': 2, 'feature2': 'dog'},\n    {'feature1': 3, 'feature2': 'cat'}\n]\ndf = pd.DataFrame(data)\n\n# Create the FeatureStatisticsList proto for Facets Overview.\ngfsg = GenericFeatureStatisticsGenerator()\noverview_proto = gfsg.CreateFeatureStatisticsListFromDataFrame(df)\nprotostr = overview_proto.SerializeToString().decode('utf-8')\n\n# Display the Facets Overview UI (requires Jupyter Notebook and nbextension enabled)\nHTML_TEMPLATE = \"\"\"<link rel=\"import\" href=\"/nbextensions/facets_overview/facets-overview.html\">\n        <facets-overview id=\"facets-overview\"></facets-overview>\n        <script>\n          document.querySelector(\"#facets-overview\").protoInput = \"{protostr}\";\n        </script>\"\"\"\nhtml_output = HTML_TEMPLATE.format(protostr=protostr)\ndisplay(HTML(html_output))","lang":"python","description":"This quickstart demonstrates how to generate and display a Facets Overview visualization within a Jupyter Notebook. It uses `pandas` for data handling and `IPython.display` to render the interactive HTML. Note that this requires the `facets_overview` Jupyter nbextension to be enabled and an environment compatible with Polymer 2."},"warnings":[{"fix":"Ensure your Jupyter environment and browser are compatible with Polymer 2. Running old notebooks may require adjustments or specific browser versions.","message":"The v1.0.0 release updated the underlying web component technology from Polymer 1 to Polymer 2. This can break existing display mechanisms or require browser environment updates.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Consider migrating to actively maintained data exploration and visualization libraries such as `pandas-profiling`, `sweetviz`, `explori`, or `TensorFlow Data Validation` (the spiritual successor by Google).","message":"Facets Overview is an abandoned library, with the last release in 2017. It relies on deprecated front-end technologies (Polymer 1/2) and older Python practices, making it largely incompatible with modern web browsers, JupyterLab, and newer Python versions (3.8+).","severity":"deprecated","affected_versions":"all"},{"fix":"Ensure you are running in a classic Jupyter Notebook environment with the `facets_overview` nbextension enabled. For JupyterLab, manual configuration or alternative rendering methods would be required, which are not officially supported.","message":"The display mechanism is tightly coupled to Jupyter Notebooks via nbextensions. It does not natively support JupyterLab or other Python environments without significant workarounds.","severity":"gotcha","affected_versions":"all"},{"fix":"Pin the `protobuf` library to an older, compatible version (e.g., `pip install protobuf<3.20`). Experimentation may be required to find a working version for your specific setup.","message":"Facets Overview uses Google Protobuf for data serialization. There are known compatibility issues with newer `protobuf` library versions, leading to `DecodeError` or `TypeError` exceptions.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-17T00:00:00.000Z","next_check":"2026-07-16T00:00:00.000Z","problems":[{"fix":"Run `pip install facets-overview` to install the library.","cause":"The `facets-overview` package is not installed in your current Python environment.","error":"ModuleNotFoundError: No module named 'facets_overview'"},{"fix":"Try installing an older version of the `protobuf` library: `pip install protobuf<3.20` (or `protobuf==3.19.0` for a specific version known to work with older Google libraries).","cause":"This error often indicates a version mismatch between the `protobuf` library installed in your environment and the `protobuf` version used to compile the `.proto` definitions within `facets-overview`.","error":"google.protobuf.message.DecodeError: Error parsing message"},{"fix":"This is a fundamental limitation of an abandoned library. There is no simple fix for modern browsers. You might need to use an older browser version or a specific environment where these legacy web components are still supported.","cause":"Facets Overview relies on deprecated Web Components v0 APIs (Polymer 1/2 and HTML Imports). Modern browsers have removed support for these features.","error":"Javascript errors in browser console related to '<link rel=\"import\">' or Polymer"},{"fix":"Ensure you are running in a classic Jupyter Notebook and that the `facets_overview` nbextension is enabled (`jupyter nbextension enable --py facets_overview`). For JupyterLab, consider using alternative libraries.","cause":"The visualization relies on Jupyter Notebook nbextensions for rendering and does not have native support or an easy integration path for JupyterLab or other environments.","error":"AttributeError: 'HTML' object has no attribute '_repr_html_' (or similar non-rendering behavior in JupyterLab)"}]}