Skip to main content

Einsum tree operations.

Project description

The etops package provides a Python interface for einsum tree operations. It enables users to define, configure, optimize, and execute complex tensor contractions and elementwise operations. The package is built on top of the einsum_ir C++ backend and exposes advanced features such as dimension fusion, dimension splitting, and backend-specific optimizations.

Main Features

  • Abstractions for tensor operations and configuration

  • Support for multiple data types (float32, float64)

  • Primitive operations: zero, copy, relu, gemm, brgemm, etc.

  • Dimension execution strategies: primitive, sequential, shared, space-filling curve (SFC)

  • Dimension and stride configuration for advanced memory layouts

  • Interface for built-in contraction optimizer

  • Pythonic API with dataclass-based configuration

Installation

Install the package using pip:

pip install etops

Quick Example

Below is a minimal example showing how to configure and execute tensor operations:

import etops

# -----------------------------------------
# First example:
#   Column-major GEMM operation
#   Compares the result with NumPy's einsum
# -----------------------------------------
# Define a column-major GEMM configuration
top_config = etops.TensorOperationConfig(
    data_type  = etops.float32,
    prim_first = etops.prim.zero,
    prim_main  = etops.prim.gemm,
    prim_last  = etops.prim.none,
    dim_types  = (etops.dim.m,     etops.dim.n,     etops.dim.k    ),
    exec_types = (etops.exec.prim, etops.exec.prim, etops.exec.prim),
    dim_sizes  = (64,              32,              128            ),
    strides_in0= (1,               0,               64             ),
    strides_in1= (0,               128,             1              ),
    strides_out= (1,               64,              0              )
)

# Create the TensorOperation instance
top = etops.TensorOperation(top_config)

# Create input and output arrays
import numpy as np
A = np.random.randn(128,64).astype(np.float32)
B = np.random.randn(32,128).astype(np.float32)
C = np.random.randn(32, 64).astype(np.float32)

# Execute the operation
top.execute(A, B, C)

C_np = np.einsum("km,nk->nm", A, B)

# Compute absolute and relative errors
error_abs = np.max( np.abs(C - C_np) )
error_rel = np.max( np.abs(C - C_np) / (np.abs(C_np) + 1e-8) )
print("Column-major GEMM operation:")
print(f"  Max absolute error: {error_abs:.6e}")
print(f"  Max relative error: {error_rel:.6e}")

# -----------------------------------------
# Second example:
#   Batched GEMM operation
#   Compares the result with torch's einsum
# -----------------------------------------
# Define a batched GEMM configuration
batched_config = etops.TensorOperationConfig(
    data_type  = etops.float32,
    prim_first = etops.prim.zero,
    prim_main  = etops.prim.gemm,
    prim_last  = etops.prim.none,
    dim_types  = (etops.dim.c,       etops.dim.m,     etops.dim.n,     etops.dim.k    ),
    exec_types = (etops.exec.shared, etops.exec.prim, etops.exec.prim, etops.exec.prim),
    dim_sizes  = (48,                64,              32,              128            ),
    strides_in0= (128*64,            1,               0,               64             ),
    strides_in1= (32*128,            0,               128,             1              ),
    strides_out= (32*64,             1,               64,              0              )
)
# Create the batched TensorOperation instance
top = etops.TensorOperation(batched_config)

import torch
# Create input and output arrays
A = torch.randn(48, 128, 64, dtype=torch.float32)
B = torch.randn(48, 32, 128, dtype=torch.float32)
C = torch.randn(48, 32, 64,  dtype=torch.float32)

# Execute the operation
top.execute(A, B, C)

C_torch = torch.einsum("bkm,bnk->bnm", A, B)

# Compute absolute and relative errors
error_abs = torch.max(torch.abs(C - C_torch))
error_rel = torch.max(torch.abs(C - C_torch) / (torch.abs(C_torch) + 1e-8))

print("Batched GEMM operation:")
print(f"  Max absolute error: {error_abs:.6e}")
print(f"  Max relative error: {error_rel:.6e}")

# -----------------------------------------------
# Third example:
#   Batch-reduce GEMM operation with optimization
#   Compares the result with torch's einsum
# -----------------------------------------------
# Define a batch-reduce GEMM configuration
batched_config = etops.TensorOperationConfig(
    data_type  = etops.float32,
    prim_first = etops.prim.zero,
    prim_main  = etops.prim.gemm,
    prim_last  = etops.prim.none,
    dim_types  = (etops.dim.k,    etops.dim.m,    etops.dim.n,    etops.dim.k   ),
    exec_types = (etops.exec.seq, etops.exec.seq, etops.exec.seq, etops.exec.seq),
    dim_sizes  = (48,             64,             32,             128           ),
    strides_in0= (128*64,         1,              0,              64            ),
    strides_in1= (32*128,         0,              128,            1             ),
    strides_out= (0,              1,              64,             0             )
)

# Optimize the configuration
optimized_config = etops.optimize( batched_config,
                                   target_m=16,
                                   target_n=12,
                                   target_k=64,
                                   num_threads=1,
                                   br_gemm_support=True,
                                   packed_gemm_support=True )

# Create the optimized TensorOperation instance
top = etops.TensorOperation(optimized_config)

import torch
# Create input and output arrays
A = torch.randn(48, 128, 64, dtype=torch.float32)
B = torch.randn(48, 32, 128, dtype=torch.float32)
C = torch.randn(    32, 64,  dtype=torch.float32)

# Execute the operation
top.execute(A, B, C)

C_torch = torch.einsum("bkm,bnk->nm", A, B)

# Compute absolute and relative errors
error_abs = torch.max(torch.abs(C - C_torch))
error_rel = torch.max(torch.abs(C - C_torch) / (torch.abs(C_torch) + 1e-8))
print("Batch-reduce GEMM operation:")
print(f"  Max absolute error: {error_abs:.6e}")
print(f"  Max relative error: {error_rel:.6e}")

See the source code and inline documentation for more advanced usage.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

etops_nightly-25.7.0.post1-cp314-cp314t-macosx_14_0_arm64.whl (683.5 kB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

etops_nightly-25.7.0.post1-cp314-cp314-macosx_14_0_arm64.whl (674.9 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

etops_nightly-25.7.0.post1-cp313-cp313-macosx_14_0_arm64.whl (674.5 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

etops_nightly-25.7.0.post1-cp312-cp312-macosx_14_0_arm64.whl (674.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

etops_nightly-25.7.0.post1-cp311-cp311-macosx_14_0_arm64.whl (672.6 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

etops_nightly-25.7.0.post1-cp310-cp310-macosx_14_0_arm64.whl (671.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

etops_nightly-25.7.0.post1-cp39-cp39-macosx_14_0_arm64.whl (671.4 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2e39c72e6491ee405e55ebb9d4eaa7bade20a8438c6371c604dc83cee5d12be
MD5 2d4d9f5a2fa26bfbdeeec0236ac95ef3
BLAKE2b-256 edd586070ab40a1afa02f4425c1ac58b1d90e9f49559efe2b6f39d91da95c691

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8c101d44efe1d7a8a518b24c22b77b41de6664ead9f078d7f475935636bbe6af
MD5 320efc7abdc3c0cb80df8f9ecfe19b05
BLAKE2b-256 eae3a4a71b28a97401b66cc244f450e660a165bfbe7a2d0c95f3d4e9d15e199c

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp314-cp314t-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9fe0e999f7c8011ff91bc47fa462e98c7d34a42ea036fc2e8a93d42a3ff60a18
MD5 b06c9f8e5ea5b6304185223c0e0ea4ba
BLAKE2b-256 ff14cb5be0063943bbe929b827778151bc6243c9a3d7dcb57063ae1d5550a734

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp314-cp314t-macosx_14_0_arm64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 53554a1314bd9f5ccfbe7e06bdf148aaab247a8eb0ae380da43089c6704f55ff
MD5 34b38588fc39826510054a98de83c8c8
BLAKE2b-256 e2cc7659322a5a415bf7f26264b6378c22dd5558c0f7769f165a6dcdcd640607

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 77eb33418d167e16ebcb06019c9dafabdf916f9aba06ff50d57de8fdac7629a5
MD5 7bf3d86eb90a3e1391adc5e1097cf7d5
BLAKE2b-256 7b6132cb4064d499fe97cddb8893cb894bb7aaa43843d529d701fd7d9df08186

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 32cb2e1132739ad806fbf39743f435745fecf485ca5662cf60887b040d36fb85
MD5 e7a765abe7509f9a06799ea46dd252be
BLAKE2b-256 c6977c31d6083f15f79509e364c9578fc18b8280d4963c872c3f70a5214e4ddc

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1db7f3afca963e907c31bde216b09610d5996cafbfd7a3f35bba24934308b2ca
MD5 2f859ea18156aa63a4d6edf7b8862353
BLAKE2b-256 c3764e0445f71f73c8d11950584cbf19f30ae2631434bd7c91213fe86c443b02

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9beecfc50d0da10fa4fa6253dd234ae80922c4a5a2837d9b383072771147952f
MD5 422cd257fb37b6b8616f4f5d5f18e2bb
BLAKE2b-256 05ca58631859f278b5655ea685aea17c008b8241a5c3013991559b04ecd69b5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5ad746421f299b326d999c54bb325bb91a6e5298bb864bc0f783e5a7a95399b9
MD5 02164b89f7ea226874f5619bb30a7876
BLAKE2b-256 0913a4b6542715669df95ac1511642c75616195abc2c35c99188d2c164405e60

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83512b58f0a0cf4a77979aec7c8079b18ad815109dde321383e2dddf375a29c1
MD5 a3ec41ba4c0dedc7ee719be17187956e
BLAKE2b-256 4a5dfc4adb07bcad00af05cc97a0bb42d1ca1924c1ec798da6a98ae91f9d075a

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95f0b3dcc0a3bae0b6727bf21cdc1bc4ca023f1818354682cb6b43f105427fd4
MD5 826081fb5adcbf2b1bae641645236269
BLAKE2b-256 3f5494c7025e5abfba32594aa7a46b8cb7b728b48f406b937be4d5d3f487e1bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f4852dc968f22af82bfb1f8388ab40fdcbe44c63f61bd24ce54f2ba91d5446b3
MD5 2aae3abdf60632631bcdf3f797d30da9
BLAKE2b-256 d6024ff7738148f107fef5f40258b683ae97f1d7d634112be6ac70d8b34bf84f

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be0741ab06a88bbcf50cecdfdfccc45094510a4f44bb7630171d0c09a37630f2
MD5 0ccf55ba75fe23f13d1659030b39bb44
BLAKE2b-256 ba29c1b9fae422739ede3b5a6ad363a2ae021e9ed8025cc1e9b19e97ef1255ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4dc40708140d621995468c91df06c26b5b00c63706e22363f01e82734855675d
MD5 2bdacbdc6dccf36a570348bafcc3ba99
BLAKE2b-256 dfd230f111763eb1811904be7ac74a628a645d4b133b1a20e08cb0d337bf3e10

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f1504b8434d2a11f66040697a6be25a0b0730b9970fb5492981445087fa6f0d2
MD5 458dc8bbda50d88f23bb23d19a75e68f
BLAKE2b-256 51aeea20c5af89e6b169d8f097370a9ecbe0669e0c44855db3a611f1d9a324e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 299e4de95125bdd82c489fbe1f907d58f5c263093a5a661d1820776dfd1cc2e7
MD5 5c07dbca91c0d3ab019b8f7b2145acaa
BLAKE2b-256 98979301b67e2b7f8f455dc6007d69099d0fdd7b4ded86abdd0e133b92a39461

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bfee4938897110d5cb6011cd8129d6252ed3504823682d7963132d52ae71d0c7
MD5 e6aba2b30d4c64b55df4c61ed60e6959
BLAKE2b-256 e6ca3b94e325c08793a892ef15ccbbc252ba6b408a54bd3c6c9c86e9c43e1d2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 efecca02e7e5f4dee4d2d16837077360b3fbb1d8f57b1e4d5671e6a900e589e2
MD5 6fb47495f2bd59e5354f1b856a0eaaf5
BLAKE2b-256 44479ceb610bbb2f405602134ffb8a11fd48020fa6ee4b4c39c46c7629752f6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45cb602fccc1243588114f4a97a69aad588d94f3003d0ee9963b2bf2a1342e08
MD5 9e9686dba9a8876c955dc67073b6f37d
BLAKE2b-256 9f4683df21baa32d1285b154f15a4c279583b5b9fa65e202e34459b9a3410ba3

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1b12345e47d6525f8918e4f776bd5eee0293f1d1f9e90738c02efd73ffded838
MD5 5074ee4194ba1fbb1a4f5d36a6934ac3
BLAKE2b-256 9be2d9e86d749e9a6f6b6cfaf9b55b07f08e885451a19006df6199feda820510

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8806fd10224bf74dc0678e64e550c1104ed921773bdd92f0e3c3e4cf5db94d85
MD5 9985fddcb7be2495d22f61702eb7e52a
BLAKE2b-256 1ca44b745fc0fa6cdd3448f88f46754d296bc1804f8f4f338d121267d644536e

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp39-cp39-macosx_14_0_arm64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2da0acb7a8ad264fbfaafd2a1be3afd26a2a677053eb224064e6f203cae14375
MD5 2ed46c96290f3c115887004e5e3de1af
BLAKE2b-256 fb8e4c62d29488a360a42204fa4346276b8ade13e3baf29d6a48023fb13d5120

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 54122843dc53f2ccba99be07594da550dff8bc3f6b2a73159c1b7fd15cc01228
MD5 a109630d795d295478c094e31ba95538
BLAKE2b-256 75c30b30eaaade6166474421e175ca37e8a02d1d5c7b3224aa0180f3fb1c7f8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post1-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on scalable-analyses/einsum_ir

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page