Skip to content

Releases: google/etils

v1.0.0

09 Jan 16:12
Compare
Choose a tag to compare
  • etree:
    • Added: etree.stack to stack/batch multiple trees of arrays together.
    • Added: etils.etree.py backend (pure Python implementation to avoid
      installing extra deps).
    • Added: etree.map (as convenience to access the corresponding
      map_structure).
  • enp:
    • Added: enp.batch_dot: Always dot product on the last axis with
      broadcasting support (while np.dot is inconsistent 1-D vs 2-D).
    • Added: enp.angle_between to compute angle between 2 n-dimensions
      vectors.
    • Changed: enp.project_onto_vector, enp.project_onto_plane supports
      broadcasting.
    • Fixed: TF accidentally imported when using enp.linalg functions.
  • ecolab:
    • Added: ecolab.patch_graphviz to fix Colab display with graphviz.
    • Added: ecolab.set_verbose to activate stderr logging on Colab.
    • Changed: ecolab.clear_cached_modules accept single str
    • Changed: ecolab.clear_cached_modules has a invalidate=False to not
      invalidate previous instances of the modules.
  • edc:
    • Added: Expose edc.repr, for functional use or directly assign class
      members (e.g. __repr__ = edc.repr)
  • eapp:
    • Fixed: eapp.better_logging() do not raise is_borg AttributeError
      anymore.
  • epath:
    • Fixed: local_path.copy('gs://') uses the correct backend.
  • All:
    • Changed: Better error message when missing import.

v0.9.0

28 Oct 18:02
Compare
Choose a tag to compare
  • eapp (Added):
    • Added: .make_flags_parser to define CLI flags through dataclasses.
    • Added: .better_logging to display logs by default, tqdm
      compatibility,...
  • epy:
    • Added: @epy.frozen class decorator to make class immutable
  • edc:
    • Added: Attributes of @edc.dataclass can be annotated with x: edc.AutoCast[T] (for auto-normalization).
  • ecolab:
    • Added: ecolab.clear_cached_modules to reload modules (useful for
      interactive development)
    • Added: etils.lazy_imports supports multi-import (e.g. using
      concurrent also trigger concurrent.futures import).

v0.8.0

12 Sep 15:59
Compare
Choose a tag to compare
  • epath:
    • Added: path.stat()
    • Fix performance issues for path.mkdir.
  • ecolab:
    • Added: from etils.lazy_imports import * alias of from etils.ecolab.lazy_imports import *.
    • Changed: Mutating a lazy_import module mutate the original one. This
      allow to mutate builtins module for example.
  • edc:
    • Changed: .replace only added once (not in subclasses).

v0.7.1

09 Aug 12:13
Compare
Choose a tag to compare
  • ecolab: Added dataclass_array to lazy_imports.

v0.7.0

08 Aug 15:57
Compare
Choose a tag to compare
  • array_types:
    • Added: More array types: complex64,...
    • Added: An experimental array_types.dtypes.DType to support more
      flexible dtype expression (AnyFloat, type union,...)
    • Changed: FloatArray, IntArray do supports any float, int without
      casting.
    • Changed (breaking): Array dtypes (e.g. (f32.dtype) are now
      array_types.dtypes.DType.
  • ecolab:
    • Added: lazy_imports.print_current_imports to display the active lazy
      imports (e.g. to add imports before publishing a colab).
  • epy:
    • Added: epy.ContextManager to create yield-based contextmanager class
      (see
      discussion)
    • Added: epy.issubclass (like issubclass but does not raises error for
      non-types)
    • Added: epy.groupby, like itertools.groupby but returns a dict.
    • Added: epy.Lines.make_block helper to create code blocks (function
      calls,...)
    • Fixed: epy.StrEnum raises better error message if invalid input.
  • epath
    • Added: epath.DEFINE_path for absl.flags support
    • Changed (breaking): Recursive glob (rglob, glob('**/')) now raise an
      error rather than being silently ignored.
    • Changed: path.as_uri() returns gs:// and s3:// (rather than
      file:///gs/)
    • Changed: Add __eq__ and __hash__ for resource path.
  • edc
    • Fixed: __repr__ is correctly added in Python 3.10 (#143)
    • Fixed: dc.frozen() compatibility with autograd.
    • Changed: dc.unfrozen()now supports jax.tree_map.
    • Changed: Better dc.unfrozen() repr which display overwritten fields.
  • enp:
    • Added: enp.check_and_normalize_arrays util to dynamically validate
      array dtype/shape from typing annotations.
    • Added: enp.linalg.normalize util.
    • Added: enp.project_onto_vector and enp.project_onto_plane geometry
      utils.
  • Other:

v0.6.0

31 May 11:58
Compare
Choose a tag to compare
  • epath:
    • Remove TensorFlow dependency from epath.Path by default. (For now
      accessing gs:// still require TF to be installed).
    • Add epath.testing.mock_epath to mock GCS calls.
  • epy.testing:
    • Add epy.testing.subtest for better subtests support.
    • Add epy.testing.non_hermetic to mark non-hermetic tests.
  • oss-kit: