Geometric Algebra For RObotics in Python
This library provides a geometric algebra tools targeted towards robotics applications. It includes various computations for the kinematics and dynamics of serial manipulators as well as optimal control.
It is based on gafro, a C++ library relying on templates to efficiently implement the geometric algebra operations.
Note that only the Conformal Geometric Algebra part of gafro is available in pygafro.
Please visit https://gitlab.com/gafro in order to find the entire gafro software stack.
Installation using pip (pre-compiled binaries)
pip install pygafro
Wheels for Linux (x64_86 & arm64) and MacOS (arm64) are available (for Python 3.8 to 3.13).
For other platforms, pygafro is compiled from sources.
Should you want to have access to mesh and texture files for the robots, you can install the optional package pygafro-assets by running either one of those commands:
pip install pygafro-assets
pip install pygafro[assets]
Note that pygafro doesn't provide any rendering functions, it only indicates which mesh file to use for each link.
Installation using pip (compilation from sources)
Due to the template-based nature of gafro (see Differences between gafro and pygafro
below), the compilation of pygafro can take a long time. Additionally, using clang
instead of gcc is highly recommended: gcc requires more memory resources when
compiling pygafro, which can become problematic on lower-end computers.
Using the default compiler of your computer
pip install pygafro
Forcing the usage of clang
(assuming that clang is installed at /usr/bin/clang)
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
pip install pygafro
Installation with ROS2
Add PyGafro in your colcon workspace and build it with:
CC=clang CXX=clang++ USE_COLCON=1 colcon build
Installation from source
(works either in a conda or virtual environment)
Requirements:
numpy
Due to the template-based nature of gafro (see Differences between gafro and pygafro
below), the compilation of pygafro can take a long time. Additionally, using clang
instead of gcc is highly recommended: gcc requires more memory resources when
compiling pygafro, which can become problematic on lower-end computers.
Using the default compiler of your computer
git clone
cd pygafro
mkdir build && cd build
cmake ..
make # or for example "make -j4" if you have enough resources
make install
Forcing the usage of clang
(assuming that clang is installed at /usr/bin/clang)
git clone
cd pygafro
mkdir build && cd build
cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang ..
make # or for example "make -j4" if you have enough resources
make install
Usage
Multivectors
from pygafro import Multivector
from pygafro import Point
from pygafro import Motor
# create a multivector that corresponds to a Euclidean vector
vector = Multivector.create(['e1', 'e2', 'e3'], [1.0, 2.0, 3.0])
# create a point (a specialized multivector subclass)
point = Point(1.0, 2.0, 3.0)
# create a random motor
motor = Motor.Random()
# apply the motor to our multivectors
vector2 = motor.apply(vector)
point2 = motor.apply(point)
# geometric product
result = vector * point
# inner product
result = vector | point
# outer product
result = vector ^ point
Robots
from pygafro import FrankaEmikaRobot
panda = FrankaEmikaRobot()
position = panda.getRandomConfiguration()
# forward kinematics: compute the motor at the end-effector
ee_motor = panda.getEEMotor(position)
Differences between gafro and pygafro
gafro being based on C++ templates, only the classes and operations you are effectively using are compiled into your software.
This versatility cannot be achieved in a Python library: we cannot instantiate the templates at runtime, nor can we realistically instantiate all the possible combinations at compile time.
A compromise was choosen: a subset of multivectors (using sensible blades combinations) are instantiated and compiled, and other blades combinations are supported through a Python class that internally use a C++ multivector with more blades and transparently use a mask to only expose the blades requested by the user.
Thus, creating a multivector is done using the following helper function:
# using values
vector = Multivector.create(['e1', 'e2', 'e3'], [1.0, 2.0, 3.0])
# using only the list of blades
vector = Multivector.create(['e1', 'e2', 'e3', 'ei', 'e123i'])
Background
You can find the accompanying article here and more information on our website.
How to cite
If you use gafro in your research, please cite:
@article{loewGeometricAlgebraOptimal2023,
title = {Geometric {{Algebra}} for {{Optimal Control}} with {{Applications}} in {{Manipulation Tasks}}},
author = {L\"ow, Tobias and Calinon, Sylvain},
date = {2023},
journal = {IEEE Transactions on Robotics},
doi = {10.1109/TRO.2023.3277282}
}
Acknowledgments
The development of pygafro is actively supported by the Idiap Research Institute.
Metadata
Release files for pygafro 1.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pygafro-1.3.5.tar.gz | 89.1 kB | Without provenance | Details for pygafro-1.3.5.tar.gz |
Built distributions (wheels)
Total release size: 454.2 MB
Release files / pygafro-1.3.5.tar.gz
| Download URL | pygafro-1.3.5.tar.gz |
|---|---|
| Size | 89.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
80f67c1c93ff4d53683ca433eea7f5445c1e3563bde002766266936de13db21d
|
|
BLAKE2b-256 checksum How to use checksums |
73d6cbe4fb0d7ff7798477dcadef1696aec8e48d906701c694ed27cbf7c16a8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / pygafro-1.3.5-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | pygafro-1.3.5-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.5 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
e32ec746db6b6ca731d8d233cb14b0ffe72bfb0f380b686ea45b0305465e6f62
|
|
BLAKE2b-256 checksum How to use checksums |
735e9a7c13b06f10bcd35af985412b1121b6703c2e7d21c7235d48a75c307143
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp314-cp314-musllinux_1_2_aarch64.whl
| Download URL | pygafro-1.3.5-cp314-cp314-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.14 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
141444562f9997cc777a6b169409b7d858075df36bf097379795eb14c7c4d43a
|
|
BLAKE2b-256 checksum How to use checksums |
a6042eaaded10296e1df83999c09b1bc0ef94cbf76e0de4f18f1647ff54e89d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pygafro-1.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 13.1 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3baab96014d2b7b8c3f73149009974603bc394f5714c87bf595234e96453eefa
|
|
BLAKE2b-256 checksum How to use checksums |
3167ee97a622ea37d6b585a808bc93beee6539698d12b69422ae8306f2bfceec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | pygafro-1.3.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 12.5 MB |
| Tags | CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
dae69d95324d54b9f9c7c4b8d70457f879afbce68eedd4164721311ec759ae3d
|
|
BLAKE2b-256 checksum How to use checksums |
3e7166ec8e09483356ad4b630bc204c7c097d745e75060d3d0c57a17082d9ad7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | pygafro-1.3.5-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
89f26b095fd5127c36a775bc949a02e1aece438f274848630f6d923456c7252e
|
|
BLAKE2b-256 checksum How to use checksums |
8e91f6d0deb1b6fd78a49b7673c92fe035e0fc89a74e52aaae6ce8f6e898ea6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | pygafro-1.3.5-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.5 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
9e146462e7f29b872fd813e8b5ecf6f01b2d092b21f21bd4f0bbfd2770eea652
|
|
BLAKE2b-256 checksum How to use checksums |
36c457d6471980833620ec1557d4545bef79f5be792a2770fe1ba62564ae400a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | pygafro-1.3.5-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
cedb73d52420c94252e473aa2d67647bc1582ad44600aebaced14244503c96d7
|
|
BLAKE2b-256 checksum How to use checksums |
defec7b25bd6d580b10bb5261997ab4d7d516ca65018e8872632c95beb691f0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pygafro-1.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 13.1 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
38cc754996394c0eb21519f9cd6764e7227edbb7263501bbbd2cc6805b8701c9
|
|
BLAKE2b-256 checksum How to use checksums |
292ae320c71cbf5a0e17b77ee76b2af07455f57a7440f312019472276595dc08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | pygafro-1.3.5-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 12.5 MB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
86ff4ce4f28711d4893dfaef7cee227fc03f54cea349db301af0a2ca8746341c
|
|
BLAKE2b-256 checksum How to use checksums |
143a1d3924a7a4bdd4dce654d98d4ca0d30b4dc3ab018086fdaa5ef6e135249b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | pygafro-1.3.5-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
42bb579f75ac09b63b30fc0b89511073434537f6acfa48ee6764422aa320e02e
|
|
BLAKE2b-256 checksum How to use checksums |
547e2d0f5de362c068f7867cc6aa50a976f5cefb8d3154382cfbcf164d227f6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | pygafro-1.3.5-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.5 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fcfb9311cd5857564306e8896ce490bedc0b302b062ee119622c741f29ee103
|
|
BLAKE2b-256 checksum How to use checksums |
eeac5aa0af718dbc3f0b4e5729fcf62f25369d9dac7d074deb62a24640d09ec8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp312-cp312-musllinux_1_2_aarch64.whl
| Download URL | pygafro-1.3.5-cp312-cp312-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
0a772f9ea2571f5fdc665f2545e054d76c10ba44d7633a07051dd145332a423b
|
|
BLAKE2b-256 checksum How to use checksums |
9d237f8be1f1ec604e7fa0316532c2a3c495fde17e00d0c472f2afe7c274c84c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pygafro-1.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 13.1 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f7cd9bf65132eac1e3d2d836c6cc9a52597f7844afcafdd131e4d6da6a8f75be
|
|
BLAKE2b-256 checksum How to use checksums |
0679da8c73486728f977bb0d1d331b7b552c3f8ce36404742e70bea674efc877
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | pygafro-1.3.5-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 12.5 MB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
3f4cdc3f4a62e2e267ff5903089d96ace436915b9eb49868d1a6d290d073c11f
|
|
BLAKE2b-256 checksum How to use checksums |
d8611e1db7e75d9040281c4aef55812f10c2505c0ac890c4187137cb31e02b3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | pygafro-1.3.5-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
88e9cf61943f68a557fb99fcb26f8f6817380d910152a8d19c35e8239d7589d6
|
|
BLAKE2b-256 checksum How to use checksums |
b8ed11b409ae77833b1b1c987f89dde62f479b41f48728a61bb1c43bb4c2655e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | pygafro-1.3.5-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
41da19a9b7902e75a19529a9a900da7a71bbed726bceb77e37eb010128a62305
|
|
BLAKE2b-256 checksum How to use checksums |
6b8dfb65980564fbc93badd0337fdbbba7a2c22e0bcf90a8c4c41589afe1c4dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | pygafro-1.3.5-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.3 MB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
60ab094f5cf85447b3db38a7ea100ac550325383f3f54c9540196080834124d5
|
|
BLAKE2b-256 checksum How to use checksums |
6b7a9fe83d148861c4199b9268dcb39a22978e44481b1a9fa69269f1b9836c66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pygafro-1.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
99b78fc54175fd518852d56fb2d920267c7b0f17d16813ce7e6cd2d4e4729b7a
|
|
BLAKE2b-256 checksum How to use checksums |
7641423e79363093007bfc4352c5be1aff693c3533957170733130f7f48d2762
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | pygafro-1.3.5-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 12.4 MB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
8d71c9e67b651176b9a8dbf393df3c3e95de686a26ea7cdd1d88ce4acdc09731
|
|
BLAKE2b-256 checksum How to use checksums |
beb5cfc691362fa07a4409aef6be804cde3317138bad2b583781d6f9522b9739
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | pygafro-1.3.5-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
65e388bcff2e21ac3149d12f9e6923e47839603af577d2d2a493fab9411ff432
|
|
BLAKE2b-256 checksum How to use checksums |
79f0f3458cc6c4b5859e9c918c6a965fa67fe4869e98665cd76023e0c5baf5bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | pygafro-1.3.5-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f768cbf1f19778320dfb20fa4b72411e9df9ee1e84be5f2f8e54bf67b0fcd509
|
|
BLAKE2b-256 checksum How to use checksums |
131744c3c263b2b9477d046beb4265e241be2748012b552d4dd264e73c0c0204
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | pygafro-1.3.5-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
7dd078bc101faf258cd43f42f507b9a755e5d10cb12215414da0afda95ee0242
|
|
BLAKE2b-256 checksum How to use checksums |
3c1075706d679611f23afedc1546c2a09ba9a19e4d1fe26d45f525149e750391
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pygafro-1.3.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8eb8dc4b49fdf2801fa4e3dbdb51084196e928fd68ca77c4162c64cbe46b0adc
|
|
BLAKE2b-256 checksum How to use checksums |
91cd785cade6fa565bdfd318c1e14f51a34d65ae8fb46f03df1e1549fefff34a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | pygafro-1.3.5-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 12.4 MB |
| Tags | CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
64f47d9074c214c90664cb3f2222c55a8963c4a0a4065c66f95a7178d6ac7d2f
|
|
BLAKE2b-256 checksum How to use checksums |
b34dd0305a7c469894d57c4ffba85377d6e73c527ec31afbf9cda1ac04473c14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | pygafro-1.3.5-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ac631ade00f72a0c02fd36c8bca3b8e970419ba49f9bbd06a818c2f34efefc20
|
|
BLAKE2b-256 checksum How to use checksums |
76273ad434dc749a423bc758a5cc2272743fb29953f3366a5e30d9347561829d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | pygafro-1.3.5-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
5e8141825a7ff4aff9b63ff9f9949bc0f6ccda51f497caf71301acc79c94ac8c
|
|
BLAKE2b-256 checksum How to use checksums |
c03d8e9e0c1c02a18afc231dc638fbbe00fc4de0753d9fe02ff2077dc26bc011
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp39-cp39-musllinux_1_2_aarch64.whl
| Download URL | pygafro-1.3.5-cp39-cp39-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
8ce8d8275a5e511c02b76d3c08366faff486ea208c01321e7c0f03a82702866d
|
|
BLAKE2b-256 checksum How to use checksums |
268f6992d4f75aaa3be3284df19e3fb638c94b475a86fdd3891d0f6d1745db50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pygafro-1.3.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 12.7 MB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
26b623eb1a80d2d372645ddb65d4a7f52d1ffbb9b288e2ef54a1f33551e6fb71
|
|
BLAKE2b-256 checksum How to use checksums |
bdffa3a2e9c86951b5e943fbeab9a31b3d6b33b1b0ecc38d63551eb592247a8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | pygafro-1.3.5-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 12.4 MB |
| Tags | CPython 3.9 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
b627d91bbe4b02a6c34a9fad0f7ccb8f354b81577bd28853ee1afed30575b114
|
|
BLAKE2b-256 checksum How to use checksums |
6f6737309cce223259f5c93f6bd7eba132d0a60f6aeb1ce3df555fec315e6e81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | pygafro-1.3.5-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
00abb694d6cd3d398b224f6a25b1172d4bc23cc90a38593ba93a0b82123c7182
|
|
BLAKE2b-256 checksum How to use checksums |
0957e6d945e409ef2d40a7e69a865d548863edf7d83698c3b732b0a85b054160
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp38-cp38-musllinux_1_2_x86_64.whl
| Download URL | pygafro-1.3.5-cp38-cp38-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
8069684b533a49bca90e55f0336ed98039670ae71dcd547078adf86bd277e3b3
|
|
BLAKE2b-256 checksum How to use checksums |
43f8745b0600b730912cfea13eccc3d3151bbaa9f184f6bdf60b063a1ee7f82f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp38-cp38-musllinux_1_2_aarch64.whl
| Download URL | pygafro-1.3.5-cp38-cp38-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.8 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
5a37060d1b18176837292c64770323ba79fcd3d162c6dda2874b0ef842308fae
|
|
BLAKE2b-256 checksum How to use checksums |
8dcf41ada3cc7b2a728cdf972960401b84b0219a05a7757c87aa62ae029d7511
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pygafro-1.3.5-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.8 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
19ac449c2901b86f3104847322d9dfc60ac08a3e7450191c58d1f9d934b7efd6
|
|
BLAKE2b-256 checksum How to use checksums |
6420ea5d489314882315298ed244d368fb3b0845c0dbf1137bbe53ad83a717e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | pygafro-1.3.5-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 12.4 MB |
| Tags | CPython 3.8 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
2661c8f2bb0407eb27c1408ab61688e677ea6619683047866d751a914acb7955
|
|
BLAKE2b-256 checksum How to use checksums |
82ba1479422b0193c137d2be47dc9735c3c931674886711e78027aa06ac5f83d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / pygafro-1.3.5-cp38-cp38-macosx_11_0_arm64.whl
| Download URL | pygafro-1.3.5-cp38-cp38-macosx_11_0_arm64.whl |
|---|---|
| Size | 10.9 MB |
| Tags | CPython 3.8 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
162f7653fe88df75904217bfea565490f9237402ab995bbf7b274c6649f3a131
|
|
BLAKE2b-256 checksum How to use checksums |
42cb59fd7009a552ff9ddb3ad17ea8a20113018999965c19d3eaf8d836b10db1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Security for pygafro 1.3.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.