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).
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
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.
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.
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.
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.
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).
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.
- Ensure CI is green on the
masterbranch. - Create a new release on GitHub:
- Go to Releases → Draft a new release
- Create a new tag following PEP 440 (e.g.
v1.2.0) - Target the
masterbranch (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
- Publish the release — the workflow builds wheels for Linux (x86_64 + aarch64), Windows (AMD64 + ARM64), and macOS (ARM64) and uploads to PyPI.
License
Metadata
Release files for GeneralTmm 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| generaltmm-1.3.1.tar.gz | 1.2 MB | Details |
Built distributions (wheels)
Total release size: 77.5 MB
Release files / generaltmm-1.3.1.tar.gz
| Download URL | generaltmm-1.3.1.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
21c1d1d456b857cc5a0997601d9ef701d708b44a94d1c60a17bc6d93a6061ee5
|
|
BLAKE2b-256 checksum How to use checksums |
89b8179aacf8143a9435f5be4ae2fe236974f82fcc524c9d0037096218319ed3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp314-cp314-win_arm64.whl
| Download URL | generaltmm-1.3.1-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 323.8 kB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
200147c560009432fa1b7decf21f6bb9c0b13cd352186681b34b69eb19df1ffa
|
|
BLAKE2b-256 checksum How to use checksums |
6adc886652e13a4495a335be0173e522d41e86c3c788301a2767cba1297c1191
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp314-cp314-win_amd64.whl
| Download URL | generaltmm-1.3.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 346.5 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
be399c0c6870eddc6fa6ea0d4f82cf0d406146055fe55e26ff588ae29d953da2
|
|
BLAKE2b-256 checksum How to use checksums |
fda0188daef0ad9cf95d08e7f1da17d84b136ed32cd927173ea55ca352bed641
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | generaltmm-1.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a2294434a8976aaa95bc44bb26e838d5dbf271c909325f62e089f41c53d9c91d
|
|
BLAKE2b-256 checksum How to use checksums |
e4745cb9f9e805ce3452e6284901c84f734e99c0985cd21c67a3542a8ead219d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | generaltmm-1.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
6b02baf630434c61f19c85ea2080930becda3f4e9cb3d948c942ed44ec0baae3
|
|
BLAKE2b-256 checksum How to use checksums |
036d6b6c624aa0f7c37f8a402b8743723143ac00f75436d4d01e64b394886936
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | generaltmm-1.3.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 338.1 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
09900a90fa27af7bc0dc7fbd22baa4a1c73db67a99a179741ac6904d24a94c8d
|
|
BLAKE2b-256 checksum How to use checksums |
16884f6f00c7f728043fc28b7028de07e2eb13863e3cb8bc6359aa1c4422388b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp313-cp313-win_arm64.whl
| Download URL | generaltmm-1.3.1-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 315.4 kB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
137082ba8b729b7ef4acdea7ba39fc81a5c35fc37ada15315cfd33047adfe34c
|
|
BLAKE2b-256 checksum How to use checksums |
6d2a33e2b413c756fc0f0286bcfa01fce06e82438cbc4784866d6519e2a6b731
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp313-cp313-win_amd64.whl
| Download URL | generaltmm-1.3.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 338.7 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3cae61771fe6484701c7ec4426500342a0527b64a5d3b18846580b294b6178bb
|
|
BLAKE2b-256 checksum How to use checksums |
a9fb9e05a8eba1916477886d1a193e6c56ae84a90648be96c4b41d8722760797
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | generaltmm-1.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
b7b9ae1384cdfbd78b895b0b94dc6a6d4e6d0bd5bd3dc1fa30f75eb470b31e6d
|
|
BLAKE2b-256 checksum How to use checksums |
eeb420b3f11f662f495263b5f222f74ffbc058d836796c0731b3b0fc21e14228
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | generaltmm-1.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
e27772a71ac5fa93b5678bbb9111e294540ef25227b05af0ea0010ffba516441
|
|
BLAKE2b-256 checksum How to use checksums |
9ec14dd894d92e78d1725a77d2c172395d3c01733a9a75bac495e88033e2817d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | generaltmm-1.3.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 335.0 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
30e02f19c4c621cd8246e03c6a4d7f8325c81cbcd5b8d27203d8b7d6028509b6
|
|
BLAKE2b-256 checksum How to use checksums |
0ea2d1e494ce66aae60bff6127f8f94501ae420b1fe9beccf1e95efb275471db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp312-cp312-win_arm64.whl
| Download URL | generaltmm-1.3.1-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 315.8 kB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
34340ed02aed20959cc06278daf77ad0552cb5ce8f63d177f93bcc79c0c6e8bb
|
|
BLAKE2b-256 checksum How to use checksums |
7bac5f82cfc82dadcb39d8a82edaa93ca8d57302b5d895e892299a0f16c77933
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp312-cp312-win_amd64.whl
| Download URL | generaltmm-1.3.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 339.0 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c589cede6047709e7ffe37c4ca2981b3946cf290bd846074a9493341f5d9d8fc
|
|
BLAKE2b-256 checksum How to use checksums |
9449753d929aaa54919a1bf83246835ffaca4e12f8a31106002d7d66ba46f127
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | generaltmm-1.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5b3c8a0dfb7d625431be069ac25cf28089a88af56d00f0d2459653ca8656375e
|
|
BLAKE2b-256 checksum How to use checksums |
4115de1d0fef704637bb8b01905e3e9ff585a3bb2c7ce5c11874d3022648fed8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | generaltmm-1.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
5adc299291277abfe89ea93fdb48b3ecb85a8e993f5a8c5a0bfa9f2c7cee3769
|
|
BLAKE2b-256 checksum How to use checksums |
e983e78579d566fc36d71515f79a99f9d976350c8fc0523e4240e0b0fd799e3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | generaltmm-1.3.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 335.5 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3b8b6ca238fb632799321e28f43abae80bbbcf3e9a356fb617a853276f386fb4
|
|
BLAKE2b-256 checksum How to use checksums |
24aac072bfce990e30d8537d732ffacb3cb266693e1c405af7a199ade640ae20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp311-cp311-win_amd64.whl
| Download URL | generaltmm-1.3.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 339.2 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
693832b5f164ce2640bc3d31f885e72eed18e08d7eff47eff023498f9ff7b0e0
|
|
BLAKE2b-256 checksum How to use checksums |
940e73a3f97c5aa799c6a6dedbab49253bad88794f2c6d736997bf05dd6b68cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | generaltmm-1.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6b550bca33b4bbce7656eab6997f5b3086a536e69e8b81e7e6a8c4ac649de51c
|
|
BLAKE2b-256 checksum How to use checksums |
869157d4e1d9156b13d22e27e58e267ef992315603a2a62d01aa8d05a1eef24e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | generaltmm-1.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
cd892e4f896d10b85f1da099ccf8ea8fe1ca2cdf3d3e22d45729eb02dcbd0b0f
|
|
BLAKE2b-256 checksum How to use checksums |
eeaac6eb3207f71de9f4f1485ed66ba9b1c802f0e0617e264d29ef71d739df9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | generaltmm-1.3.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 335.3 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9de92263e81b5a017f93a061fb9bb778cb046942cdbd8f93ccfe786f070d15c3
|
|
BLAKE2b-256 checksum How to use checksums |
7f4b72e0a1b720a86cff681dcaff0a17717a383efe275d570e0be69545b30fef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp310-cp310-win_amd64.whl
| Download URL | generaltmm-1.3.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 339.1 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5b061a03e9f947d5985e8efa1fda7876f3ce4f9815ac8d29589e055feb4358d0
|
|
BLAKE2b-256 checksum How to use checksums |
5a5381b5d5d7ab75a3bc3d2e9f2d2592d6193be462cd68cbe28192215ea2def1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | generaltmm-1.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d1fc45e4795b9b97f89c9178957e3eca4f38a2401250ec6a03b4b9a12dbccfce
|
|
BLAKE2b-256 checksum How to use checksums |
6fe8110a79410c58ec200e12ae93fb284c1e1f918ed362f6c7b4e9d0b84704f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | generaltmm-1.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.2 MB |
| Tags | CPython 3.10 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
102f3b6531ad2380e94b82e54432c6c0f016eebfea8a828d8dd83407da99bbb7
|
|
BLAKE2b-256 checksum How to use checksums |
426dc49da24542f22ad461332a64667584a161b48c60fafc59de5df9206924fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / generaltmm-1.3.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | generaltmm-1.3.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 335.6 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e19a1bddf3c07d5b065cb5506d9776ff44213d28b0e9524b040550c25b647221
|
|
BLAKE2b-256 checksum How to use checksums |
4004b66f1843b95dce80ee87a0ace3b2585a12fb5e29dc9a665d00b866ff7ba4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|