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.
  • Bit matrix over the integer grid: one bit per cell, for digital-geometry set algebra, Minkowski operations, connectivity and morphology a word at a time.

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.2.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.2.0-cp314-cp314-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14Windows x86-64

pypgl-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pypgl-1.2.0-cp314-cp314-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pypgl-1.2.0-cp313-cp313-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.13Windows x86-64

pypgl-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pypgl-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pypgl-1.2.0-cp312-cp312-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.12Windows x86-64

pypgl-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pypgl-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pypgl-1.2.0-cp311-cp311-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.11Windows x86-64

pypgl-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pypgl-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pypgl-1.2.0-cp310-cp310-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.10Windows x86-64

pypgl-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pypgl-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pypgl-1.2.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.2.0.tar.gz
Algorithm Hash digest
SHA256 c394476fbf8713b18d690a74997d225c8e5a568283357993e57e69f0694b046c
MD5 3ffcccec0c29b24abbff78b2aeddc798
BLAKE2b-256 93d02bd5f203543bebd5c4c0c73c4bb30a6a5549f114c95661acf579755ad4b5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pypgl-1.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.7 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.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 65a37993784179cd75fcbd21954d4f106c33c14cb45f2864f59d3c2f3fc5aac1
MD5 bb10e1e54fd747328b5c017ddf2c5b90
BLAKE2b-256 9aaf95bab1c44ef766a90d5a6b535939eb1558324a2e0e71d0d27a2290f57e2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13ac280da0ed281d11a8de14aee14a447df4d867aeb3a4d14959740aa9c2f470
MD5 a6179f2537d8784f9688720aa322bff6
BLAKE2b-256 a3480207d05b6bff9b533698c8376a827a7e60ebad40bc7d8b814b547d45fc3b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aaf537be5e3a824a02e298887c54ba4df82d16663e2aa95226554b7a1dcc0d3d
MD5 fe2f1370199bf3aa7fa901a2cce98ea8
BLAKE2b-256 a92e9c7425a69be69c6c1ad4f204a43f418b18859d072e68bda74446634717b4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pypgl-1.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.6 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.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5db11e2b3b75e74e83db9ac94a2e5ab0be5ef4119d143e231233e752450b169c
MD5 74f4f04ef55466f77dfc65ec9b9f70bc
BLAKE2b-256 4fc8d7fb725e153c45b0cfbd99d003b83ff5f599b676abbacf936279574cdb06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1fee40c1478aeb8fedf5f31f99147b24fd2b36c2920a5c27ea7b6d8b3115575
MD5 95ffaf1406f78947560398ea83097726
BLAKE2b-256 4a104342a4ff7dd264fadf4b78bd42a343629cadd343d85d3ba6992ec3b03b38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 724c718d2847ccba0efd406de8e96d001756f873292e35960b139882820934c8
MD5 f39a3a573f0230406795ea80e2952556
BLAKE2b-256 6252a83d6cb55ae1293718b34e6194c7d84c73d4db9a944931f4fd3edbf64f20

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pypgl-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.6 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.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 86fa02c8f8c2b875eccc0904e0ea903d17a18ae58e29385dae30dcda18604b8b
MD5 d2e355df572ef5f313318786af4a2e9c
BLAKE2b-256 2eeb0be9effc16dedcf0689b50e250e80a04b6fd6bc3e14e97273c79a3180674

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d73dbe3710a44ed001d4ed4f425dca80632bffe8600d304f7245fe5ab3cc6669
MD5 5a54a98331beaa60dd4956a9da46582f
BLAKE2b-256 12fa3dbd68c613128f75ff1ff3469cfbb32afb87b0c66620efd85c9551e54fb5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7532853868d036514ececfa4da9749e24899d5cf495aed1a39c4ad5d2585b11f
MD5 e69d9086998c35efc3d1a9f38db987fd
BLAKE2b-256 e67390658871b6c80ccc83585dd090b6616b872a9ade2b5203c28f9bcd11e11f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pypgl-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.6 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.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8fdfb36bdde24ee10cdc42dcd3227368943995cc6c82a10331996eb494522c8b
MD5 cfc316c02bbe80c3a705905a0b09551d
BLAKE2b-256 91ea200cec0c6bce8c43eefddbe15513017db72a7c3370386cbdd7d682914e57

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 41c38ba41bce9c3bdca348ab92bd2d6154b299f6b3474c800d28de758bd8f039
MD5 19c325943a370af02a609730b96537ac
BLAKE2b-256 8fd63c25efc62d3289842aa8d7237d8583c78c66c2524cb1198fd665bae8d894

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5dd069334173c847704ff9165a9ea1fbd15bf7d0941d6de65be3b800ec5afa65
MD5 a07805c7372a956c255e5b8f69b37751
BLAKE2b-256 5e4cfbd317218c648af173bdebcfb1bc4523e7f382a1ae69873eaaea167932cd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pypgl-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.6 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.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 38538d867164f28f6f5f3cb40ebeec4e977b85f079e187775c04908db08fc669
MD5 07cb20909c56c9efc6d8931e9f242384
BLAKE2b-256 746a68eb6aea628b8b9829ea607a53f9247cfc6e9cd6cbba90a365b66fe36a39

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1aea059e1fa1e87db72d534ad0f6419f5bfd54b432809bac316d009fa1b4d471
MD5 9d2105f0d002a1d0bd6d8f36c4175c82
BLAKE2b-256 9ceefbffed101629e8314eac6b13a17dac408876a2b020f856379d59e884bdb2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pypgl-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e646c417d3b7954882075b7f546b5eae63f3303078b1734f0d811047ceed7be5
MD5 abc021cd6f18a9f68a16e7cefaf9e010
BLAKE2b-256 94c34dd81fa312965f813da3c84c9f2d010fad798bf6d2de49b7f3a6323d51cc

See more details on using hashes here.

Provenance

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

This release

1.2.0 This release

16 files

1.1.0

16 files

1.0.0

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