Skip to main content

Rust-backed acceleration for Python array.array

Project description

arrayops

Rust-backed acceleration for Python's array.array type

PyPI Python 3.8+ Rust License: MIT Documentation Code Coverage

Fast, lightweight numeric operations for Python's array.array, numpy.ndarray (1D), and memoryview objects. Built with Rust and PyO3 for zero-copy, memory-safe performance.

โœจ Features

  • โšก High Performance: 10-100x faster than pure Python loops using Rust-accelerated operations
  • ๐Ÿ”’ Memory Safe: Zero-copy buffer access with Rust's safety guarantees
  • ๐Ÿ›ก๏ธ Security Focused: Comprehensive input validation, security testing, and dependency scanning
  • ๐Ÿ“ฆ Lightweight: No dependencies beyond Rust standard library (optional: parallel execution via rayon)
  • ๐Ÿ”Œ Compatible: Works directly with Python's array.array, numpy.ndarray (1D), memoryview, and Apache Arrow buffers - no new types
  • โœ… Fully Tested: 100% code coverage (Python and Rust)
  • ๐ŸŽฏ Type Safe: Full mypy type checking support

๐Ÿš€ Quick Start

Installation

# Install maturin if not already installed
pip install maturin

# Install in development mode
maturin develop

# Or install from source
pip install -e .

# With optional features (recommended for large arrays)
maturin develop --features parallel

Basic Usage

import array
import arrayops as ao

# Create an array
data = array.array('i', [1, 2, 3, 4, 5])

# Fast operations
total = ao.sum(data)           # 15
ao.scale(data, 2.0)            # In-place: [2, 4, 6, 8, 10]
doubled = ao.map(data, lambda x: x * 2)  # New array: [4, 8, 12, 16, 20]
evens = ao.filter(data, lambda x: x % 2 == 0)  # [4, 8, 12, 16, 20]
product = ao.reduce(data, lambda acc, x: acc * x, initial=1)  # 3840

# Statistical operations
avg = ao.mean(data)            # 3.0
min_val = ao.min(data)         # 1
max_val = ao.max(data)         # 5
std_dev = ao.std(data)         # 1.41...
median_val = ao.median(data)   # 3

# Element-wise operations
arr2 = array.array('i', [10, 20, 30, 40, 50])
summed = ao.add(data, arr2)    # [11, 22, 33, 44, 55]
product = ao.multiply(data, arr2)  # [10, 40, 90, 160, 250]
ao.clip(data, 2.0, 4.0)        # In-place: [2, 2, 3, 4, 4]
ao.normalize(data)             # In-place: [0.0, 0.25, 0.5, 0.75, 1.0]

# Array manipulation
ao.reverse(data)               # In-place: [5, 4, 3, 2, 1]
ao.sort(data)                  # In-place: [1, 2, 3, 4, 5]
unique_vals = ao.unique(data)  # [1, 2, 3, 4, 5]

# Zero-copy slicing
sliced = ao.slice(data, 1, 4)  # Returns memoryview: [2, 3, 4]

# Lazy evaluation (chain operations without intermediate allocations)
lazy = ao.lazy_array(data)
result = lazy.map(lambda x: x * 2).filter(lambda x: x > 5).collect()
# Efficiently chains map and filter, executes only when collect() is called

๐Ÿ“š For complete documentation, examples, and API reference, see arrayops.readthedocs.io

๐Ÿ“š Supported Types

arrayops supports all numeric array.array typecodes, numpy.ndarray (1D, contiguous), Python memoryview objects, and Apache Arrow buffers/arrays:

Type Code Description
Signed integers b, h, i, l int8, int16, int32, int64
Unsigned integers B, H, I, L uint8, uint16, uint32, uint64
Floats f, d float32, float64

๐Ÿ“– Documentation

Complete documentation is available at arrayops.readthedocs.io:

  • Getting Started - Installation and basic usage
  • API Reference - Complete function documentation
  • Examples - Practical usage patterns and cookbook
  • Performance Guide - Benchmark results and optimization tips
  • Troubleshooting - Common issues and solutions

โšก Performance

arrayops provides significant speedups over pure Python operations:

Operation Python arrayops Speedup
Sum (1M ints) ~50ms ~0.5ms 100x
Scale (1M ints) ~80ms ~1.5ms 50x
Map (1M ints) ~100ms ~5ms 20x
Filter (1M ints) ~120ms ~8ms 15x
Reduce (1M ints) ~150ms ~6ms 25x
Memory overhead N/A Zero-copy โ€”

See the Performance Guide for detailed benchmarks and optimization tips.

Performance Features

arrayops supports optional performance optimizations via feature flags:

Parallel Execution (--features parallel)

For large arrays, parallel execution can provide significant speedups on multi-core systems:

  • Enabled operations: sum, scale
  • Threshold: Arrays larger than 10,000 elements (sum) or 5,000 elements (scale) automatically use parallel processing
  • Installation: maturin develop --features parallel
  • Performance: 2-4x additional speedup on multi-core systems

SIMD Optimizations (--features simd)

SIMD (Single Instruction, Multiple Data) optimizations are in development:

  • Status: Infrastructure in place, full implementation pending std::simd API stabilization
  • Expected performance: 2-4x additional speedup on supported CPUs
  • Target operations: sum, scale (primary), element-wise operations
  • Installation: maturin develop --features simd

๐Ÿ”„ Comparison

Feature array.array arrayops NumPy
Memory efficient โœ… โœ… โŒ
Fast operations โŒ โœ… โœ…
Multi-dimensional โŒ โŒ โœ…
Zero dependencies โœ… โœ… (NumPy optional) โŒ
C-compatible โœ… โœ… โœ…
Type safety โœ… โœ… โš ๏ธ
NumPy interop โŒ โœ… (1D only) โœ…
Memoryview support โŒ โœ… โŒ
Arrow interop โŒ โœ… โœ…
Zero-copy slicing โŒ โœ… โš ๏ธ
Lazy evaluation โŒ โœ… โŒ
Use case Binary I/O Scripting/ETL Scientific computing

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚           Python Layer                  โ”‚
โ”‚  array.array โ†’ arrayops โ†’ _arrayops     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                 โ”‚ Buffer Protocol
                 โ”‚ (Zero-copy)
                 โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚           Rust Layer (PyO3)             โ”‚
โ”‚  Typed operations                       โ”‚
โ”‚  SIMD / Parallel optimizations          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿงช Testing

# Run all tests
pytest tests/ -v

# With coverage
pytest tests/ --cov=arrayops --cov-report=html

# Type checking
mypy arrayops tests

Coverage: 100% Python code coverage

๐Ÿ”ง Development

Prerequisites

  • Python 3.8+
  • Rust 1.75+ (for SIMD features)
  • maturin (install with pip install maturin)

Building

# Development build
maturin develop

# Release build
maturin build --release

# With features
maturin develop --features parallel,simd

Contributing

See the Contributing Guide for details on:

  • Development workflow
  • Code style guidelines
  • Testing requirements
  • Pull request process

๐Ÿ“ Error Handling

arrayops provides clear error messages:

import arrayops as ao

# Wrong type
ao.sum([1, 2, 3])  # TypeError: Expected array.array, numpy.ndarray, or memoryview

# Unsupported typecode
arr = array.array('c', b'abc')
ao.sum(arr)  # TypeError: Unsupported typecode: 'c'

๐Ÿ”’ Security

arrayops takes security seriously. For security-related issues:

  • Report vulnerabilities: See SECURITY.md for responsible disclosure
  • Security documentation: See Security Documentation for security guarantees and best practices
  • Security updates: Keep arrayops and dependencies up to date

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built with PyO3 for Python-Rust interop
  • Built with maturin for packaging
  • Inspired by the need for fast, lightweight array operations for Python's built-in array type

๐Ÿ“ž Support


For detailed documentation, examples, and API reference, visit arrayops.readthedocs.io

Project details


Download files

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

Source Distribution

arrayops-0.5.0.tar.gz (156.2 kB view details)

Uploaded Source

Built Distributions

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

arrayops-0.5.0-cp314-cp314-win_arm64.whl (236.2 kB view details)

Uploaded CPython 3.14Windows ARM64

arrayops-0.5.0-cp314-cp314-win_amd64.whl (274.7 kB view details)

Uploaded CPython 3.14Windows x86-64

arrayops-0.5.0-cp314-cp314-manylinux_2_28_x86_64.whl (348.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

arrayops-0.5.0-cp314-cp314-manylinux_2_28_aarch64.whl (312.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

arrayops-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (307.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

arrayops-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl (336.6 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

arrayops-0.5.0-cp313-cp313-win_arm64.whl (236.5 kB view details)

Uploaded CPython 3.13Windows ARM64

arrayops-0.5.0-cp313-cp313-win_amd64.whl (274.9 kB view details)

Uploaded CPython 3.13Windows x86-64

arrayops-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl (348.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

arrayops-0.5.0-cp313-cp313-manylinux_2_28_aarch64.whl (312.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

arrayops-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (307.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

arrayops-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl (336.6 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

arrayops-0.5.0-cp312-cp312-win_arm64.whl (240.1 kB view details)

Uploaded CPython 3.12Windows ARM64

arrayops-0.5.0-cp312-cp312-win_amd64.whl (270.8 kB view details)

Uploaded CPython 3.12Windows x86-64

arrayops-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl (347.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

arrayops-0.5.0-cp312-cp312-manylinux_2_28_aarch64.whl (317.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

arrayops-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (312.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

arrayops-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl (341.0 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

arrayops-0.5.0-cp311-cp311-win_arm64.whl (242.0 kB view details)

Uploaded CPython 3.11Windows ARM64

arrayops-0.5.0-cp311-cp311-win_amd64.whl (270.1 kB view details)

Uploaded CPython 3.11Windows x86-64

arrayops-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl (348.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

arrayops-0.5.0-cp311-cp311-manylinux_2_28_aarch64.whl (319.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

arrayops-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (313.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

arrayops-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl (339.6 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

arrayops-0.5.0-cp310-cp310-win_amd64.whl (270.5 kB view details)

Uploaded CPython 3.10Windows x86-64

arrayops-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl (348.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

arrayops-0.5.0-cp310-cp310-manylinux_2_28_aarch64.whl (319.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

arrayops-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (313.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

arrayops-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl (339.9 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

arrayops-0.5.0-cp39-cp39-win_amd64.whl (271.6 kB view details)

Uploaded CPython 3.9Windows x86-64

arrayops-0.5.0-cp39-cp39-manylinux_2_28_x86_64.whl (349.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

arrayops-0.5.0-cp39-cp39-manylinux_2_28_aarch64.whl (320.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

arrayops-0.5.0-cp39-cp39-macosx_11_0_arm64.whl (315.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

arrayops-0.5.0-cp39-cp39-macosx_10_12_x86_64.whl (342.1 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

arrayops-0.5.0-cp38-cp38-win_amd64.whl (273.8 kB view details)

Uploaded CPython 3.8Windows x86-64

arrayops-0.5.0-cp38-cp38-manylinux_2_28_x86_64.whl (352.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

arrayops-0.5.0-cp38-cp38-manylinux_2_28_aarch64.whl (321.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

arrayops-0.5.0-cp38-cp38-macosx_11_0_arm64.whl (315.8 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

arrayops-0.5.0-cp38-cp38-macosx_10_12_x86_64.whl (342.4 kB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

Details for the file arrayops-0.5.0.tar.gz.

File metadata

  • Download URL: arrayops-0.5.0.tar.gz
  • Upload date:
  • Size: 156.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0.tar.gz
Algorithm Hash digest
SHA256 51d0d70d84efa0b56a803ea211cfd5f0c64c599f45d1face862ccbb250a4f63a
MD5 95b9f7dcb1715cb5404208607c1aeb9c
BLAKE2b-256 b18a74704363fcb6a83d4a6f65cebd45d7dbef2b08589ac0a14d8ca08efd4f92

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 236.2 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 25036377ba917c2cab7ea4301d8ffe38b475d6d952a5c785f2e2a32bec04c84d
MD5 9376464b04aac498356c219d088eb6b6
BLAKE2b-256 de5d2a108ff13d5feb6bcf7ed3bebfc1f8a347be0b77fdd378710fa5a6f36dbf

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 274.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 116e80561f1c8cba1a57dd8389e814874641f57880ea0e29b85877dbf419f9fb
MD5 609dea2d268fd43b0ff6fd7cb96bb709
BLAKE2b-256 33042dc6d4d3e9a1d31e4cbab7461b919970b909c9dfa2acf2b1c177d48f2b1f

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2770ecfac67ddf4d7f65e3e58007024b5c8efc9c791e11bdbf0f426ea357a5ae
MD5 add4a7cf11c86ab290a74140e9f92574
BLAKE2b-256 7e19620c0d003f83701ffb03ebd84f01542f03f204f3d59e50edd11362ea6926

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e3a8f582bcfcaffea5ecb881adba61368486b58c77a53ebbdcfc88305009bcca
MD5 58cb633ddf1b1a7ccc62a3cc3af47723
BLAKE2b-256 a8c36c181691eb7d1c74e73b1f2ebc36d8e4cd1b23f5644e81f2d77d01b1d130

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e689dc45747351c46bf3a793d65b275886d9dc4bd6b0d670f7cdb15a56f0179
MD5 cfe8046f278f5a12786cc7ab2492ec77
BLAKE2b-256 d003d8430949724515b57034cbc62f6a737f238b8143e9cf8070b88e37735b0c

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f259389acb8a479c44374d0068e12f4151d1263b59a6ed1d275313c837d90ef4
MD5 e1016ed89b45ab3cbac6a6e43f4f847b
BLAKE2b-256 0b04aa454960a4966eda8281f5abdc75a91d37a2f66027cc19d6fab6953b34a3

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 236.5 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 962a5f0a5c318aaafff101306f9823eab8b4b42d9ab5afa3b407c80203ed1c7f
MD5 0902bfaee6709c3d4dd326845aa0f87d
BLAKE2b-256 a4a47a9e31e4c5946b0998595a77caf8d6489276a1a10d2fbccfe05ca6aaa424

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 274.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fe8f24743d79ebf9f9526f1b35f2c5258279ee77b854b8afbd65993775e898f8
MD5 ecbefbc21be8b0b197cb5901d9b84f47
BLAKE2b-256 d57a28a1c512cb2da9552bd40fd7327ae289be7e422d8ccaf80605ea103e3202

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ddf7b622e48b0c9aa1d1755aed24931ae502462d294306e361f6d7b853a3897f
MD5 fa7cbe9df8ffac3852976868b7c089a4
BLAKE2b-256 642a499f0dca1c15a0642c1dec6a11396545dfca04ab7e986d09b35028f4df51

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb56de6ab0e4abf6ae90cf41e9ba2b73eec6ebe70c2def46e9c571545e64d511
MD5 216b542fa7f1527ded8feefaa1453761
BLAKE2b-256 1e2d67908f98e2ee4ec0f40d7f606005e25404a7c0bdbc4dab973005297f50cf

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ce8d48e6161bd0574e92ccfd0385c6b8724fdc7021845c21ffaefe667213821
MD5 1f9883e2005d322b85dde09c45018e46
BLAKE2b-256 f273930da7c596520dbfdb61fe688402ba3994e5be95299d47c10ec79b6e9895

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6e305bfcc42e9b3edc064a1bf7039f1e4b3cb27987611e889d1358b9d19b34fe
MD5 eab3f52e94f3f986a83582c739551508
BLAKE2b-256 cb5dbe21f3c979480adc42c12dc41ba2662b7fcebb934977d27379c668ef183a

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 240.1 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e6f10c6ddb6b4eaf47344b450fd59fe112439a86aeb23782e6c26733350db8bd
MD5 b7ac6633c2bd8396354bfcba541099ea
BLAKE2b-256 35be8187a6bb8448cefd433124abcd4781ab630d0c9f05ef2584f931ebcf311a

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 270.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 29fefcf2be12aa7f8a0f081cca366f5673db7cc608b4fc4fade8ad728b944500
MD5 73c2b8b586e32ea9e9019e9ad5999352
BLAKE2b-256 316ec99b14ea08e29fd9b364352569b816d37844e5f50bf99586d371742b8c75

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be0ea9315a813b117d86aeb57e755aa717e24286fd3d1ab15d56b9a20d72b561
MD5 2a6a10c672cee1acd4740f1e6c90a03b
BLAKE2b-256 5ed207dc4c9e1731bdb3c5a591000ac6fabdf3e095bd035d0bb2ac79eb8ec49c

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a22c2e0de895a0e3145480ce8e83ccf6f8d63b0f27789519226ea374083ea316
MD5 5b1952bb78219837bdbbae467ff5004d
BLAKE2b-256 2214e6eaa1125b894df9682c26f3bc45fea16a169da5142c36841d2301939027

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea739caf32708fed75a8332dd0da07dfb84ca4c1b84820106d48aeed1aabfadf
MD5 680e4f50e71c12f6e96cccb8fe784cdf
BLAKE2b-256 8655f3d217efe5ada0d5ae5307f068576ac6db7feb4bad15269e73cc1a1079d2

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b946bc69b2b2421165896c42f13e76bb9a0854c1991b00b5cb8039ca8bce7dec
MD5 6b769b519ba2bad815354edee328b7f2
BLAKE2b-256 9e9dc3e9f18fd877aa91157d74bd546e2ddcec737720d9e80efd93490f62cee0

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 242.0 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 f6fb073d41f81d913e3ea8ab072fe986ab7caa3d70ac23e49c2c177c3b0be360
MD5 11c3a06b496708e79d1e461c4a135c79
BLAKE2b-256 a046b59387399943e07175beefeca0910ef4430fe429c54a953d4cfe095116d7

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 270.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7425d794356af0b5ffa09fddf21d620f63a645e2b2832ab92312e91a2f5980bb
MD5 7221309abf99d6ff446c3acda5cfbdd3
BLAKE2b-256 3bbcc5a27a0a78a8ced15b37f31cc3048ee4807b77b5bbf1ae453d8185e896b4

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ffbac62e23951734f8693204ee68e47c6affe874612964a0ec993e80a062baca
MD5 0cf897e7cb57cde89a346e77ded6c7e8
BLAKE2b-256 5ecf3686139b7776c0ff2d0125fc80570d3344977183f60e76716616da99714f

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0193204eada4885eb24c515f631c781f9278ca9c4683f3abdfb4a273ab56d3de
MD5 eae5c6a82e66f9e5b931535740a4aa27
BLAKE2b-256 09e75f07f0d85bb998f07a584be190690b4f41bbfba54e05887d97098a070350

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d081acbb9727555692741850f2115a1948867b28396904f85694aedf099c895
MD5 54483bfe83900773cf849b47cc9530a5
BLAKE2b-256 4a50cad5430ed8c39bec1f3a7fcd5ad55b7c0e209fcbb2311f7c0ae756f8a859

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 021cdb83465bd4a876a9e29522d155bc1a5454c35b6f2cb50e38f93d5840aaef
MD5 b303251a6174ace030e4592a4b1a612e
BLAKE2b-256 e4e32158ed8ef724afa71f039bc48029e548706dc44d9f697d4dba0506a91974

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 270.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4dbedea2ba49e0f5104bf7d7abac954115d56eb7fd16f9b480345a9d105aeb44
MD5 014a5c6c8bc76c1e0d49ed1b19cc8229
BLAKE2b-256 4cfcc356445631743c67457533c416117789af7fe5600f7c496b523af6c1b335

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d16946f75d07d9573bd3c2a93832dec6bee51255817096542b6e3126473b30f6
MD5 1417ec1bb5cdec5805821faf232806fc
BLAKE2b-256 e85131dd3a7d8860b4e88a305a7ca767ad80960ae125d37c2b1a710da9be2921

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cb2aa7740ab11003ebb0cac813c7eb3862ec961fe01ea5a085679e3c4d190e3c
MD5 c13d70c3a073442e5a8c4aa1112a4d09
BLAKE2b-256 94aaaa934fcec57c9403c08367ba84b52a83561f54cbaec0c67e9bf5288da457

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f883c710cbf135cebcb2f6236ee9171fff7c5116a6dc5316297aefde5c36acf
MD5 c03a4e5e780d82f934a916d679c510b6
BLAKE2b-256 0f8c7fded8f5688b807ac9fe1b5eb2441dd00021b8134cb6bb7113763acd9dcc

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b6a9217fb07005c069ad43508472e2c814bd9880abb083ccb9343e3c87fb4570
MD5 f7b4cb98e2d39db916e322c0eb004697
BLAKE2b-256 9285f9983943280d7c937fca7f7302c987d3e9900e86cd2d3420c8c0c20313c1

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 271.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c9311d55286f265f8ac9e23100a6c5186c94a416090dba1bd6312e68f58b55c4
MD5 a4e91a9f6d5f2a3df8fc83e2c7f112ef
BLAKE2b-256 428616e36afcfe8c74953a3582d1f1ec5bb305ed3346f029186f93bbef1b9575

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e14968c24e1193f5ac3adaa2e36e46156fec62a1b65c3a4d0caf7d7a157596b
MD5 648e5de4259f7abdd407cbf4323b5596
BLAKE2b-256 f42129f2b69a8c101b42617c70ef8187c93b9cd4d267390cc7af11ac2c4b0c52

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ca2a8b156225285582c4522f09ff968c9414cf61c3389ae6d2b56e7d921d1e15
MD5 5a224f11453d4d54dfd1d92991b43685
BLAKE2b-256 f5c457a2898d5425e0c8ae26423b3926d577d96bd5ac33a1ceed7c9873d1d0f1

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73cbd35ed1878072a02f479d7bb237068a4658a665ca3718099126e8be4d5629
MD5 2593633fcc14e416e569c51b37f1520e
BLAKE2b-256 3da7fd8635fd5b22322e1e8c88ecac9c33f9dbf84af52276de4a252ae369b77e

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c040458cc7cc143b6d39104a6a2f0564f6721cd7381a90e94f2078488142e11d
MD5 4fbe3547662f69639ac3d71eca8b2bff
BLAKE2b-256 2615f34e34c4d071c7ca525f0df5fcd03630998d46cb5847df7d8052b625dc2f

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: arrayops-0.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 273.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for arrayops-0.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 77b430e96559d7f01d9e31633356332bf8175fd96e9a420199b1eb0dd2244e21
MD5 53e3db050cc4cc79c0a356345cde608d
BLAKE2b-256 8e03478ae8480d74ccd9ba2af9c2edc4abca05c85b053a9f97c8827879aeddd9

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75ffd8dd8874212f531697a6c91f1ca7ecc8a990be974b6fcee045f3ad4388bf
MD5 2df00091068c6121341df65cf1b26d6b
BLAKE2b-256 c7e0e696ba2aea9d4f81e8ce5f6eb4febe7df8697c7efd8a66dc7aed9b24c388

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e43a1212258871ed1bb57fd9127819237e6c80ee5511f10b44c4925af32398fa
MD5 fa4726bad48bf71d5116ae9c7ea160ab
BLAKE2b-256 5bc77278ead06e4c7484ca377578bdab156efecc063a13800d2d6e5d1efffe7d

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3fa580a755fc01c8675eaf852a00b557d2006514585eb9556009a3595182eb36
MD5 cbd46e4dd628bc930f60a4fc7d48fde2
BLAKE2b-256 cdb83d15d4ef77b60120c36d19600a0efb6cff1636f1fe360a542a60d2c479e3

See more details on using hashes here.

File details

Details for the file arrayops-0.5.0-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arrayops-0.5.0-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 34c9edd8fe6c92a9db72cc9b06921357155cdcd1f75fa77ef0aadfec11c94f4e
MD5 c6e3882b5f570117c80f94ed62579f6f
BLAKE2b-256 7ddd75c83472a5f25ab2c3707410b9fa914e6b0a9830b3546f106a2fe090af7d

See more details on using hashes here.

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