Skip to main content

Homogeneous Transformation Matrices and Quaternions

Project description

Transformations is a Python library for calculating 4x4 matrices for translating, rotating, reflecting, scaling, shearing, projecting, orthogonalizing, and superimposing arrays of 3D homogeneous coordinates as well as for converting between rotation matrices, Euler angles, and quaternions. Also includes an Arcball control object and functions to decompose transformation matrices.

The transformations library is no longer actively developed.

Author:

Christoph Gohlke

License:

BSD 3-Clause

Version:

2025.1.1

Quickstart

Install the transformations package and all dependencies from the Python Package Index:

python -m pip install -U transformations

See Examples for using the programming interface.

Source code and support are available on GitHub.

Requirements

This revision was tested with the following requirements and dependencies (other versions may work):

  • CPython 3.10.11, 3.11.9, 3.12.8, 3.13.1 64-bit

  • NumPy 2.1.3

Revisions

2025.1.1

  • Drop support for Python 3.9, support Python 3.13.

2024.5.24

  • Fix docstring examples not correctly rendered on GitHub.

2024.4.24

  • Support NumPy 2.

2024.1.6

  • Remove support for Python 3.8 and numpy 1.22 (NEP 29).

2022.9.26

  • Add dimension check on superimposition_matrix (#2).

2022.8.26

  • Update metadata

  • Remove support for Python 3.7 (NEP 29).

2021.6.6

  • Remove support for Python 3.6 (NEP 29).

2020.1.1

  • Remove support for Python 2.7 and 3.5.

2019.4.22

  • Fix setup requirements.

Notes

Transformations.py is no longer actively developed and has a few known issues and numerical instabilities. The module is mostly superseded by other modules for 3D transformations and quaternions:

The API is not stable yet and is expected to change between revisions.

This Python code is not optimized for speed. Refer to the transformations.c module for a faster implementation of some functions.

Documentation in HTML format can be generated with epydoc.

Matrices (M) can be inverted using numpy.linalg.inv(M), be concatenated using numpy.dot(M0, M1), or transform homogeneous coordinate arrays (v) using numpy.dot(M, v) for shape (4, -1) column vectors, respectively numpy.dot(v, M.T) for shape (-1, 4) row vectors (“array of points”).

This module follows the “column vectors on the right” and “row major storage” (C contiguous) conventions. The translation components are in the right column of the transformation matrix, i.e. M[:3, 3]. The transpose of the transformation matrices may have to be used to interface with other graphics systems, e.g. OpenGL’s glMultMatrixd(). See also [16].

Calculations are carried out with numpy.float64 precision.

Vector, point, quaternion, and matrix function arguments are expected to be “array like”, i.e. tuple, list, or numpy arrays.

Return types are numpy arrays unless specified otherwise.

Angles are in radians unless specified otherwise.

Quaternions w+ix+jy+kz are represented as [w, x, y, z].

A triple of Euler angles can be applied/interpreted in 24 ways, which can be specified using a 4 character string or encoded 4-tuple:

Axes 4-string: e.g. ‘sxyz’ or ‘ryxy’

  • first character : rotations are applied to ‘s’tatic or ‘r’otating frame

  • remaining characters : successive rotation axis ‘x’, ‘y’, or ‘z’

Axes 4-tuple: e.g. (0, 0, 0, 0) or (1, 1, 1, 1)

  • inner axis: code of axis (‘x’:0, ‘y’:1, ‘z’:2) of rightmost matrix.

  • parity : even (0) if inner axis ‘x’ is followed by ‘y’, ‘y’ is followed by ‘z’, or ‘z’ is followed by ‘x’. Otherwise odd (1).

  • repetition : first and last axis are same (1) or different (0).

  • frame : rotations are applied to static (0) or rotating (1) frame.

References

  1. Matrices and transformations. Ronald Goldman. In “Graphics Gems I”, pp 472-475. Morgan Kaufmann, 1990.

  2. More matrices and transformations: shear and pseudo-perspective. Ronald Goldman. In “Graphics Gems II”, pp 320-323. Morgan Kaufmann, 1991.

  3. Decomposing a matrix into simple transformations. Spencer Thomas. In “Graphics Gems II”, pp 320-323. Morgan Kaufmann, 1991.

  4. Recovering the data from the transformation matrix. Ronald Goldman. In “Graphics Gems II”, pp 324-331. Morgan Kaufmann, 1991.

  5. Euler angle conversion. Ken Shoemake. In “Graphics Gems IV”, pp 222-229. Morgan Kaufmann, 1994.

  6. Arcball rotation control. Ken Shoemake. In “Graphics Gems IV”, pp 175-192. Morgan Kaufmann, 1994.

  7. Representing attitude: Euler angles, unit quaternions, and rotation vectors. James Diebel. 2006.

  8. A discussion of the solution for the best rotation to relate two sets of vectors. W Kabsch. Acta Cryst. 1978. A34, 827-828.

  9. Closed-form solution of absolute orientation using unit quaternions. BKP Horn. J Opt Soc Am A. 1987. 4(4):629-642.

  10. Quaternions. Ken Shoemake. http://www.sfu.ca/~jwa3/cmpt461/files/quatut.pdf

  11. From quaternion to matrix and back. JMP van Waveren. 2005. http://www.intel.com/cd/ids/developer/asmo-na/eng/293748.htm

  12. Uniform random rotations. Ken Shoemake. In “Graphics Gems III”, pp 124-132. Morgan Kaufmann, 1992.

  13. Quaternion in molecular modeling. CFF Karney. J Mol Graph Mod, 25(5):595-604

  14. New method for extracting the quaternion from a rotation matrix. Itzhack Y Bar-Itzhack, J Guid Contr Dynam. 2000. 23(6): 1085-1087.

  15. Multiple View Geometry in Computer Vision. Hartley and Zissermann. Cambridge University Press; 2nd Ed. 2004. Chapter 4, Algorithm 4.7, p 130.

  16. Column Vectors vs. Row Vectors. http://steve.hollasch.net/cgindex/math/matrix/column-vec.html

Examples

>>> alpha, beta, gamma = 0.123, -1.234, 2.345
>>> origin, xaxis, yaxis, zaxis = [0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 1]
>>> I = identity_matrix()
>>> Rx = rotation_matrix(alpha, xaxis)
>>> Ry = rotation_matrix(beta, yaxis)
>>> Rz = rotation_matrix(gamma, zaxis)
>>> R = concatenate_matrices(Rx, Ry, Rz)
>>> euler = euler_from_matrix(R, 'rxyz')
>>> numpy.allclose([alpha, beta, gamma], euler)
True
>>> Re = euler_matrix(alpha, beta, gamma, 'rxyz')
>>> is_same_transform(R, Re)
True
>>> al, be, ga = euler_from_matrix(Re, 'rxyz')
>>> is_same_transform(Re, euler_matrix(al, be, ga, 'rxyz'))
True
>>> qx = quaternion_about_axis(alpha, xaxis)
>>> qy = quaternion_about_axis(beta, yaxis)
>>> qz = quaternion_about_axis(gamma, zaxis)
>>> q = quaternion_multiply(qx, qy)
>>> q = quaternion_multiply(q, qz)
>>> Rq = quaternion_matrix(q)
>>> is_same_transform(R, Rq)
True
>>> S = scale_matrix(1.23, origin)
>>> T = translation_matrix([1, 2, 3])
>>> Z = shear_matrix(beta, xaxis, origin, zaxis)
>>> R = random_rotation_matrix(numpy.random.rand(3))
>>> M = concatenate_matrices(T, R, Z, S)
>>> scale, shear, angles, trans, persp = decompose_matrix(M)
>>> numpy.allclose(scale, 1.23)
True
>>> numpy.allclose(trans, [1, 2, 3])
True
>>> numpy.allclose(shear, [0, math.tan(beta), 0])
True
>>> is_same_transform(R, euler_matrix(axes='sxyz', *angles))
True
>>> M1 = compose_matrix(scale, shear, angles, trans, persp)
>>> is_same_transform(M, M1)
True
>>> v0, v1 = random_vector(3), random_vector(3)
>>> M = rotation_matrix(angle_between_vectors(v0, v1), vector_product(v0, v1))
>>> v2 = numpy.dot(v0, M[:3, :3].T)
>>> numpy.allclose(unit_vector(v1), unit_vector(v2))
True

Project details


Download files

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

Source Distribution

transformations-2025.1.1.tar.gz (48.1 kB view details)

Uploaded Source

Built Distributions

transformations-2025.1.1-cp313-cp313-win_arm64.whl (51.7 kB view details)

Uploaded CPython 3.13Windows ARM64

transformations-2025.1.1-cp313-cp313-win_amd64.whl (58.8 kB view details)

Uploaded CPython 3.13Windows x86-64

transformations-2025.1.1-cp313-cp313-win32.whl (53.8 kB view details)

Uploaded CPython 3.13Windows x86

transformations-2025.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

transformations-2025.1.1-cp313-cp313-macosx_11_0_arm64.whl (54.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

transformations-2025.1.1-cp313-cp313-macosx_10_13_x86_64.whl (58.1 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

transformations-2025.1.1-cp312-cp312-win_arm64.whl (51.7 kB view details)

Uploaded CPython 3.12Windows ARM64

transformations-2025.1.1-cp312-cp312-win_amd64.whl (58.8 kB view details)

Uploaded CPython 3.12Windows x86-64

transformations-2025.1.1-cp312-cp312-win32.whl (53.8 kB view details)

Uploaded CPython 3.12Windows x86

transformations-2025.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

transformations-2025.1.1-cp312-cp312-macosx_11_0_arm64.whl (54.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

transformations-2025.1.1-cp312-cp312-macosx_10_13_x86_64.whl (58.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

transformations-2025.1.1-cp311-cp311-win_arm64.whl (51.5 kB view details)

Uploaded CPython 3.11Windows ARM64

transformations-2025.1.1-cp311-cp311-win_amd64.whl (58.5 kB view details)

Uploaded CPython 3.11Windows x86-64

transformations-2025.1.1-cp311-cp311-win32.whl (53.7 kB view details)

Uploaded CPython 3.11Windows x86

transformations-2025.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

transformations-2025.1.1-cp311-cp311-macosx_11_0_arm64.whl (54.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

transformations-2025.1.1-cp311-cp311-macosx_10_9_x86_64.whl (58.0 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

transformations-2025.1.1-cp310-cp310-win_amd64.whl (58.5 kB view details)

Uploaded CPython 3.10Windows x86-64

transformations-2025.1.1-cp310-cp310-win32.whl (53.7 kB view details)

Uploaded CPython 3.10Windows x86

transformations-2025.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

transformations-2025.1.1-cp310-cp310-macosx_11_0_arm64.whl (54.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

transformations-2025.1.1-cp310-cp310-macosx_10_9_x86_64.whl (58.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file transformations-2025.1.1.tar.gz.

File metadata

  • Download URL: transformations-2025.1.1.tar.gz
  • Upload date:
  • Size: 48.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for transformations-2025.1.1.tar.gz
Algorithm Hash digest
SHA256 b8411a456cd506e4b77cdac884b217836125840e2f1400247b5bc02c46d1b333
MD5 9f333b0efecf1b0c68f6191b4e94830e
BLAKE2b-256 6bba678cbd4f558ec587e6ced36206dec0649d4c383dfcdf76c0cdd09d889e30

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 4a44eec2c7ae4058316ae75fbfd3c3ab8d15489d0bbeb753f6a4392283378d94
MD5 0965167ed39e9df1df7d8bd0e5e1987d
BLAKE2b-256 cbc3b6d0d31c7fd8c702e6222d62d02f32db9228fccc3908e4ee46be4861edd0

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bffdd9c419cd395af9e1de5a642099dfc9ec0cb2b1d9d87c0421271083603e7c
MD5 eb138447d9a2ca8f3bb456e9deac2245
BLAKE2b-256 0b06be24e40b458cf3d276c6aa39b36bf7cb16ee50ca4d6922b9d2f0bbea5db5

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 26950745a1d7fcdbdb2f1ba217496a2ac4c1eeb4cacbd0e866fa48e09c9d01ee
MD5 1cced3656f12e09270c7af9d128ee405
BLAKE2b-256 8fb7ad2c0c9f9ec54ce649c50de8098d81a4786d2cf35703f7da9f3ad5df12a5

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 abdba200ec5abfac55fab25c5ef399fd65357d296c304f1499c0af6b9442fc8a
MD5 a56057cbc281788a6d12409c0ed4977d
BLAKE2b-256 be16aa7213cb432ec16a2c91138522616cf4971502e6c385dd04cdfd1d467c52

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e68e475256cfe03e3fa360693d6a39495b2b67d86033640504067ce8febf29b
MD5 4750b9e882ca22a69cf6e8b77c77a170
BLAKE2b-256 43c3968c56642c3f53c89d4aeb816f29e6ac3f8cf05656904116c176df57c19c

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 264c71652cb98c35bfa0293fb2e0d3a811a645f3ca4011756321baaa6953b287
MD5 bd06af9dd1cb865802702584a6a6c1f8
BLAKE2b-256 04598d3526b3a19da156767088c9bb5c5872cdeedece31a9f829a32ad429a4fc

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 90a494108ff1b37ba3505492098170006559aca453b7715ae41983b325f731f4
MD5 4467d5637f403af7b32ee77fc1f8b148
BLAKE2b-256 c4f8eeab0b9e542a8870968a4b8d6a5f9fde1eaf5925972d9050c962c2437bf4

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 182c883f06ee9cdaa57b33ecadd694b519e682d5c050026613f260716250fbfc
MD5 177869943167d7297f464fa8c9f8d975
BLAKE2b-256 6a722affe2931de75bb4c8ddee0c3b3c6fd60988b66ab4f096c1e9a59f508a71

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 fbe073d36a4f5132778aae0f837c9fa1797dc0b5f86e67efacc9be34cf886222
MD5 6d2c85ab9e62734a7cbb7bef4fa3fc45
BLAKE2b-256 029eda0ae005d9ef81ae0ea92cdb28597cc563a90b74f9dea3e90065021e6c91

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c31602afe8480d8b1ec3ef57fad91b655f5aaf13d6913e04a9d16200ebbd0b9d
MD5 8dbacda287ce17953a427f4ba78445b9
BLAKE2b-256 7d3bb436ef8290dfbd82d31f21ac91a6f792ebc2085315fccaba3859a2f880b1

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c0f7b8980053c0e4f93e33a6899adbef85d6473d4b0f004a0addcfd1c310461
MD5 57414059487e3c4bec17150ffc78b78f
BLAKE2b-256 b62c2af560efb7e63ca92d6acf69d172fd714abf698b1331c5c2fc808801d509

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 96b9dae9b63d27878422de914630983de937de6699f5e0114c440e2d49bb28df
MD5 ec62500cc7a0da4d0792e715ae73ae89
BLAKE2b-256 ed237abfdc715b065868f77e1e03381e34d3c526b11a21882afc2d7e4bba9d7e

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 609ea776cbd25d81f83be08c6e19576a430b888dfda3f8a9b833c91fee624d23
MD5 f29ad7c32b1f9577bef5fa939b1f5747
BLAKE2b-256 22468602a4ded8f5ebf66d366848e8da90eb6d3f0cb5167b8c2657754e4de0e5

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6053d98f6e9d631df2ef467dcd534138c23532b425ca44cc57049197be8a2df0
MD5 e7c6ece72962e305602877804e582ec2
BLAKE2b-256 2d42687cacb4689dd25fddfa8b284d3a3f4d6f44915d039a5da2d0fe9f381d2f

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 0480bf56c375070e374994586acfc7366a91a4ec2356e8111394212699a11c0a
MD5 a3e11f047ccdb0d380ebf865f14994d5
BLAKE2b-256 69b5254149892bbbdaa7da0cfc7858319fdd4bf73ef50ce5c38fffafb83dc902

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ce9fa1663d16126cfd746ca79dfc484db531cd68b1ee99dfd5960f65b82331a
MD5 282357b0bccb4c2f61a7f5bd1b9d3608
BLAKE2b-256 2443c12e5e5f4648257be1a1c2deacefffccff05b0cd334f7108dc60ee34c87b

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee99aee395cbc033e97f3df6c74e6f65e77ea29399e6c2265a4aaada22bc1af3
MD5 d77a18410ee55b82d40698c24e99607c
BLAKE2b-256 992d1af87336b9028430abb2c6a5243761f54c69c718995d25d3f2eeb1b400ff

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ba5810bbcc403a6fdb0ad55f2d1654ae434ad5e0ed6411c4fd5ee95d3c24a785
MD5 b54e14389c81c235f0aab91dc3c0cb1e
BLAKE2b-256 d448eaf3f8e4ef8f65fd35bae43d0e4bb9da939032d1d0ca5af4b0174302a0e4

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1af88add05b44c752379c4ff0649a17d0853dea65ca20f162661bcc3488ab48c
MD5 566a2aa5e729f8358988b2e0fbe3b8c9
BLAKE2b-256 f6cd16986f29515dd295abb570120c9526ba3958f252cb1241d8632bfcf2a358

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b50e7bff1d3a776d71b69a3e38c7a776666756011bf5a071739c84b93c481094
MD5 e3bfb7517f2609c93def08d3d506d1cb
BLAKE2b-256 f0623f0f3ac6df0b68dadb354e27e3a6a010214ee3026a9ec8996b499c9dd4d8

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ed30be8eed56680dd1405117dfae58f2ebba99cff1333503b8cdac46c85f976
MD5 04b517a5fecf8d60e165fbfe03d6e30d
BLAKE2b-256 7e468d70ff706699b44107f1c649ca4af7c9665da313b706cf5f4bb1ec4db1f4

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cbc758a858185b38022722ab6f5bb39369b74e69a8e7a861894870269241064f
MD5 824103e869580dea2ac0a43699432038
BLAKE2b-256 b6c9348fa3320c5cd3a403eedaebc6750c20f45f04b39d1eb6da8d9e339619b8

See more details on using hashes here.

File details

Details for the file transformations-2025.1.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for transformations-2025.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5eb808d255c02fba6cfdbc92b7c706432db76b7e55e0cfe921bddad95e1d4285
MD5 1876a797c23f02e2dabe25623f18b22c
BLAKE2b-256 4edc679989c58a3646740b27ab6dcce4dd3d6991ddd81f2fed7b145c57e0c6c3

See more details on using hashes here.

Supported by

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