Skip to main content
KuoEliassen Logo

A High-Performance Solver for the Kuo-Eliassen Equation

PyPI version DOI PyPI - Python Version PyPI - Downloads Tests codecov Build Status Platform License Python

A high-performance, production-ready solver for the Kuo-Eliassen equation describing meridional atmospheric circulation forced by diabatic heating and eddy fluxes. Combines optimized Fortran 90 backend with intuitive Python interface.

The Kuo-Eliassen Equation

The Kuo-Eliassen equation governs the zonal-mean meridional mass streamfunction response to forcing. This is an elliptic partial differential equation relating the streamfunction to diabatic heating and eddy momentum/heat flux convergences.

Governing Equation

The compact form of the Kuo-Eliassen equation:

$$\frac{f^2 g}{2\pi a \cos\phi} \frac{\partial^2\psi}{\partial p^2} + \frac{S^2 g}{2\pi a} \frac{\partial}{\partial\phi}\left(\frac{1}{a\cos\phi}\frac{\partial\psi}{\partial\phi}\right) = D$$

Complete expanded form (RHS fully decomposed):

$$f^2 \frac{g}{2\pi a\cos\phi} \frac{\partial^2\psi}{\partial p^2} + S^2 \frac{g}{2\pi a} \frac{\partial}{\partial\phi}\left(\frac{1}{a\cos\phi}\frac{\partial\psi}{\partial\phi}\right) = \frac{R}{p}\left(\frac{1}{a}\frac{\partial\overline{Q}}{\partial\phi} - \frac{1}{a}\frac{\partial}{\partial\phi}\left(\frac{1}{a\cos\phi}\frac{\partial(\overline{v'T'}\cos\phi)}{\partial\phi}\right)\right) + f\left(\frac{1}{a\cos^2\phi}\frac{\partial^2(\overline{u'v'}\cos^2\phi)}{\partial p \partial\phi} - \frac{\partial\overline{X}}{\partial p}\right)$$

Operator form (alternative notation):

$$\mathcal{L}(\psi) = D$$

where the elliptic operator $\mathcal{L}$ is defined as:

$$\mathcal{L}(\psi) = \frac{f^2}{2\pi a \cos\phi} g\frac{\partial^2}{\partial p^2} + \frac{S^2 g}{2\pi a \cos\phi} \frac{\partial}{\partial \phi}\left(\frac{1}{a\cos\phi}\frac{\partial}{\partial \phi}\right)$$

Component breakdown of RHS:

$$D = \underbrace{\frac{R}{p a}\frac{\partial\overline{Q}}{\partial\phi}}{\text{Diabatic Heating}} - \underbrace{\frac{R}{pa}\frac{\partial}{\partial\phi}\left(\frac{1}{a\cos\phi}\frac{\partial(\overline{v'T'}\cos\phi)}{\partial\phi}\right)}{\text{Eddy Heat Flux}} + \underbrace{\frac{f}{a\cos^2\phi}\frac{\partial^2(\overline{u'v'}\cos^2\phi)}{\partial p \partial\phi}}{\text{Eddy Momentum}} - \underbrace{f\frac{\partial\overline{X}}{\partial p}}{\text{Friction}}$$

Meridional velocity diagnostic:

$$\bar{v} = -\frac{1}{a}\frac{\partial\psi}{\partial p}$$

Vertical velocity diagnostic (from continuity):

$$\bar{\omega} = -\frac{1}{a\cos\phi}\frac{\partial(\psi\cos\phi)}{\partial\phi}$$

where:

  • ψ — meridional mass streamfunction [kg/s]
  • f = 2Ω sin(φ) — Coriolis parameter [s⁻¹]
  • Ω — Earth's rotation rate = 7.29 × 10⁻⁵ [rad/s]
  • a — Earth's radius ≈ 6.371 × 10⁶ [m]
  • φ — latitude [rad]
  • p — pressure [Pa]
  • g — gravitational acceleration ≈ 9.81 [m/s²]
  • S² — static stability [s⁻²]
  • R — specific gas constant ≈ 287 [J/(kg·K)]
  • $\overline{Q}$ — zonal-mean diabatic heating rate [K/s]
  • $\overline{v'T'}$ — meridional eddy heat flux [K·m/s]
  • $\overline{u'v'}$ — eddy momentum flux [m²/s²]
  • $\overline{X}$ — friction/dissipation function [K/s]
  • Overbars represent zonal and monthly mean, and primes represent deviations from zonal and montly mean

Static Stability

The static stability parameter $S^2$ characterizes atmospheric resistance to vertical motion and is defined as:

$$S^2 = -\frac{1}{\rho\theta}\frac{\partial\theta}{\partial p}$$

Alternatively, in terms of absolute temperature:

$$S^2 = -\left( \frac{R_d}{p} \right) \left[ \frac{\partial T}{\partial p} - \left( \frac{R_d}{c_p} \right) \frac{T}{p} \right]$$

where:

  • ρ — air density [kg/m³]
  • θ — potential temperature [K]
  • T — absolute temperature [K]
  • c_p — specific heat at constant pressure ≈ 1005 [J/(kg·K)]
  • g — gravitational acceleration ≈ 9.81 [m/s²]
  • $\frac{\partial\theta}{\partial p}$ — vertical potential temperature gradient [K/Pa]
  • $\frac{\partial T}{\partial p}$ — vertical absolute temperature gradient [K/Pa]

Example Solution

The solver produces meridional streamfunction fields that reveal Hadley and Ferrel cell circulations:

Example Kuo-Eliassen solution

Meridional mass streamfunction and Kuo-Eliassen equation solution

Features

  • Optimized Fortran Backend: Core solver implemented in production-grade Fortran 90 with advanced numerical methods
  • Component Decomposition: Separate diagnostic contributions from latent heating, radiative heating, eddy heat flux, and eddy momentum flux
  • Flexible Interface: NumPy and xarray-compatible APIs for seamless integration with scientific workflows
  • Cross-Platform Support: Pre-built wheels for Windows, macOS (Apple Silicon), and Linux
  • Extensively Tested: >90% code coverage with comprehensive test suite
  • High Performance: Dual solver architecture with LU decomposition (exact) and SOR (memory-efficient iterative)
  • Numerical Robustness: Robust handling of geometric singularities near poles (requires grid excluding exact $\pm 90^\circ$)
  • Solver Flexibility: Choose between direct sparse LU solver or optimized SOR with configurable relaxation parameters

Installation

Pre-built binary wheels are available for Python 3.9-3.13 on all major platforms:

pip install kuoeliassen

No compiler required! Wheels are provided for:

  • Linux: x86_64 (manylinux_2_28)
  • macOS: arm64 (Apple Silicon M1/M2/M3)
  • Windows: x86_64

From Source (Development)

If you want to contribute or modify the code:

  1. Prerequisites: Install a Fortran compiler

    • Windows: conda install -c conda-forge gcc-gfortran -y
    • macOS: brew install gcc
    • Linux: sudo apt-get install gfortran (Ubuntu/Debian)
  2. Clone and install:

    git clone https://github.com/QianyeSu/KuoEliassen.git
    cd KuoEliassen
    pip install -e .
    

Solver Methods

KuoEliassen provides two high-performance numerical solvers:

1. LU Decomposition (Default)

  • Method: Direct sparse matrix solver using SuperLU
  • Pros: Exact solution (within machine precision), guaranteed convergence
  • Cons: Higher memory usage for large grids
  • Best for: Small to medium grids (< 100×100), when precision is critical
result = solve_ke(v, temperature, vt_eddy, vu_eddy, pressure, latitude,
                  solver='lu')  # Default

2. SOR (Successive Over-Relaxation)

  • Method: Iterative relaxation solver
  • Pros: Low memory footprint, excellent for large grids, tunable convergence
  • Cons: Requires omega parameter tuning for optimal performance
  • Best for: Large grids, production runs, memory-constrained environments
result = solve_ke(v, temperature, vt_eddy, vu_eddy, pressure, latitude,
                  solver='sor',
                  omega=1.8,      # Relaxation factor (1.0-2.0, default=1.8)
                  tol=1e-8,       # Convergence tolerance (default=1e-8)
                  max_iter=50000) # Maximum iterations (default=50000)

Omega Parameter Tuning:

The optimal relaxation factor ω depends on your grid geometry:

  • ω = 1.0: Gauss-Seidel (slow but stable)
  • ω = 1.5-1.9: Typical optimal range for atmospheric grids
  • ω → 2.0: Faster convergence but risk of divergence

Use examples/optimize_sor_omega.py to find the optimal ω for your data:

cd examples
python optimize_sor_omega.py

Example output:

Optimal Omega: 1.85
Minimum iterations: 675
Time cost: 0.0222 s

Quick Start

Basic Usage: Solve for Streamfunction

import numpy as np
import xarray as xr
from kuoeliassen import solve_ke

# Load atmospheric data from NetCDF file
# IMPORTANT: Exclude poles to avoid singularities
data = xr.open_dataset("example_data.nc").sel(lat=slice(-89.9, 89.9))

# Extract variables from dataset
# Assuming dimensions are (time, pressure, latitude)
v = data['v'].values                    # Mean meridional wind [m/s]
temperature = data['temperature'].values  # Temperature field [K]
vt_eddy = data['vt_eddy'].values        # Eddy heat flux v'T' [K⋅m/s]
vu_eddy = data['vu_eddy'].values        # Eddy momentum flux u'v' [m²/s²]
diabatic_heating = data['diabatic_heating'].values  # Total heating [K/s]

# Extract coordinate arrays (must be 1D)
pressure = data['pressure'].values      # Pressure levels [Pa]
latitude = data['latitude'].values      # Latitude [degrees]

# Solve Kuo-Eliassen equation for each time step
result = solve_ke(
    v, temperature, vt_eddy, vu_eddy,
    pressure, latitude,
    heating=diabatic_heating,
    solver='lu'  # or 'sor' for iterative solver
)

# Access results
psi_total = result['PSI']               # Total streamfunction [kg/s]
psi_d = result['D']                     # Total RHS forcing

Component Decomposition: Isolate Individual Forcings

# Separate radiative and latent heating contributions
result = solve_ke(
    v_mean, temperature, vt_eddy, vu_eddy, pressure, latitude,
    rad_heating=rad_heating,        # Radiative heating [K/s]
    latent_heating=latent_heating   # Latent heating from convection [K/s]
)

# Examine component-wise circulation response
psi_total = result['PSI']          # Total circulation
psi_rad = result['PSI_rad']        # Radiative forcing response
psi_latent = result['PSI_latent']  # Latent heating response
psi_vt = result['PSI_vt']          # Eddy heat flux response
psi_vu = result['PSI_vu']          # Eddy momentum flux response

Using xarray for Labeled Data

import xarray as xr
from kuoeliassen import solve_ke_xarray

# Load your atmospheric data (must have pressure and latitude dimensions)
ds = xr.open_dataset('atmospheric_data.nc')

# Solve with automatic coordinate handling
result_ds = solve_ke_xarray(
    ds['v_mean'], ds['temperature'], ds['vt_eddy'], ds['vu_eddy'],
    heating=ds['heating'],
    pressure_dim='pressure', latitude_dim='latitude'  # Specify if needed
)

# Result is an xarray Dataset with proper coordinates and attributes
psi = result_ds['PSI']
print(psi)  # Full metadata preserved
psi.plot()  # Easy visualization

Platform Support

Platform Python Versions Architecture Status
Linux 3.9 - 3.13 x86_64 ✅ Tested
macOS 3.9 - 3.13 arm64 (M1/M2/M3) ✅ Tested
Windows 3.9 - 3.13 x86_64 ✅ Tested

Requirements

  • Python: ≥ 3.9
  • NumPy: ≥ 1.24.0
  • SciPy: ≥ 1.7.0
  • xarray: ≥ 0.19.0 (optional, for labeled array interface)

Development Requirements

For building from source, you'll need:

  • A Fortran compiler: gfortran, ifort, or flang
  • Meson build system
  • NumPy's f2py (included with NumPy)

License

This project is licensed under the BSD-3-Clause License - see the LICENSE file for details.

Citation

If you use KuoEliassen in your research, please cite:

@article{Su2025,
  author = {Su, Q. and Liu, C. and Zhang, Y. and Qiu, J. and Li, J. and Xue, Y. and Cao, N. and Liao, X. and Yang, K. and Zheng, R. and Liang, Z. and Jin, L. and Huang, K. and Jin, K. and Zhou, N.},
  title = {Consistency of Changes in the Ascending and Descending Positions of the Hadley Circulation Using Different Methods},
  journal = {Atmosphere},
  year = {2025},
  volume = {16},
  number = {4},
  pages = {367},
  doi = {10.3390/atmos16040367}
}

@software{kuoeliassen2025,
  author = {Su, Qianye},
  title = {KuoEliassen: A High-Performance Solver for the Kuo-Eliassen Equation},
  year = {2025},
  publisher = {Zenodo},
  doi = {10.5281/zenodo.18060064},
  url = {https://doi.org/10.5281/zenodo.18060064}
}

Contact

For questions, bug reports, or feature requests, please open an issue on GitHub.

Acknowledgments & References

This solver implements the Kuo-Eliassen equation, a fundamental tool in atmospheric dynamics for understanding meridional circulation:

  • Su, Q., Liu, C., Zhang, Y., Qiu, J., Li, J., Xue, Y., Cao, N., Liao, X., Yang, K., Zheng, R., Liang, Z., Jin, L., Huang, K., Jin, K., & Zhou, N. (2025). Consistency of Changes in the Ascending and Descending Positions of the Hadley Circulation Using Different Methods. Atmosphere, 16(4), 367. https://doi.org/10.3390/atmos16040367
  • Kuo, H.-L. (1956). Forced and free meridional circulations in the atmosphere. J. Atmos. Sci., 13, 561–568.
  • Kim, H.-K. & Lee, S. (2001). Hadley cell dynamics in a primitive equation model. Part I: axisymmetric flow. J. Atmos. Sci., 58, 2845–2858.
  • Chemke, R. & Polvani, L. M. (2019). Opposite tropical circulation trends in climate models and in reanalyses. Nat. Geosci., 12, 528–532.
  • Pikovnik, M., Zaplotnik, Ž, Boljka, L. & Žagar, N. (2022). Metrics of the Hadley circulation strength and associated circulation trends. Weather Clim. Dyn., 3, 625–644.
  • Held, I. M. & Zurita-Gotor, P. (2025). Misuse of Kuo–Eliassen Equation in Studies of the Climatological Mean Meridional Circulation. J. Atmos. Sci., 82, 1765–1766.

The numerical implementation employs:

  • SOR (Successive Over-Relaxation) iterative solver for the elliptic operator
  • Centered finite differences for spatial derivatives with pole-aware boundary handling
  • Fortran 90 for high performance and portability

Metadata

Release files for KuoEliassen 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for KuoEliassen 0.2.4
File
kuoeliassen-0.2.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
kuoeliassen-0.2.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
kuoeliassen-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
kuoeliassen-0.2.4-cp314-cp314-macosx_15_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 15.0+ x86-64 Details
kuoeliassen-0.2.4-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details
kuoeliassen-0.2.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
kuoeliassen-0.2.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
kuoeliassen-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
kuoeliassen-0.2.4-cp313-cp313-macosx_15_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 15.0+ x86-64 Details
kuoeliassen-0.2.4-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
kuoeliassen-0.2.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
kuoeliassen-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
kuoeliassen-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
kuoeliassen-0.2.4-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details
kuoeliassen-0.2.4-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
kuoeliassen-0.2.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
kuoeliassen-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
kuoeliassen-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
kuoeliassen-0.2.4-cp311-cp311-macosx_15_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 15.0+ x86-64 Details
kuoeliassen-0.2.4-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
kuoeliassen-0.2.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
kuoeliassen-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
kuoeliassen-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
kuoeliassen-0.2.4-cp310-cp310-macosx_15_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 15.0+ x86-64 Details
kuoeliassen-0.2.4-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details
kuoeliassen-0.2.4-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
kuoeliassen-0.2.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
kuoeliassen-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
kuoeliassen-0.2.4-cp39-cp39-macosx_15_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 15.0+ x86-64 Details
kuoeliassen-0.2.4-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details

Total release size: 41.3 MB

Release files / kuoeliassen-0.2.4-cp314-cp314-win_amd64.whl

Download URL kuoeliassen-0.2.4-cp314-cp314-win_amd64.whl
Size 1.9 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
926d7ee9d493e541a04d4d71c2ccb5b48abae73217b6aa5370c8090f7863e1e4
BLAKE2b-256 checksum
How to use checksums
3ad251dff011bc33517ff85eff24f7ef2e5cdc435eeec138a022c84c78493cff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL kuoeliassen-0.2.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d79dd960e6792ba357f22030c2a2978220df82db76aa1ebd0aa098ff36d77798
BLAKE2b-256 checksum
How to use checksums
81bad491363a6ca82278e7821c7de37897bc90dbd631a60e4abfadee18e8a476
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL kuoeliassen-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.1 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
df0512ebb3604c83424f76d60a386ba91b085d07d829233c1b6da309833f7490
BLAKE2b-256 checksum
How to use checksums
7999b35d6acc3652c810fae7addb1558eb5bff7f17f641492cab4b5af0bc5ddf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp314-cp314-macosx_15_0_x86_64.whl

Download URL kuoeliassen-0.2.4-cp314-cp314-macosx_15_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.14 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
002037de9a6dd153bc2d9342640cdff988f58272bde44a3a387aae7cd845df8c
BLAKE2b-256 checksum
How to use checksums
cbd59d0a1a1e60497f431aa56830f65f69eb301ba8df46e98a35404adfa194a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp314-cp314-macosx_14_0_arm64.whl

Download URL kuoeliassen-0.2.4-cp314-cp314-macosx_14_0_arm64.whl
Size 1.0 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
45ef822030c2e6309945f719b698cd6042ad0781485fbff0df473ef0217eba1d
BLAKE2b-256 checksum
How to use checksums
90f76939928a7e693724615a29c6997e4c861883455afc74b34180c0f82b6fb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp313-cp313-win_amd64.whl

Download URL kuoeliassen-0.2.4-cp313-cp313-win_amd64.whl
Size 1.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
8d602a1d63a8059c56da010290d28a782eec3d66b3ff36eb0d3652d23159c423
BLAKE2b-256 checksum
How to use checksums
cbfabbce9c8b5f2a60380a54e0148cfadc054187ed5928ddb9d800805ab8966c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL kuoeliassen-0.2.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
901c7bbd043e4a5dcbd6da922519089c51bcd188a7b0f77f8cbdf95e17c36b05
BLAKE2b-256 checksum
How to use checksums
99e00b812593c8290c3282edc9335fd52865899bd6ed9a2347662d5b8fce95e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL kuoeliassen-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c270e19dcab65eb7fb14853766bb7194633c2b88460e9f6618a65733a0f050c6
BLAKE2b-256 checksum
How to use checksums
aac58b8b0d920661a553bc519f1cd47032f6e499d96a866a61bafb7619fc57e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp313-cp313-macosx_15_0_x86_64.whl

Download URL kuoeliassen-0.2.4-cp313-cp313-macosx_15_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
5f23e29c2c133ce58c60212bb57c90f496052e623ed4a50b10bf718b55f256fb
BLAKE2b-256 checksum
How to use checksums
886efa3e9102ebdddbb7f4bb3cce1fb374c278b03ba2a066149604606894fca0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp313-cp313-macosx_14_0_arm64.whl

Download URL kuoeliassen-0.2.4-cp313-cp313-macosx_14_0_arm64.whl
Size 1.0 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
0ee18743fbe28b6e103355488b91d542024a3f6636cb019522ca20068994d12f
BLAKE2b-256 checksum
How to use checksums
8ee5d1f7c5f3c0a73df8a31398e755c318007eea8358a123e4fea6d3432efeb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp312-cp312-win_amd64.whl

Download URL kuoeliassen-0.2.4-cp312-cp312-win_amd64.whl
Size 1.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f700422749dba18955bb93270915ac0f40272dde5226e8a81951ce8b64b8c728
BLAKE2b-256 checksum
How to use checksums
9da5a8896474f5627325ccb34c658f2a23e5825db7ac3ca72ce2d772603ad2c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL kuoeliassen-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
74caa54ae70886b2e9248fc69c9686a118fa261a4a09cb398cf2e789db8e21c3
BLAKE2b-256 checksum
How to use checksums
24648da98894ce1ace8cc8b6cdf88312fbe0c06d0e5519b317a6f6233b0484a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL kuoeliassen-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3ceb2ca93a605d37a240f086b6ded967489182b4eb43c79ab78aa9d4ac3d519a
BLAKE2b-256 checksum
How to use checksums
5b636884d555e8ae549de44cb4c5a204b0d3e0e91e340cc9f6e782d522db696f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp312-cp312-macosx_15_0_x86_64.whl

Download URL kuoeliassen-0.2.4-cp312-cp312-macosx_15_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
25014ed9287e8b3815fabf03490a9eb3224de100c3c32c9f1796bf44de04f337
BLAKE2b-256 checksum
How to use checksums
c5225e9f2363364f87d5888964fb4ce73d1882cc056ebaad0fb4aff595dae2d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp312-cp312-macosx_14_0_arm64.whl

Download URL kuoeliassen-0.2.4-cp312-cp312-macosx_14_0_arm64.whl
Size 1.0 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
8b73883c8f745059579403b1010bcdb703c7b435761bfbaef5f3be6065570b0e
BLAKE2b-256 checksum
How to use checksums
679a1d975aae4222b79bf0cd6cc176b2535629b7d7b922ec68f978cedf7c4a3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp311-cp311-win_amd64.whl

Download URL kuoeliassen-0.2.4-cp311-cp311-win_amd64.whl
Size 1.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
9e6b48251d3782e99d2feb228ef6d3c2af8c38a1edb834bebc84021072264978
BLAKE2b-256 checksum
How to use checksums
9261d7813515cdb75725a2562fe9e84b9c924621120408eb6d20a4a336bc105a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL kuoeliassen-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9635ee65dde6607dd649804de4340d7bc6e14aea33ca0d8813ce4795fe88086b
BLAKE2b-256 checksum
How to use checksums
ead1999e20a802dd98ae5e982a5ef3eb3148c11beee1fe6149bfdd46e4d9d24d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL kuoeliassen-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c2aa0fcd4fc13f466b0d40f0becd8f95b526c34f8770a4e7f98c50b98d034159
BLAKE2b-256 checksum
How to use checksums
59f44eb965d8041f80c2b9e8846d5c74618d9486b22237aa91db48b55dcee762
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp311-cp311-macosx_15_0_x86_64.whl

Download URL kuoeliassen-0.2.4-cp311-cp311-macosx_15_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
5d81dbdccd586868b42437d01063ec057b8478987dcb1621864f9ee80a63ee4c
BLAKE2b-256 checksum
How to use checksums
01e2bb8063fd8a9268a1bf02c293a2fe4b69375a9a636f42b8664e7432ca6e7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp311-cp311-macosx_14_0_arm64.whl

Download URL kuoeliassen-0.2.4-cp311-cp311-macosx_14_0_arm64.whl
Size 1.0 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
6caf73d77da4d7d3ca6acdded33994b70ee78893ddcac65a21fc5a14fb3a9fed
BLAKE2b-256 checksum
How to use checksums
3988b78f9e78d4dc2b461ae433ff1e966cea7c1198775f044f2944c59d95ac45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp310-cp310-win_amd64.whl

Download URL kuoeliassen-0.2.4-cp310-cp310-win_amd64.whl
Size 1.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
fb8862f113ad495e229c860c312807fb1cf497102c06728fc494200a8dd4b874
BLAKE2b-256 checksum
How to use checksums
1d94424ad3509e4e9612e0064d2d8c2963533c79b4c85a3269fc5eec12c38f39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL kuoeliassen-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
95834a69187a0dc8c98670ed15994b37dcc3f5e70e0f281d27e1bdd2f499345d
BLAKE2b-256 checksum
How to use checksums
141520f900b5d4039c9550a4f87fcfec6508383d5623eb29dbc1646cb86893ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL kuoeliassen-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
593bded6e217e895ef17695d013251b9dda238a4fe7ce56ae23b2bbdb9a3c32f
BLAKE2b-256 checksum
How to use checksums
510643c9fe3e64b4a7af67589f0b2d215c5e6ef0303cba2ba25af1d1a44827ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp310-cp310-macosx_15_0_x86_64.whl

Download URL kuoeliassen-0.2.4-cp310-cp310-macosx_15_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
ee26785da17cb3a2201170d1297fc229e7faeca57fc0a70670147742db52e3a1
BLAKE2b-256 checksum
How to use checksums
daff1781f1263cbce832e6bfdaf556602f97945dfc79d344846addf1d70ef717
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp310-cp310-macosx_14_0_arm64.whl

Download URL kuoeliassen-0.2.4-cp310-cp310-macosx_14_0_arm64.whl
Size 1.0 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ad2e902804217e80faa59710ff63baae7e1d5e60c71c5e543a7d94c77638df82
BLAKE2b-256 checksum
How to use checksums
c4b2d9c1f0a0e5598d8081127266b08bb5633539224a3082b23819e111bb48af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp39-cp39-win_amd64.whl

Download URL kuoeliassen-0.2.4-cp39-cp39-win_amd64.whl
Size 1.8 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
56756a396b99175d50bbbd1ac8a12d7c9b80f2d58d8360c499db6c66fe6ff573
BLAKE2b-256 checksum
How to use checksums
687bf046779ab166248c7ab5ee8c83b4ede3b78f9286bdfb01167cab4527dc0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL kuoeliassen-0.2.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fda93187708716ff311edee707d42ac74544f531207790d7196d671a76bf04b1
BLAKE2b-256 checksum
How to use checksums
a233895614ef2dc0110a598596a4a9abf382c5db4a5607ccb7da76bf63f3d63b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL kuoeliassen-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.1 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
903e3ac04a61f5d1f529080fe9e7ccb63cf2075b3f71fb968aa4e63fdcd633ab
BLAKE2b-256 checksum
How to use checksums
933e25b69f5554face49229afd903a831a784377322364027e0e7274ffbfa261
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp39-cp39-macosx_15_0_x86_64.whl

Download URL kuoeliassen-0.2.4-cp39-cp39-macosx_15_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
a6cd52cbca73425256bffe7685902ddbf94b570b4c753627fe39d8c1bc0a3ec8
BLAKE2b-256 checksum
How to use checksums
6daaacbc9cbdcc5530594c907c7028b6684fedaaa7a47db084b9c6509c039868
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / kuoeliassen-0.2.4-cp39-cp39-macosx_14_0_arm64.whl

Download URL kuoeliassen-0.2.4-cp39-cp39-macosx_14_0_arm64.whl
Size 1.0 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
c349971129ce919db5db07a69ba67b0e70ae774e0177cec53da44dd776e9929f
BLAKE2b-256 checksum
How to use checksums
a9446ee8e437165622e1592aa425204a086efe998a4490fe3efa2b61bdcfc640
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.2.4 This release

30 release files

0.2.3

18 release files

0.2.2

18 release files

0.2.1

15 release files

0.2.0

15 release files

0.1.0

20 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page