A high-performance array storage and manipulation library
Project description
NumPack
NumPack is a high-performance array storage library that combines Rust's performance with Python's ease of use. It provides exceptional performance for both reading and writing large NumPy arrays, with special optimizations for in-place modifications.
Key Features
- 🚀 458x faster row replacement than NPY (improved from 397x)
- ⚡ 343x faster data append than NPY
- 💨 46x faster lazy loading than NPY mmap
- 📖 1.50x faster full data loading than NPY (improved from 1.3x)
- 🔄 21x speedup with Batch Mode for frequent modifications
- ⚡ 89x speedup with Writable Batch Mode
- 💾 Zero-copy operations with minimal memory footprint
- 🛠 Seamless integration with existing NumPy workflows
What's New in v0.4.2 ✨
Major Performance Enhancements 🚀
- 50% faster Full Load (8.27ms → 4.11ms for 38MB data)
- 27% faster Save (16.15ms → 11.76ms)
- 43% faster Batch Mode (34ms → 19.5ms)
- 38% faster Replace operations (0.047ms → 0.029ms)
- 15% improvement in competitive advantage (1.3x → 1.50x faster than NPY)
New I/O Optimizations 🔧
-
Adaptive Buffer Sizing
- Small arrays (<1MB): 256KB buffer → 96% memory saving
- Medium arrays (1-10MB): 4MB buffer → balanced performance
- Large arrays (>10MB): 16MB buffer → maximum throughput
-
Smart Parallelization
- Automatically parallelizes only when beneficial (>10MB total data)
- Avoids thread overhead for small datasets
-
Fast Overwrite Path
- Same-shape array overwrite: 1.5-2.5x faster
- Uses in-place update instead of file recreation
-
SIMD Acceleration
- Large files (>10MB) use SIMD-optimized operations
- Theoretical 2-4x speedup for memory-intensive operations
-
Batch Mode Intelligence
- Smart dirty tracking: only flushes modified arrays
- Zero-copy cache detection
- Reduced metadata synchronization
Core Advantages Enhanced
- Replace operations now 458x faster than NPY (up from 397x) 🔥
- Full Load now 1.50x faster than NPY (up from 1.3x) 📈
- System-wide optimizations benefit all operation modes
Features
- High Performance: Optimized for both reading and writing large numerical arrays
- Lazy Loading Support: Efficient memory usage through on-demand data loading
- In-place Operations: Support for in-place array modifications without full file rewrite
- Batch Processing Modes:
- Batch Mode: 21x speedup for batch operations
- Writable Batch Mode: 89x speedup for frequent modifications
- Multiple Data Types: Supports various numerical data types including:
- Boolean
- Unsigned integers (8-bit to 64-bit)
- Signed integers (8-bit to 64-bit)
- Floating point (16-bit, 32-bit and 64-bit)
- Complex numbers (64-bit and 128-bit)
Installation
From PyPI (Recommended)
Prerequisites
- Python >= 3.9
- NumPy >= 1.26.0
pip install numpack
From Source
Prerequisites (All Platforms including Windows)
- Python >= 3.9
- Rust >= 1.70.0 (Required on all platforms, install from rustup.rs)
- NumPy >= 1.26.0
- Appropriate C/C++ compiler
- Windows: Microsoft C++ Build Tools
- macOS: Xcode Command Line Tools (
xcode-select --install) - Linux: GCC/Clang (
build-essentialon Ubuntu/Debian)
Build Steps
- Clone the repository:
git clone https://github.com/BirchKwok/NumPack.git
cd NumPack
- Install maturin:
pip install maturin>=1.0,<2.0
- Build and install:
# Install in development mode
maturin develop
# Or build wheel package
maturin build --release
pip install target/wheels/numpack-*.whl
Usage
Basic Operations
import numpy as np
from numpack import NumPack
# Using context manager (Recommended)
with NumPack("data_directory") as npk:
# Save arrays
arrays = {
'array1': np.random.rand(1000, 100).astype(np.float32),
'array2': np.random.rand(500, 200).astype(np.float32)
}
npk.save(arrays)
# Load arrays - Normal mode
loaded = npk.load("array1")
# Load arrays - Lazy mode
lazy_array = npk.load("array1", lazy=True)
Advanced Operations
with NumPack("data_directory") as npk:
# Replace specific rows
replacement = np.random.rand(10, 100).astype(np.float32)
npk.replace({'array1': replacement}, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# Append new data
new_data = {'array1': np.random.rand(100, 100).astype(np.float32)}
npk.append(new_data)
# Drop arrays or specific rows
npk.drop('array1') # Drop entire array
npk.drop('array2', [0, 1, 2]) # Drop specific rows
# Random access operations
data = npk.getitem('array1', [0, 1, 2])
data = npk['array1'] # Dictionary-style access
# Stream loading for large arrays
for batch in npk.stream_load('array1', buffer_size=1000):
process_batch(batch)
Batch Processing Modes
NumPack provides two high-performance batch modes for scenarios with frequent modifications:
Batch Mode (21x speedup, 43% faster than before)
with NumPack("data.npk") as npk:
with npk.batch_mode():
for i in range(1000):
arr = npk.load('data') # Load from cache
arr[:10] *= 2.0
npk.save({'data': arr}) # Save to cache
# All changes written to disk on exit
# ✨ Now with smart dirty tracking and zero-copy detection
Writable Batch Mode (89x speedup)
with NumPack("data.npk") as npk:
with npk.writable_batch_mode() as wb:
for i in range(1000):
arr = wb.load('data') # Memory-mapped view
arr[:10] *= 2.0 # Direct modification
# No save needed - changes are automatic
Performance
All benchmarks were conducted on macOS (Apple Silicon) using the Rust backend with precise timeit measurements.
Performance Comparison (1M rows × 10 columns, Float32, 38.1MB)
| Operation | NumPack | NPY | NPZ | Zarr | HDF5 | NumPack Advantage |
|---|---|---|---|---|---|---|
| Full Load | 4.11ms 🥇 | 6.17ms | 165.03ms | 34.37ms | 54.02ms | 1.50x vs NPY ⬆️ |
| Lazy Load | 0.002ms 🥇 | 0.091ms | N/A | 0.357ms | 0.102ms | 46x vs NPY |
| Replace 100 rows | 0.029ms 🥇 | 13.29ms | 1493ms | 7.82ms | 0.50ms | 458x vs NPY 🔥 |
| Append 100 rows | 0.060ms 🥇 | 20.58ms | 1499ms | 8.88ms | 0.21ms | 343x vs NPY |
| Random Access (1K) | 0.047ms | 0.010ms 🥇 | 165.83ms | 2.93ms | 5.05ms | - |
| Save | 11.76ms | 6.20ms 🥇 | 1332ms | 69.11ms | 57.59ms | 1.9x slower |
Performance Comparison (100K rows × 10 columns, Float32, 3.8MB)
| Operation | NumPack | NPY | NPZ | Zarr | HDF5 | NumPack Advantage |
|---|---|---|---|---|---|---|
| Full Load | 0.34ms 🥇 | 0.41ms | 16.79ms | 5.03ms | 5.68ms | 1.2x vs NPY |
| Lazy Load | 0.003ms 🥇 | 0.088ms | N/A | 0.414ms | 0.079ms | 29x vs NPY |
| Replace 100 rows | 0.035ms 🥇 | 1.36ms | 150.41ms | 3.55ms | 0.19ms | 39x vs NPY |
| Append 100 rows | 0.056ms 🥇 | 1.66ms | 150.73ms | 3.53ms | 0.20ms | 30x vs NPY |
| Random Access (1K) | 0.055ms | 0.010ms 🥇 | 16.32ms | 1.58ms | 4.66ms | - |
Batch Mode Performance (1M rows × 10 columns)
100 consecutive modify operations:
| Mode | Time | Improvement from v0.4.0 | Speedup |
|---|---|---|---|
| Normal Mode | 409ms | 52% faster ✨ | - |
| Batch Mode | 19.5ms | 43% faster ✨ | 21x faster 🔥 |
| Writable Batch Mode | 4.6ms | 6% faster | 89x faster 🔥 |
💡 Note: All modes benefit from v0.4.2 I/O optimizations. Speedup ratios are calculated against the optimized Normal Mode baseline.
Key Performance Highlights
-
Data Modification - Exceptional Performance 🏆
- Replace operations: 458x faster than NPY (improved from 397x) 🔥
- Append operations: 343x faster than NPY (large dataset)
- Supports efficient in-place modification without full file rewrite
- NumPack's core advantage - now even stronger
-
Data Loading - Outstanding Improvements ⭐ Significantly Enhanced
- Full load: 1.50x faster than NPY (improved from 1.3x)
- Lazy load: 46x faster than NPY mmap (0.002ms)
- 50% faster than previous version (8.27ms → 4.11ms)
- Optimized with adaptive buffering and SIMD acceleration
-
Batch Processing - Enhanced Performance ⭐ Improved
- Batch Mode: 21x speedup, 43% faster than before
- Writable Batch Mode: 89x speedup, maintained excellence
- System-wide I/O optimizations benefit all modes
- Normal Mode also 52% faster from optimizations
-
Storage Efficiency
- File size identical to NPY
- ~10% smaller than Zarr/NPZ (compressed formats)
-
New in v0.4.2 ✨
- Adaptive buffer sizing (256KB/4MB/16MB based on data size)
- Smart parallelization strategy
- Fast overwrite path for same-shape arrays
- SIMD-accelerated large file operations
- Intelligent dirty tracking for Batch Mode
When to Use NumPack
✅ Strongly Recommended (90% of use cases):
- Machine learning and deep learning pipelines
- Real-time data stream processing
- Data annotation and correction workflows
- Feature stores with dynamic updates
- Any scenario requiring frequent data modifications
- Fast data loading requirements
⚠️ Consider Alternatives (10% of use cases):
- Write-once, never modify → Use NPY (faster initial write)
- Frequent single-row access → Use NPY mmap
- Extreme compression requirements → Use NPZ (10% smaller, but 1000x slower)
Best Practices
1. Use Writable Batch Mode for Frequent Modifications
# 89x speedup for frequent modifications
with NumPack("data.npk") as npk:
with npk.writable_batch_mode() as wb:
for i in range(1000):
arr = wb.load('data')
arr[:10] *= 2.0
# Automatic persistence on exit
2. Use Batch Mode for Batch Operations
# 21x speedup for batch processing (43% faster than before!)
with NumPack("data.npk") as npk:
with npk.batch_mode():
for i in range(1000):
arr = npk.load('data')
arr[:10] *= 2.0
npk.save({'data': arr})
# Single write on exit with smart dirty tracking
3. Use Lazy Loading for Large Datasets
with NumPack("large_data.npk") as npk:
# Only 0.002ms to initialize
lazy_array = npk.load("array", lazy=True)
# Data loaded on demand
subset = lazy_array[1000:2000]
4. Reuse NumPack Instances
# ✅ Efficient: Reuse instance
with NumPack("data.npk") as npk:
for i in range(100):
data = npk.load('array')
# ❌ Inefficient: Create new instance each time
for i in range(100):
with NumPack("data.npk") as npk:
data = npk.load('array')
Benchmark Methodology
All benchmarks use:
timeitfor precise timing- Multiple repeats, best time selected
- Pure operation time (excluding file open/close overhead)
- Float32 arrays
- macOS Apple Silicon (results may vary by platform)
For complete benchmark code, see comprehensive_format_benchmark.py.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file numpack-0.4.2.tar.gz.
File metadata
- Download URL: numpack-0.4.2.tar.gz
- Upload date:
- Size: 327.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aec1d51597c03cd1e59b19b647494c58565734470259af31d055785017b2108b
|
|
| MD5 |
71bffe1a32e7b46ec80394b04a376e17
|
|
| BLAKE2b-256 |
7f42151ba630eab28ee2773e1f7dd45ea789941b2eda6f1ff757c769b05e9a41
|
File details
Details for the file numpack-0.4.2-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: numpack-0.4.2-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 511.9 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb0ade8865613276b1ee627a44198005b99f262df0811ef6d822aa68ac13f635
|
|
| MD5 |
e3e46e8105fea7e84aeebe77acb0ef1f
|
|
| BLAKE2b-256 |
0bce2d4c18399f4fe76cdc104a07bbcd436b35f96dea5ca2a7541e1b0efc3d96
|
File details
Details for the file numpack-0.4.2-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.4.2-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 541.0 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4f5670d1808d6cbd5cbbce68f93379d13689194efb37601ad97a6e9d77480c7
|
|
| MD5 |
b503c318206289abf58cf5084055a77a
|
|
| BLAKE2b-256 |
d9563440d2f620721c8801e3833a025c3c3b0eb78b680cb9340390be05020d22
|
File details
Details for the file numpack-0.4.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: numpack-0.4.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 504.0 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4c0ab1fc14c030130e995106b18fce07fc84c11a93f0c0816fdbd49a1fbf2ef
|
|
| MD5 |
cc30a8ab460877d49ed20eaefe2d6bdf
|
|
| BLAKE2b-256 |
6f96443105c807affa04dd806a31a6744d9bb37ae324d440ee2399afbb872322
|
File details
Details for the file numpack-0.4.2-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 624.5 kB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cad6b2f7975b8949541d5dbe5a09b86d1a00f330c1b20da34e43bae60008229f
|
|
| MD5 |
e692bc8afe2f3985df37af27fde9029e
|
|
| BLAKE2b-256 |
f515bb02dd43ef736218c3c7aa9d26fb943a8dc1f23ca53bf6ce0b2ab92b5a64
|
File details
Details for the file numpack-0.4.2-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.4.2-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 533.5 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f74537c52a02bc3c27d0a6748ffb137ef6920bcc6d3b0be720a8733700f5c2b
|
|
| MD5 |
8999f081bb8c35be0ec859f9e15b0f20
|
|
| BLAKE2b-256 |
f0c96349d2f4633ea55e934ce8b46316379b822d5831c29dec88b36b0bbd1c8a
|
File details
Details for the file numpack-0.4.2-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 596.1 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f50ac557081028f2ce6cb0c0acc8490f3a1f289d8823ecfaeeb9aa9d42cfed8
|
|
| MD5 |
2cb755f677e85a6471d93cce6f1bded7
|
|
| BLAKE2b-256 |
a9e1553736801e452426eb611720b622c1c0f50e68b4938a5ca1335a4b408f98
|
File details
Details for the file numpack-0.4.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: numpack-0.4.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 504.4 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f6d752de32fd86d4d09e8732d3d556529f68d4a1304fba22142eab5b344c07a
|
|
| MD5 |
a4c3056eb10f0bbf4dd078b44c87ccf8
|
|
| BLAKE2b-256 |
f241d2b4bf97814c4c5cd1eec1d5f8863af2dbe9ef452df9bdc02bc795a3b95f
|
File details
Details for the file numpack-0.4.2-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 624.9 kB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad65b7058c3f1898fac7b3a34ecec5b65b81056622458e05cb7992d69e851056
|
|
| MD5 |
0981604d2a5d9dc8f8e3d7a8ce0d9fc7
|
|
| BLAKE2b-256 |
64c3f5db572b7387dc3f30dedf6da28c3cb2c7f514e3530b4c3ed51df71cbafb
|
File details
Details for the file numpack-0.4.2-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.4.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 533.9 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf0189f288a004a9f36167dd51d75294c1195f429d9753795e735268cdeb8e6a
|
|
| MD5 |
99c0843ae80390d4caeb49ba2c52d901
|
|
| BLAKE2b-256 |
cf75ae2596884f9fabb6aad4025ae908907f6a6c4ec5a89aa657d12d1d7ed0ae
|
File details
Details for the file numpack-0.4.2-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 596.4 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fa5db75d5add6ff4e7076c688dfe9e039c53ee1cbf5987eec1533eb1ebc150e
|
|
| MD5 |
fe5cf821155656a3ba545f4156c2d7a0
|
|
| BLAKE2b-256 |
73cba550cbe0cdf92fcb260761875c0eb74fc2235cbb06f851e7cb21b18c9aa6
|
File details
Details for the file numpack-0.4.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: numpack-0.4.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 504.1 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90204754023da304f7f143616b06c4ffc21cee3f2a280a7028bfad219742fb1b
|
|
| MD5 |
270785d8bb199c87d1081dd65c72a8d6
|
|
| BLAKE2b-256 |
bae303f04bd131e82a01c1cdd7d18e8d625b1d870d7ae43bd2baab44e53987f6
|
File details
Details for the file numpack-0.4.2-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 625.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e94d757f5e95ca6f2a7f4eb6bc4ddfd147952f97410f5d77f7a05a8e462ce32
|
|
| MD5 |
7a5fc399bd21105a4a2cadaab2070ca2
|
|
| BLAKE2b-256 |
8c4c9f75d9a0490ec8d6edd63b721d2fa969d3ed59d0c5f299e2993f3b1dccb9
|
File details
Details for the file numpack-0.4.2-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.4.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 535.9 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9dc703420436554e5a5b201ccfe9813dfde7e2ea482bf522dcc337be2312b87b
|
|
| MD5 |
d1819b2c3a7646a7e911b27941653616
|
|
| BLAKE2b-256 |
559764961d2a905822df5aecd00ed70d877fc54bd74ed79efe3415e912199e8f
|
File details
Details for the file numpack-0.4.2-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 596.1 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1faa006519ba27afafe21bb02490ca728bf772cecfd52c4bb23e5f792007468
|
|
| MD5 |
4418e97fa0c1b18c6f7a97d62ca34f01
|
|
| BLAKE2b-256 |
c736283608238ccb76303a404869ed4e74ecdcc250ce4020a6fab1399f40311d
|
File details
Details for the file numpack-0.4.2-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: numpack-0.4.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 504.3 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b193e9c1c7eaffeef910b392901cabddf582722187e5abbc1be20cded5f217b8
|
|
| MD5 |
87afd11fc94bc2ff2468d58b82477dd4
|
|
| BLAKE2b-256 |
8b844b72cced4e272c5c88ac3f93a2ca9ba1c7aff4ae8037224add5a4b2bdb6f
|
File details
Details for the file numpack-0.4.2-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 626.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01b780e95d52bbd8975cbfb70e48aff5285f535f2c864a91e592c072f48d3b6a
|
|
| MD5 |
aeea57b3777e08edd3f10f2f2c5daab9
|
|
| BLAKE2b-256 |
057736fb768c16e1cc76a8094ff43af75cc4cbdb667f97aacc3e2dec6bce1f3b
|
File details
Details for the file numpack-0.4.2-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.4.2-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 536.0 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06facb742115f095a01e53881a8e4b3b51514c0a73d09b21c6682e65e1ae79f4
|
|
| MD5 |
bac154c0a1f9e5ed2c7fe636b13e8131
|
|
| BLAKE2b-256 |
93811bcdc6bd8b4bf04d6671776998645fbfae446f40fb671e3734bc0d5bdda4
|
File details
Details for the file numpack-0.4.2-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 596.3 kB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cb64b0ac74ec13d3f2fd5bfa2bd234fdf9c449fa7271ec0ef1deb116bfa3f19
|
|
| MD5 |
2e5ba2b1fbbbe22891e95eb6ebd9d23b
|
|
| BLAKE2b-256 |
2f72b7dea7258c46542912b46603b5f6dab83f0b9a3f544b7d562f94144ba057
|
File details
Details for the file numpack-0.4.2-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: numpack-0.4.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 504.2 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d002091686628ed71ecd827e7f0e3583fbd1d020962832eee4a4e223c22e8bb3
|
|
| MD5 |
b8f11434c56522aec0b092da367deeb1
|
|
| BLAKE2b-256 |
51c2090ea4d346d4919f6589e3dc12a07669bed810511a570aeb746467a3693d
|
File details
Details for the file numpack-0.4.2-cp39-cp39-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp39-cp39-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 626.2 kB
- Tags: CPython 3.9, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f7082b5a2e8ff5717c74ac5ea55be0da5e3350da3cf598fe9e614ff1b3061c6
|
|
| MD5 |
a62de25a8def7a819bc2def6d050d2dd
|
|
| BLAKE2b-256 |
b9caf27d4729af8fd532dc3f7b34e7f5f6ea9cdfdaabfe0820c0aea9cf4684a1
|
File details
Details for the file numpack-0.4.2-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.4.2-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 536.4 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03f0b1775f98790a7076c235a0069b9f5432953332933be308975c17e71ea221
|
|
| MD5 |
9aeef2c52af32e5d68ce389237b63cbd
|
|
| BLAKE2b-256 |
613733852b7707fa15cffa73aa7345cceb424fc47bf236c19bfa2b3c1a72d8a4
|
File details
Details for the file numpack-0.4.2-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.4.2-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 596.4 kB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
633f9dac4b9c0777a598482e9c6ec5aef4d08f190e4bf1542e663e750600515e
|
|
| MD5 |
9dc5ff788a2b6ee51cdee31c85a5502e
|
|
| BLAKE2b-256 |
d9fab38421f55cb64eb3a5acce9a49fac5f7a4c0df8442d6d44e3012dc9b7d3f
|