Releases: ritchie46/anaStruct
v1.6.1
This is primarily a maintenance release, fixing a couple minor bugs in autoscaling diagrams and some broken examples in the documentation. It does also add two minor new features:
- Build binary wheels for aarch64 (i.e. for Linux machines running on Apple's ARM processors)
- Add total deflection as a simple output to element results
- No more manually adding node displacements to element deflections! This likely won't matter at all if you're analysing a truss, but if you're analysing a beam, these new "total deflection" results should be the numbers you actually expect.
What's Changed
- Remove wheel build from test.yaml, add aarch64 wheels to publish by @smith120bh in #285
- Build aarch64 wheels too (which requires QEMU) by @smith120bh in #286
- Add overload type definitions to system functions by @smith120bh in #321
- Add Total Deflection Output by @smith120bh in #302
- Remove non-existent plot_backend param from examples by @smith120bh in #322
Dependabots
- Bump pytest from 8.2.2 to 8.3.1 by @dependabot in #292
- Bump numpy from 2.0.0 to 2.0.1 by @dependabot in #288
- Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 by @dependabot in #287
- Bump matplotlib from 3.9.0 to 3.9.1 by @dependabot in #291
- Bump pylint from 3.2.5 to 3.2.6 by @dependabot in #290
- Bump mypy from 1.10.1 to 1.11.0 by @dependabot in #289
- Bump pytest from 8.3.1 to 8.3.2 by @dependabot in #294
- Bump pypa/cibuildwheel from 2.19.2 to 2.20.0 by @dependabot in #298
- Bump sphinx from 4.4.0 to 8.0.2 by @dependabot in #295
- Bump black from 24.4.2 to 24.8.0 by @dependabot in #297
- Bump mypy from 1.11.0 to 1.11.1 by @dependabot in #296
- Bump sphinx-autodoc-typehints from 1.17.1 to 2.2.3 by @dependabot in #300
- Bump matplotlib from 3.9.1 to 3.9.2 by @dependabot in #301
- Bump numpy from 2.0.1 to 2.1.1 by @dependabot in #313
- Bump sphinx-autodoc-typehints from 2.2.3 to 2.3.0 by @dependabot in #307
- Bump scipy from 1.14.0 to 1.14.1 by @dependabot in #305
- Bump mypy from 1.11.1 to 1.11.2 by @dependabot in #306
- Bump pylint from 3.2.6 to 3.2.7 by @dependabot in #310
- Bump pytest from 8.3.2 to 8.3.3 by @dependabot in #316
- Bump pypa/cibuildwheel from 2.20.0 to 2.21.0 by @dependabot in #318
- Bump sphinx-autodoc-typehints from 2.3.0 to 2.4.4 by @dependabot in #320
- Bump pypa/cibuildwheel from 2.21.0 to 2.21.1 by @dependabot in #324
- Bump pypa/cibuildwheel from 2.21.1 to 2.21.3 by @dependabot in #333
- Bump numpy from 2.1.1 to 2.1.2 by @dependabot in #327
- Bump sphinx from 8.0.2 to 8.1.3 by @dependabot in #334
- Bump black from 24.8.0 to 24.10.0 by @dependabot in #329
- Bump sphinx-autodoc-typehints from 2.4.4 to 2.5.0 by @dependabot in #330
- Bump pylint from 3.2.7 to 3.3.1 by @dependabot in #325
Full Changelog: release-v1.6.0...release-v1.6.1
v1.6.0
This release makes two key updates:
- Upgrade to Numpy v2.0.0 compatibility
- Importantly, this required deprecating Python 3.9. Theoretically, if you are still using the Numpy 1.x series, nothing should have broken Python 3.9, but automatic testing of Python 3.9 is now dropped, so use at your own risk!
- Build and distribute platform-specific binary wheels - which should now make this package both more efficient and faster to install
And while it won't make any difference to anaStruct users, for any developers or forks, anaStruct has now swapped to using poetry for packaging and dependency management.
What's Changed
- Swap to Poetry as package manager, build binary wheels by @smith120bh in #281
Dependabots
- Bump scipy from 1.12.0 to 1.13.0 by @dependabot in #257
- Bump matplotlib from 3.8.3 to 3.8.4 by @dependabot in #258
- Bump black[jupyter] from 24.3.0 to 24.4.2 by @dependabot in #263
- Bump mypy from 1.9.0 to 1.10.0 by @dependabot in #261
- Bump pytest from 8.1.1 to 8.2.0 by @dependabot in #264
- Bump matplotlib from 3.8.4 to 3.9.0 by @dependabot in #267
- Bump pylint from 3.1.0 to 3.2.0 by @dependabot in #266
- Bump pylint from 3.2.0 to 3.2.3 by @dependabot in #272
- Bump scipy from 1.13.0 to 1.13.1 by @dependabot in #270
- Bump pytest from 8.2.0 to 8.2.2 by @dependabot in #271
- Bump numpy from 1.26.4 to 2.0.0 by @dependabot in #274
- Bump mypy from 1.10.0 to 1.10.1 by @dependabot in #277
- Bump scipy from 1.13.1 to 1.14.0 by @dependabot in #276
- Bump pylint from 3.2.3 to 3.2.5 by @dependabot in #279
- Bump matplotlib from 3.9.0 to 3.9.1 by @dependabot in #280
Full Changelog: release-v1.5.1...release-v1.6.0
v1.5.1
This minor release adds one new feature - custom plot colours. It is otherwise a maintenance release with some minor updates to accommodate the newest versions of our dependencies.
What's Changed
Dependabots
- Bump black[jupyter] from 23.10.1 to 23.11.0 by @dependabot in #222
- Bump numpy from 1.26.1 to 1.26.2 by @dependabot in #224
- Bump mypy from 1.6.1 to 1.7.0 by @dependabot in #225
- Bump black[jupyter] from 23.11.0 to 23.12.0 by @dependabot in #233
- Bump pylint from 3.0.2 to 3.0.3 by @dependabot in #232
- Bump actions/setup-python from 4 to 5 by @dependabot in #231
- Bump scipy from 1.11.3 to 1.11.4 by @dependabot in #226
- Bump numpy from 1.26.2 to 1.26.3 by @dependabot in #237
- Bump pytest from 7.4.3 to 7.4.4 by @dependabot in #236
- Bump scipy from 1.11.4 to 1.12.0 by @dependabot in #239
- Bump mypy from 1.7.0 to 1.8.0 by @dependabot in #234
- Bump pytest-describe from 2.1.0 to 2.2.0 by @dependabot in #246
- Bump numpy from 1.26.3 to 1.26.4 by @dependabot in #244
- Bump pytest from 7.4.4 to 8.1.1 by @dependabot in #252
- Bump black[jupyter] from 23.12.0 to 24.3.0 by @dependabot in #254
- Bump matplotlib from 3.8.0 to 3.8.3 by @dependabot in #248
- Bump pylint from 3.0.3 to 3.1.0 by @dependabot in #256
- Bump mypy from 1.8.0 to 1.9.0 by @dependabot in #255
New Contributors
Full Changelog: release-v1.5.0...release-v1.5.1
v1.5.0
This release includes multiple breaking changes that had been building up in the backlog. Hopefully these changes will now make various parts of anaStruct make more intuitive sense, but some minor updates may be required to scripts or APIs that use this package as a result.
Breaking Changes
- Definitions of "y" and "z" axis directions have been made fully consistent throughout all user-facing and internal code. The "y" axis is now always the vertical, in-plane axis, and the "z" axis is now always the out-of-plane axis. Changes generally do not affect inputs, but several outputs are affected. For example, "Ty" and "phi_y" are now "Tz" and "phi_z", respectively.
insert_node()
now splits up an element in-place, rather than re-creating the entire system. As a consequence, the function will now no longer lose your loads and supports! While technically breaking behaviour, this is probably also more intuitive behaviour.get_element_result_range()
now by default returns the maximum absolute value of the given unit along the entire length of each element, rather than the first mesh value. A new optional parameter calledminmax
can customise this behaviour to alternatively return the "min", "max", or "both".get_node_results_system()
andget_node_displacements()
now return a list of dictionaries rather than a list of long tuples by default or whennode_id=0
. This now mirrors the behaviour of theget_element_result*()
functions, and should be easier to read.
What's Changed
- Return min/max values with get_element_result_range() by @smith120bh in #212
- Return a list of dicts from get_node_results_system() & get_node_displacements() by @smith120bh in #213
- Rewrite insert_node() to manipulate the existing system by @smith120bh in #215
- Correctly split triangular q-loads in insert_node() by @smith120bh in #216
- Remove orphaned nodes in remove_element() by @smith120bh in #217
- Fix show_results() plotting by @smith120bh in #218
- Clean up all y and z coordinates by @smith120bh in #219
Full Changelog: release-v1.4.4...release-v1.5.0
v1.4.4
This update is primarily a maintenance release, though with a couple notable additions:
- Location inputs have been unified such that every function now expects the same "VertexLike" input - which includes our existing Vertex object, as well as any Sequence (list or tuple) or two numbers.
- New function
add_sequential_elements()
has been added - which is very similar to the existingadd_element_grid()
, but with a more accurate name and able to accept coordinates as Vertex or VertexLike objects, to match with coordinates inputs on other functions - All functions throughout the codebase now have full docstrings, which should make both using the functions (if you're using an IDE) and contributing to the anastruct code easier
- VS Code configuration has been thoroughly updated, to hopefully make it easier than ever to help contribute to the anastruct codebase! :-)
What's Changed
- Add EA and EI values to element creation documentation by @ajossorioarana in #189
- Update VS Code Config to recommend extensions by @smith120bh in #193
- Include github actions in dependabot by @smith120bh in #196
- Docstring all the things by @smith120bh in #202
- Create new add_sequential_elements() function by @smith120bh in #211
- Handle Vertex and VertexLike types consistently by @smith120bh in #214
Dependabots
- Bump pytest from 7.4.0 to 7.4.1 by @dependabot in #180
- Bump pytest from 7.4.1 to 7.4.2 by @dependabot in #184
- Bump black[jupyter] from 23.7.0 to 23.9.1 by @dependabot in #185
- Bump matplotlib from 3.7.2 to 3.8.0 by @dependabot in #187
- Bump numpy from 1.25.2 to 1.26.0 by @dependabot in #188
- Bump pylint from 2.17.5 to 2.17.6 by @dependabot in #190
- Bump scipy from 1.11.2 to 1.11.3 by @dependabot in #192
- Enable matplotlib type checks in mypy by @smith120bh in #195
- Bump pylint from 2.17.6 to 2.17.7 by @dependabot in #194
- Bump actions/checkout from 3 to 4 by @dependabot in #197
- Bump pylint from 2.17.7 to 3.0.0 by @dependabot in #198
- Bump pylint from 3.0.0 to 3.0.1 by @dependabot in #199
- Bump black[jupyter] from 23.9.1 to 23.10.0 by @dependabot in #207
- Bump numpy from 1.26.0 to 1.26.1 by @dependabot in #205
- Bump black[jupyter] from 23.10.0 to 23.10.1 by @dependabot in #209
- Bump pylint from 3.0.1 to 3.0.2 by @dependabot in #208
- Bump mypy from 1.5.1 to 1.6.1 by @dependabot in #206
- Bump pytest from 7.4.2 to 7.4.3 by @dependabot in #210
New Contributors
- @ajossorioarana made their first contribution in #189
Full Changelog: release-v1.4.3...release-v1.4.4
v1.4.3
This is exclusively a bugfix release, correcting a regression in the find_node_id()
function, fixing the handling of pinned nodes that have only one element connected to them, and adding some meaningful error-handling to non-integer node and element ids.
What's Changed
- Fix regression in find_node_id() with typeof vertex == Vertex by @smith120bh in #178
- Add restraint to a node that has exactly one pinned connection by @smith120bh in #146
- Add error-handling to node & element id data types by @smith120bh in #179
Dependabots
- Bump pytest from 7.3.1 to 7.3.2 by @dependabot in #161
- Bump numpy from 1.24.3 to 1.25.0 by @dependabot in #163
- Bump scipy from 1.10.1 to 1.11.0 by @dependabot in #167
- Bump pytest from 7.3.2 to 7.4.0 by @dependabot in #166
- Bump mypy from 1.3.0 to 1.4.1 by @dependabot in #165
- Bump scipy from 1.11.0 to 1.11.1 by @dependabot in #168
- Bump matplotlib from 3.7.1 to 3.7.2 by @dependabot in #169
- Bump black[jupyter] from 23.3.0 to 23.7.0 by @dependabot in #172
- Bump numpy from 1.25.0 to 1.25.1 by @dependabot in #170
- Bump numpy from 1.25.1 to 1.25.2 by @dependabot in #174
- Bump pylint from 2.17.4 to 2.17.5 by @dependabot in #173
- Bump mypy from 1.4.1 to 1.5.1 by @dependabot in #176
- Bump scipy from 1.11.1 to 1.11.2 by @dependabot in #177
Full Changelog: release-v1.4.2...release-v1.4.3
v1.4.2
This release represents few changes in the actual user-facing package, but significant updates to validation testing, packaging practices, and typing. Specifically:
- There is now a full suite of automated pytest validation tests verifying that anaStruct does, in fact, give the same results as Euler-Bernoulli analytical equations. Thank you to all the new contributors who helped add these tests!
- The file structure and package definitions in anaStruct have been updated to modern best practices, including swapping from a
setup.py
file topyproject.toml
, updating all the GitHub workflows, and adding some default/recommended VS Code configuration to help any contributors to this package work more easily! - Full type checking has been implemented throughout anaStruct, and a
py.typed
marker file has been added for anyone using anaStruct as a library (you can remove those# type: ignore
s on your anastruct imports now!) In typing everything, a few scattered bugs were also identified and fixed (nothing that would have given a wrong result, but several little things that would have caused error messages), especially around setting loads on multiple elements at once.
What's Changed
- Add some default VS Code configuration by @smith120bh in #134
- Validation of a simply-supported beam with UDL by @smith120bh in #136
- Documentation by @someparsa in #135
- Convert from setup.py to pyproject.toml by @smith120bh in #139
- Simple beam with a point load validation by @abigailwong1 in #141
- Validation with Simply Supported Beam and Two Equally Spaced Point Loads by @liamjsy in #142
- Cantilever beam w UDL validation by @abigailwong1 in #147
- Fix missing indent on a test by @smith120bh in #150
- Adding three validation cases for beams by @BehnamClearCalcs in #148
- Added validation cases by @liamjsy in #143
- Explicitly set the content-type for README.md by @smith120bh in #160
Dependabots
- Add almost-strict typing to all of anastruct by @smith120bh in #152
- Bump pylint from 2.16.2 to 2.17.4 by @dependabot in #153
- Bump matplotlib from 3.7.0 to 3.7.1 by @dependabot in #156
- Bump pytest from 7.2.1 to 7.3.1 by @dependabot in #154
- Bump black[jupyter] from 23.1.0 to 23.3.0 by @dependabot in #157
- Bump mypy from 1.0.1 to 1.3.0 by @dependabot in #155
- Bump pytest-describe from 2.0.1 to 2.1.0 by @dependabot in #158
- Bump numpy from 1.24.2 to 1.24.3 by @dependabot in #159
New Contributors
- @abigailwong1 made their first contribution in #141
- @liamjsy made their first contribution in #142
- @BehnamClearCalcs made their first contribution in #148
Full Changelog: release-v1.4.1...release-v1.4.2
v1.4.1
What's Changed
- Switch package matplotlib to flexible dependency by @smith120bh in #116
- Switch FEM Tests to pytest by @smith120bh in #132
- Also add the q_loads in load combinations (Fixes #121) by @smith120bh in #133
Dependabots
- Bump matplotlib from 3.6.2 to 3.6.3 by @dependabot in #115
- Bump matplotlib from 3.5.3 to 3.6.3 by @dependabot in #118
- Bump scipy from 1.9.3 to 1.10.0 by @dependabot in #119
- Bump numpy from 1.23.0 to 1.24.1 by @dependabot in #117
- Bump mypy from 0.991 to 1.0.0 by @dependabot in #127
- Bump numpy from 1.24.1 to 1.24.2 by @dependabot in #126
- Bump scipy from 1.10.0 to 1.10.1 by @dependabot in #131
- Bump mypy from 1.0.0 to 1.0.1 by @dependabot in #130
- Bump matplotlib from 3.6.3 to 3.7.0 by @dependabot in #128
- Bump pylint from 2.15.10 to 2.16.2 by @dependabot in #129
- Bump black[jupyter] from 22.12.0 to 23.1.0 by @dependabot in #123
Full Changelog: release-v1.4.0.1...release-v1.4.1
v1.4.0.1
Very minor update to avoid an error message being over-issued.
What's Changed
- Don't throw inclined roller error if angle is a multiple of 90 degrees by @smith120bh in #114
v1.4.0
Notes:
- This version has dropped support for Python 3.7! That is primarily due to the latest version of
matplotlib
also dropping support. You should still be able to install a headless version of anaStruct in Python 3.7 - but tests will no longer be automatically run against Python 3.7, so use at your own risk. - If you wish to install anaStruct with plotting capability, you now need to explicitly install it using
pip install anastruct[plot]
. Alternatively, you can now install a headless version of anaStruct using justpip install anastruct
.
What's Changed
- Move matplotlib to extras_require, to make headless installs possible by @smith120bh in #112
- Set Minimum Python version to 3.8 & Bump matplotlib from 3.0.3 to 3.6.2 by @dependabot in #100
Full Changelog: release-v1.3.4...release-v1.4.0