Skip to main content

Point Geometric Features

python C++ license

📌 Description

The pgeof library provides utilities for fast, parallelized computing ⚡ of local geometric features for 3D point clouds ☁️ on CPU .

️List of available features ️👇
  • linearity
  • planarity
  • scattering
  • verticality (two formulations)
  • normal_x
  • normal_y
  • normal_z
  • length
  • surface
  • volume
  • curvature
  • optimal neighborhood size

pgeof allows computing features in multiple fashions: on-the-fly subset of features a la jakteristics, array of features, or multiscale features. Moreover, pgeof also offers functions for fast K-NN or radius-NN searches 🔍.

Behind the scenes, the library is a Python wrapper around C++ utilities. The overall code is not intended to be DRY nor generic, it aims at providing efficient as possible implementations for some limited scopes and usages.

🧱 Installation

From binaries

python -m pip install pgeof 

or

python -m pip install git+https://github.com/drprojects/point_geometric_features

Building from sources

pgeof depends on Eigen library, Taskflow, nanoflann and nanobind. The library adheres to PEP 517 and uses scikit-build-core as build backend. Build dependencies (nanobind, scikit-build-core, ...) are fetched at build time. C++ third party libraries are embedded as submodules.

# Clone project
git clone --recurse-submodules https://github.com/drprojects/point_geometric_features.git
cd point_geometric_features

# Build and install the package
python -m pip install .

🚀 Using Point Geometric Features

Here we summarize the very basics of pgeof usage. Users are invited to use help(pgeof) for further details on parameters.

At its core pgeof provides three functions to compute a set of features given a 3D point cloud and some precomputed neighborhoods.

import pgeof

# Compute a set of 11 predefined features per points
pgeof.compute_features(
    xyz, # The point cloud. A numpy array of shape (n, 3)
    nn, # CSR data structure see below
    nn_ptr, # CSR data structure see below
    k_min = 1 # Minimum number of neighbors to consider for features computation
    verbose = false # Basic verbose output, for debug purposes
)
# Sequence of n scales feature computation
pgeof.compute_features_multiscale(
    ...
    k_scale # array of neighborhood size
)
# Feature computation with optimal neighborhood selection as exposed in Weinmann et al., 2015
# return a set of 12 features per points (11 + the optimal neighborhood size)
pgeof.compute_features_optimal(
    ...
    k_min = 1, # Minimum number of neighbors to consider for features computation
    k_step = 1, # Step size to take when searching for the optimal neighborhood
    k_min_search = 1, # Starting size for searching the optimal neighborhood size. Should be >= k_min 
)

⚠️ Please note that for theses three functions the neighbors are expected in CSR format. This allows expressing neighborhoods of varying sizes with dense arrays (e.g. the output of a radius search).

We provide very tiny and specialized k-NN and radius-NN search routines. They rely on nanoflann C++ library and should be faster and lighter than scipy and sklearn alternatives.

Here are some examples of how to easily compute and convert typical k-NN or radius-NN neighborhoods to CSR format (nn and nn_ptr are two flat uint32 arrays):

import pgeof
import numpy as np

# Generate a random synthetic point cloud and k-nearest neighbors
num_points = 10000
k = 20
xyz = np.random.rand(num_points, 3).astype("float32")
knn, _ = pgeof.knn_search(xyz, xyz, k)

# Converting k-nearest neighbors to CSR format
nn_ptr = np.arange(num_points + 1) * k
nn = knn.flatten()

# You may need to convert nn/nn_ptr to uint32 arrays
nn_ptr = nn_ptr.astype("uint32")
nn = nn.astype("uint32")

features = pgeof.compute_features(xyz, nn, nn_ptr)
import pgeof
import numpy as np

# Generate a random synthetic point cloud and k-nearest neighbors
num_points = 10000
radius = 0.2
k = 20
xyz = np.random.rand(num_points, 3).astype("float32")
knn, _ = pgeof.radius_search(xyz, xyz, radius, k)

# Converting radius neighbors to CSR format
nn_ptr = np.r_[0, (knn >= 0).sum(axis=1).cumsum()]
nn = knn[knn >= 0]

# You may need to convert nn/nn_ptr to uint32 arrays
nn_ptr = nn_ptr.astype("uint32")
nn = nn.astype("uint32")

features = pgeof.compute_features(xyz, nn, nn_ptr)

At last, and as a by-product, we also provide a function to compute a subset of features on the fly. It is inspired by the jakteristics python package (while being less complete but faster). The list of features to compute is given as an array of EFeatureID.

import pgeof
from pgeof import EFeatureID
import numpy as np

# Generate a random synthetic point cloud and k-nearest neighbors
num_points = 10000
radius = 0.2
k = 20
xyz = np.random.rand(num_points, 3)

# Compute verticality and curvature
features = pgeof.compute_features_selected(xyz, radius, k, [EFeatureID.Verticality, EFeatureID.Curvature])

Known limitations

Some functions only accept float scalar types and uint32 index types, and we avoid implicit cast / conversions. This could be a limitation in some situations (e.g. point clouds with double coordinates or involving very large big integer indices). Some C++ functions could be templated / to accept other types without conversion. For now, this feature is not enabled everywhere, to reduce compilation time and enhance code readability. Please let us know if you need this feature !

By convention, our normal vectors are forced to be oriented towards positive Z values. We make this design choice in order to return consistently-oriented normals.

Testing

Some basic tests and benchmarks are provided in the tests directory. Tests can be run in a clean and reproducible environments via tox (tox run and tox run -e bench).

💳 Credits

This implementation was largely inspired from Superpoint Graph. The main modifications here allow:

  • parallel computation on all points' local neighborhoods, with neighborhoods of varying sizes
  • more geometric features
  • optimal neighborhood search from this paper
  • some corrections on geometric features computation

Some heavy refactoring (port to nanobind, test, benchmarks), packaging, speed optimization, feature addition (NN search, on the fly feature computation...) were funded by:

Centre of Wildfire Research of Swansea University (UK) in collaboration with the Research Institute of Biodiversity (CSIC, Spain) and the Department of Mining Exploitation of the University of Oviedo (Spain).

Funding provided by the UK NERC project (NE/T001194/1):

'Advancing 3D Fuel Mapping for Wildfire Behaviour and Risk Mitigation Modelling'

and by the Spanish Knowledge Generation project (PID2021-126790NB-I00):

‘Advancing carbon emission estimations from wildfires applying artificial intelligence to 3D terrestrial point clouds’.

License

Point Geometric Features is licensed under the MIT License.

Metadata

Release files for pgeof 0.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pgeof 0.3.4
File
pgeof-0.3.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pgeof-0.3.4-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
pgeof-0.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pgeof-0.3.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
pgeof-0.3.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pgeof-0.3.4-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
pgeof-0.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pgeof-0.3.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pgeof-0.3.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pgeof-0.3.4-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
pgeof-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pgeof-0.3.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pgeof-0.3.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pgeof-0.3.4-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
pgeof-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pgeof-0.3.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pgeof-0.3.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pgeof-0.3.4-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
pgeof-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pgeof-0.3.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
pgeof-0.3.4-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pgeof-0.3.4-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
pgeof-0.3.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pgeof-0.3.4-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
pgeof-0.3.4-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
pgeof-0.3.4-cp38-cp38-musllinux_1_2_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.2+ x86-64 Details
pgeof-0.3.4-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details

Total release size: 9.4 MB

Release files / pgeof-0.3.4-cp314-cp314-win_amd64.whl

Download URL pgeof-0.3.4-cp314-cp314-win_amd64.whl
Size 353.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
4736367cb71594848c5336b8b50e4cb1f4d5e238738c90d231b132343137ab8e
BLAKE2b-256 checksum
How to use checksums
ace1112db42269f3bd60b50411b27cf2764a865723cc739bd46de51acba60068
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL pgeof-0.3.4-cp314-cp314-musllinux_1_2_x86_64.whl
Size 683.3 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7c3bfb99e53810eac20e73276965943adab8a3a8674c55b21e22d47770afffc8
BLAKE2b-256 checksum
How to use checksums
5bc4375442d26d2a37ce9322d153f18913de63e281f3eb32770db85b18560b10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pgeof-0.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 192.3 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1f8adf55351f7436f7c9918d940099ac735e3b02cf834ce0b2cbc3868270d56c
BLAKE2b-256 checksum
How to use checksums
4ffdc0f98d5537177b0d52a5edd064201703e0799ec04e1593cbcd18976a357b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp314-cp314-macosx_11_0_arm64.whl

Download URL pgeof-0.3.4-cp314-cp314-macosx_11_0_arm64.whl
Size 143.9 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a9729aa007174fba8549274d69e50eb4a599c3d7cb8673f48aa0013110a104e8
BLAKE2b-256 checksum
How to use checksums
195b4d39f4666d1dc7d310f7b886f20c8acc02afe1a11ddf609a82c783763e08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp313-cp313-win_amd64.whl

Download URL pgeof-0.3.4-cp313-cp313-win_amd64.whl
Size 343.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
f2e4aef2c7b0a468765c23ed58f157c9b04fe1f3665491efc9c6116dec8938d2
BLAKE2b-256 checksum
How to use checksums
cded45e62f5e370cfafba7d50321af34b55d4a576528b81c1f46fbd70b600194
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL pgeof-0.3.4-cp313-cp313-musllinux_1_2_x86_64.whl
Size 683.4 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1ca24ab4e2e977c79c7387e679863f5f45aefdb5bbd337d558d4af5b26ee78de
BLAKE2b-256 checksum
How to use checksums
0cde9fa72b07b4c56f929f867daef766b7682f0d925b5698cb429fbba951a1f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pgeof-0.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 192.4 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aab0c4efd812c827968f7458e961cbfafc292884c344532d870c0da8fa3e475a
BLAKE2b-256 checksum
How to use checksums
437296efd91e0111a22c14ee996309cb8a7a1cee9935959a42cba36958987a43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL pgeof-0.3.4-cp313-cp313-macosx_11_0_arm64.whl
Size 144.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5078fc658b81e7c70364d84f8d22ca626e6995d2adfa58019c01ff82650716e5
BLAKE2b-256 checksum
How to use checksums
caab7ab9a0fd393043e673fbe171cb1f015e52b4d25a139ef78867d82d3bccf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp312-cp312-win_amd64.whl

Download URL pgeof-0.3.4-cp312-cp312-win_amd64.whl
Size 343.3 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f8c4f2eb44d13106754712628f7fed4c8d277644aa6513f1c70557130ad63429
BLAKE2b-256 checksum
How to use checksums
7b4afb23cef809c387a0ed5c2dfb7bd57203d63405bfd7726332f6ee71203a11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL pgeof-0.3.4-cp312-cp312-musllinux_1_2_x86_64.whl
Size 683.5 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b625e43ed580a29d23844aa082c1100b627fd9ae7e6fd8ad1871ccc65c1b1f71
BLAKE2b-256 checksum
How to use checksums
6b3ae3dc448da02c7e29625e3f912da5d150f523e0820544a09670c26c7f361e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pgeof-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 192.5 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ddcda9f78266902343513ca4cd55a38361eee2246fa75fdf80681e19fb7efb9e
BLAKE2b-256 checksum
How to use checksums
b3884247ac6cbc662c6fb8f6e65c8ed9b352684009c71d0c0a64e96409e96609
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL pgeof-0.3.4-cp312-cp312-macosx_11_0_arm64.whl
Size 144.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a01720163bdea6f09c880924f79b39bb1d0dec60b6058c5bf2edc60886b55c0d
BLAKE2b-256 checksum
How to use checksums
c5c0a38badce5549674d49a00b687ad8b742bb7a532ca9b4f2cca5b4260e2aec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp311-cp311-win_amd64.whl

Download URL pgeof-0.3.4-cp311-cp311-win_amd64.whl
Size 343.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b6152a5af1e1bf3eb71d3ea491e2034686ea2de0413c8ce9340910336397865b
BLAKE2b-256 checksum
How to use checksums
b5658e7e082f206e31181f7674ce7e5e3d5577f2a08b0b3cbe53a2a395e77887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL pgeof-0.3.4-cp311-cp311-musllinux_1_2_x86_64.whl
Size 683.7 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f84cfcc117ab82c2ecf944f9ecb1f0e4525def63472948b5f7357b12494e56cf
BLAKE2b-256 checksum
How to use checksums
88324dbca5b2aeeac8e556e41851220ac18e959c6737b9f0180ef391b4a27e0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pgeof-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 192.3 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f550596f4e82b92b3d4f91b34448190d6dd7930366cd0497a87a7c116337e0f5
BLAKE2b-256 checksum
How to use checksums
e5510783c3b5af21e7b6b822d09ab76270f5bcc2e3f0d1e7ac0793a0b2176814
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL pgeof-0.3.4-cp311-cp311-macosx_11_0_arm64.whl
Size 144.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5c1918bddc3373abcabc19c5e53fd20e11869d6094185a7b27c23afbbf3eb506
BLAKE2b-256 checksum
How to use checksums
03aad69b66741ae19785001e699ccf02b4f5ce1d76e19c06713b3d26fc3f0ddc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp310-cp310-win_amd64.whl

Download URL pgeof-0.3.4-cp310-cp310-win_amd64.whl
Size 343.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e6d270a5ac6f535ceb789c237a45159e3c7f1394d7a3df689377ba8886e1ff55
BLAKE2b-256 checksum
How to use checksums
1d18d940f9d076fbc9e082330d919d13f9aa16fb543bb1f7c2f0b2afe1d3f62f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL pgeof-0.3.4-cp310-cp310-musllinux_1_2_x86_64.whl
Size 683.4 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1b68e5d72af7907ba08257c4ee4a8ac0d2cb2e1233d891b5f2b3e41be8477f65
BLAKE2b-256 checksum
How to use checksums
113aa418e4ddbc584e6c8007524bdb35f9576b24056cc21e4fa873b0d3ce3265
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pgeof-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 191.8 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d41cb8dfa79a9d98ae4902a81137248fa9262231ea517850a948cb4cb876cf11
BLAKE2b-256 checksum
How to use checksums
886ceb585a381f424da9154778d23e09a447407322eba224eb5b3a7d2771d561
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL pgeof-0.3.4-cp310-cp310-macosx_11_0_arm64.whl
Size 143.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9fb47e54bf85c2e744b39311dbc8cbcbaaf3eaaf1eb943d61e75687f59715b5d
BLAKE2b-256 checksum
How to use checksums
ae75314ec7e528389429ede1a141ad0363abe1fd4b1f7fc4a3580920742ba46a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp39-cp39-win_amd64.whl

Download URL pgeof-0.3.4-cp39-cp39-win_amd64.whl
Size 343.3 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
0348f592e6905e3c93b80666241f0b59972c8741cafda2d07ca8d41962d75efa
BLAKE2b-256 checksum
How to use checksums
1c91372fa614706eafdbc5242fce504bf0d9cf27afdda91ec03c8143df744cbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL pgeof-0.3.4-cp39-cp39-musllinux_1_2_x86_64.whl
Size 683.5 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b3868bad5002c675b2c926fb2d685d187bfb39e6f6bb926f852562db442494b6
BLAKE2b-256 checksum
How to use checksums
cc5004c42025a935b0ed6965b20e61e250b5abf9e69defab36ca98532e1e6aa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pgeof-0.3.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 192.0 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
73f0dfb8d54947861b86c03bed2f6d64a9d513e548fb6eb5ba455a174f0a91d3
BLAKE2b-256 checksum
How to use checksums
18e830b5c28339d1862479b577e20f23702d27472b603b6c90572a9be7601916
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp39-cp39-macosx_11_0_arm64.whl

Download URL pgeof-0.3.4-cp39-cp39-macosx_11_0_arm64.whl
Size 143.8 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
888ccc588062dd10defbee34203e9b1a66017e6f1d86a0fea266f5aaf2202494
BLAKE2b-256 checksum
How to use checksums
a63daefe00aa6975e6169fb0622a8e947bbe57a4fbe75dac98308394cf90442e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp38-cp38-win_amd64.whl

Download URL pgeof-0.3.4-cp38-cp38-win_amd64.whl
Size 343.3 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
cd4340049b909730301bf9bf422bdc57967ec539e082f7a3985374be4e699564
BLAKE2b-256 checksum
How to use checksums
468f210f4a055764b7c6e523748eda439070b1dd22c9b928c5da1273b9165faf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp38-cp38-musllinux_1_2_x86_64.whl

Download URL pgeof-0.3.4-cp38-cp38-musllinux_1_2_x86_64.whl
Size 683.5 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0261be08325ada04efdc89b3b8aa710603f9b01b621165610ac845eb68729f6e
BLAKE2b-256 checksum
How to use checksums
6b7a68025b95554877665af8a6df5de186c6540e987cf76b72dc2bcce1fb6950
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / pgeof-0.3.4-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pgeof-0.3.4-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 192.0 kB
Tags CPython 3.8 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c6d636219344b1031e8616110396d3ff2e445abaa0bd3bd36e9f4616794acf82
BLAKE2b-256 checksum
How to use checksums
80f6f15e70b83bbb74a368fd165763f0aaad97763889896e4d0270b653f34d23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release history Release notifications | RSS feed

This release

0.3.4 This release

27 release files

0.3.2

29 release files

0.3.1

25 release files

0.3.0

21 release files

0.2.0

17 release files

0.1.0

17 release files

0.0.2

32 release 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