Skip to main content

General 4x4 transfer-matrix method (TMM)

Project description

PyPI version Pytest 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

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.2.2.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.2.2-cp314-cp314-win_arm64.whl (315.4 kB view details)

Uploaded CPython 3.14Windows ARM64

generaltmm-1.2.2-cp314-cp314-win_amd64.whl (336.5 kB view details)

Uploaded CPython 3.14Windows x86-64

generaltmm-1.2.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

generaltmm-1.2.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

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

generaltmm-1.2.2-cp314-cp314-macosx_11_0_arm64.whl (327.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

generaltmm-1.2.2-cp313-cp313-win_arm64.whl (307.3 kB view details)

Uploaded CPython 3.13Windows ARM64

generaltmm-1.2.2-cp313-cp313-win_amd64.whl (328.9 kB view details)

Uploaded CPython 3.13Windows x86-64

generaltmm-1.2.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

generaltmm-1.2.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

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

generaltmm-1.2.2-cp313-cp313-macosx_11_0_arm64.whl (324.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

generaltmm-1.2.2-cp312-cp312-win_arm64.whl (307.8 kB view details)

Uploaded CPython 3.12Windows ARM64

generaltmm-1.2.2-cp312-cp312-win_amd64.whl (329.2 kB view details)

Uploaded CPython 3.12Windows x86-64

generaltmm-1.2.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

generaltmm-1.2.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

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

generaltmm-1.2.2-cp312-cp312-macosx_11_0_arm64.whl (324.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

generaltmm-1.2.2-cp311-cp311-win_amd64.whl (329.3 kB view details)

Uploaded CPython 3.11Windows x86-64

generaltmm-1.2.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

generaltmm-1.2.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

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

generaltmm-1.2.2-cp311-cp311-macosx_11_0_arm64.whl (324.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

generaltmm-1.2.2-cp310-cp310-win_amd64.whl (329.1 kB view details)

Uploaded CPython 3.10Windows x86-64

generaltmm-1.2.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

generaltmm-1.2.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (5.2 MB view details)

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

generaltmm-1.2.2-cp310-cp310-macosx_11_0_arm64.whl (325.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: generaltmm-1.2.2.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.2.2.tar.gz
Algorithm Hash digest
SHA256 ca821a9de54761adea2601eb201c0acb881d9bafd58bbaa8d61d32d3b15e9f1a
MD5 fdf51b3ae0cde9e4790adb2ee01920b6
BLAKE2b-256 2807374aa8bf1ad1744c6ebc482ea82372a775fa152865ae194a524683265416

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 315.4 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.2.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 15e4300579fccc7e13d8585b0fd2a7e748a13329ccd149b1f242e875aa7b7a46
MD5 066ef60dd0c06e93f84e759bb4cf5a99
BLAKE2b-256 ea346e90c5673da82b8c98fef9c0c600ae57fb25477dffd12d618e017e8bcd2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 336.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.2.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9e8e58e5603953472cc80aedddc04312ef740b1d3ec9e15e06dc5d126a7b65dc
MD5 4c8d681287c629152e03cca046fd2f0e
BLAKE2b-256 79c1aedf80574867e636f83ca1567aaae9c9f3f26f7d5546b40cb9427c107477

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 014f0c554ebab3ca1acfdb5105e8d9bf6bcdf59323f8864ef3b3da5b700e2ea2
MD5 1f044af734c2589407e6b06b958db1bd
BLAKE2b-256 1fa28b7c0ca8a513141aad6a27a5cc7e07fc1f5e2753530893117bda90f25084

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de707f4d412c8550ee0dd073a587046d4dd56a100e96b3ea3167d30b88821798
MD5 afc94a623d474e4ff3d46a36d8ad55cc
BLAKE2b-256 b7aab64a1553f197b08122bf08d51bb13b9a6b05c1d19f6b2073adcae90161e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ebc4dd996e455dfc08984674bfe9646891894604390c3ac24eb13eef847929d
MD5 473799f28a3a0ad8a02cbd7d7b9f4aed
BLAKE2b-256 c9906ff3fe6e2a376836540c9af1880bdae44c5a40bd2d3e561d0f4f5a2558cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 307.3 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.2.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 607c9b017896e4378362859939feeba32a5c3c2c1b1cde3c354dc553535b7fea
MD5 d88cbd2185fd9e0c47e2b33ecef2ca2f
BLAKE2b-256 4597aba4dae6727e320fd1796bc3caadaa81dd752e9726e0564328136d7fa5be

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 328.9 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.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4fdc9eb21a0f3ba2cec9cfb58c4796e283ed07d8752c0d0a6b6d6c3e3836eb51
MD5 041e794315a20b7b5fd26c27b10f04b6
BLAKE2b-256 8753174b4998aa8d863d5cbbe9b70a5b93d5d1258e02f37db470d945b9d96be3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7c34bcd62553b2dd34af8bcc7baa2b4839bf4d155a2938363bd417dfbfe059f9
MD5 786bef7b43f283e121cf79e4f7614de8
BLAKE2b-256 5e72323a1e03836be71221f2ac18c0e670fd735b22acd1996d3787002602915b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 76b1dab45ebb4f4d12326c3ac29b782de32704d632611ccad9d789543354f19c
MD5 c8f73aad8e800c5f59439a3d06dfd73a
BLAKE2b-256 4970f2b7cb140d47869dd7ae275d1b2be0e804c39f21cdbdeedfbe59a8425a1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b12bf81b918047e797b232c3eb4cd97f84998ae3c551b4e0c3620f8f7976a0a3
MD5 fc6f9054f39c80110e9aed151075ea2a
BLAKE2b-256 d7cec5c5f4eb0d5ff97f1db5988902daea90426da1f80ece5718ba8ccf5cb201

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 307.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.2.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 71a596782694fda49fe87a253a2c19c01f413c4e058297af34587ad9f41a0c1d
MD5 c9ff4cddbf3b0feb5baebd4470d4d5c7
BLAKE2b-256 38cd421558e707beb952c7cb2e0be6ab21e7b892ce69a1b655db040e7cd10979

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 329.2 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.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 445f82372a3cda63461af439402bbb54fd8fefd9c1d14581ab00bdd68ff7ef04
MD5 3eaa44ae5621150f75cba8d58ad9269d
BLAKE2b-256 82c51363f1b30a504ef7724fa826bd1a5f93150054461b8af26741dc04490a8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ca39dd91afb0bf89ef80df3cfae1757348d793b8cfb9b3086b382f429b977c2
MD5 556fd30161f133b0788fe491869c38e6
BLAKE2b-256 b90812a8610bd3e6956b23190a06a7d7f3d95af4f44932acd448118d73a59917

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 11031dabb8dbd7f35dc3ef9f34f2bddb5f5e2fce2f720f3bff37d44d6c915f67
MD5 bfd2869d60da879ca3226ba487c0d5c9
BLAKE2b-256 7a4103d9e1f0f16ff4813d61599437663a15191e8b585374bba34edb9d0304f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6efd7790160d85289e65d44946841239c9171d36b46db08579cde8df83ecfd3e
MD5 9106cced917ded198e6222dc7bdcdaaa
BLAKE2b-256 e04f58b5d83f3d26f24263a2355ffcb5a1561292d0327ae498f652260d1a8a60

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 329.3 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.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 15c299edc9c4498cf829a24ab56134f0e62e614c3e516b5e491c0335668d6291
MD5 a73fca01369de8e3a931ab5efd1ebd1e
BLAKE2b-256 ecf1f896bd41d963c8c20e2b95c606435e028c559c0ad10c6812cb462114960b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7e7bba543611c0cad9671280e058ab6aadfa21ba22da5f599d3a6611013b1b6
MD5 c7fbbea109f287da32f0bf266203f304
BLAKE2b-256 b4c7f7b4bc54d13930f947bc3aeaa85357f610928c9d4961191537ab29a6286c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ae9e8120770bc44e1270b474af99e353614c8918d6e8f43dd607ef5143538132
MD5 1b30ad1559760d11dbcec87158d56bba
BLAKE2b-256 e220fc6f94cb8422f784fc2c29b0e8c4bfa7f14ce1e09c5db8ef1ad60646a400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b42ad86da97b6fb807751ec56efde833a2d9b4ac896866becfefbcb24798926e
MD5 b348da2b19035ce2b6bb89db0e71c153
BLAKE2b-256 25cf5d07dc3ffc27c50c9c0b064c8508070cc7dbf4c50aba38b130139f7ad0ed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generaltmm-1.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 329.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.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0c69fa8e9cd13e0d02d17d772794ff4b23976bfa6c1644cf28f8f51ace671404
MD5 ff3864b272d26544b1f083881257ab53
BLAKE2b-256 5c4686efc69459f6020a769fd6257a67accfe3ce901693c7c4c499ac2284c232

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d30fb20b1b8ee7c3cd49b41f93e3e5d08d882d93181d6521f8eff31d12f19c8e
MD5 6ffd8213a4a2ca1e03515225c587edfa
BLAKE2b-256 c96fd707ce3b835ba4af5be4a02470262854b7c080b596d21641cb2526f32f96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b88d73b372bf44e8d4f658534d4994bb7d5f6f8ba016b01d2930939edd379714
MD5 d5e30a2ca6228b141f17c0be56d15414
BLAKE2b-256 7479a24e2d193b71fb763ca557e3438aaf8f62bd8594025f917a5b9651425b2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for generaltmm-1.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 936afa8d98b5cf3fc89c13f83577e9d50deb2f2a4dda9d237363e4c83b2bf839
MD5 7146677252a2b1f43821a8d278e54a99
BLAKE2b-256 bcbabf087526027bf1cb259bc408e2cbc3e1b1ccefe878f12d278f3f70a2a510

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