{"id":7853,"library":"voxel51-eta","title":"ETA (Extensible Toolkit for Analytics)","description":"Voxel51 ETA (Extensible Toolkit for Analytics) is an internal Python library primarily designed to power the Voxel51 FiftyOne computer vision framework. It provides core utilities for data handling, media processing (video/image), and other analytical tasks. The current version is 0.15.5, with frequent patch and minor releases.","status":"active","version":"0.15.5","language":"en","source_language":"en","source_url":"https://github.com/voxel51/eta","tags":["computer-vision","analytics","toolkit","internal","voxel51","fiftyone"],"install":[{"cmd":"pip install voxel51-eta","lang":"bash","label":"Install stable version"}],"dependencies":[{"reason":"Requires Python 3.9 or newer.","package":"python","optional":false}],"imports":[{"note":"For loading and managing ETA configurations.","symbol":"Config","correct":"from eta.core.config import Config"},{"note":"Represents a generic ETA dataset structure.","symbol":"ETADataset","correct":"from eta.core.datasets import ETADataset"},{"note":"Utility to get the base data directory for ETA.","symbol":"get_eta_data_dir","correct":"from eta.core.utils import get_eta_data_dir"}],"quickstart":{"code":"import os\nfrom eta.core.utils import get_eta_data_dir\n\n# ETA is primarily an internal toolkit for FiftyOne. \n# This quickstart demonstrates a basic utility function.\n\ntry:\n    eta_data_dir = get_eta_data_dir()\n    print(f\"ETA data directory: {eta_data_dir}\")\n    \n    if not os.path.exists(eta_data_dir):\n        print(f\"Creating ETA data directory at: {eta_data_dir}\")\n        os.makedirs(eta_data_dir)\n    \n    # Example: creating a dummy file in the ETA data directory\n    dummy_file_path = os.path.join(eta_data_dir, \"quickstart_dummy.txt\")\n    with open(dummy_file_path, \"w\") as f:\n        f.write(\"This is a dummy file created by ETA quickstart.\")\n    print(f\"Dummy file created at: {dummy_file_path}\")\n    \nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    print(\"ETA is an internal toolkit; direct usage might require deeper knowledge of its integration with FiftyOne.\")","lang":"python","description":"This quickstart shows how to access the default data directory used by ETA, demonstrating a basic utility function. As an internal toolkit, extensive standalone examples are less common, but core utilities are accessible."},"warnings":[{"fix":"For general computer vision tasks and analytics, consider using the higher-level `fiftyone` library directly, which abstracts away much of `eta`'s underlying complexity.","message":"The `voxel51-eta` library is primarily an internal toolkit developed for Voxel51's FiftyOne computer vision framework. While public on PyPI, it is not typically used as a standalone library by end-users. Its APIs might be less stable or documented for independent development compared to external-facing libraries.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure your Python environment is running Python 3.9 or a later version before installing or upgrading `voxel51-eta` to version `0.15.0` or higher.","message":"Python 2 compatibility was completely removed in `v0.15.0`. The library now strictly requires Python 3.9 or newer.","severity":"breaking","affected_versions":"<0.15.0"},{"fix":"Update `voxel51-eta` to version `0.15.3` or higher by running `pip install --upgrade voxel51-eta` to ensure compatibility with `numpy>=2.0`.","message":"Compatibility issues with `numpy>=2.0` were addressed in `v0.15.3`, specifically regarding video processing operations that used `numpy.fromstring` (now `numpy.frombuffer`). If you encounter errors related to `fromstring()` with recent NumPy versions, your `eta` version might be too old.","severity":"gotcha","affected_versions":"0.15.0-0.15.2"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Install the library using pip: `pip install voxel51-eta`","cause":"The `voxel51-eta` package has not been installed in your current Python environment.","error":"ModuleNotFoundError: No module named 'eta'"},{"fix":"Upgrade `voxel51-eta` to `0.15.3` or newer to fix `numpy` compatibility issues: `pip install --upgrade voxel51-eta`","cause":"You are likely using an older version of `voxel51-eta` (prior to `0.15.3`) with `numpy>=2.0`, which deprecated `numpy.fromstring` in favor of `numpy.frombuffer` for bytes-like objects.","error":"TypeError: fromstring() was called with a non-string type."},{"fix":"Consult the `voxel51-eta` source code or `FiftyOne` documentation for the correct API. For typical use cases, consider using `FiftyOne` directly as it provides a stable and documented interface.","cause":"You are attempting to access a specific class or function (`ETADataset` in this case) that might have been renamed, moved, or removed in your version of `eta`. As an internal toolkit, its API can be less stable and more subject to change.","error":"AttributeError: module 'eta.core.datasets' has no attribute 'ETADataset'"}]}