Skip to main content

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)

Source distribution for pygafro 1.3.5
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)

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

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.

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