Metadata-Version: 2.1
Name: etils
Version: 0.2.0
Summary: Collection of common python utils
Keywords: utils,jax,tensorflow,tf,machine learning,deep learning
Author-email: Conchylicultor <etils@google.com>
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: etils[array-types] ; extra == "all"
Requires-Dist: etils[ecolab] ; extra == "all"
Requires-Dist: etils[enp] ; extra == "all"
Requires-Dist: etils[epath] ; extra == "all"
Requires-Dist: etils[epy] ; extra == "all"
Requires-Dist: etils[etqdm] ; extra == "all"
Requires-Dist: etils[etree] ; extra == "all"
Requires-Dist: etils[etree-dm] ; extra == "all"
Requires-Dist: etils[etree-jax] ; extra == "all"
Requires-Dist: etils[etree-tf] ; extra == "all"
Requires-Dist: numpy ; extra == "array-types"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: pytest-xdist ; extra == "dev"
Requires-Dist: tfds-nightly ; extra == "dev"
Requires-Dist: jupyter ; extra == "ecolab"
Requires-Dist: matplotlib ; extra == "ecolab"
Requires-Dist: numpy ; extra == "ecolab"
Requires-Dist: numpy ; extra == "enp"
Requires-Dist: etils[array-types] ; extra == "enp"
Requires-Dist: importlib_resources ; extra == "epath"
Requires-Dist: tf-nightly ; extra == "epath"
Requires-Dist: zipp ; extra == "epath"
Requires-Dist: etils[epy] ; extra == "epath"
Requires-Dist: absl-py ; extra == "etqdm"
Requires-Dist: tqdm ; extra == "etqdm"
Requires-Dist: etils[epy] ; extra == "etqdm"
Requires-Dist: etils[epy] ; extra == "etree"
Requires-Dist: etils[etqdm] ; extra == "etree"
Requires-Dist: dm-tree ; extra == "etree-dm"
Requires-Dist: etils[etree] ; extra == "etree-dm"
Requires-Dist: jax[cpu] ; extra == "etree-jax"
Requires-Dist: etils[etree] ; extra == "etree-jax"
Requires-Dist: tf-nightly ; extra == "etree-tf"
Requires-Dist: etils[etree] ; extra == "etree-tf"
Project-URL: homepage, https://github.com/google/etils
Project-URL: repository, https://github.com/google/etils
Provides-Extra: all
Provides-Extra: array-types
Provides-Extra: dev
Provides-Extra: ecolab
Provides-Extra: enp
Provides-Extra: epath
Provides-Extra: epy
Provides-Extra: etqdm
Provides-Extra: etree
Provides-Extra: etree-dm
Provides-Extra: etree-jax
Provides-Extra: etree-tf

# Etils

[![Unittests](https://github.com/google/etils/actions/workflows/pytest.yml/badge.svg)](https://github.com/google/etils/actions/workflows/pytest.yml)
[![PyPI version](https://badge.fury.io/py/etils.svg)](https://badge.fury.io/py/etils)

etils (eclectic utils) is an open-source collection of utils for python.

Each top-level submodule is a **self-contained independent** module (with its
own `BUILD` rule), meant to be imported individually. To avoid collisions with
other modules/variables, module names are prefixed by `e` (arbitrary convention):

```python
from etils import epath  # Path utils
from etils import epy  # Python utils
from etils import ejax  # Jax utils
...
```

Becauses each module is independent, only the minimal required libraries are
imported (for example, importing `epy` won't suffer the cost of importing TF,
jax,...)

## Documentation

* [`etils.epath`](https://github.com/google/etils/tree/main/etils/epath): pathlib-like API for `gs://`, `s3://`,...
* [`etils.etree`](https://github.com/google/etils/tree/main/etils/etree): Tree utils for `tf.nest`, `jax.tree_utils`, DeepMind `tree`.
* [`etils.enp`](https://github.com/google/etils/tree/main/etils/enp): Numpy utils.
* [`etils.ecolab`](https://github.com/google/etils/tree/main/etils/ecolab): Colab utils.
* [`etils.array_types`](https://github.com/google/etils/tree/main/etils/array_types): Typing annotations for jax, numpy,... arrays
* [`etils.epy`](https://github.com/google/etils/tree/main/etils/epy): Collection of generic python utils.

## Installation

Because each module is independent and require different dependencies, you
can select which modules deps to install:

```sh
pip install etils[array_types,epath,epy]
```

*This is not an official Google product.*

