KuoEliassen: A High-Performance Solver for the Kuo-Eliassen Equation
Project description
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:
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
From PyPI (Recommended)
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:
-
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)
- Windows:
-
Clone and install:
git clone https://github.com/QianyeSu/KuoEliassen.git cd KuoEliassen pip install -e .
[!IMPORTANT] Grid Selection: The input latitude grid must not include the exact poles ($\pm 90^\circ$). The Kuo-Eliassen equation contains $1/\cos\phi$ terms that are singular at the poles. Always slice your data (e.g.,
lat = slice(-89.9, 89.9)) before solving.
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 |
[!NOTE] macOS Intel (x86_64) Support: Binary wheels for macOS x86_64 (Intel processors) are no longer provided as of v0.2.0. If you have an Intel-based Mac, you can install from source:
git clone https://github.com/QianyeSu/KuoEliassen.git cd KuoEliassen pip install -e .Requires:
brew install gcc
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, orflang - 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
- Author: Qianye Su
- Email: suqianye2000@gmail.com
- Repository: https://github.com/QianyeSu/KuoEliassen
- Issue Tracker: https://github.com/QianyeSu/KuoEliassen/issues
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kuoeliassen-0.2.4-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
926d7ee9d493e541a04d4d71c2ccb5b48abae73217b6aa5370c8090f7863e1e4
|
|
| MD5 |
88aee661d81c8f5eaebe254ed831e08c
|
|
| BLAKE2b-256 |
3ad251dff011bc33517ff85eff24f7ef2e5cdc435eeec138a022c84c78493cff
|
File details
Details for the file kuoeliassen-0.2.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d79dd960e6792ba357f22030c2a2978220df82db76aa1ebd0aa098ff36d77798
|
|
| MD5 |
6512647bce7ed81cb25919f0fc103443
|
|
| BLAKE2b-256 |
81bad491363a6ca82278e7821c7de37897bc90dbd631a60e4abfadee18e8a476
|
File details
Details for the file kuoeliassen-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df0512ebb3604c83424f76d60a386ba91b085d07d829233c1b6da309833f7490
|
|
| MD5 |
219bcb349d142f21cad55ae962da1596
|
|
| BLAKE2b-256 |
7999b35d6acc3652c810fae7addb1558eb5bff7f17f641492cab4b5af0bc5ddf
|
File details
Details for the file kuoeliassen-0.2.4-cp314-cp314-macosx_15_0_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp314-cp314-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.14, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
002037de9a6dd153bc2d9342640cdff988f58272bde44a3a387aae7cd845df8c
|
|
| MD5 |
220b50dd28832933ec8338188d23ebba
|
|
| BLAKE2b-256 |
cbd59d0a1a1e60497f431aa56830f65f69eb301ba8df46e98a35404adfa194a6
|
File details
Details for the file kuoeliassen-0.2.4-cp314-cp314-macosx_14_0_arm64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp314-cp314-macosx_14_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.14, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45ef822030c2e6309945f719b698cd6042ad0781485fbff0df473ef0217eba1d
|
|
| MD5 |
70c8bbef2d80b0b42f9d8ca9047763c9
|
|
| BLAKE2b-256 |
90f76939928a7e693724615a29c6997e4c861883455afc74b34180c0f82b6fb2
|
File details
Details for the file kuoeliassen-0.2.4-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d602a1d63a8059c56da010290d28a782eec3d66b3ff36eb0d3652d23159c423
|
|
| MD5 |
2748c41d5a67bddc6b74385395c4f1a6
|
|
| BLAKE2b-256 |
cbfabbce9c8b5f2a60380a54e0148cfadc054187ed5928ddb9d800805ab8966c
|
File details
Details for the file kuoeliassen-0.2.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
901c7bbd043e4a5dcbd6da922519089c51bcd188a7b0f77f8cbdf95e17c36b05
|
|
| MD5 |
a17fb6675cbf1c78ff7fa90dded6785d
|
|
| BLAKE2b-256 |
99e00b812593c8290c3282edc9335fd52865899bd6ed9a2347662d5b8fce95e8
|
File details
Details for the file kuoeliassen-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c270e19dcab65eb7fb14853766bb7194633c2b88460e9f6618a65733a0f050c6
|
|
| MD5 |
320d1add11c7befad6d82098a180b3de
|
|
| BLAKE2b-256 |
aac58b8b0d920661a553bc519f1cd47032f6e499d96a866a61bafb7619fc57e0
|
File details
Details for the file kuoeliassen-0.2.4-cp313-cp313-macosx_15_0_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp313-cp313-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.13, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f23e29c2c133ce58c60212bb57c90f496052e623ed4a50b10bf718b55f256fb
|
|
| MD5 |
bad05f283de45c396c782fc9ab57edad
|
|
| BLAKE2b-256 |
886efa3e9102ebdddbb7f4bb3cce1fb374c278b03ba2a066149604606894fca0
|
File details
Details for the file kuoeliassen-0.2.4-cp313-cp313-macosx_14_0_arm64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp313-cp313-macosx_14_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.13, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ee18743fbe28b6e103355488b91d542024a3f6636cb019522ca20068994d12f
|
|
| MD5 |
d18ad7829c0708da573ba7f529c6ff67
|
|
| BLAKE2b-256 |
8ee5d1f7c5f3c0a73df8a31398e755c318007eea8358a123e4fea6d3432efeb1
|
File details
Details for the file kuoeliassen-0.2.4-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f700422749dba18955bb93270915ac0f40272dde5226e8a81951ce8b64b8c728
|
|
| MD5 |
5bae7143be9b86dce2c6056f6e08ffa4
|
|
| BLAKE2b-256 |
9da5a8896474f5627325ccb34c658f2a23e5825db7ac3ca72ce2d772603ad2c2
|
File details
Details for the file kuoeliassen-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74caa54ae70886b2e9248fc69c9686a118fa261a4a09cb398cf2e789db8e21c3
|
|
| MD5 |
f7147cebe150fddfcb8b28f3c10f74ae
|
|
| BLAKE2b-256 |
24648da98894ce1ace8cc8b6cdf88312fbe0c06d0e5519b317a6f6233b0484a7
|
File details
Details for the file kuoeliassen-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ceb2ca93a605d37a240f086b6ded967489182b4eb43c79ab78aa9d4ac3d519a
|
|
| MD5 |
88d20af306458520fbbddd197924c6ee
|
|
| BLAKE2b-256 |
5b636884d555e8ae549de44cb4c5a204b0d3e0e91e340cc9f6e782d522db696f
|
File details
Details for the file kuoeliassen-0.2.4-cp312-cp312-macosx_15_0_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp312-cp312-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.12, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25014ed9287e8b3815fabf03490a9eb3224de100c3c32c9f1796bf44de04f337
|
|
| MD5 |
b3b014ac3b9efc6a0663b4957c969dc8
|
|
| BLAKE2b-256 |
c5225e9f2363364f87d5888964fb4ce73d1882cc056ebaad0fb4aff595dae2d4
|
File details
Details for the file kuoeliassen-0.2.4-cp312-cp312-macosx_14_0_arm64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp312-cp312-macosx_14_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.12, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b73883c8f745059579403b1010bcdb703c7b435761bfbaef5f3be6065570b0e
|
|
| MD5 |
12156ee4216bdc4d92f9ce8333c6cd6f
|
|
| BLAKE2b-256 |
679a1d975aae4222b79bf0cd6cc176b2535629b7d7b922ec68f978cedf7c4a3f
|
File details
Details for the file kuoeliassen-0.2.4-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e6b48251d3782e99d2feb228ef6d3c2af8c38a1edb834bebc84021072264978
|
|
| MD5 |
955df247c813420dece055f26bd57f03
|
|
| BLAKE2b-256 |
9261d7813515cdb75725a2562fe9e84b9c924621120408eb6d20a4a336bc105a
|
File details
Details for the file kuoeliassen-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9635ee65dde6607dd649804de4340d7bc6e14aea33ca0d8813ce4795fe88086b
|
|
| MD5 |
b9ad4aad79d19f4488906079e3ea8ed8
|
|
| BLAKE2b-256 |
ead1999e20a802dd98ae5e982a5ef3eb3148c11beee1fe6149bfdd46e4d9d24d
|
File details
Details for the file kuoeliassen-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2aa0fcd4fc13f466b0d40f0becd8f95b526c34f8770a4e7f98c50b98d034159
|
|
| MD5 |
8b823a1b8914f8e8841505fc10c44a5f
|
|
| BLAKE2b-256 |
59f44eb965d8041f80c2b9e8846d5c74618d9486b22237aa91db48b55dcee762
|
File details
Details for the file kuoeliassen-0.2.4-cp311-cp311-macosx_15_0_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp311-cp311-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.11, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d81dbdccd586868b42437d01063ec057b8478987dcb1621864f9ee80a63ee4c
|
|
| MD5 |
8a4840be3c61418a25a843aead91aa8b
|
|
| BLAKE2b-256 |
01e2bb8063fd8a9268a1bf02c293a2fe4b69375a9a636f42b8664e7432ca6e7c
|
File details
Details for the file kuoeliassen-0.2.4-cp311-cp311-macosx_14_0_arm64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp311-cp311-macosx_14_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.11, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6caf73d77da4d7d3ca6acdded33994b70ee78893ddcac65a21fc5a14fb3a9fed
|
|
| MD5 |
87fde9413aaa87137096e855af541e8f
|
|
| BLAKE2b-256 |
3988b78f9e78d4dc2b461ae433ff1e966cea7c1198775f044f2944c59d95ac45
|
File details
Details for the file kuoeliassen-0.2.4-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb8862f113ad495e229c860c312807fb1cf497102c06728fc494200a8dd4b874
|
|
| MD5 |
82c0552d5b957b2a7b1a29abe07da849
|
|
| BLAKE2b-256 |
1d94424ad3509e4e9612e0064d2d8c2963533c79b4c85a3269fc5eec12c38f39
|
File details
Details for the file kuoeliassen-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95834a69187a0dc8c98670ed15994b37dcc3f5e70e0f281d27e1bdd2f499345d
|
|
| MD5 |
3b356bc48f000ccf49a399b71424d082
|
|
| BLAKE2b-256 |
141520f900b5d4039c9550a4f87fcfec6508383d5623eb29dbc1646cb86893ec
|
File details
Details for the file kuoeliassen-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
593bded6e217e895ef17695d013251b9dda238a4fe7ce56ae23b2bbdb9a3c32f
|
|
| MD5 |
1f65dada672be764e4cf71f00114019e
|
|
| BLAKE2b-256 |
510643c9fe3e64b4a7af67589f0b2d215c5e6ef0303cba2ba25af1d1a44827ea
|
File details
Details for the file kuoeliassen-0.2.4-cp310-cp310-macosx_15_0_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp310-cp310-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.10, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee26785da17cb3a2201170d1297fc229e7faeca57fc0a70670147742db52e3a1
|
|
| MD5 |
70be2a6332136c6368d30ea4c67c6dde
|
|
| BLAKE2b-256 |
daff1781f1263cbce832e6bfdaf556602f97945dfc79d344846addf1d70ef717
|
File details
Details for the file kuoeliassen-0.2.4-cp310-cp310-macosx_14_0_arm64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp310-cp310-macosx_14_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.10, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad2e902804217e80faa59710ff63baae7e1d5e60c71c5e543a7d94c77638df82
|
|
| MD5 |
aab1dae06f2c28756585d428b58164ea
|
|
| BLAKE2b-256 |
c4b2d9c1f0a0e5598d8081127266b08bb5633539224a3082b23819e111bb48af
|
File details
Details for the file kuoeliassen-0.2.4-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56756a396b99175d50bbbd1ac8a12d7c9b80f2d58d8360c499db6c66fe6ff573
|
|
| MD5 |
b5b5867bf198f50da7331b9c82112f95
|
|
| BLAKE2b-256 |
687bf046779ab166248c7ab5ee8c83b4ede3b78f9286bdfb01167cab4527dc0a
|
File details
Details for the file kuoeliassen-0.2.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fda93187708716ff311edee707d42ac74544f531207790d7196d671a76bf04b1
|
|
| MD5 |
57188ed5ce85ac0ecae0d634d82dfed5
|
|
| BLAKE2b-256 |
a233895614ef2dc0110a598596a4a9abf382c5db4a5607ccb7da76bf63f3d63b
|
File details
Details for the file kuoeliassen-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
903e3ac04a61f5d1f529080fe9e7ccb63cf2075b3f71fb968aa4e63fdcd633ab
|
|
| MD5 |
b1c4c105b72b75a2522b938221328947
|
|
| BLAKE2b-256 |
933e25b69f5554face49229afd903a831a784377322364027e0e7274ffbfa261
|
File details
Details for the file kuoeliassen-0.2.4-cp39-cp39-macosx_15_0_x86_64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp39-cp39-macosx_15_0_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.9, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6cd52cbca73425256bffe7685902ddbf94b570b4c753627fe39d8c1bc0a3ec8
|
|
| MD5 |
461ce0a4621881ca9aac0ba0c1cff66e
|
|
| BLAKE2b-256 |
6daaacbc9cbdcc5530594c907c7028b6684fedaaa7a47db084b9c6509c039868
|
File details
Details for the file kuoeliassen-0.2.4-cp39-cp39-macosx_14_0_arm64.whl.
File metadata
- Download URL: kuoeliassen-0.2.4-cp39-cp39-macosx_14_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.9, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c349971129ce919db5db07a69ba67b0e70ae774e0177cec53da44dd776e9929f
|
|
| MD5 |
a2c3937b75377b3e2031f9a7e152bf5f
|
|
| BLAKE2b-256 |
a9446ee8e437165622e1592aa425204a086efe998a4490fe3efa2b61bdcfc640
|