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

Uploaded CPython 3.13Windows x86-64

spatio-0.1.2a1-cp313-cp313-manylinux_2_34_x86_64.whl (312.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

spatio-0.1.2a1-cp313-cp313-macosx_11_0_arm64.whl (268.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

spatio-0.1.2a1-cp39-cp39-macosx_10_12_x86_64.whl (297.6 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: spatio-0.1.2a1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 214.6 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.2a1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a9286f31ebdbb36dce9ee1854d990d6bbf122046469b24f490896e9ada557af6
MD5 45f1e1b4acf48aaf6f92f0f9e9925aa5
BLAKE2b-256 7a4f5c1ea203362a531c6c40497d2e5ba1659ddd338f6f26a8776ac559c4aace

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cd2c54f65bba6db5309608fbd6cdb121176d550b785382ce57a4fb07bf3bc3d9
MD5 496bd0912cb7eaec730f33be2e743bc8
BLAKE2b-256 126fca6284fd2a511edcbb7ef070f07198307899cef8901722636b9a5bbe3f4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 528afa4a779a845cf6ed66c5d0f26ff7f081f1a7467194620a41e8f05c9db893
MD5 628cf3e951f460cf06f6b83703d3ee88
BLAKE2b-256 04b93524ee1661b483a9ccabfc1891c18c4165cece3fafb1bfe912b4a74d401d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d2e67e77a692a0f0ea1d501fdfcaf7664f000be2c69aadeb0bf096f3b7d25280
MD5 cb9d4f154382d6ea004ddefab5f80088
BLAKE2b-256 dcd03f24866b7282bc25d709aae4070a6cadd6b0ec3f8cc2b406cecf030588b9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 214.6 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.2a1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0e09aa799532f91fc8daee66613829fe7812547828061a40906d498aa28d0ce2
MD5 299ebad51f6003d30cd172cea45e7ca6
BLAKE2b-256 f9dc61bf6c045615032deb9d183f422611f611935a983affc62c21d6c3ceccfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b2402deb51716357b4846dfd48f70ec17c1cfb085e950ff011c798f2728571f2
MD5 193867a0d93497ddd4c3279ed59b75d3
BLAKE2b-256 c375444513cd8722f2c075b8e3e0d2ac9ce3060cf3c9550c8e26016153f9acf3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9572c0475c969613fec360c65a4021a78c36ffb01aaf56f27cea13989e938348
MD5 115b54b53fa4cf4ddfbe258a1fcbd8be
BLAKE2b-256 450531a04a222e2b041b3da137af65190da4c3a89542cf5cecbc622fac9833c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f547d2e365d271d21024a74ff7b5befa05280aa95aac7187476914f1abbc3c60
MD5 5a4a7ccbb0fc21bb0043e94c368a79d0
BLAKE2b-256 da5d0ac3f3d489966c206298e4bd502529c648b9c1562adde995ad2d10f58213

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 215.4 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.2a1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8535b59f535be7de1faafd08a049fbdf71dc9294e574db2c15e8af8331932cee
MD5 5fec751b352bf2710d81e1a10ea080cc
BLAKE2b-256 12713871f55b7d468aa062fde9bbb8292c3afb09f909a879686cdc3a5379e0eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fa2a65db68cdec641d428a3cc7064a6f26e40b6da5fd0508864e91f824435b18
MD5 d1036cb961aeffc62d5ef62df71e6ac0
BLAKE2b-256 34e97331680082050012fdb585356acb7fe1e4a8933c3fb4925d28104eac2afe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b422935400213009973d978537711564331bd74084eae673e0cc572eb51c4266
MD5 3589378cfeb38097b6d46f01679b3085
BLAKE2b-256 89dd911197f84bc984bbecfcbf15e3c08a4e21d5af6a89370a5b177b67b590f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 61e149c7b11b91c23d8f2aaa91137947e3c0a94d73785068d0b1a7e3594a7fd6
MD5 e8eb664f0e3357b446fdc4e91f0e596e
BLAKE2b-256 132b9dbb9040b9b349f0edc064d991c3e4b6f031f2735703deea022ddc18516e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 215.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.2a1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e67a41c464575a3f68d6a2b4e33774a594503a3104362f679c30a7f8b9a30cf3
MD5 367db3554f31ef13561d134d6b1b500d
BLAKE2b-256 ade5a7a655d23ace50d5659e77b9ef400dbee341a7aabbf456c0fe556362d252

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 338179ca1ed10fcc8543704c042481bd456a70c7b9cf3471102ef4d78f046b54
MD5 54f52595a34e2a2b4d65d874036dda3c
BLAKE2b-256 d5acfd49e7b4a810143ad052b4e2846c3b522801ae6b23f46a9dda6b6504f197

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3dfd4fa108363637c4c9919ab9e89828d85e2454fc50f7e6cd8016e9419ab73
MD5 943908083d2001ec8541174e39627b49
BLAKE2b-256 a060362c8ab2a9eb90545a61c2e315c175b43bef21073d5cfa1b007c285da885

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d0a5c87878dd916fe656c3463f3200e86a49ce69d4702f834aecfd32ba0ca23f
MD5 0045bfd45a743f1f754348c0558ccfed
BLAKE2b-256 56c90ae828d59da13740f66e4f829bea11ded69f1da4daae1d0357996217c405

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spatio-0.1.2a1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 215.7 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.2a1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 86e30428603d9381a91733573f8f48d37518f912e946be34a112448384473b66
MD5 b2671ca195fb9f3b013f1216487d5bd3
BLAKE2b-256 b29b81dfb3cf06f603bb83a0129a15d68b443878082deffba02ec6008b9c73b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 79a79aeb3ad5ee7a67f7856139f038115c404975a5fc84840acb3237bb13ee7a
MD5 bc9a2940f4fc3b28e41b737531db7804
BLAKE2b-256 e09095f61fcc55af562208d75fe2c7a2835de32a5f7416f376c64af365398a0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 848a0780c1087c292653760cd0bb34e6f4f8ce88f490a9428b2512a51fc6da99
MD5 86766048c7fc680a6106cee0035b26f9
BLAKE2b-256 2324d27ed43998a5703a2a367dfc3c2782d29bda92007bb1f4b42d88baf28d68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spatio-0.1.2a1-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b3977d3bb5eb3a4b606711e70357060a3d34d74753f9603cbf43b9601a89a3d5
MD5 40fa8ffbef6bebe9df721608569bbf8c
BLAKE2b-256 00e64b8fc7a528f0ee799ef6e66f4590fa03556ce96cd11a7334da09c7f89ccb

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