Skip to main content

High-performance streaming converter between WKT and WKB geometry formats

Project description

wkb_wkt_converter

A high-performance, zero-dependency Rust library for streaming conversion between WKT/EWKT and WKB/EWKB geometry formats used in GIS systems (PostGIS, GDAL, etc.).

Exposes both a Rust API and Python bindings (via PyO3/maturin).


Features

  • All 7 OGC geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection
  • All coordinate dimensions: XY, XYZ, M, ZM
  • Both EWKB (PostGIS flag-bit encoding) and ISO WKB (type+1000 offset encoding) as input
  • SRID preservation (EWKT ↔ EWKB); option to split SRID from geometry
  • Big-endian and little-endian WKB input; little-endian EWKB output
  • EMPTY geometry support
  • Per-member EMPTY support inside MULTI* geometries
  • Hex WKB convenience helpers
  • Memory-safe handling for malformed input: structurally invalid input returns descriptive errors, while trusted-valid fast paths may pass through malformed geometry bodies as invalid output bytes/text.

Conversion strategy

WKB → WKT is a straightforward streaming read. WKT → WKB uses a seekable-buffer approach: count fields (ring count, point count, etc.) are written as 0 placeholders and patched in-place after the coordinates are streamed, avoiding a two-pass scan of the input.


Rust API

Add to Cargo.toml:

[dependencies]
wkb_wkt_converter = { path = "wkb_wkt_converter" }

Functions

// WKB/EWKB → WKT/EWKT, with SRID output control
pub fn wkb_to_wkt(wkb: &[u8], srid: SridMode) -> Result<String>

// WKB/EWKB → WKT, SRID returned separately (not in the string)
pub fn wkb_to_wkt_split_srid(wkb: &[u8]) -> Result<(String, Option<u32>)>

// WKT/EWKT → EWKB bytes, with SRID output control
pub fn wkt_to_wkb(wkt: &str, srid: SridMode) -> Result<Vec<u8>>

// WKT/EWKT → EWKB bytes, SRID returned separately (not in bytes)
pub fn wkt_to_wkb_split_srid(wkt: &str) -> Result<(Vec<u8>, Option<u32>)>

// WKT/EWKT → uppercase hex-encoded EWKB string, with SRID output control
pub fn wkt_to_hex_wkb(wkt: &str, srid: SridMode) -> Result<String>

// Hex-encoded WKB/EWKB → WKT/EWKT string, with SRID output control
pub fn hex_wkb_to_wkt(hex: &str, srid: SridMode) -> Result<String>

Generic converters

These functions accept an explicit Input: a WKT/EWKT string, a hex-encoded WKB/EWKB string, or raw WKB/EWKB bytes. Text input is detected automatically (a non-empty, even-length string composed entirely of hex characters is treated as hex WKB; anything else, including odd-length all-hex text, is treated as WKT). Input::Wkb is always treated as raw WKB/EWKB, not encoded text.

pub enum Input<'a> {
    Text(&'a str),
    Wkb(&'a [u8]),
}

pub fn to_wkb(input: Input<'_>, srid: SridMode) -> Result<Vec<u8>>
pub fn to_wkt(input: Input<'_>, srid: SridMode, normalize_wkt: bool) -> Result<String>
pub fn to_hex_wkb(input: Input<'_>, srid: SridMode) -> Result<String>

SridMode controls SRID handling in the output of direct and generic converters:

Variant Behaviour
SridMode::Auto Mirror the input — SRID kept if present, absent if not
SridMode::Strip Always strip the SRID from the output
SridMode::Set(n) Always embed SRID n, overriding whatever the input contains

Validation notes:

  • WKT coordinates must be finite. WKB coordinate payloads are treated as trusted-valid: all-NaN Point remains POINT EMPTY, while other NaN or infinity values may format as invalid WKT instead of raising an error.
  • Direct WKB-to-WKT entry points still reject structurally invalid WKB such as truncation, unsupported type codes, excessive nesting, and trailing top-level bytes.
  • For canonical little-endian Point, LineString, and Polygon EWKB hex or raw WKB input, to_wkb(input, SridMode::Strip | SridMode::Set(_)) and the equivalent to_hex_wkb paths patch only the top-level header. Malformed coordinate bodies or trailing bytes in those simple fast paths can pass through as invalid output. Big-endian, ISO-dimensional, collection, and non-canonical type headers fall back to a full normalising round-trip.
  • to_wkb(Input::Text(hex), SridMode::Auto) returns decoded bytes without WKB structure validation, and to_hex_wkb(Input::Text(hex), SridMode::Auto) validates and uppercases the hex text only. Input::Wkb under SridMode::Auto is copied or hex-encoded without WKB structure validation.
  • GeometryCollection dimension tags are not inherited by child geometries. An XY collection may contain heterogeneous immediate children. A Z, M, or ZM collection requires each immediate child to declare the same dimension.
  • WKT and WKB parsing reject geometry nesting beyond the implementation depth limit of 128.

to_wkt accepts a normalize_wkt: bool parameter. When true, WKT input is normalised (canonical casing, spacing, coordinate formatting) via a round-trip through WKB. When false, only the SRID prefix is adjusted — no validation is performed: malformed WKT is returned without error. Leading/trailing whitespace is always trimmed regardless of this flag. Hex WKB and raw WKB input are always decoded to normalised WKT regardless of this flag. Odd-length all-hex input is not detected as hex WKB; with normalize_wkt=false it follows the same unvalidated WKT fast path.

Example

use wkb_wkt_converter::{wkt_to_wkb, wkb_to_wkt, wkt_to_wkb_split_srid, hex_wkb_to_wkt};
use wkb_wkt_converter::{to_wkt, to_hex_wkb, Input, SridMode};

// Basic round-trip
let wkb = wkt_to_wkb("POINT (1 2)", SridMode::Auto)?;
let wkt = wkb_to_wkt(&wkb, SridMode::Auto)?;
assert_eq!(wkt, "POINT (1 2)");

// With SRID embedded
let wkb = wkt_to_wkb("SRID=4326;POINT Z (1 2 3)", SridMode::Auto)?;
let wkt = wkb_to_wkt(&wkb, SridMode::Auto)?;
assert_eq!(wkt, "SRID=4326;POINT Z (1 2 3)");

// SRID split from geometry
let (wkb, srid) = wkt_to_wkb_split_srid("SRID=4326;LINESTRING (0 0, 1 1)")?;
assert_eq!(srid, Some(4326));
// wkb contains a plain (non-EWKB) LineString

// All geometry types and dimensions work the same way
let wkb = wkt_to_wkb(
    "MULTIPOLYGON ZM (((0 0 0 1, 1 0 0 1, 1 1 0 1, 0 0 0 1)))",
    SridMode::Auto,
)?;
let wkt = wkb_to_wkt(&wkb, SridMode::Auto)?;
assert_eq!(wkt, "MULTIPOLYGON ZM (((0 0 0 1, 1 0 0 1, 1 1 0 1, 0 0 0 1)))");

// Generic converters: input format (WKT, hex WKB, or raw WKB) selected explicitly/detected automatically
// Normalise WKT (casing, whitespace) — SridMode::Auto mirrors the input SRID
let wkt = to_wkt(Input::Text("point(1 2)"), SridMode::Auto, true)?;
assert_eq!(wkt, "POINT (1 2)");

// Add or override an SRID regardless of what the input contains
let hex = to_hex_wkb(Input::Text("POINT (1 2)"), SridMode::Set(4326))?;
// hex is an EWKB string encoding SRID=4326;POINT (1 2)
let wkt = hex_wkb_to_wkt(&hex, SridMode::Strip)?;
assert_eq!(wkt, "POINT (1 2)");

// Raw WKB bytes can also go through the generic converters
let wkt = to_wkt(Input::Wkb(&wkb), SridMode::Auto, false)?;
assert_eq!(wkt, "MULTIPOLYGON ZM (((0 0 0 1, 1 0 0 1, 1 1 0 1, 0 0 0 1)))");

// Strip the SRID without re-encoding (fast path)
let wkt = to_wkt(Input::Text("SRID=4326;POINT (1 2)"), SridMode::Strip, false)?;
assert_eq!(wkt, "POINT (1 2)");

Error handling

All functions return Result<_, wkb_wkt_converter::Error>:

pub enum Error {
    InvalidWkt(String),
    InvalidWkb(String),
    UnsupportedGeometryType(u32),
}

Python API

Build and install

Requires Python 3.10 or newer, maturin, and a Rust toolchain. Wheels include PEP 561 type stubs for static type checkers and IDEs.

pip install maturin
maturin develop          # install into the current virtualenv (dev mode)
maturin build --release  # build a wheel

Functions

from wkb_wkt_converter import (
    wkb_to_wkt,
    wkb_to_wkt_split_srid,
    wkt_to_wkb,
    wkt_to_wkb_split_srid,
    wkt_to_hex_wkb,
    hex_wkb_to_wkt,
    # generic converters
    to_wkb,
    to_wkt,
    to_hex_wkb,
)
Function Input Output
wkb_to_wkt(wkb, srid=None) bytes-like WKB/EWKB str
wkb_to_wkt_split_srid(wkb) bytes-like WKB/EWKB (str, int | None)
wkt_to_wkb(wkt, srid=None) str bytes
wkt_to_wkb_split_srid(wkt) str (bytes, int | None)
wkt_to_hex_wkb(wkt, srid=None) str str
hex_wkb_to_wkt(hex_wkb, srid=None) str str

WKB arguments in the Python API accept bytes, bytearray, memoryview, and other C-contiguous one-byte buffer objects. They are always treated as raw WKB/EWKB, not as encoded text.

For performance, bytes-like WKB inputs may be borrowed directly without copying. Do not mutate a writable buffer while a converter is reading it, including from native code, another thread, or shared memory. Mutating the buffer during conversion is unsupported and may produce invalid or inconsistent results.

All functions above raise ValueError on invalid geometry input. The bytes-like WKB functions raise BufferError when the Python object does not provide a C-contiguous one-byte buffer. (See to_wkt below for an exception when normalize_wkt=False.)

Generic converters

These three functions accept a WKT/EWKT string, a hex-encoded WKB/EWKB string, or bytes-like WKB/EWKB input. String input is detected automatically: a non-empty, even-length string composed entirely of hex characters is treated as hex WKB; anything else, including odd-length all-hex text, is treated as WKT. Bytes-like input is always treated as raw WKB/EWKB, not encoded text.

Function Output
to_wkb(source, srid=None) bytes
to_wkt(source, srid=None, normalize_wkt=False) str
to_hex_wkb(source, srid=None) str

The srid keyword argument on direct and generic converters controls SRID handling in the output:

Value Behaviour
None (default) Mirror the input — SRID kept if present, absent if not
False Always strip the SRID from the output
int Always embed this SRID, overriding whatever the input contains

Validation behavior matches the Rust API: WKT coordinates must be finite, while WKB coordinate payloads are treated as trusted-valid. Simple little-endian EWKB hex or bytes-like inputs under srid=False or an integer SRID are patched at the top-level header without scanning the body, so malformed bodies or trailing bytes can pass through as invalid output. to_wkb(source, srid=None) returns decoded/raw bytes without WKB structure validation, and to_hex_wkb(source, srid=None) validates and uppercases hex text or hex-encodes bytes-like input without WKB structure validation.

to_wkt accepts a normalize_wkt keyword argument (default False). When True, WKT input is normalised (canonical casing, spacing, coordinate formatting) via a round-trip through WKB. When False (the default), only the SRID prefix is adjusted — no validation is performed: malformed WKT is returned without raising an error. Leading/trailing whitespace is always stripped regardless of this flag. Hex WKB and bytes-like WKB input are always decoded to normalised WKT regardless of this flag. Odd-length all-hex input is not detected as hex WKB; with normalize_wkt=False it follows the same unvalidated WKT fast path.

Example

from wkb_wkt_converter import wkt_to_wkb, wkb_to_wkt, wkt_to_hex_wkb, hex_wkb_to_wkt
from wkb_wkt_converter import to_wkt, to_hex_wkb

wkb = wkt_to_wkb("POINT (1 2)")
wkt = wkb_to_wkt(wkb)
assert wkt == "POINT (1 2)"

# EWKT with SRID
wkb = wkt_to_wkb("SRID=4326;POLYGON ((0 0, 1 0, 1 1, 0 0))")
wkt = wkb_to_wkt(wkb)
assert wkt == "SRID=4326;POLYGON ((0 0, 1 0, 1 1, 0 0))"

# Hex WKB (common PostGIS text format)
hex_wkb = wkt_to_hex_wkb("POINT (1 2)")
wkt = hex_wkb_to_wkt(hex_wkb)
assert wkt == "POINT (1 2)"

srid_hex_wkb = wkt_to_hex_wkb("SRID=4326;POINT (1 2)")
wkt = hex_wkb_to_wkt(srid_hex_wkb, srid=False)
assert wkt == "POINT (1 2)"

# Generic converters: input format detected automatically
wkt = to_wkt("point(1 2)", normalize_wkt=True)  # normalise WKT
assert wkt == "POINT (1 2)"

wkt = to_wkt(hex_wkb)                           # hex WKB -> WKT (always normalised)
assert wkt == "POINT (1 2)"

wkt = to_wkt(wkb)                               # raw WKB bytes -> WKT
assert wkt == "POINT (1 2)"

hex_out = to_hex_wkb("POINT (1 2)", srid=4326)  # add SRID
wkt = to_wkt(hex_out)
assert wkt == "SRID=4326;POINT (1 2)"

wkt = to_wkt("SRID=4326;POINT (1 2)", srid=False)  # strip SRID (fast path)
assert wkt == "POINT (1 2)"

Benchmarks

Comparison against shapely 2.x. Regenerate with:

pip install ".[benchmark]"
python scripts/update_readme_benchmarks.py
# or, using an already-saved JSON:
python scripts/update_readme_benchmarks.py --json benchmark_results.json

For local performance history across commits, use airspeed velocity:

pip install ".[asv]"
asv check --python=same
asv run --python=same --quick --show-stderr --dry-run
asv run HEAD^! --quick --show-stderr --dry-run
asv run main..HEAD --skip-existing-commits --show-stderr
asv run ALL --skip-existing-commits --show-stderr
asv publish
asv preview
asv compare main HEAD --split

2026-05-05 — Python 3.12.3 — 12th Gen Intel(R) Core(TM) i7-12700KF

Times are mean latency per call (lower is better). Speedup = shapely mean ÷ wkb_wkt_converter mean.

Basic conversions

wkt_to_wkb

Geometry wkb_wkt_converter shapely Speedup
Point 140 ns 5.2 µs 37.3×
LineString (5 pts) 233 ns 6.2 µs 26.7×
Polygon (5 pts) 247 ns 6.2 µs 25.2×
GeometryCollection 387 ns 8.3 µs 21.5×
MultiPolygon 533 ns 9.9 µs 18.6×
LineString (1000 pts) 23.3 µs 209.1 µs 9.0×
Polygon (1000 pts) 40.7 µs 444.0 µs 10.9×

wkb_to_wkt

Geometry wkb_wkt_converter shapely Speedup
Point 148 ns 3.9 µs 26.3×
LineString (5 pts) 240 ns 4.4 µs 18.3×
Polygon (5 pts) 140 ns 4.4 µs 31.2×
GeometryCollection 213 ns 5.1 µs 24.0×
MultiPolygon 667 ns 6.9 µs 10.3×
LineString (1000 pts) 38.9 µs 118.2 µs 3.0×
Polygon (1000 pts) 118.3 µs 140.8 µs 1.2×

wkt_to_hex_wkb

Geometry wkb_wkt_converter shapely Speedup
Point 164 ns 5.2 µs 31.6×
LineString (5 pts) 337 ns 6.4 µs 19.0×
Polygon (5 pts) 365 ns 6.4 µs 17.6×
GeometryCollection 494 ns 8.7 µs 17.5×
MultiPolygon 847 ns 9.8 µs 11.6×
LineString (1000 pts) 36.8 µs 230.0 µs 6.2×
Polygon (1000 pts) 54.5 µs 456.0 µs 8.4×

hex_wkb_to_wkt

Geometry wkb_wkt_converter shapely Speedup
Point 188 ns 4.0 µs 21.3×
LineString (5 pts) 331 ns 4.6 µs 13.9×
Polygon (5 pts) 219 ns 4.6 µs 21.1×
GeometryCollection 352 ns 5.6 µs 15.8×
MultiPolygon 854 ns 6.8 µs 8.0×
LineString (1000 pts) 47.2 µs 133.3 µs 2.8×
Polygon (1000 pts) 126.7 µs 156.0 µs 1.2×

Generic to_* converters

to_wkb(wkt)

Geometry wkb_wkt_converter shapely Speedup
Point 146 ns 5.4 µs 36.8×
LineString (5 pts) 241 ns 6.7 µs 27.7×
Polygon (5 pts) 273 ns 6.5 µs 23.9×
GeometryCollection 391 ns 8.5 µs 21.6×
MultiPolygon 565 ns 9.6 µs 17.0×
LineString (1000 pts) 24.0 µs 215.0 µs 9.0×
Polygon (1000 pts) 41.2 µs 452.8 µs 11.0×

to_wkb(hex_wkb)

Geometry wkb_wkt_converter shapely Speedup
Point 79 ns 4.5 µs 57.4×
LineString (5 pts) 116 ns 4.8 µs 41.6×
Polygon (5 pts) 117 ns 4.7 µs 40.4×
GeometryCollection 160 ns 5.3 µs 33.2×
MultiPolygon 215 ns 5.9 µs 27.7×
LineString (1000 pts) 7.2 µs 42.8 µs 5.9×
Polygon (1000 pts) 7.2 µs 43.3 µs 6.0×

to_wkt(wkt)normalize_wkt=False (fast path, no WKB round-trip)

Geometry wkb_wkt_converter shapely Speedup
Point 62 ns 4.8 µs 76.8×
LineString (5 pts) 60 ns 6.1 µs 101.3×
Polygon (5 pts) 61 ns 6.1 µs 100.2×
GeometryCollection 65 ns 8.4 µs 129.9×
MultiPolygon 66 ns 10.6 µs 160.0×
LineString (1000 pts) 521 ns 306.5 µs 588.0×
Polygon (1000 pts) 2.1 µs 547.8 µs 267.2×

to_wkt(wkt)normalize_wkt=True (full WKT→WKB→WKT round-trip)

Geometry wkb_wkt_converter shapely Speedup
Point 346 ns 4.8 µs 13.8×
LineString (5 pts) 550 ns 6.1 µs 11.1×
Polygon (5 pts) 458 ns 6.1 µs 13.3×
GeometryCollection 685 ns 8.4 µs 12.3×
MultiPolygon 1.3 µs 10.6 µs 8.1×
LineString (1000 pts) 62.9 µs 306.5 µs 4.9×
Polygon (1000 pts) 162.3 µs 547.8 µs 3.4×

to_wkt(hex_wkb)

Geometry wkb_wkt_converter shapely Speedup
Point 195 ns 4.1 µs 21.1×
LineString (5 pts) 349 ns 4.6 µs 13.2×
Polygon (5 pts) 231 ns 4.7 µs 20.1×
GeometryCollection 359 ns 5.5 µs 15.4×
MultiPolygon 873 ns 6.7 µs 7.7×
LineString (1000 pts) 46.8 µs 132.5 µs 2.8×
Polygon (1000 pts) 126.9 µs 155.2 µs 1.2×

to_hex_wkb(wkt)

Geometry wkb_wkt_converter shapely Speedup
Point 177 ns 5.4 µs 30.4×
LineString (5 pts) 350 ns 6.4 µs 18.3×
Polygon (5 pts) 375 ns 6.8 µs 18.3×
GeometryCollection 524 ns 8.7 µs 16.6×
MultiPolygon 869 ns 9.8 µs 11.3×
LineString (1000 pts) 37.3 µs 228.1 µs 6.1×
Polygon (1000 pts) 54.7 µs 463.0 µs 8.5×

to_hex_wkb(hex_wkb)

Geometry wkb_wkt_converter shapely Speedup
Point 86 ns 4.5 µs 52.6×
LineString (5 pts) 169 ns 4.9 µs 29.1×
Polygon (5 pts) 174 ns 4.9 µs 28.5×
GeometryCollection 238 ns 5.5 µs 23.0×
MultiPolygon 366 ns 6.2 µs 17.0×
LineString (1000 pts) 14.8 µs 56.7 µs 3.8×
Polygon (1000 pts) 15.1 µs 58.1 µs 3.8×

Project layout

wkb_wkt_converter/          # core Rust library (zero runtime dependencies)
  src/
    lib.rs                  # public API
    error.rs
    types.rs                # GeomType, Dimension
    wkb_to_wkt/             # WKB reader + WKT builder
    wkt_to_wkb/             # WKT tokenizer + seekable WKB writer
  tests/
    wkb_to_wkt.rs
    wkt_to_wkb.rs
    generic_converters.rs

wkb_wkt_converter_py/       # Python bindings (PyO3 / maturin)
  src/lib.rs

pyproject.toml              # maturin build config

Running tests

cargo test                  # run all Rust tests
cargo clippy -- -D warnings # lints
cargo fmt --check           # formatting

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wkb_wkt_converter-0.6.0.tar.gz (41.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

wkb_wkt_converter-0.6.0-cp314-cp314-win_amd64.whl (177.3 kB view details)

Uploaded CPython 3.14Windows x86-64

wkb_wkt_converter-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.0-cp314-cp314-macosx_11_0_arm64.whl (252.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

wkb_wkt_converter-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl (258.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

wkb_wkt_converter-0.6.0-cp313-cp313-win_amd64.whl (177.2 kB view details)

Uploaded CPython 3.13Windows x86-64

wkb_wkt_converter-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.0-cp313-cp313-macosx_11_0_arm64.whl (252.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

wkb_wkt_converter-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl (258.3 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

wkb_wkt_converter-0.6.0-cp312-cp312-win_amd64.whl (177.5 kB view details)

Uploaded CPython 3.12Windows x86-64

wkb_wkt_converter-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.0-cp312-cp312-macosx_11_0_arm64.whl (252.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

wkb_wkt_converter-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl (258.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

wkb_wkt_converter-0.6.0-cp311-cp311-win_amd64.whl (180.1 kB view details)

Uploaded CPython 3.11Windows x86-64

wkb_wkt_converter-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (279.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (254.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

wkb_wkt_converter-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl (260.2 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

wkb_wkt_converter-0.6.0-cp310-cp310-win_amd64.whl (179.9 kB view details)

Uploaded CPython 3.10Windows x86-64

wkb_wkt_converter-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (279.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.0-cp310-cp310-macosx_11_0_arm64.whl (254.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

wkb_wkt_converter-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl (260.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file wkb_wkt_converter-0.6.0.tar.gz.

File metadata

  • Download URL: wkb_wkt_converter-0.6.0.tar.gz
  • Upload date:
  • Size: 41.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for wkb_wkt_converter-0.6.0.tar.gz
Algorithm Hash digest
SHA256 760dbb796d4a5e30ece2dee180900689823a743f3856a3c95222ccc522dc35f9
MD5 fcd6c07d599d6a3d8ff23c153115e3b3
BLAKE2b-256 29b65116d992db778bdfa4b44201cb00c81f0760e9ed63c2cfc627a12dc78704

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0.tar.gz:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6716b111fb28c574633ff3f696fc47106a7471d5058565b7c45b4615ed0363a4
MD5 e55c3d85897da09b44d3aa9f2560340d
BLAKE2b-256 ba5cbb8125feaa391c346d98c519c3283bba41353a0ffc5e31db00a58e2b8b6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4fe9da98f709dc46cea270d0e666eb5a9c4d183632491e07f915c1ae217ea6df
MD5 ce414001bf3292eac7b2c0e6ee5ab503
BLAKE2b-256 075d58ce09b763d4ca70ea4c3e995e25f98da7d219593fb2834cc75e3920cb4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eac4388b56761ade9375ecee7f4af7893c7040e4c170075123a2d39c37b42b76
MD5 d0d8902b6a9b03cc5dc36d9567bdf586
BLAKE2b-256 a03273745dd851d5466da19bbbea7999af6dc488679ef79464da637cd012875f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7eba287920cea78e191a284e08bc2dacf2b957ea25477423f1dd5d81b95e6a8a
MD5 e3fa1d6f64bc66f1f5c29c6939c6dda2
BLAKE2b-256 247b7e2b5b442e8cc93d629989618e0735f80bda05dd243dd2b7ee553fbe5b7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8b1971a31d566a0e61ff58c5e8af263acf72a3bbdeaddd088368278fba90f9c9
MD5 10a2f88c66c4e4bcadb81f0fdffac7a8
BLAKE2b-256 f56ffd07eacc9119340deb8024051ff34d508f29b7563712e16372411e13da91

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f09cd0a1e7029e3d6194c93d99230c4efa679ab1576735725c8980e61dfed4ee
MD5 a967b9d89978594538ee83f02f2022b4
BLAKE2b-256 052fdd5178fb699950ac76770dfb0740e28a1adebe25ad554443bdf42300c781

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef1b7f663d4d6f7df75c2f12fc0fd7752516caf03526957d752fdb719aaeb26a
MD5 82cad1f2bbe3071a99dfbc9effe76443
BLAKE2b-256 a51c437c6291dda4738d18e17b96a379da7bbbbaeedef831e49b4f5a19f73b9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3fbc5baf05eec26947b5526049f16ff1b1b758541b0ffe2226538661510c0fab
MD5 2ce9504d671e5c5c1f94cbc2f8066a98
BLAKE2b-256 10bfc8ec43a7676e68f8c38590b4d82e02eb909b326a780c13790684911f165a

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2e2796294f5e85b6778bb03137a9478cf023680f9f3d216da502adbc2a7a8702
MD5 cf3fdac971c50d1931f60279d6ffda04
BLAKE2b-256 f948d43b33d1e13964c3839df7aef5faa4f4e1e455fc66a34dbf72b42e7800c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef64ee253bb984838a4ec0a3fbac619d2df95529ee888b69a050fc33963c6d8d
MD5 41c18c791a192b8755b259ea36fd6d26
BLAKE2b-256 fb37c90a2d6caa8cb0cf5d81764eec62d6970ad2b1cbe164a38066804a723cd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dae184cbe97de48e4972cc6f52f1ffa6d987c1a7cdea32a741cbebab8feb06f1
MD5 a68254608a18b3186ae9df8d2b991bb0
BLAKE2b-256 a6251fa72dd0c69334a00c767a793870a1607da66bd6c3acb87b4348bc99b7a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 59be4afe6312638a66b2b55ef3ed96a5c7cdae7980749f9f08d0ab2a4e056206
MD5 3f3a184dfad045b294976bd14b37b6e8
BLAKE2b-256 de26b8e1bcc218b7a96913b1a2d845c0817a183929ac5512f7ff213f47d1f391

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 995c2e9c5662a639a82681d1a5edd51c7fbf05129df89536e860f2beb0b9be70
MD5 e7e44cd3f26d743a30584467781113f3
BLAKE2b-256 a9883278dfa33e92f822500be35dc5a4573b112d5d72d8328cd5ad4fde6172de

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3b3966dbd5ab23c075c7ec4bc3d12269292fdb9271114908eb3ea0a4e7dd865
MD5 62f33aabc4c7e01894353eaa6473ca05
BLAKE2b-256 ddb8f611e6fbaeb04a16643bfafb8d780ea4b63e00e32e6cf88ff0398b180558

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cb092e2bdcf3dc994d470c5d111d7825e8a1efda790af7ffa6cd5b7411b36a6
MD5 faa163ec9b36a30bcedd916bb744dabd
BLAKE2b-256 a23d9066b715488f765648365ffd1e4d6bdf85fcec25dbff9021db1df58e0ca0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3438045f137be49073f9925da455b93e872cd682e34b35f09e1d1c816c925b4a
MD5 ddc19787c3a48830927e99f3f75344d4
BLAKE2b-256 f92d6fcf57d623aa5e431b5d21d516ac53a4ed1e7ef2dc83288e4074a85c17f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 970ef1df355bb5e0033814a35c33ac783fece22b8bbadb31c30740df71bd8ebd
MD5 595b42c5e4eec8ab4486a9408e5c1a7b
BLAKE2b-256 d86980a6f18de6f1e55669872b9de28b090ebd034f080ffc09e782afa3704209

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8b29d4cf4ecd952f7d9905c7351e1d917f240a4bf7ed08c2e9a7f973c01cfa24
MD5 116f1ebd19b4d3f670869059b0f442ad
BLAKE2b-256 92e618ab7e841bd503f1ee6a48e112b45990561a048092f4835a42f56c1c0eb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f431e123b065dc6274913a47db062db26fafc35890193d4386016eee709e4c0c
MD5 799e5f647939f3b2d411f98dd1d0b7b7
BLAKE2b-256 0d81809a07ad8dc00f36f9aa3eff397063f7f80fe1d1098daf30fd339dbbc933

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wkb_wkt_converter-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 90e769470afb79f6cf076acc75bcdd32fb8dccf717fa765560061a645b44a568
MD5 8c35faa69c96c61e3e5c21535d64473b
BLAKE2b-256 32a2d2996600e383996b6ba9c4adc6fb4051b4134714ec3e0b253a0f55823acb

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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