Github Actions status:
Coverage status:
Semi-analytical methods for plates, shells and stiffened panels
- Linear and non-linear static analyses, with field outputs of displacements, strains and stresses
- Linear buckling
- Vibration, with or without pre-stress
- Panel flutter using the piston theory
- Geometrically non-linear static analyses (postbuckling) using the Newton-Raphson method or the arc-length methods of Riks and Crisfield
- Dead or follower (hydrostatic) pressure loads, with the unsymmetric load stiffness of the follower pressure
- Multi-domain assemblies of plates, cylindrical shells, cylinders, stiffened panels, with the domains connected exactly with the null-space method, the default, or by penalty stiffnesses. Debonding defects or cohesive zone can be simulated
- Prescribed displacements and rotations imposed exactly with the null-space method,
MultiDomain(..., pd_method='null-space'), for displacement control in linear static, linear buckling and geometrically non-linear (Newton-Raphson, Riks, Crisfield) analyses, with the reaction forces; or by penalty stiffnesses, the default - CLPT, FSDT and TSDT kinematics for plates and cylindrical shells
- Donnell and Sanders-Koiter kinematics for cylindrical shells
The structural matrices are solved with structsolve.
Citing this library
Saullo G. P. Castro, Nathan D'Souza. (2026). Semi-analytical methods for plates, shells and stiffened panels (Version 0.12.0). Zenodo. DOI: https://doi.org/10.5281/zenodo.2541522.
Documentation
The documentation is available on: https://saullocastro.github.io/panels.
Installation
To get the latest version:
python -m pip install panels
Running in the browser with Pyodide
A WebAssembly wheel is published on PyPI for Pyodide
314 (CPython 3.14), such that panels runs in the browser, e.g. in
JupyterLite or in a web page with Pyodide. NumPy, SciPy and matplotlib come
with Pyodide, and micropip installs composites and structsolve from PyPI:
import micropip
await micropip.install("panels")
import io
from structsolve import lb
from panels.shell import Shell, load
s = Shell(a=0.6, b=0.4, stack=[0, 45, -45, 90], plyt=0.125e-3,
laminaprop=(142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 3.0e9), m=10, n=10)
s.Nxx = -1.
eigvals, eigvecs = lb(s.calc_kC(), s.calc_kG(), silent=True)
print('critical load: Nxx = %1.2f N/m' % -eigvals[0])
s.results['eigvals'] = eigvals
s.results['eigvecs'] = eigvecs
# saving to memory, since a web page has no file system
buf = io.BytesIO()
s.save(buf)
data = buf.getvalue()
# offering the file for download
from js import Blob, Object, URL, document
from pyodide.ffi import to_js
blob = Blob.new(to_js([data]), to_js({'type': 'application/zip'},
dict_converter=Object.fromEntries))
link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = 'plate.shell.zip'
link.click()
# loading the bytes back, e.g. from a file uploaded by the user
s2 = load(io.BytesIO(data))
In Pyodide the field outputs run serially, without OpenMP.
Saving and loading
Shell, StiffPanelBay and MultiDomain are saved with save() to a zip
file with the inputs in JSON and the arrays, such as the results, in NumPy's
.npy format, see panels.json_io. The files are independent of the Python
version, readable outside Python and safe to load from untrusted sources,
unlike pickle:
from panels.shell import load
s.name = 'plate'
s.save() # writes plate.shell.zip
s2 = load('plate')
The pickle files saved by older versions are no longer loaded, since a pickle
file can execute arbitrary code; one from a trusted source can be converted
by loading it with pickle.load() and saving the object again.
History
See CHANGELOG.md for the details of each version.
- version 0.12.0 (2026-10-14)
- Prescribed displacements imposed exactly with the null-space method,
MultiDomain(..., pd_method='null-space'), as inhomogeneous linear constraintsc = T c_r + c_p0 + lbd*c_p1: linear static, linear buckling, Newton-Raphson and arc-length analyses under displacement control, reactionsMultiDomain.reaction_pd()andMultiDomain.reaction_resultant(), also for a singleShell; prescribed rotations; the penalty method remains the default - BUG:
fkCld_xcteandfkCld_ycteplaced the penalty stiffnesses ofkuandkvat the rows and columns ofw - Requires
structsolve>=0.7.0
- Prescribed displacements imposed exactly with the null-space method,
- version 0.11.1 (2026-10-08)
- Saving and loading in a zip file with JSON and NumPy arrays, replacing pickle:
Shell.save(),StiffPanelBay.save(),MultiDomain.save(), also toio.BytesIO, andpanels.json_io - Pyodide support:
await micropip.install("panels")in the browser, and the whole test suite runs in Pyodide in GitHub Actions - Requires
composites>=0.9.21andstructsolve>=0.6.1
- Saving and loading in a zip file with JSON and NumPy arrays, replacing pickle:
- version 0.11.0 (2026-10-07)
- Follower (hydrostatic) pressure loads,
Shell.add_pressure_load(..., follower=True), with the unsymmetric load stiffnesskCfollowerinShellandMultiDomain - Theory documentation, verification tests and validation notebooks of the follower pressure
- Interactive 3D plots of multi-domain assemblies with plotly,
MultiDomain.plot3d() - Improved Cython and compiler flags
- TSDT uses
Laminate.DtsandLaminate.Fts, requirescomposites>=0.9.12andstructsolve>=0.5.0
- Follower (hydrostatic) pressure loads,
- version 0.9.0 (2026-09-24)
- Null-space connection, exact, new default, as alternative to penalty-based connection
- version 0.8.0 (2026-09-23)
- FSDT and TSDT for plate and cylindrical shells
- Sanders-Koiter for cylindrical shells
- Shell and Multidomain connections supporting FSDT, TSDT and Sanders-Koiter kinematics
- Many improvements in the documentation
- New tests based on literature
- BUG fixes on aerodynamic matrix of cylindrical shells and mass matrix of stiffener 1D
- version 0.7.1 (2026-09-21)
- Fixed the cohesive zone of the
MultiDomainconnection'SB_TSL', which could not capture the onset of failure of the DCB: tangential separation with the rotation of each panel, tractions with the uncorrected separation and separation correction as in the thesis of D'Souza (2024) - Consistent tangent of the cohesive zone,
MultiDomain.calc_kT_TSL(), and faster assembly of the'SB_TSL'secant stiffness - The kernels
fkCSB11_dmg,fkCSB12_dmgandfkCSB22_dmgtake the distancesdtanddbfrom each mid-surface to the interface - Validation of the cohesive zone against mode I DCB results in the
literature, in
notebooks/, with a convergence study - Fixed
StiffPanelBay.save()withcomposites>=0.9.0
- Fixed the cohesive zone of the
- version 0.6.21 (2026-09-18)
- Fixed the mass of the base of
BladeStiff2D, which was missing, and the section forces ofMultiDomain.force(), which lacked the Jacobian StiffPanelBay.calc_kA()sums the contribution of every panel, andcalc_kA,calc_cA,calc_fext,save,get_sizeanduvw_stiffenerofStiffPanelBayandShell.calc_cAno longer raiseShell.strain()andShell.stress()work for a plate withr=None- Line coverage of the tests raised from 67 % to 92 %
- Fixed
StiffPanelBay.add_paneland the partial-domain integration ofShell.calc_kC,calc_kGandcalc_kM - The limits
Shell.x1, x2, y1, y2of the integration domain default toNoneinstead of the sentinels-1and+1, which silently integrated the full domain for a limit at1.0and ignored a limit given on one side only; the old-1now raises - Fixed the
MultiDomainskin-base connections: the'SB'penalty was a hard-coded mm-unit value, the top and bottom panels depended on their order in the assembly, and the connection dictionaries were modified - Penalty constants of each
MultiDomainconnection can be given with'kt'and'kr' - Reproduction of Stamatelos and Labeas with plate domains only in
tests/multidomain/test_stamatelos_labeas_2023_multidomain.py, using everyMultiDomainconnection - Fixed the argument handling of the stiffness API: an invalid
corc_cteno longer reaches the nogil kernels, and a model that needs a radius raises instead of computing withr = 0 - Reproduction of Stamatelos and Labeas (Computation 2023, 11, 110) in
notebooks/stamatelos_labeas_2023.ipynb - Tangent stiffness matrix that is the exact derivative of the internal force vector, giving quadratic convergence to the Newton-Raphson method
ShellandMultiDomaincan be passed directly tostructsolve.Analysis, including the arc-length methods- Gauss-Legendre points and weights from
scipy.special.roots_legendre - Modules of the models renamed without the
_bardellsuffix, and the legacy_bardellmodel names removed frompanels.modelDB.db - Sphinx documentation with usage examples
- Fixed the mass of the base of
- versions 0.5.x
- Damaged multidomain connections
- up to version 0.3.x
- Multidomain methods for pristine structures
License
Distributed under the 3-Clause BSD license (https://raw.github.com/saullocastro/panels/main/LICENSE).
Contact: S.G.P.Castro@tudelft.nl
Metadata
Release files for panels 0.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| panels-0.12.0.tar.gz | 7.5 MB | Details |
Built distributions (wheels)
Total release size: 319.2 MB
Release files / panels-0.12.0.tar.gz
| Download URL | panels-0.12.0.tar.gz |
|---|---|
| Size | 7.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1dc9f2004e5eecc1c8a4d3f7aaa3f2b6817d4db198698d9067aa4a5f26c7e434
|
|
BLAKE2b-256 checksum How to use checksums |
69ef3a3b1df833402497c1f74c524ac6c43eac7d76cfbcda8f8ca482c0e0b14c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / panels-0.12.0-cp314-cp314-win_amd64.whl
| Download URL | panels-0.12.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
cb555ef8577aab1289671e1d2124552c9bd37c1b1bec47513f6ef0846ff7af6b
|
|
BLAKE2b-256 checksum How to use checksums |
2b64e0734a6fb1ec5929472058ca8931f4c17f30948d302ab9e68f04c1d38d28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / panels-0.12.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
| Download URL | panels-0.12.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.14 PyEmscripten 2026.0+ WebAssembly |
|
SHA-256 checksum How to use checksums |
b91678d058dae5b679fd127b0d48c7bcdcd5034a7ef0dc6664e15ff7fd4a58b7
|
|
BLAKE2b-256 checksum How to use checksums |
6eb99a7f9038f2035a6e6a81eb5b1c4d297f9db29b31af87c41695c79dd83722
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / panels-0.12.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.12.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ac7d41064c34f0c9d09c2d0a4d67a5057335762132d79c50e4d86439614b8700
|
|
BLAKE2b-256 checksum How to use checksums |
d55c66e4759d0b134bdd051583534ad1c09e5d5f5d3c469fd0c21ae8f11692f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / panels-0.12.0-cp314-cp314-macosx_10_15_universal2.whl
| Download URL | panels-0.12.0-cp314-cp314-macosx_10_15_universal2.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
62da1a43b1328a62ccf7b3fad5de4bb060af2accf7cae36afa811d21e1657256
|
|
BLAKE2b-256 checksum How to use checksums |
4b95e1d3ef59220804c436a72a7945ea439ee0b31d93daa157deffd0b1257ea4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / panels-0.12.0-cp313-cp313-win_amd64.whl
| Download URL | panels-0.12.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b83eb2cce157d65a386493ea0e108e05b36e96fdd8a55000dead6540cbcdb3a2
|
|
BLAKE2b-256 checksum How to use checksums |
b0fdd6ca99da8fa9428e047d53ae670b0f53a865de4f5f4d7b0a963ca1a3c399
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / panels-0.12.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.12.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
228c206c007881ef7a95fabd50c3c2493373764b1c6daa52dd2241d4e3a673f1
|
|
BLAKE2b-256 checksum How to use checksums |
c6d567d44238ef3594a08152601925310966d2c2461aad2b083d847b83a335ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / panels-0.12.0-cp313-cp313-macosx_10_13_universal2.whl
| Download URL | panels-0.12.0-cp313-cp313-macosx_10_13_universal2.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
cc700252dc02b9c61a4da9390dda718df13280245b9e925f3377c6e7ac1a7c43
|
|
BLAKE2b-256 checksum How to use checksums |
e10f48ff3e2ecbd9796563deffd459fbe59ac37cf40e26a98f35b58fa6a903d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / panels-0.12.0-cp312-cp312-win_amd64.whl
| Download URL | panels-0.12.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
040f3ce0ab13c90df2a91816ed491dddf1ec2044bd19ca9b288c227a6b63c8a4
|
|
BLAKE2b-256 checksum How to use checksums |
0138a25f3bae4f1294ada612a45fc5bf4230b82d344ddc685d721156c0fb05cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / panels-0.12.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.12.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3d68203b89ccc002e7a2146ef4cf6d944d128307327697247c30ff4736c80674
|
|
BLAKE2b-256 checksum How to use checksums |
fac5567f20ef9b2b79499e8b144a7deedc589767faab2bc61c909e85b4d4e2c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / panels-0.12.0-cp312-cp312-macosx_10_13_universal2.whl
| Download URL | panels-0.12.0-cp312-cp312-macosx_10_13_universal2.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
871c606ccd8fb2bd55aa8a89ced67023d1cd638fc0879a92027970ec5a4b7000
|
|
BLAKE2b-256 checksum How to use checksums |
cd3d87ad7f144451d47309e0bc1e513d4735810b0190d67564126561d68891fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / panels-0.12.0-cp311-cp311-win_amd64.whl
| Download URL | panels-0.12.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
df42b3c00f22dd05448d79998809b42b3dd642b92852b65403a5e00bf36410a0
|
|
BLAKE2b-256 checksum How to use checksums |
ef72a355f05ec33d9b1294530efdb5abf61ab3a909f694b24fdff0832e7a53cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / panels-0.12.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.12.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6e5f199115e14acba60c32e13347650aa3d3265ffd781630c3ee03110df46975
|
|
BLAKE2b-256 checksum How to use checksums |
0f7ad6d66c01b8888f0ddf5a1601253d260c38afc6018ebe748a758b1af5132b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / panels-0.12.0-cp311-cp311-macosx_10_9_universal2.whl
| Download URL | panels-0.12.0-cp311-cp311-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
d2a4496185f78031d9172822e7ce1b5ff28dd209e355af1fd6607914d294da23
|
|
BLAKE2b-256 checksum How to use checksums |
2fb1f519f9932c014729b1bf049bf78e3e830a0a77b1747a677fbbc8f4ef0500
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / panels-0.12.0-cp310-cp310-win_amd64.whl
| Download URL | panels-0.12.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0f0343bf6426513e7fc672d3047a39d16d665398aa12fcde724f488bc272b267
|
|
BLAKE2b-256 checksum How to use checksums |
4e3f0056b75bf8115bc50e325f6c07ac7b692d2c529fb4f590dc042a52da9049
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|
Release files / panels-0.12.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.12.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 35.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6149dae4a5615a8f643893d16e2ebc1fda690ff40ac410a9aecad2bda8e5b07c
|
|
BLAKE2b-256 checksum How to use checksums |
b32934a08e19c4569d941ac0ce6265bd389d2badd3304c9b67a7119ff272c888
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.22
|
Release files / panels-0.12.0-cp310-cp310-macosx_10_9_universal2.whl
| Download URL | panels-0.12.0-cp310-cp310-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
a87b06ee17ce2966fa3c5ddd67b11d1d0e4b4551661846dcb125fc65c4656c64
|
|
BLAKE2b-256 checksum How to use checksums |
ab79f3ca6663155f3e0745c954934c8155fc23371cd16c8dc81c9b7ef23415d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|
Release files / panels-0.12.0-cp39-cp39-win_amd64.whl
| Download URL | panels-0.12.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b39e6ca32fa04e47f9e9103870043193196d0b0cc08a0c1711698fd74c38fea8
|
|
BLAKE2b-256 checksum How to use checksums |
2577be0265029575436887482deb658fbd046d36440580a7a84710d811158a64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|
Release files / panels-0.12.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.12.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 35.4 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
db160b1013cbb25f55fdee6e9d612315f5c64993808f987cdd3ea2eacfd0c239
|
|
BLAKE2b-256 checksum How to use checksums |
3f539e11fd8ac1da51c160606a7fed051cd4b54c1c6666d74595a407aac5f5a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / panels-0.12.0-cp39-cp39-macosx_10_9_universal2.whl
| Download URL | panels-0.12.0-cp39-cp39-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
8285bf1bc99a2e57b07e42b9c8ff6b91698cd7ffe9487af5bbb48a9f74a10663
|
|
BLAKE2b-256 checksum How to use checksums |
05a57c6cf9bd6cb491d73f80def5bcab4bbb34bb4c2366a7415803f527136cf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|