Sectionproperties

Latest version: v3.7.3

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 6

3.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

:rocket: Features

* Add `plot_warping_function()`, enforce Lagrangian Multiplier constraint (343) TLCFEM

:bug: 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

:books: Documentation

* JOSS Paper (342) robbievanleeuwen
* Joss CMF (356) connorferster

:lipstick: Style

* Implement `mypy` (344) robbievanleeuwen

:package: 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](https://github.com/robbievanleeuwen/section-properties/compare/v3.1.1...v3.1.2)

3.1.1

Minor release for Zenodo archival.

**Full changelog:** [v3.1.0...v3.1.1](https://github.com/robbievanleeuwen/section-properties/compare/v3.1.0...v3.1.1)

3.1.0

⭐ Highlights

- Get significant performance improvements for large meshes by using the `pardiso` solver, see installation docs [here](https://sectionproperties.readthedocs.io/en/stable/installation.html#installing-pardiso-solver). Further performance gains with the introduction of `numba`, 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](https://sectionproperties.readthedocs.io/en/stable/examples.html#validation).
- Added benchmark tests to aid performance improvements.
- Rhino methods are now supported in python 3.10 and 3.11.

What's Changed

:racehorse: Performance

* Add numba, pardiso (324) TLCFEM

:rotating_light: 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

:construction_worker: 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

:books: Documentation

* Add validation examples from Pilkey (Symmetric Channel Section, Circular Arc, Composite Rectangular Strip) (335) robbievanleeuwen
* Fix docstring for StressPost.get_stress() (330) robbievanleeuwen

:package: 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](https://github.com/robbievanleeuwen/section-properties/compare/v3.0.2...v3.1.0)

3.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

:bug: Fixes

* Fix concrete_tee_section() top bar distribution (325) robbievanleeuwen

:construction_worker: Continuous Integration

* Update noxfile.py with correct docs dependencies, fix double CI builds (327) robbievanleeuwen

:books: Documentation

* Fix links in documentation (326) robbievanleeuwen

:package: Dependencies

* Bump jupyter/nbconvert from 7.8.0 to 7.9.2 (328) robbievanleeuwen

**Full changelog:** [v3.0.1...v3.0.2](https://github.com/robbievanleeuwen/section-properties/compare/v3.0.1...v3.0.2)

3.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

:bug: Fixes

* Fix concrete_rectangular_section() bug when n_side=1 (322) TLCFEM

:package: 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](https://github.com/robbievanleeuwen/section-properties/compare/v3.0.0...v3.0.1)

3.0.0

:star: Highlights

- New, unambiguous section property retrieval with `get()` [methods](https://sectionproperties.readthedocs.io/en/latest/user_guide/results.html#retrieving-section-properties), see an example [here](https://sectionproperties.readthedocs.io/en/latest/examples/results/get_results.html).
- Improved [stress plotting options](https://sectionproperties.readthedocs.io/en/latest/user_guide/results.html#plot-stress-contours) (new colorbar features, mesh opacity, plot selected materials), see an example [here](https://sectionproperties.readthedocs.io/en/latest/examples/results/plot_stress.html).
- Improved [documentation](https://sectionproperties.readthedocs.io/en/latest/index.html) style and automation.
- `sectionproperties` API now has full typing coverage.
- Significantly expanded [examples](https://sectionproperties.readthedocs.io/en/latest/examples.html) in the documentation.
- Add support for Python 3.11.
- Improved workflow, CI and contributor experience by introducing `poetry` and `nox`.

:boom: Breaking Changes

- Update section property `get()` methods behaviour as per 287 to circumvent confusion surrounding material weighted properties. An analysis without material properties uses the `get_{property}()` syntax, while an analysis with material properties typically uses the `get_e{property}()` syntax with the added option of retrieving transformed section properties. See [here](https://sectionproperties.readthedocs.io/en/latest/user_guide/results.html#retrieving-section-properties) for a list of the new `get()` methods and [here](https://sectionproperties.readthedocs.io/en/latest/user_guide/results.html#how-material-properties-affect-results) 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()` or `plot_stress_vector()` methods that belong to the `StressPost` object.
- ``get_stress_at_point()`` method removed, use the more versatile ``get_stress_at_points()`` method instead.
- Pythonic renaming of methods and variables, e.g. ``get_As()`` becomes ``get_as()`` for retrieving shear areas, moments and shears change from ``Mxx`` and ``Vx`` to ``mxx`` and ``vx``.
- Concrete section library - renamed argument names to be more pythonic, reinforcement now requires an area and diameter.
- Dropped support for Python 3.8 (289).

:rocket: 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`` becomes ``from 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](https://github.com/TLCFEM/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).

:bug: 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.

:rotating_light: Testing

- Use `nox` & `nox-poetry` for testing.
- Move `test_plastic_centroid()` to `test_plastic.py`.
- Various tests added.

:construction_worker: Continuous Integration

- Add `poetry` integration and detailed contributor guidelines.
- Added labeller and release drafter automation.
- Added pre-commit checks.
- Updated all workflows.

:books: Documentation

- Changed documentation theme to [furo](https://github.com/pradyunsg/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.

:lipstick: 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`` and ``StressResult`` -> ``stress_post.py``, ``SectionProperties`` -> ``post.py``.
- Generally changed type of a point from ``list[float]`` to a ``tuple(float, float)``.

Other

- Restructured package by adding ``src`` folder.

Page 3 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.