diff --git a/poetry.lock b/poetry.lock
index 801f0af..de79975 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,10 +1,9 @@
-# This file is automatically @generated by Poetry and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
 
 [[package]]
 name = "cachetools"
 version = "5.3.3"
 description = "Extensible memoizing collections and decorators"
-category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -16,7 +15,6 @@ files = [
 name = "catkin-pkg"
 version = "1.0.0"
 description = "catkin package library"
-category = "main"
 optional = false
 python-versions = ">=3.6"
 files = [
@@ -37,7 +35,6 @@ test = ["flake8", "flake8-blind-except", "flake8-builtins", "flake8-class-newlin
 name = "chardet"
 version = "5.2.0"
 description = "Universal encoding detector for Python 3"
-category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -49,7 +46,6 @@ files = [
 name = "colorama"
 version = "0.4.6"
 description = "Cross-platform colored terminal text."
-category = "main"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
 files = [
@@ -61,7 +57,6 @@ files = [
 name = "contourpy"
 version = "1.2.1"
 description = "Python library for calculating contours of 2D quadrilateral grids"
-category = "main"
 optional = false
 python-versions = ">=3.9"
 files = [
@@ -125,7 +120,6 @@ test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"]
 name = "coverage"
 version = "7.5.0"
 description = "Code coverage measurement for Python"
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -193,7 +187,6 @@ toml = ["tomli"]
 name = "cycler"
 version = "0.12.1"
 description = "Composable style cycles"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -209,7 +202,6 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"]
 name = "distlib"
 version = "0.3.8"
 description = "Distribution utilities"
-category = "dev"
 optional = false
 python-versions = "*"
 files = [
@@ -221,7 +213,6 @@ files = [
 name = "docutils"
 version = "0.21.2"
 description = "Docutils -- Python Documentation Utilities"
-category = "main"
 optional = false
 python-versions = ">=3.9"
 files = [
@@ -233,7 +224,6 @@ files = [
 name = "empy"
 version = "3.3.4"
 description = "A templating system for Python."
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -244,7 +234,6 @@ files = [
 name = "exceptiongroup"
 version = "1.2.1"
 description = "Backport of PEP 654 (exception groups)"
-category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -259,7 +248,6 @@ test = ["pytest (>=6)"]
 name = "filelock"
 version = "3.14.0"
 description = "A platform independent file lock."
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -276,7 +264,6 @@ typing = ["typing-extensions (>=4.8)"]
 name = "fonttools"
 version = "4.51.0"
 description = "Tools to manipulate font files"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -342,7 +329,6 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"]
 name = "fsspec"
 version = "2024.3.1"
 description = "File-system specification"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -378,7 +364,6 @@ tqdm = ["tqdm"]
 name = "importlib-resources"
 version = "6.4.0"
 description = "Read resources from Python packages"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -397,7 +382,6 @@ testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "p
 name = "iniconfig"
 version = "2.0.0"
 description = "brain-dead simple config-ini parsing"
-category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -409,7 +393,6 @@ files = [
 name = "intel-openmp"
 version = "2021.4.0"
 description = "Intel OpenMP* Runtime Library"
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -424,7 +407,6 @@ files = [
 name = "jinja2"
 version = "3.1.3"
 description = "A very fast and expressive template engine."
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -442,7 +424,6 @@ i18n = ["Babel (>=2.7)"]
 name = "kiwisolver"
 version = "1.4.5"
 description = "A fast implementation of the Cassowary constraint solver"
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -556,7 +537,6 @@ files = [
 name = "lark"
 version = "1.1.9"
 description = "a modern parsing library"
-category = "main"
 optional = false
 python-versions = ">=3.6"
 files = [
@@ -574,7 +554,6 @@ regex = ["regex"]
 name = "markupsafe"
 version = "2.1.5"
 description = "Safely add untrusted strings to HTML/XML markup."
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -644,7 +623,6 @@ files = [
 name = "matplotlib"
 version = "3.8.4"
 description = "Python plotting package"
-category = "main"
 optional = false
 python-versions = ">=3.9"
 files = [
@@ -694,7 +672,6 @@ python-dateutil = ">=2.7"
 name = "mkl"
 version = "2021.4.0"
 description = "IntelĀ® oneAPI Math Kernel Library"
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -706,14 +683,13 @@ files = [
 ]
 
 [package.dependencies]
-intel-openmp = ">=2021.0.0,<2022.0.0"
-tbb = ">=2021.0.0,<2022.0.0"
+intel-openmp = "==2021.*"
+tbb = "==2021.*"
 
 [[package]]
 name = "mpmath"
 version = "1.3.0"
 description = "Python library for arbitrary-precision floating-point arithmetic"
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -731,7 +707,6 @@ tests = ["pytest (>=4.6)"]
 name = "mypy"
 version = "1.10.0"
 description = "Optional static typing for Python"
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -779,7 +754,6 @@ reports = ["lxml"]
 name = "mypy-extensions"
 version = "1.0.0"
 description = "Type system extensions for programs checked with the mypy type checker."
-category = "dev"
 optional = false
 python-versions = ">=3.5"
 files = [
@@ -791,7 +765,6 @@ files = [
 name = "networkx"
 version = "3.2.1"
 description = "Python package for creating and manipulating graphs and networks"
-category = "main"
 optional = false
 python-versions = ">=3.9"
 files = [
@@ -810,7 +783,6 @@ test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"]
 name = "numpy"
 version = "1.26.4"
 description = "Fundamental package for array computing in Python"
-category = "main"
 optional = false
 python-versions = ">=3.9"
 files = [
@@ -856,7 +828,6 @@ files = [
 name = "nvidia-cublas-cu12"
 version = "12.1.3.1"
 description = "CUBLAS native runtime libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -868,7 +839,6 @@ files = [
 name = "nvidia-cuda-cupti-cu12"
 version = "12.1.105"
 description = "CUDA profiling tools runtime libs."
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -880,7 +850,6 @@ files = [
 name = "nvidia-cuda-nvrtc-cu12"
 version = "12.1.105"
 description = "NVRTC native runtime libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -892,7 +861,6 @@ files = [
 name = "nvidia-cuda-runtime-cu12"
 version = "12.1.105"
 description = "CUDA Runtime native Libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -904,7 +872,6 @@ files = [
 name = "nvidia-cudnn-cu12"
 version = "8.9.2.26"
 description = "cuDNN runtime libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -918,7 +885,6 @@ nvidia-cublas-cu12 = "*"
 name = "nvidia-cufft-cu12"
 version = "11.0.2.54"
 description = "CUFFT native runtime libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -930,7 +896,6 @@ files = [
 name = "nvidia-curand-cu12"
 version = "10.3.2.106"
 description = "CURAND native runtime libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -942,7 +907,6 @@ files = [
 name = "nvidia-cusolver-cu12"
 version = "11.4.5.107"
 description = "CUDA solver native runtime libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -959,7 +923,6 @@ nvidia-nvjitlink-cu12 = "*"
 name = "nvidia-cusparse-cu12"
 version = "12.1.0.106"
 description = "CUSPARSE native runtime libraries"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -974,7 +937,6 @@ nvidia-nvjitlink-cu12 = "*"
 name = "nvidia-nccl-cu12"
 version = "2.20.5"
 description = "NVIDIA Collective Communication Library (NCCL) Runtime"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -986,10 +948,10 @@ files = [
 name = "nvidia-nvjitlink-cu12"
 version = "12.4.127"
 description = "Nvidia JIT LTO Library"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
+    {file = "nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_aarch64.whl", hash = "sha256:4abe7fef64914ccfa909bc2ba39739670ecc9e820c83ccc7a6ed414122599b83"},
     {file = "nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:06b3b9b25bf3f8af351d664978ca26a16d2c5127dbd53c0497e28d1fb9611d57"},
     {file = "nvidia_nvjitlink_cu12-12.4.127-py3-none-win_amd64.whl", hash = "sha256:fd9020c501d27d135f983c6d3e244b197a7ccad769e34df53a42e276b0e25fa1"},
 ]
@@ -998,7 +960,6 @@ files = [
 name = "nvidia-nvtx-cu12"
 version = "12.1.105"
 description = "NVIDIA Tools Extension"
-category = "main"
 optional = false
 python-versions = ">=3"
 files = [
@@ -1010,7 +971,6 @@ files = [
 name = "packaging"
 version = "24.0"
 description = "Core utilities for Python packages"
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1022,11 +982,11 @@ files = [
 name = "pandas"
 version = "2.2.2"
 description = "Powerful data structures for data analysis, time series, and statistics"
-category = "main"
 optional = false
 python-versions = ">=3.9"
 files = [
     {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"},
+    {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"},
     {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"},
     {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"},
     {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"},
@@ -1047,6 +1007,7 @@ files = [
     {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"},
     {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"},
     {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"},
+    {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"},
     {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"},
     {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"},
     {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"},
@@ -1094,7 +1055,6 @@ xml = ["lxml (>=4.9.2)"]
 name = "pillow"
 version = "10.3.0"
 description = "Python Imaging Library (Fork)"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1181,7 +1141,6 @@ xmp = ["defusedxml"]
 name = "platformdirs"
 version = "4.2.1"
 description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1198,7 +1157,6 @@ type = ["mypy (>=1.8)"]
 name = "pluggy"
 version = "1.5.0"
 description = "plugin and hook calling mechanisms for python"
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1214,7 +1172,6 @@ testing = ["pytest", "pytest-benchmark"]
 name = "pyparsing"
 version = "3.1.2"
 description = "pyparsing module - Classes and methods to define and execute parsing grammars"
-category = "main"
 optional = false
 python-versions = ">=3.6.8"
 files = [
@@ -1229,7 +1186,6 @@ diagrams = ["jinja2", "railroad-diagrams"]
 name = "pyproject-api"
 version = "1.6.1"
 description = "API to interact with the python pyproject.toml based projects"
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1249,7 +1205,6 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes
 name = "pyqt5"
 version = "5.15.10"
 description = "Python bindings for the Qt cross platform application toolkit"
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1269,7 +1224,6 @@ PyQt5-sip = ">=12.13,<13"
 name = "pyqt5-qt5"
 version = "5.15.2"
 description = "The subset of a Qt installation needed by PyQt5."
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -1283,7 +1237,6 @@ files = [
 name = "pyqt5-sip"
 version = "12.13.0"
 description = "The sip module support for PyQt5"
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1314,7 +1267,6 @@ files = [
 name = "pyqtgraph"
 version = "0.13.7"
 description = "Scientific Graphics and GUI Library for Python"
-category = "main"
 optional = false
 python-versions = ">=3.9"
 files = [
@@ -1327,14 +1279,13 @@ numpy = ">=1.22.0"
 
 [[package]]
 name = "pytest"
-version = "8.2.0"
+version = "8.3.2"
 description = "pytest: simple powerful testing with Python"
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
-    {file = "pytest-8.2.0-py3-none-any.whl", hash = "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233"},
-    {file = "pytest-8.2.0.tar.gz", hash = "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"},
+    {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"},
+    {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"},
 ]
 
 [package.dependencies]
@@ -1342,7 +1293,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""}
 exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
 iniconfig = "*"
 packaging = "*"
-pluggy = ">=1.5,<2.0"
+pluggy = ">=1.5,<2"
 tomli = {version = ">=1", markers = "python_version < \"3.11\""}
 
 [package.extras]
@@ -1352,7 +1303,6 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments
 name = "pytest-cov"
 version = "5.0.0"
 description = "Pytest plugin for measuring coverage."
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1371,7 +1321,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"]
 name = "python-dateutil"
 version = "2.9.0.post0"
 description = "Extensions to the standard Python datetime module"
-category = "main"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
 files = [
@@ -1386,7 +1335,6 @@ six = ">=1.5"
 name = "pytz"
 version = "2024.1"
 description = "World timezone definitions, modern and historical"
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -1398,7 +1346,6 @@ files = [
 name = "pyyaml"
 version = "6.0.1"
 description = "YAML parser and emitter for Python"
-category = "main"
 optional = false
 python-versions = ">=3.6"
 files = [
@@ -1459,7 +1406,6 @@ files = [
 name = "ruff"
 version = "0.4.2"
 description = "An extremely fast Python linter and code formatter, written in Rust."
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1486,7 +1432,6 @@ files = [
 name = "setuptools"
 version = "69.5.1"
 description = "Easily download, build, install, upgrade, and uninstall Python packages"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1503,7 +1448,6 @@ testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jar
 name = "six"
 version = "1.16.0"
 description = "Python 2 and 3 compatibility utilities"
-category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
 files = [
@@ -1515,7 +1459,6 @@ files = [
 name = "squaternion"
 version = "2023.9.2"
 description = "Some simple functions for quaternion math"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1527,7 +1470,6 @@ files = [
 name = "sympy"
 version = "1.12"
 description = "Computer algebra system (CAS) in Python"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1542,7 +1484,6 @@ mpmath = ">=0.19"
 name = "tbb"
 version = "2021.12.0"
 description = "IntelĀ® oneAPI Threading Building Blocks (oneTBB)"
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -1556,7 +1497,6 @@ files = [
 name = "tomli"
 version = "2.0.1"
 description = "A lil' TOML parser"
-category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1568,7 +1508,6 @@ files = [
 name = "torch"
 version = "2.3.0"
 description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration"
-category = "main"
 optional = false
 python-versions = ">=3.8.0"
 files = [
@@ -1623,7 +1562,6 @@ optree = ["optree (>=0.9.1)"]
 name = "tox"
 version = "4.15.0"
 description = "tox is a generic virtualenv management and test command line tool"
-category = "dev"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1651,7 +1589,6 @@ testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-po
 name = "tox-gh-actions"
 version = "3.2.0"
 description = "Seamless integration of tox into GitHub Actions"
-category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1669,7 +1606,6 @@ testing = ["black", "devpi-process", "flake8 (>=6,<7)", "mypy", "pytest (>=7,<8)
 name = "tqdm"
 version = "4.66.5"
 description = "Fast, Extensible Progress Meter"
-category = "main"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1690,7 +1626,6 @@ telegram = ["requests"]
 name = "triton"
 version = "2.3.0"
 description = "A language and compiler for custom Deep Learning operations"
-category = "main"
 optional = false
 python-versions = "*"
 files = [
@@ -1714,7 +1649,6 @@ tutorials = ["matplotlib", "pandas", "tabulate", "torch"]
 name = "typing-extensions"
 version = "4.11.0"
 description = "Backported and Experimental Type Hints for Python 3.8+"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1726,7 +1660,6 @@ files = [
 name = "tzdata"
 version = "2024.1"
 description = "Provider of IANA time zone data"
-category = "main"
 optional = false
 python-versions = ">=2"
 files = [
@@ -1738,7 +1671,6 @@ files = [
 name = "virtualenv"
 version = "20.26.1"
 description = "Virtual Python Environment builder"
-category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
@@ -1759,7 +1691,6 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess
 name = "zipp"
 version = "3.18.1"
 description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
 optional = false
 python-versions = ">=3.8"
 files = [
@@ -1774,4 +1705,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.9"
-content-hash = "bf4261c1ce8ceac480afce4944c991b8ddb2e5903e3aac0dacd12220b8fb7003"
+content-hash = "0e888d6db884f5522892a30a2842d1a75fc0ad944810a3797fa69fcc0f1f7769"
diff --git a/pyproject.toml b/pyproject.toml
index e5c0388..f27e7c9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -84,7 +84,7 @@ optional = true
 
 
 [tool.poetry.group.tests.dependencies]
-pytest = "^8.2.0"
+pytest = "^8.3.2"
 pytest-cov = "^5.0.0"
 tox = "^4.14.2"
 tox-gh-actions = "^3.2.0"