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:
#   GEMM operation with row-major first input packed to column-mayor
#   Compares the result with NumPy's einsum
# -----------------------------------------

# Define a row-major GEMM configuration with packing
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              ),
    packing_strides_in0= (128,             0,               1              )
)

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

# Create input and output arrays
import numpy as np
A = np.random.randn(64,128).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)

A_T = np.transpose(A)
C_np = np.einsum("km,nk->nm", A_T, 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}")

# -----------------------------------------------
# Fourth 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,
                                   generate_sfc=True,
                                   br_gemm_support=True,
                                   packing_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.post3-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.post3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.2 MB view details)

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

etops_nightly-25.7.0.post3-cp314-cp314t-macosx_14_0_arm64.whl (692.8 kB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

etops_nightly-25.7.0.post3-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.post3-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.post3-cp314-cp314-macosx_14_0_arm64.whl (684.1 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

etops_nightly-25.7.0.post3-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.post3-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.post3-cp313-cp313-macosx_14_0_arm64.whl (683.7 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

etops_nightly-25.7.0.post3-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.post3-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.post3-cp312-cp312-macosx_14_0_arm64.whl (683.7 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

etops_nightly-25.7.0.post3-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.post3-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.post3-cp311-cp311-macosx_14_0_arm64.whl (682.2 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

etops_nightly-25.7.0.post3-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.post3-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.post3-cp310-cp310-macosx_14_0_arm64.whl (680.6 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

etops_nightly-25.7.0.post3-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.post3-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.post3-cp39-cp39-macosx_14_0_arm64.whl (680.8 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

etops_nightly-25.7.0.post3-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.post3-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.post3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b8312a16d06fab0feb9a1c17d4869e47b8508fdc303c324df239160d5e80bc5
MD5 6227cd2c5fd311a0993a19e17c99c5bf
BLAKE2b-256 b05a6ee491f2ebef6fe6c32a8e5bb3ba3ca2edab3a7dbe960a8609a27afde954

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b1f817a31a6bcf7a6d43b6ef3eb130181f93541ee25a23ceac9304822a9e83cf
MD5 427459336ca4aab7606c60b02d6cf120
BLAKE2b-256 be1f385a009444939e2b6c605f304ac6e872b428e8c8d0f5ea8031e0c85c3fd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp314-cp314t-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ecfb4ab073f2905c83b2d0b2c55c9f3d12486e55f1c75e15f94143514187c6fd
MD5 cc01392902adc10f7ec1ad2e9a2191b5
BLAKE2b-256 e04f660d83203e6a27cf7df04247e66979928fa5d569c4029a2f3311fde0839b

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3fd34f3e52da06258545ae58cc4f819021357b9fef67582011bc06001bc613d
MD5 258ce47273340e2ab7053a0511b69515
BLAKE2b-256 5ae3bac1e880f6112127054cbd1723e5c1678db9eccf76394d702b00de40c5ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2706a1d5861d5f8cc20c37f644328c988d07c68e3c80447f0f040cca4f637b58
MD5 a0c128c2acd89742e5aa1c28841e7c41
BLAKE2b-256 d120be348e1f5fb30308ecca67c2bf6c0e8ab7e8b2819e609656a229e4d5daab

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7384598c37a679c85d17f18d615ce87912486889dcef8ae93d87c2011e36be5f
MD5 3f140c67ab660dabaadaa32a7b2d7034
BLAKE2b-256 060da6efd02bc0e7e626b2b0af6301f8ca75b4d9db7712d6af854e4865944905

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72dd8f0ea69d5e7e743fbf759ae1980400ae4c682b1a0a52584e782c02a896b3
MD5 1f7008498828196b812bc9f1cfba3289
BLAKE2b-256 5e06414804adb1e65b5410262f5644570f6887781c27da8c48932422c97f2574

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8dfc06b04d44d57ab7de8a93ea2efbe65666b7bdb17130eecd8033c262e72753
MD5 c36293a73d5328c38d558f8e983ce4ef
BLAKE2b-256 963ee9cae4b0e3f10009790ef0db8580812cf75240d03be173e4fde2333d0b0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 de9e92bb24cb683324961f0420957e30713c7ece1422b51ca08f2757ed4a272f
MD5 8bf0ca35a0c77e71f08095f2f7ed01ff
BLAKE2b-256 4e13ffd7f185bf81c46283abfd0c15317dbd908809f7eed9ec636da7e4bc1981

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 56d3e21d3aeaf6e56581f503ccc6b2a01b05885a51abd01c74aefce4230e9930
MD5 65736b628b1a6cc470811a27513b7452
BLAKE2b-256 7eb24c87e6da582a3b456e52db64344809cf5741013876e516697d068491fb0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4ac2be3b5204a2b73d8c034c88b4b63483abe68b129663659bec246e9e00e56b
MD5 ea70157781bc07b27799089ae4f9e0aa
BLAKE2b-256 dd323df4f6d93098d75b8642cd2118ed2fcbfc6df1d26970b2c3d69ce9234b0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bee7118a322e49268cb74b3b9c917393eaabb908b982befed31b05e200dcb9be
MD5 24fbb0f952cd28874a45717d8f3aa5fa
BLAKE2b-256 b6810fb3438e29a930f2787feea6ae317ee31899aa033709d8a59aa62a160a00

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f65f58418aec4356b2ad17a5364bbd3f317eb7aea3700fcc6774269231235f11
MD5 83b384c8768b632975555b883a434f39
BLAKE2b-256 ab0c6b3340c00613d3655f30ace7361d65f60930129f15704d5db9d2ce37d58b

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 24e87cb0b1ed4e3f6e99f16312f88146a850ccbeb8a1e4a1b1af360b3e8acab4
MD5 a8d0ff2bebd612f6db513ef53054027e
BLAKE2b-256 2a916fbaf038b7a9a3b689f29d31898792e34d47b23508c392a4f71c2a2b78bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8ca7fa24871ab5c29dec688f25a4c105611ca505e8af7aaa65b57238db2392f3
MD5 eda954a52c484621123cf41594e4801a
BLAKE2b-256 cbdb4a7ad0aa3ed66d32c45ecca4ae93f3f554c09828bbf45b60b78e57dd59d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9635bf4a8f386c158043c5527f938da8d0384da4cb603f7077f67d26ab040b9c
MD5 deb96cba65120b2d8f91761a9d353b5c
BLAKE2b-256 f185f25b1ea1b835ecc3851f673aecf72d31fd9f80509a78a517b412dc6d29b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5f0a9a3321797cb91b57f6d78fb6216e3d285399c7992b8aba24ef06639aa5a3
MD5 d9eb8f0872eab47c2603a6238f61e669
BLAKE2b-256 9c84d3c7e02127f5a932d61134b753d2d7c061b9c311e56968db8f433475e173

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ca01b042b12e9eb064af421749f447df01f1554ba09c9cd9a43ea4d304428f1a
MD5 6313fb79cd3411fd042e20ac4859ed8c
BLAKE2b-256 84fbbfbf9961fb4d91ea044d9da93c7e57b326a6cec7606953eb9397e06bf887

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96d7757c6554b23908b62c0976f42ef23a6f3b0d85d220b10c914764bf225c4d
MD5 b7f7d03af9ae0b7f0d4c8dce62f893fd
BLAKE2b-256 e155f0a1c8f60520520e285aad1b0843141e51a0148281cbc3acffa752552199

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0379b6d24e3c0050c7b86417e8aa77eb4b556841159bde9cadc41bda8c9a6e4
MD5 cedc2db217400e3b2258195eb5ce37d1
BLAKE2b-256 1862376b40452e396d233fe248e12010e35c3b464661b4b1e1cf62e4c600301d

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 840ad376c1f155d821d2a15ae78c934193fb3c14ac306ff9faa8b3bc24cfae42
MD5 480b216bbd7381b9f94aa258cb1abd67
BLAKE2b-256 52d3778ee23e4e2e8a9ef7a9ac19bd84a408b985def5444bb5b099ad1836bc4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c7c9ae2977d6cc18e321a2c0585731d89bd0195ea356e8a6d8f57db4dec377c
MD5 3d87141a47996847e09ad4ee001a99a4
BLAKE2b-256 40e96305fc14bf48d57fa0f7b37e3743362dc22be9b6fe7fe763e14ea93e1ed8

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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.post3-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post3-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e03eb8207c362e70127c31f6a3f5c9a13ffb8a09e4579fbce2aeb3cdac19f8f4
MD5 d9b0a2095df21d9f8d5b706683c2af15
BLAKE2b-256 590620d993464a00435517014c1b5aaaa3695a536e2ec3ff729a21da779e0631

See more details on using hashes here.

Provenance

The following attestation bundles were made for etops_nightly-25.7.0.post3-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