Skip to main content

Blazingly fast spatio-temporal database library

Project description

Spatio: Python Bindings for High-Performance Spatio-Temporal Database

PyPI version Python 3.8+ License: MIT

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.find_nearby("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.find_nearby(prefix, center, radius_meters, limit)
count = db.count_within_distance(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.find_nearby("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.find_nearby("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
find_nearby(prefix, center, radius_meters, limit) Find points within radius
contains_point(prefix, center, radius_meters) Check if any points exist in radius
count_within_distance(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

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.

spatio-0.1.2a4-cp313-cp313-win_amd64.whl (271.8 kB view details)

Uploaded CPython 3.13Windows x86-64

spatio-0.1.2a4-cp313-cp313-manylinux_2_34_x86_64.whl (370.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

spatio-0.1.2a4-cp313-cp313-macosx_11_0_arm64.whl (314.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

spatio-0.1.2a4-cp313-cp313-macosx_10_12_x86_64.whl (352.9 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

spatio-0.1.2a4-cp312-cp312-win_amd64.whl (271.8 kB view details)

Uploaded CPython 3.12Windows x86-64

spatio-0.1.2a4-cp312-cp312-manylinux_2_34_x86_64.whl (370.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

spatio-0.1.2a4-cp312-cp312-macosx_11_0_arm64.whl (314.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

spatio-0.1.2a4-cp312-cp312-macosx_10_12_x86_64.whl (352.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

spatio-0.1.2a4-cp311-cp311-win_amd64.whl (272.8 kB view details)

Uploaded CPython 3.11Windows x86-64

spatio-0.1.2a4-cp311-cp311-manylinux_2_34_x86_64.whl (370.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

spatio-0.1.2a4-cp311-cp311-macosx_11_0_arm64.whl (315.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

spatio-0.1.2a4-cp311-cp311-macosx_10_12_x86_64.whl (353.8 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

spatio-0.1.2a4-cp310-cp310-win_amd64.whl (272.8 kB view details)

Uploaded CPython 3.10Windows x86-64

spatio-0.1.2a4-cp310-cp310-manylinux_2_34_x86_64.whl (370.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

spatio-0.1.2a4-cp310-cp310-macosx_11_0_arm64.whl (315.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

spatio-0.1.2a4-cp310-cp310-macosx_10_12_x86_64.whl (353.9 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

spatio-0.1.2a4-cp39-cp39-win_amd64.whl (273.1 kB view details)

Uploaded CPython 3.9Windows x86-64

spatio-0.1.2a4-cp39-cp39-manylinux_2_34_x86_64.whl (371.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

spatio-0.1.2a4-cp39-cp39-macosx_11_0_arm64.whl (316.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

spatio-0.1.2a4-cp39-cp39-macosx_10_12_x86_64.whl (354.1 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file spatio-0.1.2a4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: spatio-0.1.2a4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 271.8 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

Hashes for spatio-0.1.2a4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ab7c09a16edd3e55e423fea8767350b840767fc38bce401f6558ad14bbb4baa6
MD5 caf4920a31fd1b43cd2de8df754de829
BLAKE2b-256 35384a95f27af21a642034cb6e1f2053c73e63df3da1ee924aaa26692ca23c9f

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b659d9b5ff942c1db3b1fe811337fd72c6234232697f745b2d5a274527fe8e1d
MD5 5d901c177a0788c495b6e382b7ec942c
BLAKE2b-256 19a0871a560d37d23fabc677de37c23d643eff3067b094bf154e1948f9309865

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21ab45bdcde3815cffb7f44eaaa87ef53d1dafb77869dd45b4e106b3bd05ead8
MD5 0ebe3c4e10ea0c88204c43011aa4a6e5
BLAKE2b-256 60bea26f9fe525e1a6ff3a618850561ff8be7b05c433a2be9883f6de36b494b4

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 76d04adb4724348603f30337acb25cb744cdb07181bcdec50d1488fac427c3d6
MD5 58c986ee3adc2020c2f0bd227b200dd9
BLAKE2b-256 973494b36d2c81a8c629b54c05503533c34e91927b30b03fdbe84741cb46f6a4

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: spatio-0.1.2a4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 271.8 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

Hashes for spatio-0.1.2a4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8c9f86df752fa42dbabae0d0ee021a779e6b7ef1d6c5141a6a39a24660343696
MD5 2416976814e3967217bb035873adcb64
BLAKE2b-256 1c60c83ae9ca446c00c2d38f4d870f02f5d41b80037dbc25ed9d8470f6cc827c

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4d855436a53b7693c8203eadaea4f49ba3203770459aee67f180932014b8a0de
MD5 966ac3383d90d3f14e37a0d6a03fd2e3
BLAKE2b-256 806d9e759ec1658f590f90188a5051e2dcf7ac41618253090c9fa511049aead6

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21ac1797ec123808a2b49063355e9b5101c19a97e8104026b7d0bd92290b39c5
MD5 6dc38d1eb8d7d1e250ed2ed90472f09a
BLAKE2b-256 b91db3c114445bbd13fbbc67e14825d76a17f06dd24e29089fa3cceb8840e6ad

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 acced3f2b5b03a5ee64b7586f1349b1c3014336a19e8714dc32209ca0d713011
MD5 6cf44d11a1795f5ae3072dc26ff10c43
BLAKE2b-256 740a985915b152ca34b8f09a6dfc75e603c79f74a3f5c3f592c9170ccb87e366

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: spatio-0.1.2a4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 272.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

Hashes for spatio-0.1.2a4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3150999bba179f8885eb206c85991a20076eda07f50d806ad16b2fa23bf37830
MD5 17dad114f1daff21b9852afd9deffc65
BLAKE2b-256 f1df88d6b6a6a65ca24f41128ced1b28ca854cc251b18f7fa12fba70454f7d76

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 86dedb325c3233134d3df80c8c601be16ff06467c82964609e3748658c2c5447
MD5 9c4ce967e178ca0f32fe4c613e23ab4b
BLAKE2b-256 cbd3199400acda6c9de15ab83116ae95faf6828e8efa33d10164c95d8f191c7e

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb9ecbf8cc70478af5b05dd7dfcc750093d333ebf0ac3aa680c19297aa93632c
MD5 43a32c3433e92e022020b078c1916100
BLAKE2b-256 36283cb643c568c516e8ec3732c41cc893952171c9464d813b53ccb29be3f071

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4863825dde5e5365ad005be8b07a5d3ec3c4ecf09317e04305d1bc91850b6542
MD5 d0e9574bb9ea3fea8cce5d50a72a6c5a
BLAKE2b-256 b1a91528b043e69df9c3fc3472f829574ba366d888bd42c3c1ca3e192eb4eeb4

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: spatio-0.1.2a4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 272.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

Hashes for spatio-0.1.2a4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a8a60cfd4f5ec1ff274266466e0d8b31ff36644f8b5db3e0cc97156b20424908
MD5 66bf7c24a0bdfd46a3dce1538fce4b84
BLAKE2b-256 00aa6933f5b2d6e3f9d21146344e507af3bbea4a39911c86f3729b37164260fa

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 137405b70db819f512cc4722c0f27ebbd710d98eeea0afdcf5caa3a7aa6d24f5
MD5 534548d0f4ecafd819039e7d8a4cafc8
BLAKE2b-256 7f10a023dfed47a55c8fb5fbf901f78a3bb1ba27a1c4931451c8daf96ee86ad1

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 922b300ccd320f8277618adf220c4206e8efa2aa577f1fb9461aed12e04086d4
MD5 77c070883729275210ad43293c4f5b35
BLAKE2b-256 a264793e709a03f887a16523e79a2736caf29a5b9bd41b84b0870a9595e10a1e

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8966af77c6cdcee278b334f9bb7e0200c11363c7183995d1bc78aad543da5431
MD5 bd010256cfc8bb9ff8f9c9a754607753
BLAKE2b-256 bf5ca2083297e304c80c7930dc588a614d9929e77e6862eef281d5c1418f4a97

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: spatio-0.1.2a4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 273.1 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

Hashes for spatio-0.1.2a4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 accd2295d1fd520f114eabca56df63caa927af5b61398db550ae4ce3be8e5d41
MD5 0171828dc1a3ce577194c0191bdfa6a8
BLAKE2b-256 141da7781334c2579d64fdea6afe33252a57f3d93096b832f257828b5bd93191

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dd2823af3affee632e592e4c83666c9f6d074b322da73c9f58b80cac513e6177
MD5 4abb47a2650f3108651b3d488d694597
BLAKE2b-256 d388eb2fc857b98f390f989519c66ab6e3f62ba918bae2abd7eb316340e894ad

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1a4a60effe7ac7199ea9e59abaa163b4dd1273b8bee135cb3c11dff33b16419
MD5 735a42c6796a86d6c3fee9f2db34a1c8
BLAKE2b-256 8563ce5f8b67fa8f8b351a8c61a4affd11a6a76c928b6794a2c1593e95dc3570

See more details on using hashes here.

File details

Details for the file spatio-0.1.2a4-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for spatio-0.1.2a4-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 affdb32baf537b3d17599ff5109bc883cf31c573b49842044efe0c7211ead76e
MD5 c9580a3ee094c407f5f38e0409df79af
BLAKE2b-256 4bde93569df0e322561d6d124518fd76aae8302f7bdbf122f3b573b9007b6ccc

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