Lightweight Python bindings for the TG geometry library
Project description
Python bindings for TG (Geometry library for C - Fast point-in-polygon)
ToGo is a high-performance Python library for computational geometry, providing a Cython wrapper around the above-mentioned C library.
Note on pronunciation: "ToGo" is pronounced like the country Togo ("TOH-go"), not like "to go".
The main goal is to offer a Pythonic, object-oriented, fast and memory-efficient library for geometric operations, including spatial predicates, format conversions, and spatial indexing. ToGo's API is flexible and allows you to reason in either TG concepts (if you're familiar with the TG library) or Shapely conventions (the de facto standard for geospatial work in Python)—whichever fits your workflow best.
See SHAPELY_API.md for more details on Shapely compatibility.
See the "Error Behavior vs Shapely" section in SHAPELY_API.md for overlay and predicate
compatibility notes.
See CHANGELOG.md for version-by-version release notes.
Installation
pip install togo
Features
- Fast and efficient geometric operations
- Support for standard geometry types: Point, Line, Ring, Polygon, and their multi-variants
- Flexible API supporting both TG and Shapely conventions
- Geometric predicates: contains, intersects, covers, touches, etc. — accept any wrapper type directly (no manual
.as_geometry()conversion needed) - Format conversion between WKT, GeoJSON, WKB, and HEX
- Spatial indexing for accelerated queries
- Memory-efficient C implementation with Python-friendly interface
- Advanced operations via libgeos integration (buffer, unary union, simplify, centroid, convex_hull, etc.)
- Distance and proximity operations (nearest_points, shortest_line, project)
MultiPolygonandMultiLineStringare real Python classes —isinstance()checks work correctly- Geometry equality via
==operator consistent with Shapely semantics
Basic Usage
ToGo's API supports multiple styles of interaction. You can use Shapely-like conventions for familiarity, TG-like conventions if you're already familiar with that library, or mix both as needed.
Creating Geometries
from togo import Point, LineString, Polygon, Ring, Poly, Geometry
# Shapely-like syntax
point = Point(1.0, 2.0)
line = LineString([(0, 0), (1, 1), (2, 2)])
poly = Polygon([(0, 0), (4, 0), (4, 4), (0, 4), (0, 0)])
# TG-like syntax with Ring and Poly
ring = Ring([(0,0), (10,0), (10,10), (0,10), (0,0)])
polygon = Poly(ring)
# Direct Geometry creation from formats
geom = Geometry("POINT(1 2)", fmt='wkt')
geom2 = Geometry('{"type":"Point","coordinates":[1,2]}', fmt='geojson')
Working with Geometries
from togo import Point, Polygon
# Access properties (works with both API styles)
point = Point(1.0, 2.0)
print(point.geom_type) # 'Point'
print(point.bounds) # (1.0, 2.0, 1.0, 2.0)
print(point.coords[0]) # (1.0, 2.0) — indexable coordinate sequence
poly = Polygon([(0, 0), (4, 0), (4, 4), (0, 4), (0, 0)])
print(poly.area) # 16.0
print(poly.length) # 16.0
# Convert between formats
print(point.to_wkt()) # 'POINT (1 2)'
print(point.to_geojson()) # '{"type":"Point","coordinates":[1.0,2.0]}'
# Spatial predicates — wrapper objects are accepted directly, no .as_geometry() needed
if poly.contains(point):
print("Polygon contains point!")
if poly.intersects(Polygon([(3, 3), (5, 3), (5, 5), (3, 5), (3, 3)])):
print("Polygons intersect!")
# Polygon.boundary — exterior ring as a LineString
boundary = poly.boundary
print(boundary.length) # perimeter of polygon
# Polygon.from_bounds — create a rectangle from a bounding box
bbox = Polygon.from_bounds(0, 0, 10, 5)
print(bbox.area) # 50.0
# Centroid (Shapely-compatible)
centroid = poly.centroid # Returns a Point geometry
print(centroid.to_wkt()) # e.g., 'POINT (2 2)'
# Convex hull (Shapely-compatible)
from togo import convex_hull
concave_poly = Polygon([(0, 0), (2, 0), (2, 2), (1, 1), (0, 2), (0, 0)])
hull = convex_hull(concave_poly)
print(hull.to_wkt()) # 'POLYGON((0 0,2 0,2 2,0 2,0 0))'
# Binary union (Shapely-compatible)
other = Polygon([(3, 3), (5, 3), (5, 5), (3, 5), (3, 3)])
merged = poly.union(other)
print(merged.geom_type)
You can also call the module-level helper with from togo import union and then
union(poly, other).
Core Classes
Geometry
The base class that wraps tg_geom structures and provides core operations:
- Create geometries directly from WKT, GeoJSON, HEX, and other supported serialized formats.
- Use common predicates such as
intersects(),contains(), andwithin()directly onGeometryinstances. - Convert geometries back to WKT/GeoJSON/WKB using
to_wkt(),to_geojson(), andto_wkb(). - Index collection-like geometries such as
GeometryCollection,MultiLineString, andMultiPolygonusinggeom[idx]. - High-risk accessor, predicate, and overlay paths now fail with managed exceptions when used on
uninitialized base
Geometry()objects.
Point
from togo import Point
# Create a point
p = Point(1.0, 2.0)
# Access coordinates
print(f"X: {p.x}, Y: {p.y}")
# Get as a tuple
print(p.as_tuple())
# Convert to a Geometry object
geom = p.as_geometry()
print(geom.type_string())
Segment
from togo import Segment, Point
# Create a segment from two points (or tuples)
seg = Segment(Point(0, 0), Point(1, 1))
# Or using tuples
tuple_seg = Segment((0, 0), (1, 1))
# Access endpoints
print(seg.a) # Point(0, 0)
print(seg.b) # Point(1, 1)
# Get the bounding rectangle
rect = seg.rect()
print(rect) # ((0.0, 0.0), (1.0, 1.0))
# Check intersection with another segment
other = Segment((1, 1), (2, 2))
print(seg.intersects(other)) # True or False
Line
from togo import Line
# Create a line from a list of tuples
line = Line([(0,0), (1,1), (2,0)])
# Get number of points
print(f"Number of points: {line.num_points}")
# Get all points as a list of tuples
print(f"Points: {line.points()}")
# Get the length of the line
print(f"Length: {line.length}")
# Get the bounding box
print(f"Bounding box: {line.rect()}")
# Get a point by index
print(f"First point: {line[0].as_tuple()}")
Ring
from togo import Ring
# Create a ring (must be closed)
ring = Ring([(0,0), (10,0), (10,10), (0,10), (0,0)])
# Get area and perimeter
print(f"Area: {ring.area}")
print(f"Perimeter: {ring.length}")
# Check if it's convex or clockwise
print(f"Is convex: {ring.is_convex()}")
print(f"Is clockwise: {ring.is_clockwise()}")
# Get bounding box
min_pt, max_pt = ring.rect().min, ring.rect().max
print(f"Bounding box: {min_pt.as_tuple()}, {max_pt.as_tuple()}")
Poly
from togo import Poly, Ring, Point
# Create a polygon with one exterior ring and one interior hole
exterior = Ring([(0,0), (10,0), (10,10), (0,10), (0,0)])
hole1 = Ring([(1,1), (2,1), (2,2), (1,2), (1,1)])
poly = Poly(exterior, holes=[hole1])
# Get the exterior ring
ext_ring = poly.exterior
print(f"Exterior has {ext_ring.num_points} points")
# Get number of holes
print(f"Number of holes: {poly.num_holes()}")
# Get a hole by index
h = poly.hole(0)
print(f"Hole area: {h.area()}")
# A polygon is a geometry, so you can use geometry methods
geom = poly.as_geometry()
print(f"Contains point (5,5): {geom.contains(Point(5,5).as_geometry())}")
# Point is inside the hole, so it is not contained by the polygon
print(f"Contains point (1.5,1.5): {geom.contains(Point(1.5,1.5).as_geometry())}")
MultiGeometries
MultiPolygon and MultiLineString are real Python classes, so isinstance() checks work correctly:
from togo import MultiPoint, MultiLineString, MultiPolygon, Poly, Ring, Geometry
# MultiPolygon — real class, supports isinstance
poly1 = Poly(Ring([(0,0), (1,0), (1,1), (0,1), (0,0)]))
poly2 = Poly(Ring([(2,2), (3,2), (3,3), (2,3), (2,2)]))
multi_poly = MultiPolygon([poly1, poly2])
print(isinstance(multi_poly, MultiPolygon)) # True
print(isinstance(multi_poly, Geometry)) # True
# MultiLineString — real class, supports isinstance
multi_line = MultiLineString([[(0,0), (1,1)], [(2,2), (3,3)]])
print(isinstance(multi_line, MultiLineString)) # True
# MultiPoint — factory (returns Geometry)
multi_point = MultiPoint([(0,0), (1,1), (2,2)])
# Low-level factory methods still available on Geometry
multi_poly2 = Geometry.from_multipolygon([poly1, poly2])
LineString.project()
project() returns the distance along a line to the nearest projected point — equivalent to Shapely's project(). Use normalized=True to get a fraction of total line length:
from togo import LineString, Point
line = LineString([(0, 0), (10, 0)])
# Distance to the start: 0.0
print(line.project(Point(0, 0).as_geometry())) # 0.0
# Distance to the midpoint: 5.0
print(line.project(Point(5, 0).as_geometry())) # 5.0
# Point above the midpoint still projects to 5.0
print(line.project(Point(5, 3).as_geometry())) # 5.0
# Normalized distance in [0.0, 1.0]
print(line.project(Point(5, 0).as_geometry(), normalized=True)) # 0.5
print(line.project(Point(10, 0).as_geometry(), normalized=True)) # 1.0
Polygon Indexing
Togo supports different polygon indexing strategies for optimized spatial operations:
from togo import TGIndex, set_polygon_indexing_mode
# Set the indexing mode
set_polygon_indexing_mode(TGIndex.NATURAL) # or NONE, YSTRIPES
Integration with tgx and libgeos
Togo integrates with the tgx extension and libgeos to provide advanced geometry operations, such as topological unions and conversions between TG and GEOS geometry formats. This allows you to leverage the speed of TG for basic operations and the flexibility of GEOS for more complex tasks.
Example: Unary Union (GEOS integration)
unary_union is a module-level function (Shapely-compatible) that merges multiple geometries into one using GEOS topological union. It accepts any wrapper type directly — no .as_geometry() conversion required:
from togo import Polygon, unary_union
# Create several polygons using the Shapely-compatible constructor
poly1 = Polygon([(0,0), (2,0), (2,2), (0,2), (0,0)])
poly2 = Polygon([(1,1), (3,1), (3,3), (1,3), (1,1)])
# Module-level unary_union — accepts Polygon wrapper objects directly
union = unary_union([poly1, poly2])
# The result is a single geometry representing the union
print(union.geom_type) # 'Polygon'
print(union.to_wkt())
# Works with mixed types (Poly, Polygon, Geometry, etc.)
from togo import Poly, Ring, Geometry
poly3 = Poly(Ring([(5,0), (7,0), (7,2), (5,2), (5,0)]))
union2 = unary_union([poly1, poly3])
print(union2.geom_type) # 'MultiPolygon' (non-overlapping)
This operation uses tgx to convert TG geometries to GEOS, applies the union in libgeos, and converts the result back to TG format for further use in ToGo.
Example: Buffer Operations (GEOS integration)
The buffer() method creates geometrical buffers (expanded or shrunk versions of geometries) using GEOS:
from togo import Point, LineString, Polygon, Ring, Geometry
# Buffer a point to create a circular zone
point = Point(0, 0)
circular_zone = point.buffer(10.0, quad_segs=16)
print(f"Point buffer: {circular_zone.geom_type}") # Polygon
# Buffer a line to create a corridor around it
line = LineString([(0, 0), (10, 10)])
corridor = line.buffer(2.0, cap_style=1) # round ends
print(f"Line buffer: {corridor.geom_type}") # Polygon
# Buffer a polygon to expand or shrink it
exterior = Ring([(0, 0), (10, 0), (10, 10), (0, 10), (0, 0)])
poly = Polygon(exterior)
expanded = poly.buffer(2.0) # Expand outward by 2 units
shrunk = poly.buffer(-1.0) # Shrink inward by 1 unit
# Via Geometry object with advanced parameters
geom = Geometry("POLYGON((0 0, 20 0, 20 20, 0 20, 0 0))")
buffered = geom.buffer(
distance=3.0,
quad_segs=16, # Segments per quadrant (higher = smoother)
cap_style=1, # 1=round, 2=flat, 3=square
join_style=1, # 1=round, 2=mitre, 3=bevel
mitre_limit=5.0 # Mitre ratio limit
)
Like unary_union, buffer operations automatically handle TG ↔ GEOS conversions. For comprehensive buffer documentation, see BUFFER_API.md.
Example: Distance and Proximity Operations (GEOS integration)
The nearest_points() and shortest_line() functions find the closest points between geometries:
from togo import Point, LineString, Polygon, Ring, nearest_points, shortest_line, from_wkt
# Find nearest points between geometries (module-level function)
point = Point(0, 0)
line = LineString([(10, 0), (10, 10)])
pt1, pt2 = nearest_points(point, line)
print(f"Nearest on point: ({pt1.x}, {pt1.y})") # (0.0, 0.0)
print(f"Nearest on line: ({pt2.x}, {pt2.y})") # (10.0, 0.0)
# Get the connecting line (Shapely v2 API - module-level function)
shortest = shortest_line(point, line)
print(f"Distance: {shortest.length}") # 10.0
print(f"Connecting line: {shortest.coords}") # [(0.0, 0.0), (10.0, 0.0)]
# Method style also works
shortest = point.shortest_line(line)
pt1, pt2 = point.nearest_points(line)
# Measure gap between polygons
poly1 = Polygon(Ring([(0, 0), (5, 0), (5, 5), (0, 5), (0, 0)]))
poly2 = Polygon(Ring([(10, 0), (15, 0), (15, 5), (10, 5), (10, 0)]))
gap_line = shortest_line(poly1, poly2)
print(f"Gap between polygons: {gap_line.length}") # 5.0
# Practical use case: Check if features are within distance
def within_distance(geom1, geom2, max_dist):
return shortest_line(geom1, geom2).length <= max_dist
building1 = Polygon(Ring([(0, 0), (10, 0), (10, 10), (0, 10), (0, 0)]))
building2 = Polygon(Ring([(20, 0), (30, 0), (30, 10), (20, 10), (20, 0)]))
if within_distance(building1, building2, 15):
print("Buildings meet separation requirement")
# Works with WKT geometries
g1 = from_wkt("POINT(0 0)")
g2 = from_wkt("LINESTRING(5 5, 10 10)")
connecting = shortest_line(g1, g2)
print(f"Distance: {connecting.length:.2f}")
For more examples, see the shortest-line tests and examples/shortest_line_demo.py.
Performance Considerations
- Togo is optimized for speed and memory efficiency
- For large datasets, proper indexing can significantly improve performance
- Creating geometries with the appropriate format avoids unnecessary conversions
- Buffer operations support quad_segs parameter to balance quality vs. performance
Soon there will be a full API documentation, for now please refer to the test suite for more usage examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file togo-0.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97c0d84304c64555f493023aee30bb11d19dd7aaeee0044b92225d91ec0c123c
|
|
| MD5 |
aa7d8b9cefaabaec13c65425899e14a7
|
|
| BLAKE2b-256 |
e225c43b79cf6c3a7986bad460d676fecc689b8f40723bdca8a91a5618c39eac
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp314-cp314t-musllinux_1_2_x86_64.whl -
Subject digest:
97c0d84304c64555f493023aee30bb11d19dd7aaeee0044b92225d91ec0c123c - Sigstore transparency entry: 1755997149
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d333fb1166fcb2de2445ed5df6d5b3398006dffecf71ed998b4a3cf3807cdde
|
|
| MD5 |
6272f37074e5e680039f840f9e3f911a
|
|
| BLAKE2b-256 |
e6301bd0d0f9a131723daaee2de8d2b54e6036324f37797a83d911703e168abe
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
5d333fb1166fcb2de2445ed5df6d5b3398006dffecf71ed998b4a3cf3807cdde - Sigstore transparency entry: 1755997560
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d12d7c4f3646b4d9d38b69d6de415622981450bebeac043102a81d1b245ca4d5
|
|
| MD5 |
36f4793e13d89f2f1b78b0cf2d0e8002
|
|
| BLAKE2b-256 |
bda574e908e8b728e4c806863aab3de35f5368ca998ed7a8e515ac2f7e295241
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp314-cp314-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp314-cp314-musllinux_1_2_x86_64.whl -
Subject digest:
d12d7c4f3646b4d9d38b69d6de415622981450bebeac043102a81d1b245ca4d5 - Sigstore transparency entry: 1755997368
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.14, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3d60524ea9be717f6b76ef14ec5d4c4d7af1ac87a2f5e41d94142c6109fafc9
|
|
| MD5 |
040a191e1ad140841245590775d0546d
|
|
| BLAKE2b-256 |
645a7383cb7d67edd0d5de2ce9bc3d13527b0de57c9bb9e6cc52fbbc4a15c429
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
d3d60524ea9be717f6b76ef14ec5d4c4d7af1ac87a2f5e41d94142c6109fafc9 - Sigstore transparency entry: 1755997585
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
403847be84bb28ff13ae525c14bd7525db68fa4fdd29bde30e4dcf94ccea4055
|
|
| MD5 |
ade44f17c3f13fb052915c7059451229
|
|
| BLAKE2b-256 |
bccdf648f6b09fe709a183289e5bd5c91e618be5c872fa22b897547bc4d7ca5a
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp313-cp313-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp313-cp313-musllinux_1_2_x86_64.whl -
Subject digest:
403847be84bb28ff13ae525c14bd7525db68fa4fdd29bde30e4dcf94ccea4055 - Sigstore transparency entry: 1755997484
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33c4e8b21f9f2696a1f22eeecd032032f6d8566426f202682d09b1f31ba45628
|
|
| MD5 |
11f61f00b3196924d5960b5bd5d0b81b
|
|
| BLAKE2b-256 |
cfd003fba70341bfb77245a0dd810b96ced24baf3118f78238aa06625d4c99b4
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
33c4e8b21f9f2696a1f22eeecd032032f6d8566426f202682d09b1f31ba45628 - Sigstore transparency entry: 1755997402
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d11ef76d10ecfd4a0a5af354e9d373ba88b6ec6f7b8f18efa2548efc25581400
|
|
| MD5 |
fa6f50e2367d6e09123a816e77e71ed7
|
|
| BLAKE2b-256 |
987ed42690ae4a28680322bd6a673c2e7255521b5e64be526bf859f83240527f
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl -
Subject digest:
d11ef76d10ecfd4a0a5af354e9d373ba88b6ec6f7b8f18efa2548efc25581400 - Sigstore transparency entry: 1755997059
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffdf6116322085711b4d1be7fbd62840cc9ac57d9bba0b24051f2f849f65ecfc
|
|
| MD5 |
bfa9eaee2e390c0eff254adf6dabc5ce
|
|
| BLAKE2b-256 |
9b48cbfa168dbdf4bb1b50d2600cefe036ffb04d847642680291d9fc40a36287
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
ffdf6116322085711b4d1be7fbd62840cc9ac57d9bba0b24051f2f849f65ecfc - Sigstore transparency entry: 1755997099
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e3b8a18249d6d9c948fbe1523aafea2cb834098c6dbe4db326d18ff2d41418b
|
|
| MD5 |
a9f6fc6ec30c28fab56d806a47048bb7
|
|
| BLAKE2b-256 |
c82e4ea470d8c2705e3391bce0e94ea5d658f4459d2b057a808e6f926c2d2fb9
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl -
Subject digest:
0e3b8a18249d6d9c948fbe1523aafea2cb834098c6dbe4db326d18ff2d41418b - Sigstore transparency entry: 1755997526
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3b57e856cdb434c9929665d043cfbe09073d06b0eaf63c3d4b8f565467ec0e0
|
|
| MD5 |
479084ced67bcc20162d4a24eb4bc074
|
|
| BLAKE2b-256 |
c734fd275457a1a80038a29dee5f41d0a9d696411ba215a634aa4148e2c92468
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
c3b57e856cdb434c9929665d043cfbe09073d06b0eaf63c3d4b8f565467ec0e0 - Sigstore transparency entry: 1755997459
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39553811a72e1ac658a892d82abd2ec551fa41dae8f79fbbc6fd41f297291748
|
|
| MD5 |
10d635b14e3f7b82d313ebf3d6409c53
|
|
| BLAKE2b-256 |
19aa0adb800a1ba99dc02fef925eea39306fba04747f0811536ed6287f0b855e
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl -
Subject digest:
39553811a72e1ac658a892d82abd2ec551fa41dae8f79fbbc6fd41f297291748 - Sigstore transparency entry: 1755997428
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1be92c0fe9ca937852644118279cb81d37da2b089bf7721f5c2eb20f69e5ab9c
|
|
| MD5 |
abed2f56b4be62294e03682f4ccda6e9
|
|
| BLAKE2b-256 |
67bdca110e776fb6aec670a6a36e77114bf4c52fc2b86b1892ac049f6e67f974
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
1be92c0fe9ca937852644118279cb81d37da2b089bf7721f5c2eb20f69e5ab9c - Sigstore transparency entry: 1755997303
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eda1f2e0ec8b9ccce87504678c5427b95c47ccfcd9ce66f230e96b9f0237b45
|
|
| MD5 |
3d44dc8b09870267346f4a8fb253e442
|
|
| BLAKE2b-256 |
7d832fc55bffc5f214d10fbbc4984f05396b8ab68bb2038bedcb6af620b4324a
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl -
Subject digest:
8eda1f2e0ec8b9ccce87504678c5427b95c47ccfcd9ce66f230e96b9f0237b45 - Sigstore transparency entry: 1755997629
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.9, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8c55a408659e6afa03b17fedfd13aa1bd4a555fd0092b5c8c3356b3cebbb630
|
|
| MD5 |
57ba6975b408c4ea4a4f0af6518af1f2
|
|
| BLAKE2b-256 |
3e3f2e61e1e90febfd0070341a6be7acbb0285aeee1ff03f2a3016be29d57eb1
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
e8c55a408659e6afa03b17fedfd13aa1bd4a555fd0092b5c8c3356b3cebbb630 - Sigstore transparency entry: 1755997604
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.8, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d696b87c018c68ed7ff262b55aa421dd3a5f8b8c380218533cbc3eb8d9762a11
|
|
| MD5 |
06bbbea1d4833aceaa4a0b4cf0e1929d
|
|
| BLAKE2b-256 |
0de3da23bb83057946ab8f349b2f6d2a11886ed9cca84be4860630a92d294fbb
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl -
Subject digest:
d696b87c018c68ed7ff262b55aa421dd3a5f8b8c380218533cbc3eb8d9762a11 - Sigstore transparency entry: 1755997192
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file togo-0.4.4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: togo-0.4.4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.8, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc6eb67c5862571af8786f3e4daf47faaea314246ef87c695566012b883d64b4
|
|
| MD5 |
5ce98ee9de2a07ebaf162dc07369f85a
|
|
| BLAKE2b-256 |
8870aba0d4cd7a3b054feccf2b2ba2573b5f7980578276dd67368882a438b457
|
Provenance
The following attestation bundles were made for togo-0.4.4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on mindflayer/togo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
togo-0.4.4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
fc6eb67c5862571af8786f3e4daf47faaea314246ef87c695566012b883d64b4 - Sigstore transparency entry: 1755997238
- Sigstore integration time:
-
Permalink:
mindflayer/togo@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/mindflayer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@ab591f56ddd334ea7e999900c5e7a61615a781a2 -
Trigger Event:
push
-
Statement type: