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.post2-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.post2-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.post2-cp314-cp314t-macosx_14_0_arm64.whl (692.8 kB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

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

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 14.0+ ARM64

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

Uploaded CPython 3.9macOS 14.0+ ARM64

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5bbdef0f6551f931573fb02836cb1397700e9a539fcabbfb81d128457d2b360
MD5 6d8e026be109eaca77e3cee2f2a3d67d
BLAKE2b-256 df1a6daa90dc047084765a70b5bf246164bbc1dcfe6cca42b4bb4a22c3761cc7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 be01f880f05933cc57c772cc2905f0d451053d0ee89dedf11c6fe768243c9d85
MD5 6d4a439c025d5104e3a5ce993da9a342
BLAKE2b-256 251d3327a19f14a372170c45e13edec44cfb2cfe961b38d13909100f3bb145a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 69f5b882d958c33199d3bfb3005c57df55f7236bda40a1fc3eb962d13e1cea61
MD5 c0b37282db05d24966235ad691d21812
BLAKE2b-256 faa42dcf121c3472c43e66aa6520782402b453df7c738dad6d92a4104114658a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38b0694180ef8726e1af0eaa09d9b65a7a8685016aafe6a12997cdd575f6aee0
MD5 225381c2b828351a626a71c24b3edd9c
BLAKE2b-256 44133d74495b7f2fefd336bb8842282cf40c46f8889941f61a086f4cdf344cf1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 171be912f4e487f0ab43874889f815463e8f9398e27fac2f7a9e4ecf874b5528
MD5 deaa0ae667c2f079920c10d12491d83a
BLAKE2b-256 b164e6f8bb6ebe357be473044a7a69e676fccb0a49c3ba1447c2ed2f0369c977

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7dbcbf62d1c8d174bb85fb7c401aef54bd651b50006bd346fb803a7c127956dd
MD5 da7dad7fde67e3c48628d08a76fbb5aa
BLAKE2b-256 8a77fd3030f75a01191fd3a50f0681a794296ddc7689790209cfaebdf82de223

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1f5b37a62c0efc6a41a80be8709822702a72f1657625d4138023cc00333b72f
MD5 4238213263546ab4c327a2e37f8055b1
BLAKE2b-256 85c3f851450671543b8ac661bdb78f82bc9a55950e934bb9b5851f5d2861f1d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d28b451d09789799c2ceec27095f4ca1671cc8acae58a6417d11d0fe3b4890d0
MD5 e01b506e6d28aa761ba5e48d3afe7992
BLAKE2b-256 568e040e0467285fdae965b187837a41bbdb5e22881d5e2c9ac57135c70b2156

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bf41d29d68564b13b1fb3441778d5ee61ac2fdd0a5095c2908a6d31aaa0c48a2
MD5 b0af3a81a0a5e2be7506e9c0ff508313
BLAKE2b-256 f1e8f1b05de666137a40b85dc4d720f103d223a6964cc6c7f8585130ff6bc68d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a4c1927de63815d9d586c534e1d597f2f95b5b23436bfbfd7d96d234823f2dd
MD5 be9d0b6c5159d8598fbefcd34b4300b5
BLAKE2b-256 4d76e50163123f6ada18106e32f9c1926980bd0d7c8487c6c7f29fde955a94af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 073fe79ea55fab0597d75e07db4e5d2cfcd75308553ec448bae4839d4aa4f8fa
MD5 888465468f4b3e1212a9917baf402382
BLAKE2b-256 87a30278eef92280bf5650771eb6544d03faf0f51c307fdfb6a3641454652813

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2e32160646a518a46468a848d6965e5f16a355a18a69606d0e5420b8eddb314a
MD5 6b69fd2fb0286e30e0da737aa5c62717
BLAKE2b-256 e2b3c62ad6be81b0c66a46c2ef8cdfb11cc7d4bd5a01f99ee6b461e5f58f57d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9baae29af5f03fc3cd812600927b7db8768ffac0c908144356c4b0436be5fd73
MD5 075fb468cbe64b8f17829bc25e16cbed
BLAKE2b-256 839eee8a4b6fd83218391d15a748fe19c11ef2a914cf921fab5e2b3bdd02e821

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95613641cdc05d3bf336bf13611d8faa71fb2ceafc8cc107b3316048416c7290
MD5 19999f27a5ef0018f8a60c5d68755168
BLAKE2b-256 910dbc39b9582f0eea1e078f1a118427171e4b9821ad6e3d3f7999bfe73ca5d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fb44bad08d3aa107ba214ea9f5e5fcee54e3626271d4a05e8a373ab1ed7e2656
MD5 7710660e5d9828f60c6e9b1c5717b3ed
BLAKE2b-256 dab84551ddf56d592166e07208f4ee34d7fe792780546f391f8789407998a1ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3dc98e1d947377f629ea14000febf9f4e0ca316b916b43c8312743cf75506ca9
MD5 41e349408625221f598651c461132e91
BLAKE2b-256 14101787ed47130108cd93baf9d234bc6b06eef895e6265f0767ef8cd9c7209f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb4bdad41a578158a3ebaf34d6c85d3124f28f49f3ac689a9d78dba1de3fd40b
MD5 c5128334893cf647aab0c64880fcbf88
BLAKE2b-256 9f3737c1a08e16f90b302a6f04101f6c4590df9608e04346f36b558a3541295c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 60ec28c277d1252f0b8030e747c4445aa023bf27ad2801b39c3c808c7ee1e03c
MD5 2470ca7aa882bcd21029027b727d1463
BLAKE2b-256 8a775a8278b098d275357dc728547ec2a29f0f0a65aab1f7a714241587f2afe8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81a26d785725782e10bbd35a08d2ec181829b55f2d12a806bc15953150cdd14d
MD5 58647299632f63c46940d0f85f303fd2
BLAKE2b-256 665552dbdfa2342919f6f21063b4a9d9c36018dc74119ed35056d9c9a9c8bcbd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0ba73a444609dc74094260815801a7c5b30a135870e34d6cec50b6f2685816fe
MD5 fcf1b635e4fe99d6edbac977c7ef437d
BLAKE2b-256 3148806e997c36a25346d7238fbb71ea3d752c37e70652f44aea6d1bdc57a8a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 36aeb6e10c4b5548fd353ccd2ff9edf906af49e8bdf47bcc2b64fe2a4952d253
MD5 000e7a816585f0878f315e14273b6cbb
BLAKE2b-256 f5615a8be612f98eba3dbb2ab74b1118c72cd5f88017b2c7e2d8baeede66faef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95b123303399202cda7def53fb6e083d4be639ccb9a75327d33654c6420168d9
MD5 4ea989ec95b0fc69aac21178a25ea95e
BLAKE2b-256 8ae5fb00d62b69241e2ffa8416a7ba09439f9e4a79465154181135b74d3a2a6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for etops_nightly-25.7.0.post2-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 47b0a5b71481fe6881f12456c9db5bc6f94fed4b02bb08aeba1cac9cda92905f
MD5 73800f4d5f27e12bd82eff16da327769
BLAKE2b-256 2d9096a11c77d93e9380680162423ab5c45913d63ed1b56b6f20c58585d79d6a

See more details on using hashes here.

Provenance

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