Registry / ai-ml / etils
library1.14.0pypypi✓ verified 30d ago

etils (eclectic utils) is an open-source collection of Python utilities designed for machine learning and scientific computing workflows. Each top-level submodule is self-contained and independent, prefixed by 'e' (e.g., `epath`, `epy`) to avoid name collisions. This modular design allows users to import only the necessary components, minimizing dependencies. The library is actively maintained, with frequent updates.

pip install etils
INSTALL
IMPORT
SIG · ETILS
E
etils
ai-mlpythonv1.14.0
Install
3.0s avg
Import
—
Disk
70MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v1.13.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 95.1MB
glibc
py 3.10–3.910 runs
installs and imports cleanly · install 3.0s · import 0.000s · 91MB
70MB installed
● package 70MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

etils
✓ import etils
✗ import etils.epath

This example demonstrates the usage of `epath` for basic file operations. `epath.Path` extends `pathlib.Path` to seamlessly handle both local and cloud-based file paths (e.g., `gs://`, `s3://`) by integrating with respective cloud storage libraries.

from etils import epath # epath provides a pathlib-like API with cloud storage support (gs://, s3://) # For local paths, it behaves like pathlib.Path local_path = epath.Path("/tmp/etils_example.txt") local_path.write_text("Hello from etils epath!") print(f"File created at: {local_path}") print(f"Content: {local_path.read_text()}") # Clean up (optional) local_path.unlink()
Debug
Known issues
gotchaEtils is designed with independent submodules; importing `etils` directly does not expose all functionalities. Users must explicitly `from etils import <submodule>` (e.g., `from etils import epath`) to access specific utilities.
fix
Always use `from etils import <submodule>` for required functionality. Do not expect `import etils` to make all sub-utilities available.
affects: All versions
breakingMany features are behind optional dependencies (extras). Installing only `pip install etils` will lead to `ModuleNotFoundError` if you attempt to use functionality from submodules like `epath` or `ejax` without installing `pip install etils[epath]` or similar.
fix
Install `etils` with the specific extras corresponding to the submodules you intend to use, e.g., `pip install etils[epath,epy]`.
affects: All versions
gotchaThe return value format of `epath.Path.stat()` might not strictly match `pathlib.Path.stat()`. This can cause subtle incompatibilities or `AttributeError` if code expects specific attributes only present in `pathlib`'s `stat` result.
fix
Carefully review the documentation for `epath.Path.stat()` and adapt code to its specific return structure, or use only commonly available attributes for maximum compatibility.
affects: All versions
deprecatedPrevious versions may have included or exposed certain utilities (e.g., `epy.cached_property`) that have since been removed or relocated, leading to `AttributeError` on upgrade.
fix
Consult the `etils` release notes or GitHub issues for migration guides. For `epy.cached_property`, consider using standard library `functools.cached_property` if applicable to your Python version.
affects: <=1.13.0 (potentially)
gotchaThere's an open issue (#756) regarding `eapp.better_logging()` potentially causing double logging output. This can lead to redundant or confusing log messages in applications using `eapp`.
fix
Monitor GitHub issues for a resolution. As a workaround, inspect your logging configuration to prevent duplicate handlers or adjust `eapp.better_logging()` parameters if available.
affects: All versions
Upgrade
Version history
1.14.0latest on PyPI · released Mar 4, 2026
Audit
Dependencies
array_typesoptionalFor typing annotations for JAX and NumPy arrays
epathoptionalFor pathlib-like API with cloud storage support (gs://, s3://)
epyoptionalFor general-purpose Python utilities
etreeoptionalFor universal tree manipulation utilities (TensorFlow, JAX, DeepMind tree)
enpoptionalFor NumPy utilities
ecolaboptionalFor Colab/Jupyter utilities
edcoptionalFor dataclass utilities
eappoptionalFor Absl flags/app utilities
Agent activity
26 hits · last 30 days
node
21
Amazon
1
OpenAI (training)
1
Resources
etils — pip install etils · libregistry