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

Uploaded CPython 3.13Windows x86-64

spatio-0.1.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (312.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

spatio-0.1.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: spatio-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 270.0 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 02d6e24066e9f1ca6c45872ba468faae741433fb9832a35c19038a63a3b91e4b
MD5 088c0d72a5a7e55334fd190dbcf3811c
BLAKE2b-256 f532b10178d5782c54a5adca761c669ffdbea59429f74efc1358c03f011a2c6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d64816f6d194ddd88a170eef9c3770a36ec200a5d58e62d12037a38d1eddffb5
MD5 de8c0bf662d8d7e41d2f71706a347dbe
BLAKE2b-256 2e25b6198e70095f65e0f1ff1069e99e223f9f24c53d75d40ad14865e194a187

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 698a21108c1120b1d34d1cd353c45cccc33add584f4678c33c74096326cf1dc6
MD5 53e164663fe985ae6f919f77aac5dc67
BLAKE2b-256 b6e598989e04f70d46cf3e4122b5a73daacfbc714269e45c39a0033084434f87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 41d0ec70987cabcbc3f108e4dde1c6a3eeec17b97b373bd77ddb56434df05599
MD5 ec65097f47b7ebbd7f03434110d0acf3
BLAKE2b-256 a80e9362757f9d08a000a7639045920a32cdb8100f99c3a65f65c20706867c28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 270.0 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 72afeedd8f4df9711e68bf36c4410303004059ba170dc738fbab69e16c906300
MD5 d6e532d13df9251ad05ef28bbe881302
BLAKE2b-256 7de36caf2a44ce23e5d825d47cf3598fa7f6bb63589e62e2cfa5fffbafeec9f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 edb0df0240fcb1818e977607bedc2ad632416a1c1335eb718c7efc6765c122fb
MD5 ecc65462a71f770c2502e14d0a9660d0
BLAKE2b-256 d88ecfc96ac8326285da74f0c56e028ff6bacaae34e9dd528f08e580341d5cbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 449af47049140ff05d4ddbf1d4251c84bf4803d96de6725fcb420d1a56412252
MD5 b2dfd300090b16ed7d461ed313aecd31
BLAKE2b-256 763accdf448fad646259b479c17ab9a48b451721cf764ed912e36c3fbd5a1658

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 191ebc9800aff58bf8acc86103a3ceb26d0ef9ae05862141b493d0906fc7085e
MD5 38444a8e8effcdca2c2386e4b08de72c
BLAKE2b-256 d243b0d4d3aa3517ec8562a3b23be220b26bdafbe07115bff5bb5649a2d4b5d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2-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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f058807db000613fc65f520258f83d5a7ec5d7dfe88709ac2d537f472a8e20ca
MD5 e5f643d7fe21201716897a28fe2a5ee9
BLAKE2b-256 179b77128efdbd1d76ec5f7b0be63ceb3592526e0d9900d70728dbe835248068

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 60dd75d46ea99755c0defdf73b559d86350a93c22fc5bce9225c77453cb8c0eb
MD5 44094a6a4e44f821368b1afc510fb884
BLAKE2b-256 769f188d958d991f2bffba0b01107e84d4b7ed0eeed9e5ec5f56954bce7ee3f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a038803a1923c803093649a285b7d0bcf36f1666a4a114c807c6d54aa5e81bc5
MD5 9ba25f7fd99a834eaf9947671bcf79df
BLAKE2b-256 5aca238b0c41c386e3d512d286f85f964958cc64752244964352ae72fa832c84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c4185fa1a386eda04b8d7e40f9b35c4c146d3a6ab17bf08834d99da7a69c3595
MD5 81047ca99d51b593d346dc07a57b46d6
BLAKE2b-256 c8b106ed3983f91438f205f1d8346c5aa9e73eeb010ca9b07222c572ba9e700e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2-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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 441e1891a5f7ce72c39912d48585e991e066bb3e0a67725c7907422d68a8ee13
MD5 0d7ae8a0925f929be770bf63e35bf72f
BLAKE2b-256 4747780b36897a303dce17f3a5cd38bb4f9393713004293943766b5214046560

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e437b7c73ef5813513f7e1f343b9934cc0f67cce095e5f1ba812cf97a9620c49
MD5 d1928717a474e427cffef6a37e49f13a
BLAKE2b-256 0571c3a27d9acae61cf4adc32c1fd0bcc52141a9c0ab2151ef1ac9908ccf776f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 35d7e5e2f9fbcfdfe02d30526b473a661d390912e4e1aec0c131f1360aaa7f3c
MD5 7742b03c5dd08edf24f16dce6573ae0d
BLAKE2b-256 4c4a63d4b77c11fe407b9692f9f163956b786dffa4859ca002cc43235ce84ff0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 062ef3737f5ac40fbe950b090cc8813e842d11f6d07293040521f20f5bf15ba6
MD5 28b515c4be0e88b28b03a24de9e32cf7
BLAKE2b-256 babc34bf54f1dad16a0c26a1fbbf872421a1790ae4f5a2ba2c9e524af26a1dc8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2-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.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 15bd9181a51b9b0bd78d316a1f65427916587fc1473cb0b8f6548276c600054a
MD5 a9a86cf953ca89215577f7de0cddbbdc
BLAKE2b-256 32f3178dcbc1f3759ee672c6efe6cc180cff0cbfa67182f22f96a34771d3f96e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 330c257dfd5b6b180ba4151c33940e0fe5bf27fc379819af9c534fd0e50a0cdd
MD5 f1223d177ee1baaa7d66623c7bcbd9d3
BLAKE2b-256 0520c4fec04e82e2dc18285ee862e770209a0f36841eaf5062e8437b51c4fb13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42ebdebf225221ba2c5824de1d4e5a2160ae43a5ff325bcaa3ac1626d5b91cc0
MD5 cab617a3127b56f37f1e1d363eeab7be
BLAKE2b-256 b6fb828aaff111d90f1f486995e1f0749c961db938c85350c6927803bf34ac97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b7199a14eb87686e75102b2b7576247bc86db5dd41da6e9c147794b087fd0db2
MD5 710ad6c4dae07d03b163e04caa8fe9f9
BLAKE2b-256 0c71c362859e7402658bbf862567222940495e1a41e844d05bdbda8c050e26e1

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