Skip to main content
Pangolin: Plane Geometry Library

License

⚠️ Work in Progress: This library is still under construction and contains bugs and missing features. Use in production environments is not recommended.

Pangolin (or pgl) is a C++ library for computational geometry in the plane and pypgl is the official python binding for it. It is designed to be pleasant to use and always exact. Calculations are exact using rational numbers (floating point is not accepted).

import pypgl as pgl

p = pgl.Point(1, 0)
q = pgl.Point(4, '15/2')
s = pgl.Segment(p, q)
t = pgl.Segment(0, 8, '7/3', 1)
if s.intersects(t):
    print(s, "intersects", t)
# Output: (1,0)--(4,15/2) intersects (0,8)--(7/3,1)

There are many more illustrated examples that give a good overview of the library's features and syntax.

Shapes and Predicates

Family Shapes
0-dimensional Point
1-dimensional Segment, OrientedSegment, Line, OrientedLine, Ray, Polyline, MonotoneChain
2-dimensional Halfplane, Triangle, Rectangle, Disk, Convex, Polygon, PolygonWithHoles, PolygonSet, HalfplaneIntersection

The following predicates are implemented as methods of all shapes.

  • contains(Shape) Does it contain the other shape?
  • boundaryContains(Shape) Does its boundary contain the other shape?
  • interiorContains(Shape) Does it contain the other shape in the interior?
  • intersects(Shape) Do the two shapes intersect?
  • interiorsIntersect(Shape) Do the interiors of the two shapes intersect?
  • separates(Shape) Does one shape cut the other into two (or more) components?
  • crosses(Shape) Do both shapes separate each other?
import pypgl as pgl

o = pgl.Point()      # Point (0,0)
d = pgl.Disk(o, 10)  # Disk of radius 10 centered at (0,0)
if d.contains(o):
    print("Disk contains", o)
diam = d.diameter()
if d.contains(diam):
    print("Disk contains the diameter")
if not d.interiorContains(diam):
    print("Disk's interior does not contain the diameter")
# Output:
# Disk contains (0,0)
# Disk contains the diameter
# Disk's interior does not contain the diameter

Other Methods

Several other methods are supported by the shapes.

import pypgl as pgl

c = pgl.Convex([pgl.Point(0, 0), pgl.Point(1, 0), pgl.Point(1, 2), pgl.Point(0, 1)])
s = c.diameter()
print("The diameter of", c,
      "is defined by", s,
      "and has length", s.length())
# Output: The diameter of Convex[(0,0),(1,0),(1,2),(0,1)] is defined by (0,0)--(1,2) and has length 2.23607

Distances come in the Euclidean (squaredDistance, exact and therefore squared), Manhattan (distanceL1) and Chebyshev (distanceLInf) flavors, each with a Hausdorff variant between shapes. samePointSet asks whether two shapes cover the same points, across types and regardless of how each is written.

The boolean operations (regularizedUnion, difference, symmetricDifference, regularizedIntersection) and the Minkowski sum are closed over the region shapes, so a result feeds straight back in. Its dual, the Minkowski erosion, answers where a shape fits inside another:

import pypgl as pgl

square = pgl.Polygon([pgl.Point(0,0), pgl.Point(10,0), pgl.Point(10,10), pgl.Point(0,10)])
holed = square.difference(pgl.Rectangle(pgl.Point(3,3), pgl.Point(7,7)))
print(holed.area(), holed.holeCount())
# Output: 84 1

Shapes are moved around with +/-/*//, and an arbitrary affine map is applied with a Transformation:

import pypgl as pgl

t = pgl.Transformation.rotation90() * pgl.Transformation.translation(2, 0)
print(t * pgl.Segment(0, 0, 5, 5))
# Output: (-5,7)--(0,2)

Visualization

A Canvas class is provided for visualization, exporting to SVG, PDF, or Ipe:

import pypgl as pgl

canvas = pgl.Canvas()
canvas.draw(pgl.Point(0, 0))

tri = pgl.Triangle(-1, -1, 0, 2, 1, -2)
canvas.stroke("green")
canvas.draw(tri)
canvas.stroke("blue")
canvas.draw(2*tri)
canvas.writeSVG("example2.svg")

Algorithms and Data Structures

Pangolin includes fundamental algorithms:

  • Convex hull computed with Graham scan.
  • Line segment intersection: Bentley-Ottmann sweep line using rational numbers.
  • Minkowski sum, Minkowski erosion and boolean operations.
  • Visibility graph and visibility polygon.
  • Find the closest pair of points using divide and conquer.
  • Smallest enclosing disk and rectangle.
  • Sort points by angle or Hilbert order.

and data structures:

  • Kd-tree for points and a generalization for other bounded shapes.
  • Interval tree to use 1-dimensional queries on projections.
  • Triangulation including Delaunay and constrained Delaunay triangulations for points and polygons.
  • Arrangement of lines, line segments, and rays with a trapezoidal map for fast point location.
  • Graph class for combinatorial algorithms like Dijkstra and Prim that can be used to compute Euclidean minimum spanning trees and shortest paths among obstacles.

Installation

pypgl requires Python 3.10 or newer. Up to 0.6.0 the floor was 3.9, which reached end-of-life in October 2025; 3.9 users can stay on that release.

From PyPI

pip install pypgl

Pre-built wheels are published for CPython 3.10–3.14 on Linux (manylinux_2_28, x86_64), macOS (Apple Silicon), and Windows, so most users need no compiler.

From source

Installing from a source tree or directly from GitHub builds the extension locally and therefore needs a C++20 compiler (GCC 12+, Clang 15+, or, on Windows, the LLVM/ClangCL toolset). The header-only pgl library is fetched automatically by CMake — nothing else to install.

pip install git+https://github.com/gfonsecabr/pypgl.git

Development install

Work on the bindings from a checkout with an editable, in-place build:

git clone https://github.com/gfonsecabr/pypgl.git
cd pypgl
python3 -m venv .venv
.venv/bin/pip install scikit-build-core nanobind pytest
.venv/bin/pip install -e . --no-build-isolation
.venv/bin/python -m pytest tests/ -q

--no-build-isolation lets CMake find the venv's nanobind. Re-run the pip install -e . step after editing any src/*.cpp, since the editable install is what rebuilds the extension. To build against a local pgl checkout instead of the pinned upstream commit:

.venv/bin/pip install -e . --no-build-isolation \
  -C cmake.define.PGL_INCLUDE_DIR=/path/to/pgl/include

More Information

  • For a brief description, check the documents at the doc folder.
  • Runnable scripts live in the examples folder — predicates, canvas styling, a shape gallery, ShapeTree queries, constrained triangulation, Minkowski sums, enclosing shapes, minimum spanning trees, visibility, robot motion planning, arrangements and Voronoi diagrams.
  • Shapes and canvases render inline in a Jupyter notebook — see canvas.md.
  • Check the C++ version.

Download files

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

Source Distribution

pypgl-0.7.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

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

pypgl-0.7.0-cp314-cp314-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.14Windows x86-64

pypgl-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pypgl-0.7.0-cp314-cp314-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pypgl-0.7.0-cp313-cp313-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.13Windows x86-64

pypgl-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pypgl-0.7.0-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pypgl-0.7.0-cp312-cp312-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pypgl-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pypgl-0.7.0-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pypgl-0.7.0-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

pypgl-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pypgl-0.7.0-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pypgl-0.7.0-cp310-cp310-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10Windows x86-64

pypgl-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pypgl-0.7.0-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pypgl-0.7.0.tar.gz.

File metadata

  • Download URL: pypgl-0.7.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypgl-0.7.0.tar.gz
Algorithm Hash digest
SHA256 f51676d79e8b27aec5ab1dc2595778585ce0989a7ab3d4d962ddd7f73d808d9b
MD5 6c2d10e63d29f832f05a89e6c2b6695f
BLAKE2b-256 a9cb188f2042b2d6bd5788af3b3e5eaa17318af32d92f1ef2ec3c8719b47f848

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0.tar.gz:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pypgl-0.7.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypgl-0.7.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 26fc7afbd10be704ae63f12509f1f508b0c9e7518e19d17d464c4d036142bb00
MD5 a70b74b44b034f49ff0d4a67a956c815
BLAKE2b-256 22a6ac808cf63b55e4c4ac4d70feda994800dfec4e9072e243901a7ea17fd6e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp314-cp314-win_amd64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a9c8fb054fb29ddb3c0ae250ed157a7e2d50a871c05ab18c1595fe48617d388
MD5 cec818e78cea35e828e4d460f558253d
BLAKE2b-256 8ea4035cf421eca79e770d028e1e903fe52fb01809027559aedc3d6cdbdb0e6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aeab84d1a3d7cac4ec777491820e58afe2038c6afa9d2a35285f0db6d479c3de
MD5 99db9573df0857bc24cfe176a5cd0fd0
BLAKE2b-256 926272c6516bd60f7c21994d686a8965b8e1474c18d7c72af7a5c27c3de32310

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypgl-0.7.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypgl-0.7.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8db4816db265d1ae4558dc1be628010897f3f874cc30e7532e341b57f1842c0c
MD5 0d7c3c6f0cb12ee96165bcd10656c60b
BLAKE2b-256 83df418d28a5d94190479900618887ea55e985e72ff677ac9a2d5f219219df79

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 690906a7079ef30e09683b72534d8159675b607b3d4ed5804e37de71a5c7de79
MD5 ca47c6f587a1a4e7ecfb5d6e9d2abe64
BLAKE2b-256 0f40408958e2730a218a85745b69592e7ce1bb31d96f08b46a7b9f6ed12708cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c752011854e105a2387732d325c2c6842723de2da0d8eac26668bcbbbbcc620
MD5 49b075ced3fb7925cc66a9633d9d5071
BLAKE2b-256 0f22a30e4e9d1792fcb272277d579d4bd7c1c00b8dce84846de44836f99c04f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pypgl-0.7.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypgl-0.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 32ffdaa2d3f61ee17e84798205267dd7fc21aa097b195161bd425f0f68fc8e8b
MD5 3aca7bdf551ba2eb6fbc006c10acd5d7
BLAKE2b-256 c6791244d567b773e724ca00682fbab55ac32fdfaccafdb44ddd75003aeff9d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d665c8f098ed2143cec702d2e99bc4ea9601bdeac59240729ed786c7345cad7
MD5 c15fc766bbd40992b12575ac772664a4
BLAKE2b-256 eb04cfe646f2cccae3aa438f59b6e319ac463173f56bfaf201a951daf269bc1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d8123ed1a382755d9709538de58e6c694e125b61f41cbb99c99f8f5a5211699
MD5 ddd148d549988585f9a956bef8ff49b5
BLAKE2b-256 368cbeae5a187eec5b897ad225f36595d5b5c0bbcddc354a5d4faea576fccb4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pypgl-0.7.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypgl-0.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7efba18222e1d8753156c1ffc4a3313174573f17f727dc4a343f45febdb55c79
MD5 7aba352dd149ea4a7fd6de619980cbc4
BLAKE2b-256 4c761df22ddf3c7276394026eb091872f240031af709a096aeca88ee5e144260

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 57fa1f5eaeef7d90e743c997da61139eac490c6b7c352b93ecd0bb89ca5c6848
MD5 bcfd86e01061a28b8b04b7a216553e2d
BLAKE2b-256 17b436d34a77b0d99b2dc31e703b37b7401918b4d5c67d0b91eb32dffe45e8bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca022e2919f650715c38a3bfd37d6ca19ed1efc37d421c22a83a8912945b8356
MD5 02e5059a04b313d25a0906bbce37f834
BLAKE2b-256 ce03de2860ed915c30e37c7e14e61875f8c7d715b3fd7b5acab0186d07918b34

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pypgl-0.7.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypgl-0.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e50f856b4c7b4f4201e5b0abe2ab1e9691b47b8b6cd49fb84d39492be0ed7227
MD5 99e68c0216db195365a26dbab6ecd559
BLAKE2b-256 84e853bf3cc0278c434ae34755d846919306a5c835851132d5eecf4d9426a274

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7c5492be5691e4303ffdae3198535df256aea738779cb5faee5daf045c6c622
MD5 cca4c490ca1366d798ff979469078ad9
BLAKE2b-256 56b73e6b6fa78b6cd715c354a2d45fd83a1e0bec3e8d25791ac389af0d475359

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

File details

Details for the file pypgl-0.7.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-0.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ff4ede8d46d9090545befe088dcbefff5ac64be0b053535e6f9cc0f639226ea
MD5 1ae11b5e1ecbab233e72d766e8652c26
BLAKE2b-256 0e9675e834887f7ba328a58a09a6d837014b9fb9bb887a5df107d472f0ffb686

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-0.7.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on gfonsecabr/pypgl

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

Release history Release notifications | RSS feed

1.2.0

16 files

1.1.0

16 files

1.0.0

16 files

This release

0.7.0 This release

16 files

0.6.0

19 files

0.5.1

19 files

0.5.0

16 files

0.4.0

16 files

0.3.1

16 files

0.3.0

16 files

0.2.1

16 files

0.2.0

16 files

0.1.1

16 files

0.1.0

16 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page