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-1.0.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-1.0.0-cp314-cp314-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.14Windows x86-64

pypgl-1.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

pypgl-1.0.0-cp314-cp314-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pypgl-1.0.0-cp313-cp313-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pypgl-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

pypgl-1.0.0-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pypgl-1.0.0-cp312-cp312-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pypgl-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

pypgl-1.0.0-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pypgl-1.0.0-cp311-cp311-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pypgl-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

pypgl-1.0.0-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pypgl-1.0.0-cp310-cp310-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pypgl-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

pypgl-1.0.0-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pypgl-1.0.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-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d259442e2a0ae746edfd40d05256a67acfbbe9acc2863a7d796be8a6f9f687f5
MD5 0c66301873f184a0de266bd3337d7b49
BLAKE2b-256 f8e58b60aa51fdde1041df305f0e83e9ba85b303eca84ad2c8270f1e132c98c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pypgl-1.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.6 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-1.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 da1fd2d49a76faaada465ce53f48348b1abc258ac55c5fee80a5d11995df5de7
MD5 e78e7ad14bb0a8a435c50194a0d3b6ea
BLAKE2b-256 869c5a5908b608ba8aaf45296e206915da33fd706749b6bf6a2ed5fc6d14aa03

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f0fb88ba2cf9cbc22bacd3f977d41ecf56398ecadc6c3e5cab877d7896dbeb2
MD5 f5d0b40ea9b9a419be1f41fa820a35a3
BLAKE2b-256 cd8d017f1f0500853b6d5aa353ff36cc45340e8794e3b8388d5379cd5fa48b29

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5330451ceb69ff7bc0c32875ea0b981e75e0b938fe5af1bec3c374a28c832bd9
MD5 9558ac7d1cdb33ae67c5c144279f6fe2
BLAKE2b-256 b79bac9f990382aed4afe72dfe7b5e93ba83d58596075c827e37a6b18d8d2924

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypgl-1.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.5 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-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f8dd9a9318ba589d19e4ca6e041319d690795da652280188d398692d9852aae3
MD5 8bc5d47f5e68b8556718bedfb468870a
BLAKE2b-256 85e8f521b097ecd7600f8be6e604019ce98769488c02713a0763535f69b3790a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1407c8069266f2ecdc104be6892fb1a94fdbca41ac36a01af37bd5df95efe67e
MD5 11570e66f239f32c20bd0dbb4f91e7ce
BLAKE2b-256 fd22b211a4ebe3cf91973578005998695b8ac6d7a287091def4b0cdb06bf68ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b883383db9f5032b601b3d114feb7d3dd12af8c5b12be1762eddd085517258db
MD5 1cc16948fb7c8928dea4991a0ed721e2
BLAKE2b-256 d67b0f6772481960cac96989985467e63675b4b0885d6bdce37924f29da2c0b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pypgl-1.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.5 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-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a351997868841aad9fb6eaff8148fa8f988e0226338d74959fbd608b00fafb85
MD5 b466441ebe2d954818d3be355b0d0f3c
BLAKE2b-256 6ef38ebe54c59360b77d3311b3db9fbce27c6fecc629a6c9f6fbde6b2854b100

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3ee104110681817c472293f41486ed931e808d38f20c39feb278bc573ccdb23
MD5 5158e074411ffb3028a007c109ef9b23
BLAKE2b-256 6c534f9ff66be631cfc3315948bc3d9738bdb701798dd42144072cc5cb2fdc15

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bd1c3be8626aa4e4d9a7d4c2a5d4b563abbaa4347289fe4bdbf0b92dd939b8b
MD5 380b6f133c44203f63ec929675c1c5aa
BLAKE2b-256 d23e896da7ce577ccfc6a6dc5480050ce4bd5ac52d90871a28ede5e422ec6c86

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pypgl-1.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.5 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-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e8ab70ff2cb8f37b7dcb881307f6d9939aeb9c41962104d16988dfc2405c96b4
MD5 2e98f09a06c0a4c2bdd46eecfa07a1c3
BLAKE2b-256 02888c9d672c6889703469d47b604257e9bb7b4eef9a88a74d3686baa43f59c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 84900a578245314b411e6b2b203be685260c40833fe990b64e6c1ab0d74aa324
MD5 599bd27b66fa8cfebd3cfb881cc50a68
BLAKE2b-256 f35897090906853ad8be75d0bd9237007be07df8a32768a22f6f5f354a74e95a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03753d3f6db61d76b6e664cf185b6e3bbbc2d94d5010e84ed64e869b4886857d
MD5 9ed55713ab00e444d1b546f8e2c6495d
BLAKE2b-256 6ba7f3749fbd206947e29bde9177d369780889fe4f83d86ed1bd0548d7a23932

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pypgl-1.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.5 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-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 83eae5e6d30cc8df1a89a89bc1aba1c2cbf1d2e69ea6d45d9554205685d61233
MD5 a2b639a69d6abc14d139beacb521760f
BLAKE2b-256 92596bc030fc19760e2fdf24a21a9ab55e54ec7d9e4e8608e16c168bbc6a6afe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 437258134d2e14e8fdf673897406294a23a64432109dfb2cc1cc1a096e0d452a
MD5 ef50ab067813c63a299ec9f57dcba442
BLAKE2b-256 6cb1858b724a6a18c17b828f42e1edc9f9c15796042f9f24979a6d2b21e06cbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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-1.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypgl-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 76dac645ffd941afd51de40e5b669018726933b3d466183181eeeae56362ae77
MD5 564ca6108584455c9e3b5eeb67831c8e
BLAKE2b-256 a9122c08da562e598ffb696054692c32f6bea7d1cff0bcd5785c60b9b6ab4b81

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypgl-1.0.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

This release

1.0.0 This release

16 files

0.7.0

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