Blazingly fast spatio-temporal database library
Project description
Spatio: Python Bindings for High-Performance Spatio-Temporal Database
Python bindings for Spatio, a high-performance, embedded spatio-temporal database written in Rust. Spatio brings spatial operations and geographic data management to Python with minimal overhead.
Features
- High Performance: Built on Rust for maximum speed and memory efficiency
- Spatio-Temporal Operations: Geographic point storage with automatic spatial indexing and optional time filters
- Trajectory Tracking: Store and query movement data over time
- TTL Support: Automatic data expiration with time-to-live
- Thread-Safe: Concurrent access (atomic operations coming soon for Python)
- Persistent Storage: Optional file-based persistence
Installation
From PyPI (Recommended)
pip install spatio
📦 PyPI Repository: https://pypi.org/project/spatio
From Source
# Clone the repository
git clone https://github.com/pkvartsianyi/spatio.git
cd spatio/py-spatio
# Build and install
pip install maturin
maturin develop
Quick Start
import spatio
# Create an in-memory database
db = spatio.Spatio.memory()
# Store simple key-value data
db.insert(b"user:123", b"John Doe")
user = db.get(b"user:123")
print(f"User: {user.decode()}") # User: John Doe
# Store geographic points with automatic spatial indexing
nyc = spatio.Point(40.7128, -74.0060)
london = spatio.Point(51.5074, -0.1278)
db.insert_point("cities", nyc, b"New York City")
db.insert_point("cities", london, b"London")
# Find nearby points within 6000km
nearby = db.query_within_radius("cities", nyc, 6000000.0, 10)
for point, city_name, distance in nearby:
print(f"{city_name.decode()}: {distance/1000:.0f}km away")
Core Classes
Spatio
The main database class for all operations.
# Create databases
db = spatio.Spatio.memory() # In-memory
db = spatio.Spatio.open("data.db") # Persistent
db = spatio.Spatio.memory_with_config(config) # With custom config
# Basic operations
db.insert(key, value, options=None)
value = db.get(key)
old_value = db.delete(key)
# Spatial operations
db.insert_point(prefix, point, value, options=None)
nearby = db.query_within_radius(prefix, center, radius_meters, limit)
count = db.count_within_radius(prefix, center, radius_meters)
# Trajectory operations
db.insert_trajectory(object_id, trajectory, options=None)
path = db.query_trajectory(object_id, start_time, end_time)
Point
Represents a geographic coordinate.
# Create points
point = spatio.Point(latitude, longitude)
print(f"Location: {point.lat}, {point.lon}")
# Calculate distance
distance = point1.distance_to(point2) # Returns meters
SetOptions
Configure data storage options.
# TTL (time-to-live)
opts = spatio.SetOptions.with_ttl(300.0) # 5 minutes
db.insert(b"session", b"data", opts)
# Absolute expiration
import time
future = time.time() + 300
opts = spatio.SetOptions.with_expiration(future)
Config
Database configuration.
# Custom geohash precision (1-12, default: 8)
config = spatio.Config.with_geohash_precision(10) # ~61cm accuracy
db = spatio.Spatio.memory_with_config(config)
# Manual configuration
config = spatio.Config()
config.geohash_precision = 6 # ~610m accuracy
Usage Examples
Basic Spatial Queries
import spatio
db = spatio.Spatio.memory()
# Insert city data
cities = [
(spatio.Point(40.7128, -74.0060), b"New York"),
(spatio.Point(51.5074, -0.1278), b"London"),
(spatio.Point(35.6762, 139.6503), b"Tokyo"),
(spatio.Point(48.8566, 2.3522), b"Paris"),
]
for point, name in cities:
db.insert_point("cities", point, name)
# Find cities within 6000km of New York
nyc = spatio.Point(40.7128, -74.0060)
nearby = db.query_within_radius("cities", nyc, 6000000.0, 10)
print(f"Cities within 6000km of NYC:")
for point, name, distance in nearby:
print(f" {name.decode()}: {distance/1000:.0f}km")
Trajectory Tracking
import spatio
import time
db = spatio.Spatio.memory()
# Create a trajectory (list of (Point, timestamp) tuples)
trajectory = [
(spatio.Point(40.7128, -74.0060), 1640995200), # NYC
(spatio.Point(40.7580, -73.9855), 1640995800), # Central Park
(spatio.Point(40.6892, -74.0445), 1640996400), # Brooklyn
]
# Store trajectory
db.insert_trajectory("vehicle:truck001", trajectory)
# Query trajectory for specific time range
path = db.query_trajectory("vehicle:truck001", 1640995200, 1640996400)
print(f"Vehicle path ({len(path)} points):")
for point, timestamp in path:
print(f" {timestamp}: ({point.lat:.4f}, {point.lon:.4f})")
TTL and Expiration
import spatio
import time
db = spatio.Spatio.memory()
# Data that expires in 5 seconds
opts = spatio.SetOptions.with_ttl(5.0)
db.insert(b"session:temp", b"temporary_data", opts)
print("Immediate:", db.get(b"session:temp")) # b'temporary_data'
time.sleep(6)
print("After TTL:", db.get(b"session:temp")) # None
Sequential Operations
import spatio
db = spatio.Spatio.memory()
# Sequential operations (atomic operations coming in future version)
db.insert(b"user:1", b"Alice")
db.insert(b"user:2", b"Bob")
point = spatio.Point(40.7128, -74.0060)
db.insert_point("locations", point, b"NYC Office")
print("Operations completed")
# Verify all operations were applied
print(db.get(b"user:1")) # b'Alice'
nearby = db.query_within_radius("locations", spatio.Point(40.7128, -74.0060), 1000, 10)
print(len(nearby)) # 1
Bounding Box Queries
import spatio
db = spatio.Spatio.memory()
# Insert points across different regions
points = [
(spatio.Point(40.7128, -74.0060), b"NYC"), # North America
(spatio.Point(51.5074, -0.1278), b"London"), # Europe
(spatio.Point(35.6762, 139.6503), b"Tokyo"), # Asia
]
for point, name in points:
db.insert_point("cities", point, name)
# Find cities in Europe (rough bounding box)
european_cities = db.find_within_bounds(
"cities",
40.0, -10.0, # min_lat, min_lon
60.0, 10.0, # max_lat, max_lon
10 # limit
)
print("European cities:")
for point, name in european_cities:
print(f" {name.decode()} at ({point.lat:.2f}, {point.lon:.2f})")
Performance
Spatio-Py is built for high performance:
- Fast spatial indexing using geohash and R-tree algorithms
- Memory efficient storage with zero-copy operations where possible
- Concurrent access with minimal locking overhead
- Optimized distance calculations using efficient approximation algorithms
Benchmarks
Basic performance characteristics (your results may vary):
- Key-value operations: ~1.6M ops/sec (600ns per operation)
- Spatial insertions: ~1.9M points/sec (530ns per operation)
- Spatial queries: ~225K queries/sec (4.4μs per operation)
- Memory usage: Efficient in-memory storage with spatial indexing
Development
Development Tools
This project uses just as the primary task runner for all development workflows. Just provides a more powerful and expressive alternative to Make.
# Install just (if not already installed)
cargo install just
# See all available commands
just --list
# Common development tasks
just setup # Set up development environment
just build # Build the package
just test # Run tests
just check # Run all quality checks (lint, format, typecheck)
just ci # Run full CI pipeline locally
Building from Source
# Prerequisites
pip install maturin pytest
# Clone and build
git clone https://github.com/pkvartsianyi/spatio.git
cd spatio/py-spatio
# Development build
maturin develop
# Run tests
just test
# Run examples
python examples/basic_usage.py
Building Multi-Platform Wheels
The project uses cibuildwheel to build wheels for all major platforms and Python versions (3.9-3.13):
Supported Platforms:
- Linux:
x86_64,aarch64(manylinux) - macOS:
x86_64(Intel),arm64(Apple Silicon) - Windows:
AMD64
Automated Builds:
- Wheels are automatically built on every release via GitHub Actions
- All wheels are tested before publishing to PyPI
- The workflow generates 40+ wheel files covering all platform/Python combinations
Manual Build:
# Install cibuildwheel
pip install cibuildwheel
# Build wheels for your platform
cibuildwheel --platform linux # or macos, windows
# Build for specific Python versions
CIBW_BUILD="cp311-* cp312-*" cibuildwheel
# Output wheels will be in ./wheelhouse/
For more details, see .github/workflows/wheels.yml
Testing
# Run all tests
just test
# Run with coverage
just coverage
# Run performance tests
just bench
Code Formatting
# Format Python code
just fmt
# Type checking
just typecheck
# Run all checks
just check
API Reference
Database Operations
| Method | Description |
|---|---|
Spatio.memory() |
Create in-memory database |
Spatio.open(path) |
Open/create persistent database |
insert(key, value, options=None) |
Store key-value pair |
get(key) |
Retrieve value by key |
delete(key) |
Remove key and return old value |
| (atomic operations coming soon) | Execute operations atomically |
sync() |
Force sync to disk |
stats() |
Get database statistics |
Spatial Operations
| Method | Description |
|---|---|
insert_point(prefix, point, value, options=None) |
Store geographic point |
query_within_radius(prefix, center, radius_meters, limit) |
Find points within radius |
contains_point(prefix, center, radius_meters) |
Check if any points exist in radius |
count_within_radius(prefix, center, radius_meters) |
Count points within radius |
intersects_bounds(prefix, min_lat, min_lon, max_lat, max_lon) |
Check if any points in bounding box |
find_within_bounds(prefix, min_lat, min_lon, max_lat, max_lon, limit) |
Find points in bounding box |
Trajectory Operations
| Method | Description |
|---|---|
insert_trajectory(object_id, trajectory, options=None) |
Store trajectory data |
query_trajectory(object_id, start_time, end_time) |
Query trajectory for time range |
Error Handling
Spatio-Py uses standard Python exceptions:
import spatio
try:
# Invalid coordinates
point = spatio.Point(91.0, 0.0) # Raises ValueError
except ValueError as e:
print(f"Invalid point: {e}")
try:
db = spatio.Spatio.open("/invalid/path/db.spatio")
except RuntimeError as e:
print(f"Database error: {e}")
Project Status
Spatio-Python is in alpha development:
- Core spatial operations implemented
- Complete Python API via PyO3 bindings
- TTL and persistence support
- Multi-platform wheels (Linux, macOS, Windows)
- Python 3.8-3.13 support
Current version: 0.1.0-alpha.10
Platform Support
Pre-built wheels are available for:
- Linux: x86_64, aarch64 (manylinux)
- macOS: x86_64 (Intel), arm64 (Apple Silicon)
- Windows: AMD64
- Python: 3.9, 3.10, 3.11, 3.12, 3.13
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Links
- GitHub Repository: https://github.com/pkvartsianyi/spatio
- Documentation: https://github.com/pkvartsianyi/spatio#readme
- PyPI Package: https://pypi.org/project/spatio/
- Issue Tracker: https://github.com/pkvartsianyi/spatio/issues
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 Distributions
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 spatio-0.1.2a5-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 270.1 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e909a5a20a2472b69696f38c03ba4cb404ad7a9b9cd510eee2a452f3ba5b581
|
|
| MD5 |
df80f4813ed8c48f8487b287101d3822
|
|
| BLAKE2b-256 |
aa3bd5bd43fc9e66a9abd1e55aff23eaa20006da21466be094ab620a0cef16a9
|
File details
Details for the file spatio-0.1.2a5-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 369.3 kB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
030965c7c58af800c7c0c468038792bc1496a3723855cc643c6155815754173e
|
|
| MD5 |
09a3de94aa9e38205cf4a3dc4683b2b5
|
|
| BLAKE2b-256 |
0cd9adc6415c38cebbce3347195b0958032c9e33f4a491fb124ab13d7d3af141
|
File details
Details for the file spatio-0.1.2a5-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 312.7 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4875bf81b7eca310a5bb4ed00458d4bb98d8fb5989570284b6d26424600e27d4
|
|
| MD5 |
9d7a7e4a46b609d77475c58eb64f1577
|
|
| BLAKE2b-256 |
c3409aa73a13d29bca1fe29f61a56f1302827475a2ded94aa0d3f0eb930a0a32
|
File details
Details for the file spatio-0.1.2a5-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 350.7 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d72f429c07e8b9f23039dc1227cf2a743ac5a1f0e9b88c18ff98dfe64b6d7032
|
|
| MD5 |
3727d7b9d570735d80924cf7d247c473
|
|
| BLAKE2b-256 |
4f592fbac96ed2a4a346d90340654f1bac44c5b896ff918be614cd54ec3b3ce5
|
File details
Details for the file spatio-0.1.2a5-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 270.1 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dec7dff393cc4c74a2d8d5bec8598c4387e3494f03f7e2f4a993d3ed53d4d259
|
|
| MD5 |
033ddb38e56bbecde0c3498f3f7063a5
|
|
| BLAKE2b-256 |
5d1cc341277c9da816e8a3d9be4b1cad4b76a95dd159723ac35dbab4b9852829
|
File details
Details for the file spatio-0.1.2a5-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 369.4 kB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d0c91c7a8c5268fa9a212bafe62ddc44716a90a412ad274ed92ffbb7fd875c1
|
|
| MD5 |
db325678a61da0d3797b862a4026a845
|
|
| BLAKE2b-256 |
5e2403237ce4ec8e70d659542044e66b50040149fe99abaf6b90ef8d456be350
|
File details
Details for the file spatio-0.1.2a5-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 312.7 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb746eba94ce4f798af8cc828f84c70d1675627967123f8c5ecccf3a564a46d6
|
|
| MD5 |
bfd92e1eeb3de007b7d35f67eb803231
|
|
| BLAKE2b-256 |
543586193ac908b7529dea3269d14a11a1b29f85d18682f11417f748378eda51
|
File details
Details for the file spatio-0.1.2a5-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 350.7 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78d89aa8c8e46097a6a31eca1a75253d130904d6a69900c3ca62e8ec1c8b5f2d
|
|
| MD5 |
f807b4ac5bffb214c75898366330daee
|
|
| BLAKE2b-256 |
b1ff0b9143d430c0c26b05ae9d38a4a101ecdc5ab85bd34d85a7c8e54ec3983f
|
File details
Details for the file spatio-0.1.2a5-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 270.8 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71fe04eee43067aedecb573d757eb67b4812973369863c8a7934ca5adf58cc35
|
|
| MD5 |
573463d82ac70683df13d9ddc213705e
|
|
| BLAKE2b-256 |
9344720e36e19bde96834b3aa227238e4425e573bfe5f66ec6fad81e869aa9e0
|
File details
Details for the file spatio-0.1.2a5-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 369.3 kB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf54ac1fb614865b555a0f05d012b9d9015eb496978ebc76deda68e63839705b
|
|
| MD5 |
4413844566b743077a7d21907ba26d3a
|
|
| BLAKE2b-256 |
658a6b391809ac4473930bcc0d0797060e10162db44062d4aff1c58aee5eb042
|
File details
Details for the file spatio-0.1.2a5-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 313.7 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c5cf871b35f8fd345bac8d9dd2343fb0f6db7239448396dfc84ccbf699a3fdd
|
|
| MD5 |
cee41fe6656d8b00f03c33082bfc88c3
|
|
| BLAKE2b-256 |
5d6eaaf43fe1575ade0673949eb2f5c262879f9002452c01f14d8a375090f070
|
File details
Details for the file spatio-0.1.2a5-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 351.4 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7cc2fba4c5445b86be6059e05aa52e1d65163b0e0bc5e0337990d0ab033448b
|
|
| MD5 |
e57d8425c6ba2968f835eaef4488a270
|
|
| BLAKE2b-256 |
f28a695c49f063a3ccb46d78c43da2d98127b383c51da6033b1d036cf56c4d67
|
File details
Details for the file spatio-0.1.2a5-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 270.8 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d48da917362e50e9781e7fb2e4fd83330e2bd07f6abd7c2f6d5d77da3f34ba78
|
|
| MD5 |
d2dc18653e7fcfe31f36fd28abb90b5b
|
|
| BLAKE2b-256 |
e65462b801908f7e49029c2bd292c7451da1efbaab1e4b64dec5c252bd568c31
|
File details
Details for the file spatio-0.1.2a5-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 369.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af93b0f4d85750f8e2c6b63eac2b6ff46701b740d54c1c9bd82341f758bd6b91
|
|
| MD5 |
f1d4617eff9dde4e7859a3e8388270cf
|
|
| BLAKE2b-256 |
b2634d2bbc1954db331002725e73edad666c065a4ad6ccb3eba7ed8c4741d04d
|
File details
Details for the file spatio-0.1.2a5-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 313.8 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d7ad609dc4c66eb5272956f1658d819baff17a238982bc1615e840bf6e3bc5e
|
|
| MD5 |
f3e8e36988de7b821289925e3b18850f
|
|
| BLAKE2b-256 |
13c5258c2faeeee17e272444ac31221ad5ce6f6351f70e633e48c4187852d078
|
File details
Details for the file spatio-0.1.2a5-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 351.5 kB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
948e2975d5e6c135ac901bece63638479196e1e4f989d971365596f2a74a4603
|
|
| MD5 |
44321bffd051d99e33bdfe04c4d56532
|
|
| BLAKE2b-256 |
10415e59e26dc255eee18ed3e22a8ef8a3b9ca1f65c675aebb221a12d416d794
|
File details
Details for the file spatio-0.1.2a5-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 271.0 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5f190b6794a22aa858d727298cc4488cd03b5e74d473395e230e48ca584baaa
|
|
| MD5 |
21e6f31f3018083203651fb9dfd053f1
|
|
| BLAKE2b-256 |
2dcd3aad7d30cfa1d7e15b427953f0cb2156515dfdb60acd81d53e747e439346
|
File details
Details for the file spatio-0.1.2a5-cp39-cp39-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp39-cp39-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 369.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70fde1a0cc343e7850e013263703cad77a33ef299f550b00f30f6c2e34889775
|
|
| MD5 |
58cff728224976f995e3177a57806706
|
|
| BLAKE2b-256 |
84b639950efbb315f405964f0a3683c5164034b49422f15e476b24b818aeb6ae
|
File details
Details for the file spatio-0.1.2a5-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 314.1 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16f43a582b166946e6b0b3d1fee1e82694ee7a2a3facf0972c2804a6e182a9f4
|
|
| MD5 |
85a7e38e7ff1d1dc5ff316a92a137297
|
|
| BLAKE2b-256 |
bf65e72848fa96542c0125a3cd5d208f517183fe235e2e1592f9e4c8e698c267
|
File details
Details for the file spatio-0.1.2a5-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: spatio-0.1.2a5-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 351.7 kB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32d561171c56d692d7340cd296b3edaeac3a7e5eb74968b75ec2109d409545bb
|
|
| MD5 |
c9f63b5fc5e39ced8be03abcadabb181
|
|
| BLAKE2b-256 |
0dc0056a1d6c178d6ea41a47e76e4ccf0b304f0a38b59a7d4289034ce00d56fa
|