Skip to main content

General 4x4 transfer-matrix method (TMM)

Project description

PyPI version Python License: MIT Pytest Pre-commit Build and upload to PyPI

General 4×4 Transfer-Matrix Method (TMM)

A Python library for optical simulations of isotropic and anisotropic multilayer structures using the 4×4 transfer-matrix method (Hodgkinson, Kassam & Wu, 1997).

2D electromagnetic field map of surface plasmons

See also: NonlinearTMM — extends TMM to nonlinear processes (SHG, SFG, DFG) and Gaussian beam propagation in layered structures.

Table of Contents

Features

  • Isotropic and anisotropic (birefringent) layers — full 4×4 matrix for uniaxial/biaxial crystals with arbitrary orientation
  • Parameter sweeps — over wavelength, angle (β), layer thickness, refractive index, and crystal rotation angles
  • 1D and 2D electromagnetic field profiles — E and H field distributions through the structure
  • Field enhancement and optimization — built-in simplex optimizer to find resonance conditions (e.g. SPP)
  • Wavelength-dependent materials — interpolated from measured optical data
  • Cross-polarization coefficients — R₁₂, R₂₁, T₃₂, T₄₁ for polarization coupling in anisotropic media
  • High performance — C++ core (Eigen) with Cython bindings
  • Cross-platform wheels — Linux, Windows, macOS; Python 3.10–3.14

Installation

pip install GeneralTmm

Pre-built wheels are available for most platforms. A C++ compiler is only needed when installing from source.

API Overview

The library exposes two classes: Material and Tmm.

Class / method Purpose
Material(wls, ns) Wavelength-dependent material from arrays of λ and complex n
Material.Static(n) Constant refractive index (shortcut)
Tmm(wl=…, beta=…) Create a solver; wl = wavelength (m), beta = n sin θ
tmm.AddIsotropicLayer(d, mat) Append isotropic layer (d in m, inf for semi-infinite)
tmm.AddLayer(d, matX, matY, matZ, psi, xi) Append anisotropic layer with crystal orientation angles
tmm.Sweep(param, values) Solve for an array of values of any parameter; returns dict-like results (R11, R22, R12, T31, …)
tmm.CalcFields1D(xs, pol) E, H field profiles along the layer normal
tmm.CalcFields2D(xs, ys, pol) E, H on a 2-D grid
tmm.OptimizeEnhancement(…) Simplex optimizer for field enhancement

Coordinate system (Hodgkinson convention): x = layer normal / propagation direction, y and z = in-plane, plane of incidence = xz. Crystal rotation angles: ψ around z, ξ around x.

Examples

Total Internal Reflection — ExampleTIR.py

Simulate total internal reflection at a glass/air interface:

import numpy as np
from GeneralTmm import Tmm, Material

# Materials: glass prism and air
prism = Material.Static(1.5)
substrate = Material.Static(1.0)

# Set up TMM solver at 532 nm wavelength
tmm = Tmm(wl=532e-9)
tmm.AddIsotropicLayer(float("inf"), prism)      # semi-infinite prism
tmm.AddIsotropicLayer(float("inf"), substrate)   # semi-infinite air

# Sweep over effective mode index beta = n * sin(theta)
betas = np.linspace(0.0, 1.49, 100)
result = tmm.Sweep("beta", betas)

# Reflection coefficients for p- and s-polarization
R_p = result["R11"]  # p → p reflection
R_s = result["R22"]  # s → s reflection

Total internal reflection

Surface Plasmon Polaritons — ExampleSPP.py

Kretschmann configuration (glass | 50 nm Ag | air) with wavelength-dependent silver data (Johnson & Christy, 1972). Demonstrates reflection sweeps, enhancement optimization, and 1D/2D field visualization.

SPP reflection, enhancement, and 1D field profile

Dielectric Thin-Film Filters — ExampleFilter.py

Quarter-wave stacks of TiO₂ / SiO₂ on BK7 glass at normal incidence. A Bragg mirror (HL)⁷H gives > 99.8 % reflectance across a ~160 nm stop band centered at 550 nm. Adding a half-wave SiO₂ cavity between two such mirrors creates a Fabry-Perot bandpass filter with a narrow transmission peak.

Dielectric Bragg mirror and Fabry-Perot bandpass filter

Wave Plates — ExampleAnisotropic.py

Half-wave and quarter-wave plates simulated as birefringent slabs (Δn = 0.1) at normal incidence. Sweeps the plate rotation angle ξ to show how a HWP fully converts p- to s-polarization at 45°, while a QWP produces circular polarization. A textbook result verified with the full 4×4 method.

Half-wave and quarter-wave plate polarization conversion

Cholesteric Liquid Crystal — ExampleCholesteric.py

A helical stack of birefringent layers acts as a circular-polarization-selective Bragg reflector: one handedness is reflected in a well-defined wavelength band while the other is transmitted. This is the mechanism behind structurally colored beetle shells and cholesteric LC displays. Also a good stress test of the 4×4 method with hundreds of anisotropic layers.

Cholesteric liquid crystal Bragg reflector

Leaky Dyakonov SPP — ExampleDSPP.py

A Kretschmann-coupled surface plasmon polariton at an Ag / KTP birefringent-crystal interface. When the crystal optic axis is tilted past a critical angle φc ≈ 67°, the extraordinary wave begins to propagate and up to 36 % of the incident p-polarized light tunnels through the 60 nm silver film — the "leaky Dyakonov SPP" regime (Loot & Hizhnyakov, 2016).

Leaky Dyakonov surface plasmon polaritons

References

Hodgkinson, I. J., Kassam, S., & Wu, Q. H. (1997). Eigenequations and Compact Algorithms for Bulk and Layered Anisotropic Optical Media: Reflection and Refraction at a Crystal-Crystal Interface. Journal of Computational Physics, 133(1), 75–83.

Johnson, P. B., & Christy, R. W. (1972). Optical Constants of the Noble Metals. Physical Review B, 6(12), 4370–4379.

Loot, A., & Hizhnyakov, V. (2016). Leaky Dyakonov surface plasmon polaritons for birefringent crystals. Applied Physics A, 122, 327.

Development

Setup

git clone https://github.com/ardiloot/GeneralTmm.git
cd GeneralTmm

# Install uv if not already installed:
# https://docs.astral.sh/uv/getting-started/installation/

# Create venv, build the C++ extension, and install all dependencies
uv sync

Running tests

uv run pytest -v

Code formatting and linting

Pre-commit hooks are configured to enforce formatting (ruff, clang-format) and catch common issues. To install the git hook locally:

uvx pre-commit install

To run all checks manually:

uvx pre-commit run --all-files

Regenerating README images

uv run python docs/generate_images.py

CI overview

Workflow Trigger What it does
Pytest Push to master / PRs Tests on {ubuntu, windows, macos} × Python {3.10 – 3.14}
Pre-commit Push to master / PRs Runs ruff, clang-format, and other checks
Publish to PyPI Release published Builds wheels + sdist via cibuildwheel, uploads to PyPI
Dependabot Weekly Keeps GitHub Actions and pip dependencies up to date

Releasing

Versioning is handled automatically by setuptools-scm from git tags.

  1. Ensure CI is green on the master branch.
  2. Create a new release on GitHub:
    • Go to ReleasesDraft a new release
    • Create a new tag following PEP 440 (e.g. v1.2.0)
    • Target the master branch (or a specific commit on master)
    • Click Generate release notes for auto-generated changelog
    • For pre-releases (e.g. v1.2.0rc1), check Set as a pre-release — these upload to TestPyPI instead of PyPI
  3. Publish the release — the workflow builds wheels for Linux (x86_64 + aarch64), Windows (AMD64 + ARM64), and macOS (ARM64) and uploads to PyPI.

License

MIT

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

generaltmm-1.3.1.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

generaltmm-1.3.1-cp314-cp314-win_arm64.whl (323.8 kB view details)

Uploaded CPython 3.14Windows ARM64

generaltmm-1.3.1-cp314-cp314-win_amd64.whl (346.5 kB view details)

Uploaded CPython 3.14Windows x86-64

generaltmm-1.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

generaltmm-1.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

generaltmm-1.3.1-cp314-cp314-macosx_11_0_arm64.whl (338.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

generaltmm-1.3.1-cp313-cp313-win_arm64.whl (315.4 kB view details)

Uploaded CPython 3.13Windows ARM64

generaltmm-1.3.1-cp313-cp313-win_amd64.whl (338.7 kB view details)

Uploaded CPython 3.13Windows x86-64

generaltmm-1.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

generaltmm-1.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

generaltmm-1.3.1-cp313-cp313-macosx_11_0_arm64.whl (335.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

generaltmm-1.3.1-cp312-cp312-win_arm64.whl (315.8 kB view details)

Uploaded CPython 3.12Windows ARM64

generaltmm-1.3.1-cp312-cp312-win_amd64.whl (339.0 kB view details)

Uploaded CPython 3.12Windows x86-64

generaltmm-1.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

generaltmm-1.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

generaltmm-1.3.1-cp312-cp312-macosx_11_0_arm64.whl (335.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

generaltmm-1.3.1-cp311-cp311-win_amd64.whl (339.2 kB view details)

Uploaded CPython 3.11Windows x86-64

generaltmm-1.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

generaltmm-1.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

generaltmm-1.3.1-cp311-cp311-macosx_11_0_arm64.whl (335.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

generaltmm-1.3.1-cp310-cp310-win_amd64.whl (339.1 kB view details)

Uploaded CPython 3.10Windows x86-64

generaltmm-1.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

generaltmm-1.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

generaltmm-1.3.1-cp310-cp310-macosx_11_0_arm64.whl (335.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file generaltmm-1.3.1.tar.gz.

File metadata

  • Download URL: generaltmm-1.3.1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1.tar.gz
Algorithm Hash digest
SHA256 21c1d1d456b857cc5a0997601d9ef701d708b44a94d1c60a17bc6d93a6061ee5
MD5 7589c057e03666539173d44c80b853b7
BLAKE2b-256 89b8179aacf8143a9435f5be4ae2fe236974f82fcc524c9d0037096218319ed3

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 323.8 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 200147c560009432fa1b7decf21f6bb9c0b13cd352186681b34b69eb19df1ffa
MD5 319f71fbc1497dfa730ad377d2313ddb
BLAKE2b-256 6adc886652e13a4495a335be0173e522d41e86c3c788301a2767cba1297c1191

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 346.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 be399c0c6870eddc6fa6ea0d4f82cf0d406146055fe55e26ff588ae29d953da2
MD5 e7fe902bd69b5ec47999eeb73cb7b4e0
BLAKE2b-256 fda0188daef0ad9cf95d08e7f1da17d84b136ed32cd927173ea55ca352bed641

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a2294434a8976aaa95bc44bb26e838d5dbf271c909325f62e089f41c53d9c91d
MD5 f74cad221a1e59bd779eaba3b6edc3d1
BLAKE2b-256 e4745cb9f9e805ce3452e6284901c84f734e99c0985cd21c67a3542a8ead219d

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6b02baf630434c61f19c85ea2080930becda3f4e9cb3d948c942ed44ec0baae3
MD5 0e5b81693e0738742df16013418c049a
BLAKE2b-256 036d6b6c624aa0f7c37f8a402b8743723143ac00f75436d4d01e64b394886936

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 09900a90fa27af7bc0dc7fbd22baa4a1c73db67a99a179741ac6904d24a94c8d
MD5 71b4596c218f7c8867d05052457e2203
BLAKE2b-256 16884f6f00c7f728043fc28b7028de07e2eb13863e3cb8bc6359aa1c4422388b

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 315.4 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 137082ba8b729b7ef4acdea7ba39fc81a5c35fc37ada15315cfd33047adfe34c
MD5 abb9b9f895f68af5043e1f4b7ce01a20
BLAKE2b-256 6d2a33e2b413c756fc0f0286bcfa01fce06e82438cbc4784866d6519e2a6b731

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 338.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3cae61771fe6484701c7ec4426500342a0527b64a5d3b18846580b294b6178bb
MD5 d779171dd6bbbdebcc169afe6b8fb26d
BLAKE2b-256 a9fb9e05a8eba1916477886d1a193e6c56ae84a90648be96c4b41d8722760797

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7b9ae1384cdfbd78b895b0b94dc6a6d4e6d0bd5bd3dc1fa30f75eb470b31e6d
MD5 b7fc60b91d0df1d5e50b6ee8d5793558
BLAKE2b-256 eeb420b3f11f662f495263b5f222f74ffbc058d836796c0731b3b0fc21e14228

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e27772a71ac5fa93b5678bbb9111e294540ef25227b05af0ea0010ffba516441
MD5 9f37d8b488a4ac7392744dd27246e94d
BLAKE2b-256 9ec14dd894d92e78d1725a77d2c172395d3c01733a9a75bac495e88033e2817d

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30e02f19c4c621cd8246e03c6a4d7f8325c81cbcd5b8d27203d8b7d6028509b6
MD5 b39447984275c2ad9715a3e0b5d26f4b
BLAKE2b-256 0ea2d1e494ce66aae60bff6127f8f94501ae420b1fe9beccf1e95efb275471db

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 315.8 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 34340ed02aed20959cc06278daf77ad0552cb5ce8f63d177f93bcc79c0c6e8bb
MD5 0507c85b6783756da6e62d06308118d5
BLAKE2b-256 7bac5f82cfc82dadcb39d8a82edaa93ca8d57302b5d895e892299a0f16c77933

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 339.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c589cede6047709e7ffe37c4ca2981b3946cf290bd846074a9493341f5d9d8fc
MD5 c3f543a0049dc46d53fe0bc02a1a5643
BLAKE2b-256 9449753d929aaa54919a1bf83246835ffaca4e12f8a31106002d7d66ba46f127

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b3c8a0dfb7d625431be069ac25cf28089a88af56d00f0d2459653ca8656375e
MD5 042a1fe8e7f496e834d26bbd0612ffc3
BLAKE2b-256 4115de1d0fef704637bb8b01905e3e9ff585a3bb2c7ce5c11874d3022648fed8

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5adc299291277abfe89ea93fdb48b3ecb85a8e993f5a8c5a0bfa9f2c7cee3769
MD5 9b6c73365f9e912388fc77c59edfb4ce
BLAKE2b-256 e983e78579d566fc36d71515f79a99f9d976350c8fc0523e4240e0b0fd799e3a

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3b8b6ca238fb632799321e28f43abae80bbbcf3e9a356fb617a853276f386fb4
MD5 6e43b4324294e50587734fdf43f76f0e
BLAKE2b-256 24aac072bfce990e30d8537d732ffacb3cb266693e1c405af7a199ade640ae20

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 339.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 693832b5f164ce2640bc3d31f885e72eed18e08d7eff47eff023498f9ff7b0e0
MD5 c1ce06316863d58adbfb32916eeb2883
BLAKE2b-256 940e73a3f97c5aa799c6a6dedbab49253bad88794f2c6d736997bf05dd6b68cb

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b550bca33b4bbce7656eab6997f5b3086a536e69e8b81e7e6a8c4ac649de51c
MD5 0879d444acfb907edac87843515f891c
BLAKE2b-256 869157d4e1d9156b13d22e27e58e267ef992315603a2a62d01aa8d05a1eef24e

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cd892e4f896d10b85f1da099ccf8ea8fe1ca2cdf3d3e22d45729eb02dcbd0b0f
MD5 c6618a3ac80491d86190b5273debdf4a
BLAKE2b-256 eeaac6eb3207f71de9f4f1485ed66ba9b1c802f0e0617e264d29ef71d739df9c

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9de92263e81b5a017f93a061fb9bb778cb046942cdbd8f93ccfe786f070d15c3
MD5 74bd8eeffc7788bfd35d0d7a4de6a951
BLAKE2b-256 7f4b72e0a1b720a86cff681dcaff0a17717a383efe275d570e0be69545b30fef

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: generaltmm-1.3.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 339.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generaltmm-1.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5b061a03e9f947d5985e8efa1fda7876f3ce4f9815ac8d29589e055feb4358d0
MD5 27140bea5ec2ce6e6e3f3c92e2283c8e
BLAKE2b-256 5a5381b5d5d7ab75a3bc3d2e9f2d2592d6193be462cd68cbe28192215ea2def1

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1fc45e4795b9b97f89c9178957e3eca4f38a2401250ec6a03b4b9a12dbccfce
MD5 1a17c6707be3977b6ef4889160fa9691
BLAKE2b-256 6fe8110a79410c58ec200e12ae93fb284c1e1f918ed362f6c7b4e9d0b84704f5

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 102f3b6531ad2380e94b82e54432c6c0f016eebfea8a828d8dd83407da99bbb7
MD5 1ecfcf30174ef9ad12565b6f0156115a
BLAKE2b-256 426dc49da24542f22ad461332a64667584a161b48c60fafc59de5df9206924fa

See more details on using hashes here.

File details

Details for the file generaltmm-1.3.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for generaltmm-1.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e19a1bddf3c07d5b065cb5506d9776ff44213d28b0e9524b040550c25b647221
MD5 4d63463523d59a53ff05017595e6bd7f
BLAKE2b-256 4004b66f1843b95dce80ee87a0ace3b2585a12fb5e29dc9a665d00b866ff7ba4

See more details on using hashes here.

Supported by

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