diff --git a/.flake8 b/.flake8 index ee204411..d40501fb 100644 --- a/.flake8 +++ b/.flake8 @@ -1,8 +1,10 @@ [flake8] -select = B,B9,C,D,DAR,E,F,N,RST,S,W +select = B,B9,C,D,DAR,E,F,N,PT,RST,S,W ignore = B028,B905,E203,E501,E741,RST201,RST203,RST301,RST303,W503 max-line-length = 80 docstring-convention = google per-file-ignores = tests/*:S101,__init__.py:F401,post.py:C901 rst-roles = class,const,func,meth,mod,ref rst-directives = deprecated +pytest-fixture-no-parentheses = True +pytest-mark-no-parentheses = True diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fe82827c..1cea48f5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -68,3 +68,14 @@ repos: rev: 0.6.1 hooks: - id: nbstripout + - repo: https://github.com/nbQA-dev/nbQA + rev: 1.7.0 + hooks: + - id: nbqa-black + additional_dependencies: [black==23.9.1] + - id: nbqa-pyupgrade + additional_dependencies: [pyupgrade==3.14.0] + args: ["--py39-plus"] + - id: nbqa-isort + additional_dependencies: [isort==5.12.0] + args: [--profile=black] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 793ab4c0..90f125f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,7 +79,7 @@ Now that you have all the dependencies up and running, you can install ```shell git clone https://github.com/robbievanleeuwen/concrete-properties.git cd concrete-properties -poetry install --all-extras +poetry install ``` You can now run an interactive Python session, or the command-line interface: diff --git a/docs/_static/animation.ipynb b/docs/_static/animation.ipynb index 294d1bbf..2d5d1a8d 100644 --- a/docs/_static/animation.ipynb +++ b/docs/_static/animation.ipynb @@ -17,13 +17,14 @@ "metadata": {}, "outputs": [], "source": [ - "import concreteproperties.stress_strain_profile as ssp\n", "import numpy as np\n", + "from sectionproperties.pre.geometry import Geometry\n", + "from shapely import Polygon\n", + "\n", + "import concreteproperties.stress_strain_profile as ssp\n", "from concreteproperties.concrete_section import ConcreteSection\n", "from concreteproperties.material import Concrete, SteelBar\n", - "from concreteproperties.pre import add_bar_rectangular_array\n", - "from sectionproperties.pre.geometry import Geometry\n", - "from shapely import Polygon" + "from concreteproperties.pre import add_bar_rectangular_array" ] }, { @@ -241,10 +242,11 @@ "import matplotlib.patches as mpatches\n", "import matplotlib.pyplot as plt\n", "import matplotlib.tri as tri\n", - "from concreteproperties.post import plotting_context\n", "from matplotlib.collections import PatchCollection\n", "from matplotlib.colors import CenteredNorm\n", "\n", + "from concreteproperties.post import plotting_context\n", + "\n", "\n", "def plot_stress_and_graph(res_idx, mk_res_list, k_list, m_list, **kwargs):\n", " with plotting_context(title=\"Stress\", **kwargs) as (fig, ax):\n", @@ -404,8 +406,10 @@ "outputs": [], "source": [ "import glob\n", + "\n", "from PIL import Image\n", "\n", + "\n", "# filepaths\n", "fp_in = \"anim/*.png\"\n", "fp_out = \"anim.gif\"\n", diff --git a/docs/contributing.rst b/docs/contributing.rst index 526fdf5f..f1a1a7ea 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -91,7 +91,7 @@ Now that you have all the dependencies up and running, you can install git clone https://github.com/robbievanleeuwen/concrete-properties.git cd concrete-properties - poetry install --all-extras + poetry install You can now run an interactive Python session, or the command-line interface: diff --git a/docs/examples/area_properties.ipynb b/docs/examples/area_properties.ipynb index cf17459c..c0a028ff 100644 --- a/docs/examples/area_properties.ipynb +++ b/docs/examples/area_properties.ipynb @@ -23,15 +23,16 @@ "metadata": {}, "outputs": [], "source": [ + "from sectionproperties.pre.library import concrete_rectangular_section\n", + "\n", "from concreteproperties import (\n", " Concrete,\n", - " SteelBar,\n", " ConcreteLinear,\n", + " ConcreteSection,\n", " RectangularStressBlock,\n", + " SteelBar,\n", " SteelElasticPlastic,\n", - " ConcreteSection,\n", - ")\n", - "from sectionproperties.pre.library import concrete_rectangular_section" + ")" ] }, { diff --git a/docs/examples/as3600.ipynb b/docs/examples/as3600.ipynb index 33ab2c12..fb0fada8 100644 --- a/docs/examples/as3600.ipynb +++ b/docs/examples/as3600.ipynb @@ -16,16 +16,17 @@ "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "from concreteproperties.design_codes import AS3600\n", + "import numpy as np\n", + "from sectionproperties.pre.library import concrete_rectangular_section\n", + "\n", "from concreteproperties import (\n", - " RectangularStressBlock,\n", " BilinearStressStrain,\n", - " EurocodeParabolicUltimate,\n", " ConcreteSection,\n", + " EurocodeParabolicUltimate,\n", + " RectangularStressBlock,\n", ")\n", - "from sectionproperties.pre.library import concrete_rectangular_section\n", + "from concreteproperties.design_codes import AS3600\n", "from concreteproperties.results import MomentInteractionResults" ] }, @@ -262,7 +263,7 @@ "n_list, _ = mi_res.get_results_lists(moment=\"m_x\") # get list of axial loads\n", "ax.plot(np.array(n_list) / 1e3, phis, \"-x\")\n", "plt.xlabel(\"Axial Force [kN]\")\n", - "plt.ylabel(\"$\\phi$\")\n", + "plt.ylabel(r\"$\\phi$\")\n", "plt.grid()\n", "plt.show()" ] diff --git a/docs/examples/biaxial_bending.ipynb b/docs/examples/biaxial_bending.ipynb index 05b7e650..4f4d5f7d 100644 --- a/docs/examples/biaxial_bending.ipynb +++ b/docs/examples/biaxial_bending.ipynb @@ -24,16 +24,17 @@ "outputs": [], "source": [ "import numpy as np\n", + "from sectionproperties.pre.library import rectangular_section\n", + "\n", "from concreteproperties import (\n", " Concrete,\n", - " SteelBar,\n", " ConcreteLinear,\n", + " ConcreteSection,\n", " RectangularStressBlock,\n", + " SteelBar,\n", " SteelElasticPlastic,\n", " add_bar_rectangular_array,\n", - " ConcreteSection,\n", ")\n", - "from sectionproperties.pre.library import rectangular_section\n", "from concreteproperties.results import BiaxialBendingResults" ] }, @@ -281,6 +282,7 @@ "ax.set_ylabel(\"Bending Moment $M_y$ [kN.m]\")\n", "import matplotlib.pyplot as plt\n", "\n", + "\n", "plt.show()" ] } diff --git a/docs/examples/composite_section.ipynb b/docs/examples/composite_section.ipynb index d4476666..915173e6 100644 --- a/docs/examples/composite_section.ipynb +++ b/docs/examples/composite_section.ipynb @@ -24,24 +24,25 @@ "outputs": [], "source": [ "import numpy as np\n", + "from sectionproperties.pre.library import (\n", + " circular_section_by_area,\n", + " concrete_circular_section,\n", + " i_section,\n", + " rectangular_section,\n", + ")\n", + "\n", + "import concreteproperties.results as res\n", "from concreteproperties import (\n", " Concrete,\n", - " Steel,\n", - " SteelBar,\n", " ConcreteLinearNoTension,\n", + " ConcreteSection,\n", " RectangularStressBlock,\n", + " Steel,\n", + " SteelBar,\n", " SteelElasticPlastic,\n", " add_bar_circular_array,\n", " add_bar_rectangular_array,\n", - " ConcreteSection,\n", - ")\n", - "from sectionproperties.pre.library import (\n", - " rectangular_section,\n", - " circular_section_by_area,\n", - " i_section,\n", - " concrete_circular_section,\n", - ")\n", - "import concreteproperties.results as res" + ")" ] }, { diff --git a/docs/examples/cracked_properties.ipynb b/docs/examples/cracked_properties.ipynb index fdf96509..4b641df4 100644 --- a/docs/examples/cracked_properties.ipynb +++ b/docs/examples/cracked_properties.ipynb @@ -24,15 +24,16 @@ "outputs": [], "source": [ "import numpy as np\n", + "from sectionproperties.pre.library import concrete_tee_section\n", + "\n", "from concreteproperties import (\n", " Concrete,\n", - " SteelBar,\n", " ConcreteLinear,\n", + " ConcreteSection,\n", " RectangularStressBlock,\n", + " SteelBar,\n", " SteelElasticPlastic,\n", - " ConcreteSection,\n", - ")\n", - "from sectionproperties.pre.library import concrete_tee_section" + ")" ] }, { diff --git a/docs/examples/moment_curvature.ipynb b/docs/examples/moment_curvature.ipynb index 084d57b1..dee67de1 100644 --- a/docs/examples/moment_curvature.ipynb +++ b/docs/examples/moment_curvature.ipynb @@ -24,14 +24,15 @@ "outputs": [], "source": [ "import numpy as np\n", - "from sectionproperties.pre.library import rectangular_section, circular_section\n", + "from sectionproperties.pre.library import circular_section, rectangular_section\n", + "\n", + "import concreteproperties.stress_strain_profile as ssp\n", "from concreteproperties import (\n", " Concrete,\n", + " ConcreteSection,\n", " SteelBar,\n", " add_bar_rectangular_array,\n", - " ConcreteSection,\n", ")\n", - "import concreteproperties.stress_strain_profile as ssp\n", "from concreteproperties.results import MomentCurvatureResults" ] }, @@ -347,6 +348,7 @@ "source": [ "import matplotlib.pyplot as plt\n", "\n", + "\n", "fix, ax = plt.subplots()\n", "kappa = np.array(moment_curvature_results[-1].kappa)\n", "moment = np.array(moment_curvature_results[-1].m_xy) / 1e6\n", diff --git a/docs/examples/moment_interaction.ipynb b/docs/examples/moment_interaction.ipynb index 9e781cbc..abf92382 100644 --- a/docs/examples/moment_interaction.ipynb +++ b/docs/examples/moment_interaction.ipynb @@ -24,16 +24,17 @@ "outputs": [], "source": [ "import numpy as np\n", + "from sectionproperties.pre.library import concrete_rectangular_section\n", + "\n", "from concreteproperties import (\n", " Concrete,\n", - " SteelBar,\n", " ConcreteLinear,\n", + " ConcreteSection,\n", " RectangularStressBlock,\n", + " SteelBar,\n", " SteelElasticPlastic,\n", - " ConcreteSection,\n", ")\n", - "from concreteproperties.results import MomentInteractionResults\n", - "from sectionproperties.pre.library import concrete_rectangular_section" + "from concreteproperties.results import MomentInteractionResults" ] }, { @@ -209,7 +210,7 @@ "\n", " conc_sec = ConcreteSection(geom)\n", " mi_results.append(conc_sec.moment_interaction_diagram(progress_bar=False))\n", - " labels.append(\"p = {0}\".format(0.01 * (idx + 1)))" + " labels.append(f\"p = {0.01 * (idx + 1)}\")" ] }, { @@ -382,6 +383,7 @@ "# reset axis limits to ensure labels are within plot\n", "import matplotlib.pyplot as plt\n", "\n", + "\n", "ax.set_xlim(-20, 850)\n", "ax.set_ylim(-3000, 9000)\n", "plt.show()" diff --git a/docs/examples/nzs3101.ipynb b/docs/examples/nzs3101.ipynb index bbe26b4c..8b91500e 100644 --- a/docs/examples/nzs3101.ipynb +++ b/docs/examples/nzs3101.ipynb @@ -16,22 +16,21 @@ "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "\n", + "import numpy as np\n", "from sectionproperties.pre.library import concrete_rectangular_section\n", "\n", - "from concreteproperties.design_codes import NZS3101\n", "from concreteproperties import (\n", " Concrete,\n", + " ConcreteSection,\n", " ModifiedMander,\n", " RectangularStressBlock,\n", - " ConcreteSection,\n", ")\n", + "from concreteproperties.design_codes import NZS3101\n", "from concreteproperties.results import (\n", - " MomentInteractionResults,\n", " BiaxialBendingResults,\n", " MomentCurvatureResults,\n", + " MomentInteractionResults,\n", ")" ] }, diff --git a/docs/examples/prestressed_section.ipynb b/docs/examples/prestressed_section.ipynb index b6b2b798..922a4c0a 100644 --- a/docs/examples/prestressed_section.ipynb +++ b/docs/examples/prestressed_section.ipynb @@ -28,16 +28,15 @@ "from sectionproperties.pre.library import rectangular_section\n", "\n", "from concreteproperties import (\n", - " Concrete,\n", - " SteelStrand,\n", - " EurocodeNonLinear,\n", " BilinearStressStrain,\n", + " Concrete,\n", " ConcreteLinearNoTension,\n", + " EurocodeNonLinear,\n", + " PrestressedSection,\n", + " SteelStrand,\n", " StrandHardening,\n", " add_bar_rectangular_array,\n", - " PrestressedSection,\n", ")\n", - "\n", "from concreteproperties.results import MomentCurvatureResults" ] }, diff --git a/docs/examples/stress_analysis.ipynb b/docs/examples/stress_analysis.ipynb index 15c55b12..551d7de4 100644 --- a/docs/examples/stress_analysis.ipynb +++ b/docs/examples/stress_analysis.ipynb @@ -25,15 +25,16 @@ "source": [ "import numpy as np\n", "from rich.pretty import pprint\n", + "from sectionproperties.pre.library import concrete_circular_section\n", + "\n", "from concreteproperties import (\n", " Concrete,\n", - " SteelBar,\n", + " ConcreteSection,\n", " EurocodeNonLinear,\n", " RectangularStressBlock,\n", + " SteelBar,\n", " SteelElasticPlastic,\n", - " ConcreteSection,\n", - ")\n", - "from sectionproperties.pre.library import concrete_circular_section" + ")" ] }, { @@ -278,8 +279,9 @@ "metadata": {}, "outputs": [], "source": [ - "from rich.table import Table\n", "from rich.console import Console\n", + "from rich.table import Table\n", + "\n", "\n", "# store forces & moments for later\n", "forces = []\n", diff --git a/docs/examples/ultimate_bending.ipynb b/docs/examples/ultimate_bending.ipynb index 9feab770..181709d7 100644 --- a/docs/examples/ultimate_bending.ipynb +++ b/docs/examples/ultimate_bending.ipynb @@ -24,14 +24,15 @@ "outputs": [], "source": [ "import numpy as np\n", + "from sectionproperties.pre.library import rectangular_section, triangular_section\n", + "\n", + "import concreteproperties.stress_strain_profile as ssp\n", "from concreteproperties import (\n", " Concrete,\n", + " ConcreteSection,\n", " SteelBar,\n", " add_bar_rectangular_array,\n", - " ConcreteSection,\n", - ")\n", - "import concreteproperties.stress_strain_profile as ssp\n", - "from sectionproperties.pre.library import rectangular_section, triangular_section" + ")" ] }, { diff --git a/docs/installation.rst b/docs/installation.rst index 9acdb0f5..17f4729d 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -38,6 +38,3 @@ use the ``dxf`` and/or ``rhino`` options: pip install sectionproperties[dxf] pip install sectionproperties[rhino] - -Note that the ``rhino`` option only supports python ``3.9`` due to incomplete wheel -coverage of ``rhino3dm``. diff --git a/noxfile.py b/noxfile.py index 4e80c567..22948fd6 100644 --- a/noxfile.py +++ b/noxfile.py @@ -119,7 +119,7 @@ def precommit(session: Session) -> None: "--show-diff-on-failure", ] session.install( - "black[jupyter]", + "black", "darglint", "flake8", "flake8-bugbear", diff --git a/poetry.lock b/poetry.lock index 992545c6..743dd1d8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -244,12 +244,10 @@ files = [ [package.dependencies] click = ">=8.0.0" -ipython = {version = ">=7.8.0", optional = true, markers = "extra == \"jupyter\""} mypy-extensions = ">=0.4.3" packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" -tokenize-rt = {version = ">=3.2.0", optional = true, markers = "extra == \"jupyter\""} tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} @@ -848,6 +846,31 @@ files = [ flake8 = ">=3" pydocstyle = ">=2.1" +[[package]] +name = "flake8-plugin-utils" +version = "1.3.3" +description = "The package provides base classes and utils for flake8 plugin writing" +optional = false +python-versions = ">=3.6,<4.0" +files = [ + {file = "flake8-plugin-utils-1.3.3.tar.gz", hash = "sha256:39f6f338d038b301c6fd344b06f2e81e382b68fa03c0560dff0d9b1791a11a2c"}, + {file = "flake8_plugin_utils-1.3.3-py3-none-any.whl", hash = "sha256:e4848c57d9d50f19100c2d75fa794b72df068666a9041b4b0409be923356a3ed"}, +] + +[[package]] +name = "flake8-pytest-style" +version = "1.7.2" +description = "A flake8 plugin checking common style issues or inconsistencies with pytest-based tests." +optional = false +python-versions = ">=3.7.2,<4.0.0" +files = [ + {file = "flake8_pytest_style-1.7.2-py3-none-any.whl", hash = "sha256:f5d2aa3219163a052dd92226589d45fab8ea027a3269922f0c4029f548ea5cd1"}, + {file = "flake8_pytest_style-1.7.2.tar.gz", hash = "sha256:b924197c99b951315949920b0e5547f34900b1844348432e67a44ab191582109"}, +] + +[package.dependencies] +flake8-plugin-utils = ">=1.3.2,<2.0.0" + [[package]] name = "flake8-rst-docstrings" version = "0.3.0" @@ -1619,6 +1642,39 @@ files = [ six = "*" tornado = {version = "*", markers = "python_version > \"2.7\""} +[[package]] +name = "llvmlite" +version = "0.41.0" +description = "lightweight wrapper around basic LLVM functionality" +optional = false +python-versions = ">=3.8" +files = [ + {file = "llvmlite-0.41.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acc81c1279f858e5eab460844cc381e30d6666bc8eea04724b54d4eeb1fd1e54"}, + {file = "llvmlite-0.41.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:013000a11df84a8b5e4f7fbf2513896ca48441c527d9ae8e375da92bc5575d08"}, + {file = "llvmlite-0.41.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1b5df30581eb8dbdee0e17a1217debb1d7dcd61a092a09726afff441dad5a67"}, + {file = "llvmlite-0.41.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe265129ecd18957d3653cfb17df1632fa2c57fd0bac1960bc20a8c3ca961197"}, + {file = "llvmlite-0.41.0-cp310-cp310-win32.whl", hash = "sha256:6e477d23afbdddb3dde789d29a771e23bcfa1b12485156370dba9df05d529d94"}, + {file = "llvmlite-0.41.0-cp310-cp310-win_amd64.whl", hash = "sha256:93ce07a0a6d98ff2fcc34e7d2d315d8d09f6a737539e089f1a8cbe4a3a0313bf"}, + {file = "llvmlite-0.41.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dabfb1a28d26b8c01228f59aec90a61324203dda6b1465c596d577d6380545e8"}, + {file = "llvmlite-0.41.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:741bb2ab7712c4763483189f0684163fb3ac44087c617698c50654c7d7ab6a24"}, + {file = "llvmlite-0.41.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7b7022f1e2f652722ddd5697987f1aeaf0c9a64f2ee324e03f6e060b28a1bbd"}, + {file = "llvmlite-0.41.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70feadac822f8840f2db6cbb662f1b349fe5d375d8ceb9c907f3919e005dc705"}, + {file = "llvmlite-0.41.0-cp311-cp311-win_amd64.whl", hash = "sha256:21191c6a9fb4a86d71ec72debbaf39db49590a950c8a2a4ac792c41d16b0a61a"}, + {file = "llvmlite-0.41.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0d94e531c763340344198f2c31af6af7b665e9cd2b354e31afa5cf4abfce0a8e"}, + {file = "llvmlite-0.41.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d8997264291e822689f7d6df4716638f35ff586bef5b8be40e2ba77d6bd9405c"}, + {file = "llvmlite-0.41.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de31585b867e8d9bae0c15f03e8bf541afcff66ffa5f61e401a738274702bdcd"}, + {file = "llvmlite-0.41.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57c0a3fd031936461f9f24f4cace80a86c9ba09d8b02fa87c209607aae2463cb"}, + {file = "llvmlite-0.41.0-cp38-cp38-win32.whl", hash = "sha256:0c79cb7e88403d6c64385bf1e63797af0884caf1f4afa3c8c4bbef1920e28148"}, + {file = "llvmlite-0.41.0-cp38-cp38-win_amd64.whl", hash = "sha256:6c40e290d930b09bbebe0d05c750b8a9e20af147e8cec8d62aa42e874f46dbfa"}, + {file = "llvmlite-0.41.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:24b3f7e258ea7c07ebf9f70c772e25619de8d207192254beb7644b818a97440b"}, + {file = "llvmlite-0.41.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:876cd5f53cfe51d3a5cf7952dc1a25bd6158f5795739b1f8159c3591b32ed3cb"}, + {file = "llvmlite-0.41.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8218d307bd89535207fea1cc1ef5498afcb6d0203153dba214058715fecdb699"}, + {file = "llvmlite-0.41.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27d9d11c8dcdb8a8e14e92d0be5bba60f15bdf2fc116b8d27cab40221093a1b0"}, + {file = "llvmlite-0.41.0-cp39-cp39-win32.whl", hash = "sha256:a4af8722ad6cb0dd2d5454ebc5a7bf90867df5f3fcb0787396a3261052caefda"}, + {file = "llvmlite-0.41.0-cp39-cp39-win_amd64.whl", hash = "sha256:f150e127d6bc0e74633b8ba210776b0b6fdc82af6dfebf0794318ea97634acd0"}, + {file = "llvmlite-0.41.0.tar.gz", hash = "sha256:7d41db345d76d2dfa31871178ce0d8e9fd8aa015aa1b7d4dab84b5cb393901e0"}, +] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -1986,45 +2042,72 @@ jupyter-server = ">=1.8,<3" [package.extras] test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] +[[package]] +name = "numba" +version = "0.58.0" +description = "compiling Python code using LLVM" +optional = false +python-versions = ">=3.8" +files = [ + {file = "numba-0.58.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f146c11af62ad25021d93fccf48715a96d1ea76d43c1c3bc97dca561c6a2693"}, + {file = "numba-0.58.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8059ee491651885f89655f08856a107aa610e3355b373f3b7437f1da96f09703"}, + {file = "numba-0.58.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8bd9edd27ab29e80bcf4083f9955c4a8871075a13a370b3bef99f81e184541fa"}, + {file = "numba-0.58.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7ee9f5fd962e0ada0e68df67a6ff881f95b45e0ae7cb96141e913337040d490b"}, + {file = "numba-0.58.0-cp310-cp310-win_amd64.whl", hash = "sha256:398ab539257df8e980ec2f9cdfae836bb965fadc2dd30db3fcfbf3aefa542836"}, + {file = "numba-0.58.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e61a1fa0ab7d290f0a43d8523b372f96765db6ceb6a691660c17e9ed609cb470"}, + {file = "numba-0.58.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8a9b69cc6259131791822c5eb893b03cd9372f4aae669d020500565b6d5d80bc"}, + {file = "numba-0.58.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e7b42b23c36cf08fcfe1a8f2acf3a0af95b41f9ee07fc81b28d7b9b5ada85d8c"}, + {file = "numba-0.58.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0d7a5e81e4047a23986f816b48ac46616ceb4eadbff6bbe739944d36b3bdbfe7"}, + {file = "numba-0.58.0-cp311-cp311-win_amd64.whl", hash = "sha256:0ce322178ff7006b7f50dad25b042ef64c6393f2fafafa79c0498d789b1aac27"}, + {file = "numba-0.58.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f3934eab4eb1c07c8f067e99350b99f70b2ca77d5aa3911d365643171f771157"}, + {file = "numba-0.58.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cee5f22f7fbb2ef445e422aeafe5d38bf71a52c8bb34d22c1e145afa4034d6b"}, + {file = "numba-0.58.0-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:121bf98a2b02e0611af3bfab3995fed990db58c4bfc6c225332ccdaf37e312e7"}, + {file = "numba-0.58.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0734614d3e92eb01f848b8595be116f9c8ad997f8cf77672f3ba53c511f1429d"}, + {file = "numba-0.58.0-cp38-cp38-win_amd64.whl", hash = "sha256:48bcaae337ee450e38bf3796b4e1a166909c339f1757b6110e6adcf42c1e6c3e"}, + {file = "numba-0.58.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a5f99806d5c9671dc927a8a489bc0c88e79be51e9775d6a3c68dbfdf585cd7e9"}, + {file = "numba-0.58.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9dade55ee5f1b8c5e3e0db95449fdc5b7b4244c1a7fa133bd664cbfc1027bafe"}, + {file = "numba-0.58.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7e182f3296dfcbafcd23b9263baeb350ad5adcacd081f1b3ec927a9fb325cca8"}, + {file = "numba-0.58.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f80aee7889e82ab9c4770e02b21ca4e3ca15cc8c829c173fc27b77ab0529b5cb"}, + {file = "numba-0.58.0-cp39-cp39-win_amd64.whl", hash = "sha256:477f429bb593dd3fc8d84b44f199e8e30268a7cfeb96c8464cb393d401de4f45"}, + {file = "numba-0.58.0.tar.gz", hash = "sha256:e5d5a318dc65a101ef846d7fd93f3cf2f7942494019e8342e51238b360739125"}, +] + +[package.dependencies] +llvmlite = "==0.41.*" +numpy = ">=1.21,<1.26" + [[package]] name = "numpy" -version = "1.26.0" +version = "1.25.2" description = "Fundamental package for array computing in Python" optional = false -python-versions = "<3.13,>=3.9" +python-versions = ">=3.9" files = [ - {file = "numpy-1.26.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8db2f125746e44dce707dd44d4f4efeea8d7e2b43aace3f8d1f235cfa2733dd"}, - {file = "numpy-1.26.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0621f7daf973d34d18b4e4bafb210bbaf1ef5e0100b5fa750bd9cde84c7ac292"}, - {file = "numpy-1.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51be5f8c349fdd1a5568e72713a21f518e7d6707bcf8503b528b88d33b57dc68"}, - {file = "numpy-1.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:767254ad364991ccfc4d81b8152912e53e103ec192d1bb4ea6b1f5a7117040be"}, - {file = "numpy-1.26.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:436c8e9a4bdeeee84e3e59614d38c3dbd3235838a877af8c211cfcac8a80b8d3"}, - {file = "numpy-1.26.0-cp310-cp310-win32.whl", hash = "sha256:c2e698cb0c6dda9372ea98a0344245ee65bdc1c9dd939cceed6bb91256837896"}, - {file = "numpy-1.26.0-cp310-cp310-win_amd64.whl", hash = "sha256:09aaee96c2cbdea95de76ecb8a586cb687d281c881f5f17bfc0fb7f5890f6b91"}, - {file = "numpy-1.26.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:637c58b468a69869258b8ae26f4a4c6ff8abffd4a8334c830ffb63e0feefe99a"}, - {file = "numpy-1.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:306545e234503a24fe9ae95ebf84d25cba1fdc27db971aa2d9f1ab6bba19a9dd"}, - {file = "numpy-1.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6adc33561bd1d46f81131d5352348350fc23df4d742bb246cdfca606ea1208"}, - {file = "numpy-1.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e062aa24638bb5018b7841977c360d2f5917268d125c833a686b7cbabbec496c"}, - {file = "numpy-1.26.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:546b7dd7e22f3c6861463bebb000646fa730e55df5ee4a0224408b5694cc6148"}, - {file = "numpy-1.26.0-cp311-cp311-win32.whl", hash = "sha256:c0b45c8b65b79337dee5134d038346d30e109e9e2e9d43464a2970e5c0e93229"}, - {file = "numpy-1.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:eae430ecf5794cb7ae7fa3808740b015aa80747e5266153128ef055975a72b99"}, - {file = "numpy-1.26.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:166b36197e9debc4e384e9c652ba60c0bacc216d0fc89e78f973a9760b503388"}, - {file = "numpy-1.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f042f66d0b4ae6d48e70e28d487376204d3cbf43b84c03bac57e28dac6151581"}, - {file = "numpy-1.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5e18e5b14a7560d8acf1c596688f4dfd19b4f2945b245a71e5af4ddb7422feb"}, - {file = "numpy-1.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f6bad22a791226d0a5c7c27a80a20e11cfe09ad5ef9084d4d3fc4a299cca505"}, - {file = "numpy-1.26.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4acc65dd65da28060e206c8f27a573455ed724e6179941edb19f97e58161bb69"}, - {file = "numpy-1.26.0-cp312-cp312-win32.whl", hash = "sha256:bb0d9a1aaf5f1cb7967320e80690a1d7ff69f1d47ebc5a9bea013e3a21faec95"}, - {file = "numpy-1.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:ee84ca3c58fe48b8ddafdeb1db87388dce2c3c3f701bf447b05e4cfcc3679112"}, - {file = "numpy-1.26.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4a873a8180479bc829313e8d9798d5234dfacfc2e8a7ac188418189bb8eafbd2"}, - {file = "numpy-1.26.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:914b28d3215e0c721dc75db3ad6d62f51f630cb0c277e6b3bcb39519bed10bd8"}, - {file = "numpy-1.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c78a22e95182fb2e7874712433eaa610478a3caf86f28c621708d35fa4fd6e7f"}, - {file = "numpy-1.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86f737708b366c36b76e953c46ba5827d8c27b7a8c9d0f471810728e5a2fe57c"}, - {file = "numpy-1.26.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b44e6a09afc12952a7d2a58ca0a2429ee0d49a4f89d83a0a11052da696440e49"}, - {file = "numpy-1.26.0-cp39-cp39-win32.whl", hash = "sha256:5671338034b820c8d58c81ad1dafc0ed5a00771a82fccc71d6438df00302094b"}, - {file = "numpy-1.26.0-cp39-cp39-win_amd64.whl", hash = "sha256:020cdbee66ed46b671429c7265cf00d8ac91c046901c55684954c3958525dab2"}, - {file = "numpy-1.26.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0792824ce2f7ea0c82ed2e4fecc29bb86bee0567a080dacaf2e0a01fe7654369"}, - {file = "numpy-1.26.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d484292eaeb3e84a51432a94f53578689ffdea3f90e10c8b203a99be5af57d8"}, - {file = "numpy-1.26.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:186ba67fad3c60dbe8a3abff3b67a91351100f2661c8e2a80364ae6279720299"}, - {file = "numpy-1.26.0.tar.gz", hash = "sha256:f93fc78fe8bf15afe2b8d6b6499f1c73953169fad1e9a8dd086cdff3190e7fdf"}, + {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, + {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, + {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, + {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, + {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, + {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, + {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, + {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, + {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, + {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, + {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, + {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, ] [[package]] @@ -2242,13 +2325,13 @@ virtualenv = ">=20.10.0" [[package]] name = "pre-commit-hooks" -version = "4.4.0" +version = "4.5.0" description = "Some out-of-the-box hooks for pre-commit." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pre_commit_hooks-4.4.0-py2.py3-none-any.whl", hash = "sha256:fc8837335476221ccccda3d176ed6ae29fe58753ce7e8b7863f5d0f987328fc6"}, - {file = "pre_commit_hooks-4.4.0.tar.gz", hash = "sha256:7011eed8e1a25cde94693da009cba76392194cecc2f3f06c51a44ea6ad6c2af9"}, + {file = "pre_commit_hooks-4.5.0-py2.py3-none-any.whl", hash = "sha256:b779d5c44ede9b1fda48e2d96b08e9aa5b1d2fdb8903ca09f0dbaca22d529edb"}, + {file = "pre_commit_hooks-4.5.0.tar.gz", hash = "sha256:ffbe2af1c85ac9a7695866955680b4dee98822638b748a6f3debefad79748c8a"}, ] [package.dependencies] @@ -2461,13 +2544,13 @@ files = [ [[package]] name = "pyupgrade" -version = "3.14.0" +version = "3.15.0" description = "A tool to automatically upgrade syntax for newer versions." optional = false python-versions = ">=3.8.1" files = [ - {file = "pyupgrade-3.14.0-py2.py3-none-any.whl", hash = "sha256:221923c5cd6171e4adb78bfd331ce95500112294c36fb61a0947c55c78cb1924"}, - {file = "pyupgrade-3.14.0.tar.gz", hash = "sha256:e5caa64798256e341afcee6fe42be8d75e4f88f20809b25dc6174548dbc3bace"}, + {file = "pyupgrade-3.15.0-py2.py3-none-any.whl", hash = "sha256:8dc8ebfaed43566e2c65994162795017c7db11f531558a74bc8aa077907bc305"}, + {file = "pyupgrade-3.15.0.tar.gz", hash = "sha256:a7fde381060d7c224f55aef7a30fae5ac93bbc428367d27e70a603bc2acd4f00"}, ] [package.dependencies] @@ -2975,20 +3058,21 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo [[package]] name = "sectionproperties" -version = "3.0.2" +version = "3.1.0" description = "A python package for the analysis of arbitrary cross-sections using the finite element method." optional = false python-versions = ">=3.9.0,<3.12" files = [ - {file = "sectionproperties-3.0.2-py3-none-any.whl", hash = "sha256:3065eb40e8777b5d72b160058ea3200beb9adb1ffc46f0f5fb22b444aac86fec"}, - {file = "sectionproperties-3.0.2.tar.gz", hash = "sha256:2536115170e7ee1b4656ebfd88e4d4746ff49186a9111df3e38fe8a8df649a52"}, + {file = "sectionproperties-3.1.0-py3-none-any.whl", hash = "sha256:fde1010a5727347f02b70133a4af30fbb03eca41714972050654605814dd20e8"}, + {file = "sectionproperties-3.1.0.tar.gz", hash = "sha256:7c9fe9df3b25b1ba10146d30c47217cd02801b09636f4b0e174d0b66de82f7db"}, ] [package.dependencies] click = ">=8.1.7,<9.0.0" matplotlib = ">=3.8.0,<4.0.0" more-itertools = ">=10.1.0,<11.0.0" -numpy = ">=1.26.0,<2.0.0" +numba = ">=0.58.0,<0.59.0" +numpy = ">=1.25.2,<2.0.0" rich = ">=13.6.0,<14.0.0" scipy = ">=1.11.3,<2.0.0" shapely = ">=2.0.1,<3.0.0" @@ -2996,7 +3080,8 @@ triangle = ">=20230923,<20230924" [package.extras] dxf = ["cad-to-shapely (>=0.3.1,<0.4.0)"] -rhino = ["rhino-shapley-interop (>=0.0.4,<0.0.5)", "rhino3dm (==8.0.0b2)"] +pardiso = ["pypardiso (>=0.4.2,<0.5.0)"] +rhino = ["rhino-shapley-interop (>=0.0.4,<0.0.5)", "rhino3dm (==8.0.0b3)"] [[package]] name = "send2trash" @@ -3688,4 +3773,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.9.0,<3.12" -content-hash = "71d26a387dfccbd65e0202d591eb24bd2540e3e27ef5760185193d4b11854350" +content-hash = "a89cf9780093f8c05c2339cc5544e5187535888f8d19155782e0967bdde74c18" diff --git a/pyproject.toml b/pyproject.toml index ad982493..e1f0213e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ Changelog = "https://github.com/robbievanleeuwen/concrete-properties/releases" [tool.poetry.dependencies] python = ">=3.9.0,<3.12" -numpy = "^1.26.0" +numpy = "^1.25.2" # sectionproperties (numba) requires numpy <1.26 scipy = "^1.11.3" matplotlib = "^3.8.0" shapely = "^2.0.1" @@ -53,16 +53,17 @@ triangle = "^20230923" rich = "^13.6.0" click = "^8.1.7" more-itertools = "^10.1.0" -sectionproperties = "^3.0.2" +sectionproperties = "^3.1.0" [tool.poetry.dev-dependencies] -black = { extras = ["jupyter"], version = "^23.9.1" } +black = "^23.9.1" coverage = { extras = ["toml"], version = "^7.3.2" } darglint = "^1.8.1" flake8 = "^6.1.0" flake8-bugbear = "^23.9.16" flake8-docstrings = "^1.7.0" flake8-rst-docstrings = "^0.3.0" +flake8-pytest-style = "^1.7.2" furo = "^2023.9.10" ipykernel = "^6.25.2" ipython = "^8.16.1" @@ -73,10 +74,10 @@ nbsphinx = "^0.9.3" notebook = "^7.0.4" pep8-naming = "^0.13.3" pre-commit = "^3.4.0" -pre-commit-hooks = "^4.4.0" +pre-commit-hooks = "^4.5.0" Pygments = "^2.16.1" pytest = "^7.4.2" -pyupgrade = "^3.14.0" +pyupgrade = "^3.15.0" sphinx = "^7.2.6" sphinx-autobuild = "^2021.3.14" sphinx-click = "^5.0.1"