# anaStruct 2D Frames and Trusses
[![Python tests](https://github.com/ritchie46/anaStruct/actions/workflows/test.yaml/badge.svg)](https://github.com/ritchie46/anaStruct/actions/workflows/test.yaml)
[![Documentation Status](https://readthedocs.org/projects/anastruct/badge/?version=latest)](http://anastruct.readthedocs.io/en/latest/?badge=latest)
![PyPI - Version](https://img.shields.io/pypi/v/anastruct)
![PyPI - Downloads](https://img.shields.io/pypi/dm/anastruct)
![Latest Release](https://img.shields.io/github/release-date/ritchie46/anaStruct)
![Commits since latest release](https://img.shields.io/github/commits-since/ritchie46/anaStruct/latest)
Analyse 2D Frames and trusses for slender structures. Determine the bending moments, shear forces, axial forces and displacements.
## Installation
For the actively developed version:
```
$ pip install git+https://github.com/ritchie46/anaStruct.git
```
Or for a release:
```
$ pip install anastruct
```
## Read the docs!
[Documentation](http://anastruct.readthedocs.io)
## Questions
Got a question? Please ask on [gitter](https://gitter.im/anaStruct/lobby).
## Includes
* trusses :heavy_check_mark:
* beams :heavy_check_mark:
* moment lines :heavy_check_mark:
* axial force lines :heavy_check_mark:
* shear force lines :heavy_check_mark:
* displacement lines :heavy_check_mark:
* hinged supports :heavy_check_mark:
* fixed supports :heavy_check_mark:
* spring supports :heavy_check_mark:
* q-load in elements direction :heavy_check_mark:
* point loads in global x, y directions on nodes :heavy_check_mark:
* dead load :heavy_check_mark:
* q-loads in global y direction :heavy_check_mark:
* hinged elements :heavy_check_mark:
* rotational springs :heavy_check_mark:
* non-linear nodes :heavy_check_mark:
* geometrical non linearity :heavy_check_mark:
* load cases and load combinations :heavy_check_mark:
* generic type of section - rectangle and circle :heavy_check_mark:
* EU, US, UK steel section database :heavy_check_mark:
## Examples
```python
from anastruct import SystemElements
import numpy as np
ss = SystemElements()
element_type = 'truss'
# Create 2 towers
width = 6
span = 30
k = 5e3
# create triangles
y = np.arange(1, 10) * np.pi
x = np.cos(y) * width * 0.5
x -= x.min()
for length in [0, span]:
x_left_column = np.ones(y[::2].shape) * x.min() + length
x_right_column = np.ones(y[::2].shape[0] + 1) * x.max() + length
# add triangles
ss.add_element_grid(x + length, y, element_type=element_type)
# add vertical elements
ss.add_element_grid(x_left_column, y[::2], element_type=element_type)
ss.add_element_grid(x_right_column, np.r_[y[0], y[1::2], y[-1]], element_type=element_type)
ss.add_support_spring(
node_id=ss.find_node_id(vertex=[x_left_column[0], y[0]]),
translation=2,
k=k)
ss.add_support_spring(
node_id=ss.find_node_id(vertex=[x_right_column[0], y[0]]),
translation=2,
k=k)
# add top girder
ss.add_element_grid([0, width, span, span + width], np.ones(4) * y.max(), EI=10e3)
# Add stability elements at the bottom.
ss.add_truss_element([[0, y.min()], [width, y.min()]])
ss.add_truss_element([[span, y.min()], [span + width, y.min()]])
for el in ss.element_map.values():
# apply wind load on elements that are vertical
if np.isclose(np.sin(el.ai), 1):
ss.q_load(
q=1,
element_id=el.id,
direction='x'
)
ss.show_structure()
ss.solve()
ss.show_displacement(factor=2)
ss.show_bending_moment()
```
![](doc/source/img/examples/tower_bridge_struct.png)
![](doc/source/img/examples/tower_bridge_displa.png)
![](doc/source/img/examples/tower_bridge_moment.png)
```python
from anastruct import SystemElements
ss = SystemElements(EA=15000, EI=5000)
# Add beams to the system.
ss.add_element(location=[0, 5])
ss.add_element(location=[[0, 5], [5, 5]])
ss.add_element(location=[[5, 5], [5, 0]])
# Add a fixed support at node 1.
ss.add_support_fixed(node_id=1)
# Add a rotational spring support at node 4.
ss.add_support_spring(node_id=4, translation=3, k=4000)
# Add loads.
ss.point_load(Fx=30, node_id=2)
ss.q_load(q=-10, element_id=2)
# Solve
ss.solve()
# Get visual results.
ss.show_structure()
ss.show_reaction_force()
ss.show_axial_force()
ss.show_shear_force()
ss.show_bending_moment()
ss.show_displacement()
```
![](images/rand/structure.png)
### Real world use case.
[Non linear water accumulation analysis](https://ritchievink.com/blog/2017/08/23/a-nonlinear-water-accumulation-analysis-in-python/)
Raw data
{
"_id": null,
"home_page": "https://github.com/ritchie46/anaStruct",
"name": "anastruct",
"maintainer": "Brooks Smith",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "smith120bh@gmail.com",
"keywords": "FEA, finite element, structural engineering, structural analysis",
"author": "Ritchie Vink",
"author_email": "ritchie46@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/62/58/e9eb441cd699808b323b6863c823b52a671b5e411bd66f7dd8681af03b77/anastruct-1.6.1.tar.gz",
"platform": null,
"description": "# anaStruct 2D Frames and Trusses\n[![Python tests](https://github.com/ritchie46/anaStruct/actions/workflows/test.yaml/badge.svg)](https://github.com/ritchie46/anaStruct/actions/workflows/test.yaml)\n[![Documentation Status](https://readthedocs.org/projects/anastruct/badge/?version=latest)](http://anastruct.readthedocs.io/en/latest/?badge=latest)\n![PyPI - Version](https://img.shields.io/pypi/v/anastruct)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/anastruct)\n![Latest Release](https://img.shields.io/github/release-date/ritchie46/anaStruct)\n![Commits since latest release](https://img.shields.io/github/commits-since/ritchie46/anaStruct/latest)\n\n\nAnalyse 2D Frames and trusses for slender structures. Determine the bending moments, shear forces, axial forces and displacements.\n\n## Installation\n\nFor the actively developed version:\n```\n$ pip install git+https://github.com/ritchie46/anaStruct.git\n```\n\nOr for a release:\n```\n$ pip install anastruct\n```\n\n## Read the docs!\n\n[Documentation](http://anastruct.readthedocs.io)\n\n## Questions\n\nGot a question? Please ask on [gitter](https://gitter.im/anaStruct/lobby).\n\n## Includes\n\n* trusses :heavy_check_mark:\n* beams :heavy_check_mark:\n* moment lines :heavy_check_mark:\n* axial force lines :heavy_check_mark:\n* shear force lines :heavy_check_mark:\n* displacement lines :heavy_check_mark:\n* hinged supports :heavy_check_mark:\n* fixed supports :heavy_check_mark:\n* spring supports :heavy_check_mark:\n* q-load in elements direction :heavy_check_mark:\n* point loads in global x, y directions on nodes :heavy_check_mark:\n* dead load :heavy_check_mark:\n* q-loads in global y direction :heavy_check_mark:\n* hinged elements :heavy_check_mark:\n* rotational springs :heavy_check_mark:\n* non-linear nodes :heavy_check_mark:\n* geometrical non linearity :heavy_check_mark:\n* load cases and load combinations :heavy_check_mark:\n* generic type of section - rectangle and circle :heavy_check_mark:\n* EU, US, UK steel section database :heavy_check_mark:\n\n## Examples\n\n```python\nfrom anastruct import SystemElements\nimport numpy as np\n\nss = SystemElements()\nelement_type = 'truss'\n\n# Create 2 towers\nwidth = 6\nspan = 30\nk = 5e3\n\n# create triangles\ny = np.arange(1, 10) * np.pi\nx = np.cos(y) * width * 0.5\nx -= x.min()\n\nfor length in [0, span]:\n x_left_column = np.ones(y[::2].shape) * x.min() + length\n x_right_column = np.ones(y[::2].shape[0] + 1) * x.max() + length\n\n # add triangles\n ss.add_element_grid(x + length, y, element_type=element_type)\n # add vertical elements\n ss.add_element_grid(x_left_column, y[::2], element_type=element_type)\n ss.add_element_grid(x_right_column, np.r_[y[0], y[1::2], y[-1]], element_type=element_type)\n\n ss.add_support_spring(\n node_id=ss.find_node_id(vertex=[x_left_column[0], y[0]]),\n translation=2,\n k=k)\n ss.add_support_spring(\n node_id=ss.find_node_id(vertex=[x_right_column[0], y[0]]),\n translation=2,\n k=k)\n\n# add top girder\nss.add_element_grid([0, width, span, span + width], np.ones(4) * y.max(), EI=10e3)\n\n# Add stability elements at the bottom.\nss.add_truss_element([[0, y.min()], [width, y.min()]])\nss.add_truss_element([[span, y.min()], [span + width, y.min()]])\n\nfor el in ss.element_map.values():\n # apply wind load on elements that are vertical\n if np.isclose(np.sin(el.ai), 1):\n ss.q_load(\n q=1,\n element_id=el.id,\n direction='x'\n )\n\nss.show_structure()\nss.solve()\nss.show_displacement(factor=2)\nss.show_bending_moment()\n\n```\n\n![](doc/source/img/examples/tower_bridge_struct.png)\n\n![](doc/source/img/examples/tower_bridge_displa.png)\n\n![](doc/source/img/examples/tower_bridge_moment.png)\n\n\n```python\nfrom anastruct import SystemElements\n\nss = SystemElements(EA=15000, EI=5000)\n\n# Add beams to the system.\nss.add_element(location=[0, 5])\nss.add_element(location=[[0, 5], [5, 5]])\nss.add_element(location=[[5, 5], [5, 0]])\n\n# Add a fixed support at node 1.\nss.add_support_fixed(node_id=1)\n\n# Add a rotational spring support at node 4.\nss.add_support_spring(node_id=4, translation=3, k=4000)\n\n# Add loads.\nss.point_load(Fx=30, node_id=2)\nss.q_load(q=-10, element_id=2)\n\n# Solve\nss.solve()\n\n# Get visual results.\nss.show_structure()\nss.show_reaction_force()\nss.show_axial_force()\nss.show_shear_force()\nss.show_bending_moment()\nss.show_displacement()\n```\n![](images/rand/structure.png)\n\n### Real world use case.\n[Non linear water accumulation analysis](https://ritchievink.com/blog/2017/08/23/a-nonlinear-water-accumulation-analysis-in-python/)\n\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "Finite element analysis of 2D structures",
"version": "1.6.1",
"project_urls": {
"Documentation": "http://anastruct.readthedocs.io",
"Homepage": "https://github.com/ritchie46/anaStruct",
"Repository": "https://github.com/ritchie46/anaStruct"
},
"split_keywords": [
"fea",
" finite element",
" structural engineering",
" structural analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3e671ccf95e927ee5db2129d04de6ab25c4ac7edb1494bf17841039441ae4cb8",
"md5": "b8d5eb6def29a172a57aa5864328e552",
"sha256": "48d78564eb588b9dfe3d756e78cd8c5722af52674dc257ffdb367c12e3b0d0fa"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "b8d5eb6def29a172a57aa5864328e552",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 608892,
"upload_time": "2024-10-16T10:12:04",
"upload_time_iso_8601": "2024-10-16T10:12:04.541277Z",
"url": "https://files.pythonhosted.org/packages/3e/67/1ccf95e927ee5db2129d04de6ab25c4ac7edb1494bf17841039441ae4cb8/anastruct-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f8d1dbdbd35c449103d7e0f69f87b272efc53c4b8f37a03cdc38230234a7730",
"md5": "6b655cab96874bd9dafad08d38f7bab9",
"sha256": "54af8b6834aab8a0d480273a9567f941d32196999ee2407dd51dc230f88b556f"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "6b655cab96874bd9dafad08d38f7bab9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 608460,
"upload_time": "2024-10-16T10:12:06",
"upload_time_iso_8601": "2024-10-16T10:12:06.130037Z",
"url": "https://files.pythonhosted.org/packages/3f/8d/1dbdbd35c449103d7e0f69f87b272efc53c4b8f37a03cdc38230234a7730/anastruct-1.6.1-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "221bd96f811fa69d0ec3655af333b7d400f35228892bd6243246fac8cf5bd52b",
"md5": "ebfc0e5321361b1befc9117858e1599b",
"sha256": "952b203f8022d1a287d642130155ce0ca9bade7ca141835b2e1acce7faf05a69"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "ebfc0e5321361b1befc9117858e1599b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 763316,
"upload_time": "2024-10-16T10:12:09",
"upload_time_iso_8601": "2024-10-16T10:12:09.209122Z",
"url": "https://files.pythonhosted.org/packages/22/1b/d96f811fa69d0ec3655af333b7d400f35228892bd6243246fac8cf5bd52b/anastruct-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "33c520eb940064223f7441c623ec3467dd8d424cab4d99e0499e4527d6ebb061",
"md5": "e4e8c58a36475cba737a3d083c4353d2",
"sha256": "701e9e6faac0d38a472da87201db9c8891dafc6adba685dd2f2b6c97ae84833e"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e4e8c58a36475cba737a3d083c4353d2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 765334,
"upload_time": "2024-10-16T10:12:10",
"upload_time_iso_8601": "2024-10-16T10:12:10.993064Z",
"url": "https://files.pythonhosted.org/packages/33/c5/20eb940064223f7441c623ec3467dd8d424cab4d99e0499e4527d6ebb061/anastruct-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2801cdef3f31d625daf36689839a3683f7283e5752c04786e5e05a9219b4f1c4",
"md5": "69a01a3d4b07d1bd6df3ceb535b79fb9",
"sha256": "e985d6148caf74d64f3c0cb56dfa01bbbbedd486cbb5df6d9adb52b9662d8270"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "69a01a3d4b07d1bd6df3ceb535b79fb9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 767740,
"upload_time": "2024-10-16T10:12:12",
"upload_time_iso_8601": "2024-10-16T10:12:12.776765Z",
"url": "https://files.pythonhosted.org/packages/28/01/cdef3f31d625daf36689839a3683f7283e5752c04786e5e05a9219b4f1c4/anastruct-1.6.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f6ac8156383c5c720169514d55f5ed1d1a3a4582a9dc744fb42b69987b445c60",
"md5": "943a3087618361b4bd888756b21861d7",
"sha256": "a8468e381d09653f918248a2856bcf9d22d7fe8b35e2291dddad8843f4db1d00"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "943a3087618361b4bd888756b21861d7",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 610828,
"upload_time": "2024-10-16T10:12:14",
"upload_time_iso_8601": "2024-10-16T10:12:14.367281Z",
"url": "https://files.pythonhosted.org/packages/f6/ac/8156383c5c720169514d55f5ed1d1a3a4582a9dc744fb42b69987b445c60/anastruct-1.6.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f72e93de6c547a313790e5461d88d0052c935aba970d0c716bbc27fe18e9fa25",
"md5": "8ac29f6a2b96d8783df53067e931cba2",
"sha256": "445836a53817252a827c28f9fef4386372801b9f59185e4c8ffa9f53af7edbc6"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "8ac29f6a2b96d8783df53067e931cba2",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 608632,
"upload_time": "2024-10-16T10:12:15",
"upload_time_iso_8601": "2024-10-16T10:12:15.952613Z",
"url": "https://files.pythonhosted.org/packages/f7/2e/93de6c547a313790e5461d88d0052c935aba970d0c716bbc27fe18e9fa25/anastruct-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cd53dbb8882d47c1885669b8fdce520b0bd2afacc131ceecc96e5fd41f90876a",
"md5": "7b0e3e49865b1dc9a5159ba177de222c",
"sha256": "35c89c9005de23d3ded51fb722703bce2bcfec60afe1ea40bc1053e656f45158"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7b0e3e49865b1dc9a5159ba177de222c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 608343,
"upload_time": "2024-10-16T10:12:17",
"upload_time_iso_8601": "2024-10-16T10:12:17.795521Z",
"url": "https://files.pythonhosted.org/packages/cd/53/dbb8882d47c1885669b8fdce520b0bd2afacc131ceecc96e5fd41f90876a/anastruct-1.6.1-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9ac7af81582c00aa44439af240a6c94ade91aa3a5e8d4ff2572feea90a4f2f6f",
"md5": "12aefbd26834f0e00644512db1f07430",
"sha256": "7073f22801ca26a6728cc1d14612a1bcf71d7ed39febf7fd1237e93ce37352e8"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "12aefbd26834f0e00644512db1f07430",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 790915,
"upload_time": "2024-10-16T10:12:19",
"upload_time_iso_8601": "2024-10-16T10:12:19.528428Z",
"url": "https://files.pythonhosted.org/packages/9a/c7/af81582c00aa44439af240a6c94ade91aa3a5e8d4ff2572feea90a4f2f6f/anastruct-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f93e1935c7f77d8994d654b1796a93626f4541e9c58e33210b9ef4c7bcde9bfe",
"md5": "e3ff160fe12c6edfc175203d54d9f6ba",
"sha256": "e135f20c6be066d609ca5449281c936e20d9cce81eba25b1b8b28ef8a7255d1c"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e3ff160fe12c6edfc175203d54d9f6ba",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 792710,
"upload_time": "2024-10-16T10:12:21",
"upload_time_iso_8601": "2024-10-16T10:12:21.338889Z",
"url": "https://files.pythonhosted.org/packages/f9/3e/1935c7f77d8994d654b1796a93626f4541e9c58e33210b9ef4c7bcde9bfe/anastruct-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b4b56f48636e7834310c97d7ad61ec09728ebfaa7b20f00e9ee7829f1636b0a0",
"md5": "312a9025640a923d31f6eb67ae25138d",
"sha256": "ae3249aba8aac03b602b2bd884f12fa7046bf6aa3788d4eb82ec1469bf9fde09"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "312a9025640a923d31f6eb67ae25138d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 794787,
"upload_time": "2024-10-16T10:12:22",
"upload_time_iso_8601": "2024-10-16T10:12:22.856197Z",
"url": "https://files.pythonhosted.org/packages/b4/b5/6f48636e7834310c97d7ad61ec09728ebfaa7b20f00e9ee7829f1636b0a0/anastruct-1.6.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9bd7d0c25afcf76464abef38d86145af24c24897797de742da9d1b3980fa9f80",
"md5": "8779ad32497ebb20514973ff1f025bca",
"sha256": "bf32b85c9ee9671f97d4ca2496ae087161e485e05321ea32bef3bc6084c8227e"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "8779ad32497ebb20514973ff1f025bca",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 610910,
"upload_time": "2024-10-16T10:12:24",
"upload_time_iso_8601": "2024-10-16T10:12:24.228620Z",
"url": "https://files.pythonhosted.org/packages/9b/d7/d0c25afcf76464abef38d86145af24c24897797de742da9d1b3980fa9f80/anastruct-1.6.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "990f50c57510e4a419aca778b4bddffe26e2ce5c5e22aeacba784d382d246fe5",
"md5": "8563ebd154aba825c71aac05ebe8bd70",
"sha256": "020c77d83eeeeeacde50ffd1afa0d8cf0f0612723de73b541d02f9a4f2495c73"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "8563ebd154aba825c71aac05ebe8bd70",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 608797,
"upload_time": "2024-10-16T10:12:25",
"upload_time_iso_8601": "2024-10-16T10:12:25.779982Z",
"url": "https://files.pythonhosted.org/packages/99/0f/50c57510e4a419aca778b4bddffe26e2ce5c5e22aeacba784d382d246fe5/anastruct-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "61f10e52b56e9787431af806aeef6d555086d91a3012e33525fb4377a6905e80",
"md5": "279a2e090ebf4e384d55ff8f06c1c3ca",
"sha256": "8d3c03d9aa29bd3588a85be80150de09531345be521acb20e4c7d42354d9c60e"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "279a2e090ebf4e384d55ff8f06c1c3ca",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 608259,
"upload_time": "2024-10-16T10:12:27",
"upload_time_iso_8601": "2024-10-16T10:12:27.228877Z",
"url": "https://files.pythonhosted.org/packages/61/f1/0e52b56e9787431af806aeef6d555086d91a3012e33525fb4377a6905e80/anastruct-1.6.1-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4728348f045b2fe35731a30d9df6ccea95f0afd15de372cac987f1c350d2e16b",
"md5": "e7f5d0e750b1376e4c4aed15326224ec",
"sha256": "d1bc4683e7d159152805f91ddf1ee106e3f01d991a08e5a72a6da984bdeacf73"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "e7f5d0e750b1376e4c4aed15326224ec",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 798534,
"upload_time": "2024-10-16T10:12:28",
"upload_time_iso_8601": "2024-10-16T10:12:28.778293Z",
"url": "https://files.pythonhosted.org/packages/47/28/348f045b2fe35731a30d9df6ccea95f0afd15de372cac987f1c350d2e16b/anastruct-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e813304b3d84b5075d04f545d9c9db868950fe39a185f064881a982efae5e292",
"md5": "461bd13ae82f1168610b16764fcf3d29",
"sha256": "d0ef231496da738055480d1b1657319f42f083089bbdc9bf55483fc356451244"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "461bd13ae82f1168610b16764fcf3d29",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 800305,
"upload_time": "2024-10-16T10:12:29",
"upload_time_iso_8601": "2024-10-16T10:12:29.866376Z",
"url": "https://files.pythonhosted.org/packages/e8/13/304b3d84b5075d04f545d9c9db868950fe39a185f064881a982efae5e292/anastruct-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f9b3b89d10fbcc6f5b0d9f9e836f742d009a37c6f9c301c1432e4bb03c296b52",
"md5": "1f0b585e27aaff84395f74dc462bf961",
"sha256": "a2017e777e248a33e375b56069c4b2213bd4cb68352a4e1e2bf1e97a78577679"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "1f0b585e27aaff84395f74dc462bf961",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 798014,
"upload_time": "2024-10-16T10:12:31",
"upload_time_iso_8601": "2024-10-16T10:12:31.039854Z",
"url": "https://files.pythonhosted.org/packages/f9/b3/b89d10fbcc6f5b0d9f9e836f742d009a37c6f9c301c1432e4bb03c296b52/anastruct-1.6.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "abcc228936bfaf9133395ff29a06267ec365441e6e401b6f9199ff10fb0c1980",
"md5": "fc78b24c0779cb128f1e0e30e4803fb8",
"sha256": "00c1142ccb73f39f51f17010ccc371e68d03e797dffd75a921c53a897cceadc6"
},
"downloads": -1,
"filename": "anastruct-1.6.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "fc78b24c0779cb128f1e0e30e4803fb8",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 611066,
"upload_time": "2024-10-16T10:12:32",
"upload_time_iso_8601": "2024-10-16T10:12:32.139509Z",
"url": "https://files.pythonhosted.org/packages/ab/cc/228936bfaf9133395ff29a06267ec365441e6e401b6f9199ff10fb0c1980/anastruct-1.6.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6258e9eb441cd699808b323b6863c823b52a671b5e411bd66f7dd8681af03b77",
"md5": "3be42c545ca47fb7c0250c895ea834aa",
"sha256": "d0d1627013f4a8bd12994d9500f7c7ea2aa894f596c6047b88cc3a3ae35906c8"
},
"downloads": -1,
"filename": "anastruct-1.6.1.tar.gz",
"has_sig": false,
"md5_digest": "3be42c545ca47fb7c0250c895ea834aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 541856,
"upload_time": "2024-10-16T10:12:33",
"upload_time_iso_8601": "2024-10-16T10:12:33.947347Z",
"url": "https://files.pythonhosted.org/packages/62/58/e9eb441cd699808b323b6863c823b52a671b5e411bd66f7dd8681af03b77/anastruct-1.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-16 10:12:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ritchie46",
"github_project": "anaStruct",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "anastruct"
}