Skip to main content

OpenGL Mathematics library for Python

Project description

PyGLM

OpenGL Mathematics (GLM) library for Python

GLSL + Optional features + Python = PyGLM
A mathematics library for graphics programming.

PyGLM is a Python extension written in C++.
By using GLM by G-Truc under the hood, it manages to bring glm's features to Python.  
Some features are unsupported (such as most unstable extensions).
If you encounter any issues or want to request a feature, please create an issue on the issue tracker.

For a complete reference of the types and functions, please take a look at the wiki.

Tiny Documentation

Why PyGLM?

Besides the obvious - being mostly compatible with GLM - PyGLM offers a variety of features for vector and matrix manipulation.
It has a lot of possible use cases, including 3D-Graphics (OpenGL, DirectX, ...), Physics and more.

At the same time, it has great performance, usually being twice as fast as numpy! (see end of page)
(depending on the individual function)

Installation

PyGLM supports Windows, Linux, MacOS and other operating systems with either x86 (32-bit) or x64 (64-bit) architecture,
running Python 3.5 or higher. (Prior versions of Python - such as Python 2 - were supported up to PyGLM version 0.4.8b1)

It can be installed from the PyPI using pip:

pip install PyGLM
# please make sure to install "PyGLM" and not "glm", which is a different module

And finally imported and used:

import glm

Using PyGLM

PyGLM's syntax is very similar to the original GLM's syntax.
There is no need to import anything but glm, as it already contains the entire package.

For more information, take a look at the wiki.

License requirements

Please make sure to include the license for GLM in your project when you use PyGLM!
(this is especially relevant for binary distributions, e.g. *.exe)

You can do so by copying the COPYING file (or it's contents) to your project.

Differences to glm

Instead of using double colons (::) for namespaces, periods (.) are used, so
glm::vec2 becomes glm.vec2.

PyGLM supports the buffer protocol, meaning its compitible to other objects that support the buffer protocol,
such as bytes or numpy.array
(for example you can convert a glm matrix to a numpy array and vice versa).
PyGLM is also capable of interpreting iterables (such as tuples) as vectors, so e.g. the following equasion is possible:

result = glm.vec2(1) * (2, 3)

Note: This feature might not or only partially be available in PyGLM versions prior to 2.0.0

PyGLM doesn't support precision qualifiers. All types use the default precision (packed_highp).

If a glm function normally accepts float and double arguments, the higher precision (double) is used.

There is no way to set preprocessor definitions (macros).
If - for example - you need to use the left handed coordinate system, you have to use *LH, so
glm.perspective becomes glm.perspectiveLH.

All types are initialized by default to avoid memory access violations.
(i.e. the macro GLM_FORCE_CTOR_INIT is defined)

In case you need the size of a PyGLM datatype, you can use

glm.sizeof(<type>)

The function glm.identity requires a matrix type as it's argument.

The function glm.frexp(x, exp) returns a tuple (m, e), if the input arguments are numerical.
This function may issue a UserWarning. You can silence this warning using glm.silence(1).

The function glm.value_ptr(x) returns a ctypes pointer of the respective type.
I.e. if the datatype of x is float, then a c_float pointer will be returned.
Likewise the reverse-functions (such as make_vec2(ptr)) will take a ctypes pointer as their argument
and return (in this case) a 2 component vector of the pointers underlying type.

glm.silence(ID) can be used to silence specific warnings.
Supplying an id of 0 will silence all warnings.

FAQ

How to pass the matrices generated by PyGLM to OpenGL functions?

You will find an overview on the [Passing data to external libs] page.

Types and functions are not available after installing from the PyPI using pip install glm

Most likely you've installed glm, a JSON parser and not PyGLM (or a very early version of PyGLM).  
The correct install command is:

pip install PyGLM

Why is <experimental extension name here> not supported?

I prefer not to add too many experimental extensions to PyGLM, especially as they might change or be removed in the future and it is simply too much effort for me to keep up with all that.  
If you need a specific experimental extension, feel free to submit a feature request on the issue tracker.  
I try adding them on a one-by-one basis.

Why are Python versions prior to 3.5 no longer supported?

Starting with version 0.5.0b1 I decided to use C++ to build PyGLM, using glm under the hood - which requires C++ 11 or upwards.  
Only Python versions 3.5+ support C++ 11, thus I was forced to stop supporting older versions.  
The last version to support Python 2 and <3.5 is 0.4.8b1.

Short example

>>> import glm
>>> v = glm.vec3()
>>> v.x = 7
>>> print(v.xxy)
vec3(            7,            7,            0 )

>>> m = glm.mat4()
>>> print(m)
[            1 |            0 |            0 |            0 ]
[            0 |            1 |            0 |            0 ]
[            0 |            0 |            1 |            0 ]
[            0 |            0 |            0 |            1 ]

>>> v = glm.vec4(1, 2, 3, 4)
>>> print(v + (8, 7, 6, 5))
vec4(            9,            9,            9,            9 )

PyGLM in action

Wanna see what PyGLM can do?
Take a look at the examples from the popular LearnOpenGL tutorials by Joey De Vries running in Python using PyGLM.
LearnOpenGL

Speed comparison to numpy

The following is the output generated by test/PyGLM vs Numpy.py

Evaluating performance of PyGLM compared to NumPy.

Running on platform 'win32'.

Python version:
3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]

Comparing the following module versions:
PyGLM (DEFAULT) version 2.4.0
 vs
NumPy 1.21.2
________________________________________________________________________________

The following table shows information about a task to be achieved and the time
it took when using the given module. Lower time is better.
Each task is repeated five times per module, only showing the best (i.e. lowest)
value.


+----------------------------------------+------------+------------+-----------+
| Description                            | PyGLM time | NumPy time |     ratio |
+----------------------------------------+------------+------------+-----------+
| 3 component vector creation            |            |            |           |
| (100,000 times)                        |        8ms |       19ms |     2.52x |
+----------------------------------------+------------+------------+-----------+
| 3 component vector creation with       |            |            |           |
| custom components                      |            |            |           |
| (50,000 times)                         |        8ms |       36ms |     4.47x |
+----------------------------------------+------------+------------+-----------+
| dot product                            |            |            |           |
| (50,000 times)                         |        3ms |       51ms |    15.76x |
+----------------------------------------+------------+------------+-----------+
| cross product                          |            |            |           |
| (25,000 times)                         |        2ms |      538ms |   243.93x |
+----------------------------------------+------------+------------+-----------+
| L2-Norm of 3 component vector          |            |            |           |
| (100,000 times)                        |        6ms |      317ms |    57.05x |
+----------------------------------------+------------+------------+-----------+
| 4x4 matrix creation                    |            |            |           |
| (50,000 times)                         |        4ms |       10ms |     2.35x |
+----------------------------------------+------------+------------+-----------+
| 4x4 identity matrix creation           |            |            |           |
| (100,000 times)                        |        7ms |      183ms |    27.83x |
+----------------------------------------+------------+------------+-----------+
| 4x4 matrix transposition               |            |            |           |
| (50,000 times)                         |        5ms |       33ms |     6.86x |
+----------------------------------------+------------+------------+-----------+
| 4x4 multiplicative inverse             |            |            |           |
| (50,000 times)                         |        5ms |     1627ms |   322.14x |
+----------------------------------------+------------+------------+-----------+
| 3 component vector addition            |            |            |           |
| (100,000 times)                        |        4ms |       40ms |     9.26x |
+----------------------------------------+------------+------------+-----------+
| 4x4 matrix multiplication              |            |            |           |
| (100,000 times)                        |        8ms |       40ms |     5.13x |
+----------------------------------------+------------+------------+-----------+
| 4x4 matrix x vector multiplication     |            |            |           |
| (100,000 times)                        |        6ms |      119ms |    21.61x |
+----------------------------------------+------------+------------+-----------+
| TOTAL                                  |      0.07s |      3.01s |    46.17x |
+----------------------------------------+------------+------------+-----------+

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyGLM-2.5.0.tar.gz (457.9 kB view details)

Uploaded Source

Built Distributions

PyGLM-2.5.0-cp39-cp39-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

PyGLM-2.5.0-cp39-cp39-win32.whl (1.2 MB view details)

Uploaded CPython 3.9 Windows x86

PyGLM-2.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.24+ x86-64

PyGLM-2.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl (7.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.24+ i686

PyGLM-2.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (11.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

PyGLM-2.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (10.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

PyGLM-2.5.0-cp39-cp39-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

PyGLM-2.5.0-cp38-cp38-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.8 Windows x86-64

PyGLM-2.5.0-cp38-cp38-win32.whl (1.2 MB view details)

Uploaded CPython 3.8 Windows x86

PyGLM-2.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.24+ x86-64

PyGLM-2.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl (7.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.24+ i686

PyGLM-2.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

PyGLM-2.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (10.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

PyGLM-2.5.0-cp38-cp38-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

PyGLM-2.5.0-cp37-cp37m-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.7m Windows x86-64

PyGLM-2.5.0-cp37-cp37m-win32.whl (1.2 MB view details)

Uploaded CPython 3.7m Windows x86

PyGLM-2.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.24+ x86-64

PyGLM-2.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl (7.1 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.24+ i686

PyGLM-2.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

PyGLM-2.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (10.1 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

PyGLM-2.5.0-cp37-cp37m-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

PyGLM-2.5.0-cp36-cp36m-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.6m Windows x86-64

PyGLM-2.5.0-cp36-cp36m-win32.whl (1.2 MB view details)

Uploaded CPython 3.6m Windows x86

PyGLM-2.5.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.24+ x86-64

PyGLM-2.5.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl (7.1 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.24+ i686

PyGLM-2.5.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

PyGLM-2.5.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (10.1 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

PyGLM-2.5.0-cp36-cp36m-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file PyGLM-2.5.0.tar.gz.

File metadata

  • Download URL: PyGLM-2.5.0.tar.gz
  • Upload date:
  • Size: 457.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0.tar.gz
Algorithm Hash digest
SHA256 c954d545544ba155a5b25198a4c0311a39e8ab9bf707897998037e74697be618
MD5 4d9b1bba5952b02c7889f5b57e412ace
BLAKE2b-256 303a9934648b4515438f2ddfb926240ad21e81f3c0c4200bf0a51c189cba6b34

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e04b0872a20e0c6ae5003087a2ab25f811fb1f5fb9ee8e02d5ce2d45e16a516a
MD5 33cfde38d0f88db40be5efe702ed12d9
BLAKE2b-256 6ffc0e9d15daec709dd6473814c910181fc20afbac88a969bc7017694f9fc205

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 32cb15e1a00d65fee376731937f6ffe0e813f5e070c90abecc8209d4c7ec35f6
MD5 28183942bb66f69ea524eb1d496358fc
BLAKE2b-256 9198800a980781e79776527f32997df3a9cda570a06f26b1b1f4b27464e94da4

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 e42406a366da0cbb363210e9490411daba25a07c8d029958b9c7f9ec79dd3241
MD5 6fde6948def2ad4def021a41571473b9
BLAKE2b-256 4dea801bd04c52f7cc876b2664b71245ef57f65182ddedd0cbeaa6ca33bb4d96

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 c205bb16fc6cab39b179c8b9065df6e6afaa17ce2e89a6cf1a22cb00dfbd2b2e
MD5 4cb95610698854d9def0a903e5d75925
BLAKE2b-256 1736bd2f2b7cbab47e0158a75b35908372684d3c8d45ecc52e6caa52a37ddbe6

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7a4563a1547791cc12b2a9af578243f8c2ea2655ddec566c6e3665a406f84420
MD5 be8e7627dcc74d12ce112f16ca3ac57f
BLAKE2b-256 1ea87a7d6a8565392a5c60d6fba86c5ca91bffe085b0f1439004b9e6511acc96

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a2ec60208b8f2f304310f3a681de0dcc71d72e8dc0ef5b6daf69102858470c51
MD5 54b3bb9bbe32fde9ef94350ee4abbb03
BLAKE2b-256 5d8656ee30ba74146c969f52f2e1d2ff57b075cf2e0e84084c9f60b1e105488a

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fedb7ae426752e6a4d4f2049872d591045f0ccbba58959693945e87697f28742
MD5 afd3df61968ed6b7865ca6e1a225327a
BLAKE2b-256 95562fe99c010aab6b4cd7906e965d4802b5fd22a84582782a744f3ce9810ba7

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0f1debc27ca89fa838ef12d5bed114a803869a465d936191537e519a191c6dc1
MD5 56753804bb7a428a2711d547849d17f3
BLAKE2b-256 ad0142d7972c66c0c81bca3a3326ba6a0c588a0bb1b2b6c7f5f44624f694fcba

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 d97bcd71e28a9c1f7abbfb49f4c7a72ce353df0694b7fa3f96557cbf6d8a37a0
MD5 7b940fbb4998010a6fd30b36e99d1eec
BLAKE2b-256 a43de88e026c0bb989398da8101e27f261b18a1e41a731ec7c7c547c939c0326

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 4fa3749fabfda9641abbed2e73c765e4b96531dc4b105f35eccbeaa21e2771a4
MD5 0136cf6f49805bbd2d8032459e2c7a30
BLAKE2b-256 246f097cdcba2ba360845f8a5d8f0e4d4e06cb223cb1924efa7220ad18b6752d

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 f8d8169cdfca8d219541c3e9c6fcb189bef02663d545a47dc337282002845eba
MD5 75818e00134b94c62c333f334508996d
BLAKE2b-256 2283b3e78c58bce2093debe441669890ec13d7e481e7004460b003eda93ff91a

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 20002af4aa7adf559f8bf5da8bf09ef27e9137027426e85c19affe2328e443be
MD5 f6882248a2f5230d0a44a7faa41f16fb
BLAKE2b-256 d8ea5ce04d4810dae262e1c1c5663e57e4eb23b8f112bc9c9d9b98506997a840

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 6428eecd4848ec39d14e5d1d2e303de75de213788f33fdf011b002b21bdcd1d1
MD5 435ed0174b3750d93f49d8383b4af1c7
BLAKE2b-256 292f0bd730d502015f97915c8850754c3ec0cf7ba5f5d27cd42017becb35083e

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 290d6622fc3fd2afa74006a9d25f30f5251c8d3b440aef1372a0fd6625ed76f8
MD5 532778234d7116b182e39d8f4a5efc0e
BLAKE2b-256 e3e6c82b49501e84f6503c73171c4cc6457be304e4fb6f4d3a984a92bde38835

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 500d5cc5a005354a1dd7bb795f7e768cbac06f215b10abf02d9be7c392a2cfbd
MD5 d621b7beff2a63696cecd4a714134c4c
BLAKE2b-256 f41673b49dc1db87150ff248cd589d54211a17854a3e854d7e49aea41994c8e1

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 280981e7b09fb066e2dc02c933b51a9c33c9420b0b7282006e7793ba7439647d
MD5 b69f0485d907460c6c6332319c2568c2
BLAKE2b-256 bba9e037b8b2b990a4a85d685c5b05f6629d70920e6897e3a53eab70d775408c

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 5aa8ab74c6efcf2c36352b6ab90b0012449927a4bb0004603d39aab592c40930
MD5 b466691ed76ff7f6f7f0e086b1701ba1
BLAKE2b-256 38ff4062aa8a9b17e311380b35df651a9c2039aa9625990678735aec07bfd640

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 6502af4ad230c1843ac65ebff500e83b0b12382c9a9fcc483454ad74f64d1048
MD5 09bb09b8473c57addcbc6a5980b89be4
BLAKE2b-256 f969a77331460dbf3183fac9e45aed1afd9a1e761b891c03bdafa2e9c2002b8e

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cb795cdc01b8a933f0aa427fd1c02c7da860f7279506eaa78db75bf7e1b0702d
MD5 183b7a74738addae77f33f537f285590
BLAKE2b-256 9f6527c1acb73f61289804e5986e9401d32a88f4125c5ec32641131ef01c820b

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 43bf0ad8ace8863c3670ac534e7dd5858d2f8f14cd5f0ee61480aec01a6feecf
MD5 69e462773e33186a1c5b054327394923
BLAKE2b-256 d388be045b7b1ed0c3df908114fb353047c356a6b79c83e26cfce6668e8d2195

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e926c19aa7125be1c9e88ab6c97fef17c3d1c3149ebf8d977fbdfa52bab9c07f
MD5 a5abcbe5ee75b936d855feba70468108
BLAKE2b-256 9595a3d2c92ec43aff244b40e30e51a7f2f97684125db92c1be3ab68f190f8fd

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 87c35ebad46ab9abbe7fc337babc8e9ce32cafd052e213107600500c5b4ea312
MD5 4350c20f830267e138df7e3d95ce920b
BLAKE2b-256 b08f39a7c2c8c192cc71d78a3c109242137143980be6da3c5cc7ff503e3731ec

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 3ca2092a638afc5a5f3d24f1ee0086094637635d4c2bd843b9b409cf4a924a75
MD5 af2f685db2e29bfb9c622048913afb5c
BLAKE2b-256 9a83a3b54b98a4c0bb0dab30e7a2da8463b950ea79b0f2ee23263c1190e562b0

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 e974a7839470b724c85c836bd8f916c0a6c08497bd9d9b2f9630d422cabfdac5
MD5 d8537032705cc234f9cd78fbb83eee0f
BLAKE2b-256 64f15b41b7c3b3d0817cef62d82686684b2597159414f868146a65eefc53b029

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 749ce3ad2377b0a3ecc89950ad4a88ab20c3c6ef21c40201dc88ba7fe585f226
MD5 75de4cff86e2635aab8f04072eed23b9
BLAKE2b-256 a57f5353790b2c9c7ce5c54b57f83861970978cc5cd2311fcb0bdb892875fd03

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d27438c14943c0ca3f10fca7a494a8d45705e11d4c0bc2a4d28f3614d6af7e02
MD5 e434faf84811231d7fba4cee782e6998
BLAKE2b-256 2a81a432f025d0354bc9f71bb7aa69348e540dd84725ea8431d5a2c2227aec1e

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for PyGLM-2.5.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 1ac8d09a3b433f95d441e811d120a901b9388662b7f94e8ce2d39b5af5070b9c
MD5 4e68faa303827dcc7e4c0499bcd7ea44
BLAKE2b-256 abdfbeea64ce23a81ac265ad43fd754f4850282ea1682573cc7dc0f172d6272d

See more details on using hashes here.

Provenance

File details

Details for the file PyGLM-2.5.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: PyGLM-2.5.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for PyGLM-2.5.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d38834945b1b92e560db5d0badf43d8f0e1ef421f74d6b511d51bc5adfe7ce28
MD5 8372afc21a82efbdc53939a06cd5eab5
BLAKE2b-256 cfdb25f83c6e4544e676a758d497893271413ff4f6adf3f4b1b995c65df0e6ff

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page