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.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

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.2a5-cp313-cp313-win_amd64.whl (270.1 kB view details)

Uploaded CPython 3.13Windows x86-64

spatio-0.1.2a5-cp313-cp313-manylinux_2_34_x86_64.whl (369.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

spatio-0.1.2a5-cp313-cp313-macosx_11_0_arm64.whl (312.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

spatio-0.1.2a5-cp313-cp313-macosx_10_12_x86_64.whl (350.7 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

spatio-0.1.2a5-cp312-cp312-win_amd64.whl (270.1 kB view details)

Uploaded CPython 3.12Windows x86-64

spatio-0.1.2a5-cp312-cp312-manylinux_2_34_x86_64.whl (369.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

spatio-0.1.2a5-cp312-cp312-macosx_11_0_arm64.whl (312.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

spatio-0.1.2a5-cp312-cp312-macosx_10_12_x86_64.whl (350.7 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

spatio-0.1.2a5-cp311-cp311-win_amd64.whl (270.8 kB view details)

Uploaded CPython 3.11Windows x86-64

spatio-0.1.2a5-cp311-cp311-manylinux_2_34_x86_64.whl (369.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

spatio-0.1.2a5-cp311-cp311-macosx_11_0_arm64.whl (313.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

spatio-0.1.2a5-cp311-cp311-macosx_10_12_x86_64.whl (351.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

spatio-0.1.2a5-cp310-cp310-win_amd64.whl (270.8 kB view details)

Uploaded CPython 3.10Windows x86-64

spatio-0.1.2a5-cp310-cp310-manylinux_2_34_x86_64.whl (369.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

spatio-0.1.2a5-cp310-cp310-macosx_11_0_arm64.whl (313.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

spatio-0.1.2a5-cp310-cp310-macosx_10_12_x86_64.whl (351.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

spatio-0.1.2a5-cp39-cp39-win_amd64.whl (271.0 kB view details)

Uploaded CPython 3.9Windows x86-64

spatio-0.1.2a5-cp39-cp39-manylinux_2_34_x86_64.whl (369.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

spatio-0.1.2a5-cp39-cp39-macosx_11_0_arm64.whl (314.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

spatio-0.1.2a5-cp39-cp39-macosx_10_12_x86_64.whl (351.7 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

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

Hashes for spatio-0.1.2a5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6e909a5a20a2472b69696f38c03ba4cb404ad7a9b9cd510eee2a452f3ba5b581
MD5 df80f4813ed8c48f8487b287101d3822
BLAKE2b-256 aa3bd5bd43fc9e66a9abd1e55aff23eaa20006da21466be094ab620a0cef16a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 030965c7c58af800c7c0c468038792bc1496a3723855cc643c6155815754173e
MD5 09a3de94aa9e38205cf4a3dc4683b2b5
BLAKE2b-256 0cd9adc6415c38cebbce3347195b0958032c9e33f4a491fb124ab13d7d3af141

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4875bf81b7eca310a5bb4ed00458d4bb98d8fb5989570284b6d26424600e27d4
MD5 9d7a7e4a46b609d77475c58eb64f1577
BLAKE2b-256 c3409aa73a13d29bca1fe29f61a56f1302827475a2ded94aa0d3f0eb930a0a32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d72f429c07e8b9f23039dc1227cf2a743ac5a1f0e9b88c18ff98dfe64b6d7032
MD5 3727d7b9d570735d80924cf7d247c473
BLAKE2b-256 4f592fbac96ed2a4a346d90340654f1bac44c5b896ff918be614cd54ec3b3ce5

See more details on using hashes here.

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

Hashes for spatio-0.1.2a5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 dec7dff393cc4c74a2d8d5bec8598c4387e3494f03f7e2f4a993d3ed53d4d259
MD5 033ddb38e56bbecde0c3498f3f7063a5
BLAKE2b-256 5d1cc341277c9da816e8a3d9be4b1cad4b76a95dd159723ac35dbab4b9852829

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0d0c91c7a8c5268fa9a212bafe62ddc44716a90a412ad274ed92ffbb7fd875c1
MD5 db325678a61da0d3797b862a4026a845
BLAKE2b-256 5e2403237ce4ec8e70d659542044e66b50040149fe99abaf6b90ef8d456be350

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb746eba94ce4f798af8cc828f84c70d1675627967123f8c5ecccf3a564a46d6
MD5 bfd92e1eeb3de007b7d35f67eb803231
BLAKE2b-256 543586193ac908b7529dea3269d14a11a1b29f85d18682f11417f748378eda51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 78d89aa8c8e46097a6a31eca1a75253d130904d6a69900c3ca62e8ec1c8b5f2d
MD5 f807b4ac5bffb214c75898366330daee
BLAKE2b-256 b1ff0b9143d430c0c26b05ae9d38a4a101ecdc5ab85bd34d85a7c8e54ec3983f

See more details on using hashes here.

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

Hashes for spatio-0.1.2a5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 71fe04eee43067aedecb573d757eb67b4812973369863c8a7934ca5adf58cc35
MD5 573463d82ac70683df13d9ddc213705e
BLAKE2b-256 9344720e36e19bde96834b3aa227238e4425e573bfe5f66ec6fad81e869aa9e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cf54ac1fb614865b555a0f05d012b9d9015eb496978ebc76deda68e63839705b
MD5 4413844566b743077a7d21907ba26d3a
BLAKE2b-256 658a6b391809ac4473930bcc0d0797060e10162db44062d4aff1c58aee5eb042

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c5cf871b35f8fd345bac8d9dd2343fb0f6db7239448396dfc84ccbf699a3fdd
MD5 cee41fe6656d8b00f03c33082bfc88c3
BLAKE2b-256 5d6eaaf43fe1575ade0673949eb2f5c262879f9002452c01f14d8a375090f070

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a7cc2fba4c5445b86be6059e05aa52e1d65163b0e0bc5e0337990d0ab033448b
MD5 e57d8425c6ba2968f835eaef4488a270
BLAKE2b-256 f28a695c49f063a3ccb46d78c43da2d98127b383c51da6033b1d036cf56c4d67

See more details on using hashes here.

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

Hashes for spatio-0.1.2a5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d48da917362e50e9781e7fb2e4fd83330e2bd07f6abd7c2f6d5d77da3f34ba78
MD5 d2dc18653e7fcfe31f36fd28abb90b5b
BLAKE2b-256 e65462b801908f7e49029c2bd292c7451da1efbaab1e4b64dec5c252bd568c31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 af93b0f4d85750f8e2c6b63eac2b6ff46701b740d54c1c9bd82341f758bd6b91
MD5 f1d4617eff9dde4e7859a3e8388270cf
BLAKE2b-256 b2634d2bbc1954db331002725e73edad666c065a4ad6ccb3eba7ed8c4741d04d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d7ad609dc4c66eb5272956f1658d819baff17a238982bc1615e840bf6e3bc5e
MD5 f3e8e36988de7b821289925e3b18850f
BLAKE2b-256 13c5258c2faeeee17e272444ac31221ad5ce6f6351f70e633e48c4187852d078

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 948e2975d5e6c135ac901bece63638479196e1e4f989d971365596f2a74a4603
MD5 44321bffd051d99e33bdfe04c4d56532
BLAKE2b-256 10415e59e26dc255eee18ed3e22a8ef8a3b9ca1f65c675aebb221a12d416d794

See more details on using hashes here.

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

Hashes for spatio-0.1.2a5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e5f190b6794a22aa858d727298cc4488cd03b5e74d473395e230e48ca584baaa
MD5 21e6f31f3018083203651fb9dfd053f1
BLAKE2b-256 2dcd3aad7d30cfa1d7e15b427953f0cb2156515dfdb60acd81d53e747e439346

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 70fde1a0cc343e7850e013263703cad77a33ef299f550b00f30f6c2e34889775
MD5 58cff728224976f995e3177a57806706
BLAKE2b-256 84b639950efbb315f405964f0a3683c5164034b49422f15e476b24b818aeb6ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16f43a582b166946e6b0b3d1fee1e82694ee7a2a3facf0972c2804a6e182a9f4
MD5 85a7e38e7ff1d1dc5ff316a92a137297
BLAKE2b-256 bf65e72848fa96542c0125a3cd5d208f517183fe235e2e1592f9e4c8e698c267

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a5-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 32d561171c56d692d7340cd296b3edaeac3a7e5eb74968b75ec2109d409545bb
MD5 c9f63b5fc5e39ced8be03abcadabb181
BLAKE2b-256 0dc0056a1d6c178d6ea41a47e76e4ccf0b304f0a38b59a7d4289034ce00d56fa

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