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

Uploaded CPython 3.13Windows x86-64

spatio-0.1.2a3-cp313-cp313-manylinux_2_34_x86_64.whl (362.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

spatio-0.1.2a3-cp313-cp313-macosx_11_0_arm64.whl (308.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

spatio-0.1.2a3-cp39-cp39-macosx_10_12_x86_64.whl (346.2 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: spatio-0.1.2a3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 262.3 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.2a3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ba9d9ce3fb2ad1ce702c19bdca5bf147877ab9add10cf679df4522bfc75da4ab
MD5 f5d6de6e01ec717790534961ee90126f
BLAKE2b-256 0a66d069982a84cfa9be0fb808aca9f3d35288104b65c3e32bb3a856e1cb8016

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 83ecee8f1dbf5bec9477302872f2ef07538e0c5f3d5c16f774b7699485ac1496
MD5 d6483a5e02f7e642c2b868cfd24e70f8
BLAKE2b-256 bd75b8ccc9b6de34539bd7dd516e2841bd09720563b71f1ffbbf130c48518b10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e66bf46f9009269736bc37c07e60b77704222fd20f5f5ebd1e40d3445f01d13
MD5 f638e0052e10f6c9a40c7be0043b6c05
BLAKE2b-256 da9d9e4fac139ce1eaaaeedd25f0adcc960c518931ad2cd8645a55ee7ebfd727

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6edcb999cccf3107f892c468a9a4916072828e599db0365cdc78d706d8fb89fd
MD5 e58c5c8da7634e5cf1ca9caff93086da
BLAKE2b-256 f40e092907005bc85028bba2321598b8a2930879af8452c4d686c26ce0f68673

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 262.3 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.2a3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 76389b0e553f385058dc52f7aed2198eeac5339c020fc6648352545247cade79
MD5 a6f63b57bfc06e70cdbef7e1e3cf8bc4
BLAKE2b-256 49e13099a8028fe698a6fe66bb3cf190e2743282d75cfe4183fa567c6b5afb39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 459bf8936cdb0cc093da41fa7dc8b8ada1003712f59fe87dcd891aa88a00870f
MD5 f707e1dbb4ac816ab8e6b987f933787d
BLAKE2b-256 22908a418b31197f34391761e85c1bf8178d9fc2445561bad384c39c658d8541

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2641f67e22e0b765ff52043fe5ba46289fa972a92781cc7edb5c11a8ab393f61
MD5 6c8f03c30c885a7850831f99f764c2b7
BLAKE2b-256 b93638597781204cfb11211b0c78e7073bf4401c8499a35e7b4eb18018840c85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 00a26c6d509fa7656ad6cc468630e2eb33c3802d6a45d5bed0e13a38cd99cf7b
MD5 2e956b0a4deab9531c2b97c0334eea4f
BLAKE2b-256 8cc66aaf5c7570593f1418311bcb5c81de67e680c90df2d062fe7f417f401e7f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 263.1 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.2a3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2c51792e5a7f2231dba5335add457109311bf12b9bcf0ad419fecddd2ad92b99
MD5 78eef9c96c309c6a20a82dd42e85092e
BLAKE2b-256 71806bdcda133f7b211bceedc8cd86ce70e704487c9a7fa3d22f86d6e67ef65a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fe79135d1b6b6be744f8c41979fb61884029f628d116f3c77663fc7186c1ab01
MD5 7bf43722589cf0a95eee5219bf43350e
BLAKE2b-256 5bbc1678d7651c170c38453e7c6b5ce03e6e92d556a73583effe0038d249490c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2794163e518083ac86b590f0a6f2264edc905c9cdf576183f18c93a939f12a5e
MD5 57188931f9476ddee6b3e128748a6897
BLAKE2b-256 bec0c945462257abd3a123e7a60cae72b471f1a81ea8ea2b2da3ca9af84a9f83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fad297bf591ffe31e8a4b10dfb0b0a1a0132218fc1f518a00920246d0a8dc3a8
MD5 27ae0d92309e076c2a4660159c894e98
BLAKE2b-256 5652af18c3936824e3463f7fde828b7f6bd36e3c8e091275f8f8479c2db15596

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 263.2 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.2a3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3c3104a38df38baa108f3f539033d41f13f07b536ad1a3b29e4ad80484c2f9ed
MD5 a997309df25c02617d95fdc76ba7742a
BLAKE2b-256 b6c854e4fef5a556968fc3b84f5521211de2a847d9d5d12562334e6ea820130f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 16d430f77fc4abf4d1cb24fe3979007645cb10fecbb05fe4c457100bbde1441e
MD5 5e097493611ce69845093de0bd0e87a7
BLAKE2b-256 e622f93af5ff460ca11b69cf9b04fec889894cfe2e5c73840d0c488abc28a760

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0479bfc31b7e90488e169f5b6882921d433124b762ce0af569d47dd5f98247b1
MD5 9483fb43a091c15f0e0e5cf6d2e127cd
BLAKE2b-256 6d6bbeabb01a2c137164d3024a1211048983528db950e7a69313faf7f0e5a728

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 70faa596f53c4134fe74dc78c3351a66f8a6d4b2088d34c25ddd1a7166ed6f1d
MD5 12acc05b7ba78037c658e8fe19c53a78
BLAKE2b-256 b70f37fe1fcd3fe13855547762f2f5b5d83f6a93789b095bf52257e2dbd1bc0a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 263.4 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.2a3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 19f35eae30a780b1b63f03bea52432459670c5ba9b4e3da19ab29aa298de9648
MD5 b9cb1c9525a334bce9e5b1e5a7b9670b
BLAKE2b-256 b569d6859afd024e5f5a14afa081e17e218b00948e107ef37589034e5764f75b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 092addfe251830160df4f794dc2e0b15a68855dd43fbd7cc38a9f4450020715e
MD5 aebc50d64087c6aad4079c8ba741b7c2
BLAKE2b-256 fcb1eb505041a7f246f5395b88f196fdab002d2f2efcb24e943620b062444570

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f13c63a4f63bf16c9454d0033905016abb4ae06c03b1e2d487cce583a644b97c
MD5 04e4300102cf917f6730975af232690f
BLAKE2b-256 2f2c6c0ba9b92e46cf79882f6e2f81ddeec145d54b9cd8807dfbccb15c5b2bfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a3-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6ab823c79c08d70faebeed05b69ffe69318ba052131774fd4787c8e3354b542f
MD5 85a9c630d852b6088afd3cb4ff4516cc
BLAKE2b-256 b10b31a5a263980e7b83d01fe9594650c67c7cb0bd11b49f3103d1a07818d8c0

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