Skip to main content

Blazingly fast spatial database library

Project description

Spatio: Python Bindings for High-Performance Spatial 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
  • Spatial Operations: Geographic point storage with automatic spatial indexing
  • 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.1-cp313-cp313-win_amd64.whl (213.7 kB view details)

Uploaded CPython 3.13Windows x86-64

spatio-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl (311.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

spatio-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (267.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

spatio-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl (295.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

spatio-0.1.1-cp312-cp312-win_amd64.whl (213.7 kB view details)

Uploaded CPython 3.12Windows x86-64

spatio-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl (311.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

spatio-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (267.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

spatio-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl (295.2 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

spatio-0.1.1-cp311-cp311-win_amd64.whl (214.5 kB view details)

Uploaded CPython 3.11Windows x86-64

spatio-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl (311.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

spatio-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (268.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

spatio-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl (296.2 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

spatio-0.1.1-cp310-cp310-win_amd64.whl (214.5 kB view details)

Uploaded CPython 3.10Windows x86-64

spatio-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl (311.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

spatio-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (268.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

spatio-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl (296.2 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

spatio-0.1.1-cp39-cp39-win_amd64.whl (214.8 kB view details)

Uploaded CPython 3.9Windows x86-64

spatio-0.1.1-cp39-cp39-manylinux_2_34_x86_64.whl (312.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

spatio-0.1.1-cp39-cp39-macosx_11_0_arm64.whl (268.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

spatio-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl (296.4 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file spatio-0.1.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: spatio-0.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 213.7 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e07c98eed6591b62569674aac6caa499b699d3453ef15fe1e721f43f33cc1015
MD5 a8d18c2cd291bc7e9c0c3d4bd4d1eec5
BLAKE2b-256 5cc4b5f3a82de09adcbf0e83fdd0d78cc1cd2b8455c9fc12383074dca6cf8c52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0551e3705afcb261ba285988ef131a4818a688d9bc00ec7b13583e8b45ecd7c4
MD5 e64d27fb4d88140b1f5b0e76b1cf334c
BLAKE2b-256 43848926a8ca0702c1383b0c1c22d425ea0bab7cc53659cfa46b80065fcbc721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75f00ee2e833510c8ffd65d784fd4992632f59486dfbee4f4bdc404c30529494
MD5 1c3c87d1d3de5ca256b6a0a401f36499
BLAKE2b-256 dd650c4b3beb7505555e2fa3f6189f06e62cc82c97078163b9d87310930fa50b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 68dfc5f2cbbce620ffa0783fe3b9c7748418226dec38b79d9f0f7c05444904e1
MD5 0a535f8d9d2b06d47e1356c105b15225
BLAKE2b-256 ef7dc85b986c6fabc9a55c66b5f37e81df353b83e9e5e1e9aab6db71f11e663f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 213.7 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ae77aafb5d0739d04ce1be89d898c42d2eb1d7889deccdf78cefd5ce1d1b92d7
MD5 9d62543cc81ed09ea9970975dc9a3bba
BLAKE2b-256 51a076214e2c6a31baa7c1fa8f4f373a5b193d133d4009240064b07d5403e214

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f3df003eef25519792b0b03ca2a97752b6de4a10b91b5a817fba6b36d9a5548d
MD5 a0046568adeba5e578fafee411c44c9b
BLAKE2b-256 68dfa55a1f0f231e604fc05e610ffbf4ee5db8ba652456182cd40200f595ca45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0044f5d5533a1bb872b0142781017ab8063726e5aee43e4f90a1fe13a1c7bf3b
MD5 cc1e70dfcdcb61f124b49e73de651f39
BLAKE2b-256 bfde34192ab45f07aba5ccadce51906c6f7f57c22c0241da52fb2cbabae3e489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e2d325fa472b2f8a53be56d361c4aaea2dd870a93b95f1c2684481d600718c7a
MD5 f296d1b4615040f917215c51511b173f
BLAKE2b-256 23a573cddd32800f1542dfa2ce46a4f4aa649c5959cf305a6885116e962598ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 214.5 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 36ad1eec31f4603c4dcff796fd432d26911f8592b2bc69b947787a56293b53ce
MD5 949cbce828b404577f84b37c5da45199
BLAKE2b-256 31d89581b04d72be1082661811b8b6b9cf090e3079783bc3e0c33e21d6fedc81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f8f45f039c2837080a55ae50031298a38be85b39a1db778d842603af49152a8f
MD5 fdc8c13c6eb5add90d8bd27077ad3718
BLAKE2b-256 ac93eb4abd58c9a2c15a514a2f1c257da1c9cc55002a2d1e6a68561017f08841

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9233558e6e15bd13446463c4d72853db91c552636c32a76541de91b1d04e6922
MD5 cf2ed580388bc8cfcae854412e3f77b7
BLAKE2b-256 57fe6f28e1518d1e632728b835d58b0090cc20c08bd14a4036f51c8e2e90e7e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1bcd00645e9f1b6a92799bf715585d18e909b3aca189d3c27702ae57d396b026
MD5 d228da2d97795f8f8f9d0103427d057b
BLAKE2b-256 da665cfef142a80ca5f458e96d9ba368e16c0dc64dbaa917f8f5be85e45abdce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 214.5 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3c368960b7f292bfea144a00e74f9bbc34f5b470d30022a7de2f06551231e121
MD5 b6efdf694d23aff8aeac6b52100b1a19
BLAKE2b-256 4c548ae49971d48d6a2e454288f3b51c353fd5e5905246a2f0deca0ce48fb5e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 35e84c1379eac5a9a137cc160961c55e43fae5eabfdf2716292595b2e946cd42
MD5 5c6be33ce59bd80ecc1520fbd7612999
BLAKE2b-256 e71890f541f78e1cadb8b9117cc6aeccfeb2b3ac3553d0b136b9e39990b6dca5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4ec30e3eaab8c6efbe3a753b3dd6914cebd3ea181fb891f9f75b3b24ce807dfc
MD5 856b194f3a3e276c9a257bcb4dbde2d1
BLAKE2b-256 f1c612243805bccc54f36afc837d9f1596da19d178292fd2928b03ad510a9d06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 244a3c81e4032937da311a7b629d815594e1c8d10e3f6673e854c80065145cf0
MD5 3c7048f24d692d72630b7e8987d73299
BLAKE2b-256 a5ad18f6a3bbc7bd3f674a3dff8b8ffb9076751c1a3b26d0f9cfa633f80a52a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 214.8 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 102629ef6b03216f9af1c1e07d9f5e29e3ad8ce0f47bda1cd0960e39d634c6bf
MD5 4481e704f55289c9a262e3646a2aa5ad
BLAKE2b-256 d514c411c437b196f588468243538cfa72629644a12ee2e4893032dd587e442c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e32c778e54ee219af0872eacad7832d28eaf280a76bb765f435559102022d0ea
MD5 ed44a5503be41daf770c1a23a6cd2ad3
BLAKE2b-256 9fb6ac45975d238f52c4f9efb9ae3631e813623d12ac2fa166499ca623dd302a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed355e31112dcbdac4439427bb99246fa6d0df05d76a46ea12df4fe144470801
MD5 b4aa9388566bb951e9b91201d24bfb9c
BLAKE2b-256 4ab9efb02c741c0cb4e20fe4f32d810dd9eb8a807c7dfc93fa9a5a1ad4e85d6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 91d7548859b4b87307a22e39336a1653246f5832232420854e74927053747dbb
MD5 da23e8dc7f9c9047039d4002cdd5e2a1
BLAKE2b-256 6addd818f9b0ffc6f811ef61d3d1194484557ff170a4ba028249ad971850d0a2

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