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.1a19-cp313-cp313-win_amd64.whl (213.7 kB view details)

Uploaded CPython 3.13Windows x86-64

spatio-0.1.1a19-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.1a19-cp313-cp313-macosx_11_0_arm64.whl (267.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

spatio-0.1.1a19-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.1a19-cp312-cp312-macosx_11_0_arm64.whl (267.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

spatio-0.1.1a19-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.1a19-cp311-cp311-macosx_11_0_arm64.whl (268.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

spatio-0.1.1a19-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.1a19-cp310-cp310-macosx_11_0_arm64.whl (268.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

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

Uploaded CPython 3.9Windows x86-64

spatio-0.1.1a19-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.1a19-cp39-cp39-macosx_11_0_arm64.whl (268.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: spatio-0.1.1a19-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.1a19-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4f6f8639a3e839c86340aa67ce6ecde4d31e18c3db6bede31f152710b0675f78
MD5 553c545491bb39eef30c7dd8900087b3
BLAKE2b-256 e0948a3117fb3a3bbad644a608bad74b02814d20cf70e12445f8c5c827091d71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fd6333d4240cdbc3edb6f01dd463a4b300721667f745036e60f924b3fc6494d2
MD5 f691a3df17d61e01f2f08d6f8e465745
BLAKE2b-256 150b0095db2f93515141caa3f028b10490c7ec032922334ddfdfebb5fd6eaae4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d3e043d0136fcb8f805c3f7de2a3a26bf953338b23bf7e652fd396a6bcc48d69
MD5 5bdfd447f53ff2d7500f20e4aa67c92d
BLAKE2b-256 56f61d5aef9e3849ab348703223f8cdf4cecd24c7f854f36f10f6c51550ad2a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5d811eb9a6121d9e9a718ed330fd2c6f3c95b8848eed54d776a813f5514e2ab2
MD5 7f814157de96f0eaf0901811dd064ad0
BLAKE2b-256 6b49a858b4cbd0e87ba767f0a2ea3dc82a76fb6f35cde872540d3a1560509db7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1a19-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.1a19-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0bb7dc4d80d85447ae579c94cca4c957f1b342e29f7e8dd50c960be9a8e28094
MD5 03429c0be660bad5a2f12118b80e150b
BLAKE2b-256 dab3fa30b5128a408abd8e8742d4c1a851f4202e0c0dd30409c4d16d661538b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7b905e8282aa6b5d5d14ce5bf8cd26c11eed74ad2706333d0e7e3831a3be0212
MD5 7caa2b3e5a4400cff8d2729604575e49
BLAKE2b-256 fde71c60ddad97cbdade70e29c77ab08eeb945407057f328bdf79fb2f8e32cde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d552604c7f6d000eeba052a916af7d7dbbc5419ade55206871ab99a8b7f83db
MD5 fd10df3ff86b2aad38625bf7210dbd59
BLAKE2b-256 fbdb77184987c80e89cb91353c7230fb6fba939ea83a0ba1df5c7d3f6dd9bfc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d15c9fe769a7a48af2bc261e90216227f67b137bcc866cf14c80d1bef7e92b33
MD5 e638febd026a82e68d7271aec6b1611c
BLAKE2b-256 52db0768dbf074bd6bdcfb5002a5f2795d67f354aa054043cb5f27f5e565cac9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1a19-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.1a19-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6ff347bfecaa32be6230ee222ef2684db24808a3bf2530cae5c8021bf4ce643a
MD5 67aea190bfe486d4478fd3adbde0d730
BLAKE2b-256 6fc09d9a653fd11f023e2e87d5cd1c4d863a167bba556334c51b45a3bfdec41c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4691f15190b68db6f382d35e203ebf7727ec004f4d4f5852dafd94f91dccc643
MD5 8f9a2dd47a0a77d8cb25ffc9554d810a
BLAKE2b-256 64e982806f6381896f18bd74ed8152165d8dfb4c42cdf3b7ce674ad398ff0a4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d37682427c4f67f147498df742df01cd8320c449c70f6ae12a6eca0e3384fcc7
MD5 79c660fdbe38ffe986bb784af6a14b42
BLAKE2b-256 eed131ca1b2f3d09484df05fbe71d009bc262e2a426803bef8167be5722403d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8cecf45b4607e12ed1232b7cc25342f282d6408c7af53fef9480e8d2580348f5
MD5 4a74b2906fa1851a241ff61069dc03a7
BLAKE2b-256 2c225044d0e4af01ab740d38efc33b29d8741362971ecbdc8fdccbc5d8608299

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1a19-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.1a19-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3fa8e0ab772346c6442a23fc273be2dce159ad37fe4ab39c9d5bcf5a3f98beea
MD5 54ad1cea346c84758bd8706ac2e4c01d
BLAKE2b-256 74fa74808f343826a96da8355a9141edfefcb957fa8618110a7ad8b6a1bbc444

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 97006e5cd3eead25ee0ff66db0221a453ab6a081c8322734727efc1a90022934
MD5 09c718d35bf7a5d82cc1b3bcb90af6b6
BLAKE2b-256 9ef0e7d4d96b5fac13b532fb14cf1fbf4ab868987667c879acd33e4d01190aee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c055f081540dfb0002b8bebf7acd564708b76751ba2ad29e5355f27e360d79d
MD5 d153c5efd7d6f96b218ec75a8d614e40
BLAKE2b-256 50c0ff7a24351ce35683d0053b3e36cf6624233a2092e68965ca88e6d9642825

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 26efe3b90446749f2f78fcd1bc2cc87d1b70541fbc2c2fe6596efdbf84e83aa5
MD5 6ab1bbec67eff1871b7b3315fe457377
BLAKE2b-256 75e84dabaef442276a4ccfcf82e324d04e555ef27e21ba5627d7074ab86e7a97

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.1a19-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.1a19-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 eca7264a7681c6c29769c475e5cd9032f642fbc18862d1cbfe9cf1a45fe22e99
MD5 16eca2eb9ea55580b64daf33ffc05a4e
BLAKE2b-256 b22eb7fdf73ea35b503a9860fea8273e9f65e7ece0686589123e2edfb55a6f20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ef1616fa21548d103ebeb5519c6ce0ec969d155d20d8d3c879b67c32263ed8b5
MD5 712e20c291f16362ee8e2581cc5c2c8c
BLAKE2b-256 df7fa0433173329237969a219533930825dffb422202620a46d74b929d5c4f40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f774d4604ba7f94878d964f09ff0497c058e094d84f4662ffa79d445f92e2f3
MD5 668b583dccafb0532d3727d67521f47a
BLAKE2b-256 23bce6db98e8368d60150980566bcaabdd1ae31380a0267024de1d3cebebbe43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.1a19-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fb73e4123f28cbae3c054b1e9bef5ada6a286d4aa02eed48cad517857668d30b
MD5 23951f7aebb0a79e41207cfdce4aef66
BLAKE2b-256 52e626050aeb803199cc5c976822890c0743a3d3b8bf9a258a55d4d292f8d368

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