This package is a slim adapter layer over opt_einsum by Daniel G. A. Smith et al.

  Original repository : https://github.com/dgasmith/opt_einsum
  Original license    : MIT (see LICENSE in this directory)
  Original authors    : Daniel G. A. Smith and Johnnie Gray
  Adapter date        : 2026-05-07

This adapter is no longer a fork. opt_einsum is a runtime dependency
(declared in pyproject.toml). The local files here adapt upstream's PathInfo
to flopscope's expected dataclass shape, recompute per-step FLOP counts using
flopscope's FMA convention (default 1, configurable), and preserve the colored
rich-render display.


================================================================================
LOCAL FILES
================================================================================

__init__.py
──────────────────────────────────────────────────
  Re-exports `contract_path` (wrapped to return flopscope's PathInfo),
  `parse_einsum_input` (from upstream), `PathInfo`, `StepInfo`, `flop_count`,
  `build_path_info`.

_contract.py
──────────────────────────────────────────────────
  Contains:
    - StepInfo, PathInfo dataclasses (flopscope's expected shape)
    - build_path_info() — adapter from upstream's PathInfo to flopscope's
    - Rich-render display methods for terminal output

_helpers.py
──────────────────────────────────────────────────
  flop_count() — computes per-step FLOP cost using flopscope's FMA convention.
  Default FMA = 1; configurable via flopscope.configure(fma_cost=2).

_hsluv.py
──────────────────────────────────────────────────
  HSLuv color palette helpers used by the rich-render display.
  Adapted from the MIT-licensed hsluv-python reference implementation:
    https://github.com/hsluv/hsluv-python


================================================================================
HISTORY
================================================================================

Originally vendored as a full fork (2026-04-03) to support symmetry-aware
path search via SubgraphSymmetryOracle. After the symmetry-aware einsum cost
rewrite (2026-05-07) made path search symmetry-agnostic, the fork's
customizations collapsed to:
  - FMA=1 cost convention
  - Custom PathInfo/StepInfo shape with rich-render display

This adapter package was created (2026-05-07) by deleting the bulk of the
fork (~3000 lines: _paths.py, _path_random.py, _blas.py, _parser.py,
_testing.py, _typing.py) and adding opt_einsum as a runtime dependency.

LICENSE (MIT) is preserved here per opt_einsum's licensing terms.
