Releases: robbievanleeuwen/section-properties
v3.2.1
Release for JOSS publication and dependency updates.
What's Changed
👷 Continuous Integration
- Temporary GHA pipx fix (#417) @robbievanleeuwen
📦 Dependencies
- Bump nox from 2023.4.22 to 2024.3.2 in /.github/workflows (#410) @dependabot
- Bump pillow from 10.2.0 to 10.3.0 (#412) @dependabot
- Bump idna from 3.6 to 3.7 (#416) @dependabot
- Bump black from 24.2.0 to 24.3.0 (#408) @dependabot
- Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14 (#406) @dependabot
Full changelog: v3.2.0...v3.2.1
v3.2.0
This release adds Python 3.12 support!
What's Changed
🚀 Features
- Add python 3.12 support (#404) @robbievanleeuwen
Full changelog: v3.1.3...v3.2.0
v3.1.3
This release updates core and dev dependencies, as well as minor docs changes.
What's Changed
📚 Documentation
- Add jupyter notebook instructions to Examples page (#386) @robbievanleeuwen
- Add JOSS badge to README (#384) @robbievanleeuwen
📦 Dependencies
- Update dependencies (#403) @robbievanleeuwen
- Bump poetry from 1.7.1 to 1.8.2 in /.github/workflows (#402) @dependabot
- Bump actions/cache from 3 to 4 (#391) @dependabot
- Bump release-drafter/release-drafter from 5.25.0 to 6.0.0 (#395) @dependabot
- Bump virtualenv from 20.25.0 to 20.25.1 in /.github/workflows (#397) @dependabot
- Bump pip from 23.3.2 to 24.0 in /.github/workflows (#398) @dependabot
- Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12 (#400) @dependabot
- Bump jupyter-lsp from 2.2.1 to 2.2.2 (#388) @dependabot
- Bump notebook from 7.0.6 to 7.0.7 (#389) @dependabot
- Bump jupyterlab from 4.0.9 to 4.0.11 (#390) @dependabot
- Bump pillow from 10.1.0 to 10.2.0 (#392) @dependabot
- Bump jinja2 from 3.1.2 to 3.1.3 (#387) @dependabot
- Bump pip from 23.3.1 to 23.3.2 in /.github/workflows (#385) @dependabot
- Bump mypy from 1.6.1 to 1.7.1 (#377) @robbievanleeuwen
- Bump ipython from 8.17.2 to 8.18.1 (#374) @robbievanleeuwen
- Bump sphinx-click from 5.0.1 to 5.1.0 (#383) @robbievanleeuwen
- Bump pre-commit from 3.5.0 to 3.6.0 (#379) @robbievanleeuwen
- Bump rich from 13.5.0 to 13.7.0 (#382) @robbievanleeuwen
- Bump pypardiso from 0.4.2 to 0.4.4 (#381) @robbievanleeuwen
- Bump pygments from 2.16.1 to 2.17.2 (#380) @robbievanleeuwen
- Bump nbconvert from 7.10.0 to 7.13.0 (#378) @robbievanleeuwen
- Bump matplotlib from 3.8.0 to 3.8.2 (#376) @robbievanleeuwen
- Bump isort from 5.12.0 to 5.13.2 (#375) @robbievanleeuwen
- Bump ipykernel from 6.26.0 to 6.27.1 (#373) @robbievanleeuwen
- Bump coverage from 7.3.2 to 7.3.3 (#371) @robbievanleeuwen
- Bump flake8-bugbear from 23.9.16 to 23.12.2 (#372) @robbievanleeuwen
- Bump black from 23.10.1 to 23.12.0 (#370) @robbievanleeuwen
- Bump poetry from 1.6.1 to 1.7.1 in /.github/workflows (#362) @dependabot
- Bump actions/setup-python from 4 to 5 (#367) @dependabot
- Bump jupyter-server from 2.9.1 to 2.11.2 (#365) @dependabot
- Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 (#364) @dependabot
- Bump virtualenv from 20.24.6 to 20.25.0 in /.github/workflows (#363) @dependabot
- Bump actions/checkout from 3 to 4 (#359) @dependabot
Full changelog: v3.1.2...v3.1.3
v3.1.2
This release makes numba
an optional dependency, adds strict mypy
type checking and modifies the application of the Lagrangian Multiplier method.
What's Changed
🚀 Features
🐛 Fixes
- Fix optional njit decorator (#352) @robbievanleeuwen
- Plot warping function only over section extents (#345) @robbievanleeuwen
Section.calculate_stress()
fixes - suppress numba performance warning, fix time info stuck at 0% (#341) @robbievanleeuwen
📚 Documentation
- JOSS Paper (#342) @robbievanleeuwen
- Joss CMF (#356) @connorferster
💄 Style
- Implement
mypy
(#344) @robbievanleeuwen
📦 Dependencies
- Update dev dependencies, pin intel-openmp (#357) @robbievanleeuwen
- Bump virtualenv from 20.24.5 to 20.24.6 in /.github/workflows (#354) @dependabot
- Bump pip from 23.2.1 to 23.3.1 in /.github/workflows (#355) @dependabot
- Bump release-drafter/release-drafter from 5.24.0 to 5.25.0 (#351) @dependabot
- Relax core dependencies for better compatibility, bump dev dependencies (#350) @robbievanleeuwen
- Make
numba
an optional dependency (#349) @robbievanleeuwen
Full changelog: v3.1.1...v3.1.2
v3.1.1
Minor release for Zenodo archival.
Full changelog: v3.1.0...v3.1.1
v3.1.0
⭐ Highlights
- Get significant performance improvements for large meshes by using the
pardiso
solver, see installation docs here. Further performance gains with the introduction ofnumba
, both thanks to @TLCFEM. - Vastly increased the number of tests, including 19 extra validation tests from Pilkey (2002), three of which can be found in the examples.
- Added benchmark tests to aid performance improvements.
- Rhino methods are now supported in python 3.10 and 3.11.
What's Changed
🐎 Performance
🚨 Testing
- Exclude benchmarks from test coverage (#339) @robbievanleeuwen
- Add benchmark tests (#336) @robbievanleeuwen
- Restructure tests directory, add further validation tests (including many examples from Pilkey), improve tests coverage, add flake8-pytest-style (#329) @robbievanleeuwen
👷 Continuous Integration
- Add nbQA to pre-commit (runs black, isort and pyupgrade on jupyter notebooks) (#333) @robbievanleeuwen
- Restructure tests directory, add further validation tests (including many examples from Pilkey), improve tests coverage, add flake8-pytest-style (#329) @robbievanleeuwen
📚 Documentation
- Add validation examples from Pilkey (Symmetric Channel Section, Circular Arc, Composite Rectangular Strip) (#335) @robbievanleeuwen
- Fix docstring for StressPost.get_stress() (#330) @robbievanleeuwen
📦 Dependencies
- Build docs with python 3.10, pre-commit with python 3.11 (#338) @robbievanleeuwen
- Bump rhino3dm from 8.0.0b2 to 8.0.0b3, remove python 3.10 & 3.11 restriction for
rhino
extra (#337) @robbievanleeuwen - Bump pre-commit-hooks from 4.4.0 to 4.5.0, pyupgrade from 3.14.0 to 3.15.0 (#334) @robbievanleeuwen
Full changelog: v3.0.2...v3.1.0
v3.0.2
This release restores the top reinforcement distribution for concrete_tee_sections() present in sectionproperties
v2.1.5. It also includes some minor docs fixes, CI updates and dependency updates.
What's Changed
🐛 Fixes
- Fix concrete_tee_section() top bar distribution (#325) @robbievanleeuwen
👷 Continuous Integration
- Update noxfile.py with correct docs dependencies, fix double CI builds (#327) @robbievanleeuwen
📚 Documentation
- Fix links in documentation (#326) @robbievanleeuwen
📦 Dependencies
- Bump jupyter/nbconvert from 7.8.0 to 7.9.2 (#328) @robbievanleeuwen
Full changelog: v3.0.1...v3.0.2
v3.0.1
This release addresses a bug with the concrete rectangular section side bars and bumps several python and github actions dependencies.
What's Changed
🐛 Fixes
📦 Dependencies
- Bump pypa/gh-action-pypi-publish from 1.5.0 to 1.8.10 (#301) @dependabot
- Bump actions/setup-python from 3 to 4 (#304) @dependabot
- Bump crazy-max/ghaction-github-labeler from 4.0.0 to 5.0.0 (#305) @dependabot
- Bump release-drafter/release-drafter from 5.20.0 to 5.24.0 (#307) @dependabot
- Bump actions/checkout from 3 to 4 (#308) @dependabot
- Bump salsify/action-detect-and-tag-new-version from 2.0.1 to 2.0.3 (#319) @dependabot
- Bump coverage (7.3.1 to 7.3.2), pyupgrade (3.13.0 to 3.14.0) and prettier (2.7.1 to 3.0.3) (#323) @robbievanleeuwen
- Bump codecov/codecov-action from 3.1.0 to 3.1.4 (#320) @dependabot
Full changelog: v3.0.0...v3.0.1
v3.0.0
⭐ Highlights
- New, unambiguous section property retrieval with
get()
methods, see an example here. - Improved stress plotting options (new colorbar features, mesh opacity, plot selected materials), see an example here.
- Improved documentation style and automation.
sectionproperties
API now has full typing coverage.- Significantly expanded examples in the documentation.
- Add support for Python 3.11.
- Improved workflow, CI and contributor experience by introducing
poetry
andnox
.
💥 Breaking Changes
- Update section property
get()
methods behaviour as per #287 to circumvent confusion surrounding material weighted properties. An analysis without material properties uses theget_{property}()
syntax, while an analysis with material properties typically uses theget_e{property}()
syntax with the added option of retrieving transformed section properties. See here for a list of the newget()
methods and here for a discussion surrounding this issue. - Stress plotting methods have been simplified to improve maintainability and code repetition. You can now plot stress results by using the
plot_stress()
orplot_stress_vector()
methods that belong to theStressPost
object. get_stress_at_point()
method removed, use the more versatileget_stress_at_points()
method instead.- Pythonic renaming of methods and variables, e.g.
get_As()
becomesget_as()
for retrieving shear areas, moments and shears change fromMxx
andVx
tomxx
andvx
. - Concrete section library - renamed argument names to be more pythonic, reinforcement now requires an area and diameter.
- Dropped support for Python 3.8 (#289).
🚀 Features
- Packaging and dependency management with poetry.
- Improve length/readability of imports by placing key classes in
__init__.py
files, e.g.from sectionproperties.pre.library.primitive_sections import rectangular_section
becomesfrom sectionproperties.pre.library import rectangular_section
- Significant analysis performance and readability improvements (#293, #298) thanks to @TLCFEM.
- Allow unlipped cee and zed sections (#300), thanks to @smith120bh.
- Export analysis results to fibre sections that can be used by the suanPan FEM platform (#295), thanks to @TLCFEM.
- Allow spline options to be specified when importing
.dxf
files (#292), thanks to @ccaprani. - Improved plotting options, including colorbar string formatting, mesh opacity options, custom colorbar limits, custom colorbar label, option to only plot selected materials (#291).
- Added option to specify minimum mesh angle (#290).
- Added support for Python 3.11 (#289).
🐛 Fixes
- Fix symmetric difference operation not auto-detecting holes in the geometry (#297), thanks to @connorferster.
- Provide clarity on how to create arbitrary sections without a facet list (#294).
- CGS solver fix (#268), thanks to @simo-11.
🚨 Testing
- Use
nox
&nox-poetry
for testing. - Move
test_plastic_centroid()
totest_plastic.py
. - Various tests added.
👷 Continuous Integration
- Add
poetry
integration and detailed contributor guidelines. - Added labeller and release drafter automation.
- Added pre-commit checks.
- Updated all workflows.
📚 Documentation
- Changed documentation theme to furo.
- General overhaul of the documentation.
- Auto-generate API documentation using
sphinx.ext.autodoc
. - Auto-generate images in documentation using the
matplotlib
plot directive. - Change examples from sphinx gallery to jupyter notebook style with
nbsphinx
. - Add
intersphinx
mappings.
💄 Style
- Fully implement typing.
- Added
flake8
linter to pre-commit. - Added
darglint
docstring linter to pre-commit. - Added
isort
to pre-commit. - Added
pyupgrade
to pre-commit. - General refactor to improve readability and maintainability, e.g. reduce amount of code in
section.py
:PlasticSection
->plastic_section.py
,StressPost
andStressResult
->stress_post.py
,SectionProperties
->post.py
. - Generally changed type of a point from
list[float]
to atuple(float, float)
.
Other
- Restructured package by adding
src
folder.
v2.1.5
- Fix shapely 2.0 imports and STRtree implementation, with thanks to @normanrichardson
- Add support for python 3.10, drop support for python 3.7
Full changelog: 2.1.4...2.1.5