From aaeb7dbabef4862a1d000a431ecd09bbbe138907 Mon Sep 17 00:00:00 2001 From: tfotakis-signaloid <213429317+tfotakis-signaloid@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:15:27 +0200 Subject: [PATCH] Updated to version `1.7.0` --- poetry.lock | 131 +++++++++++------- pyproject.toml | 20 +-- .../circuitpython/extended_ulab_numpy.py | 2 +- .../distributional/distributional.py | 12 +- .../plot_histogram_dirac_deltas.py | 76 +++++----- 5 files changed, 133 insertions(+), 108 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1218304..ebf35ba 100644 --- a/poetry.lock +++ b/poetry.lock @@ -632,48 +632,57 @@ files = [ [[package]] name = "numpy" -version = "1.26.4" +version = "2.0.2" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, ] [[package]] @@ -708,15 +717,15 @@ tests = ["pytest (>=9)", "typing-extensions (>=4.15)"] [[package]] name = "pex" -version = "2.82.0" +version = "2.87.0" description = "The PEX packaging toolchain." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,<3.16,>=2.7" groups = ["dev"] files = [ - {file = "pex-2.82.0-py2.py35.py36.py37.py38.py39.py310.py311-none-any.whl", hash = "sha256:731c7caaf3843bf9cb4db2ee9469b7b7a0048923fb85f993ed153d918dfcf880"}, - {file = "pex-2.82.0-py3.py312-none-any.whl", hash = "sha256:92527d6425cda93464c50b4cedd3b9936aa3b2acf374467d62a85c521b116654"}, - {file = "pex-2.82.0.tar.gz", hash = "sha256:286fcd10daa77032b76de801a19b44283eb81c1c983cf2d92b071619e5e777b0"}, + {file = "pex-2.87.0-py2.py35.py36.py37.py38.py39.py310.py311-none-any.whl", hash = "sha256:e904d280dbf32c456188ebd525e4f2aabdd183ca450276293643855d59647e4a"}, + {file = "pex-2.87.0-py3.py312-none-any.whl", hash = "sha256:a3482bb4fee17e20cea78267dd4ad81099be406878eab7542e4e7b3dbba20705"}, + {file = "pex-2.87.0.tar.gz", hash = "sha256:4070046edf4afdf33fda4fd6c6406fd2e6d2b7bf1c1c1f33208a5a7e1529588e"}, ] [package.extras] @@ -888,6 +897,21 @@ files = [ {file = "pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58"}, ] +[[package]] +name = "pygments" +version = "2.19.2" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, + {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + [[package]] name = "pyparsing" version = "3.3.1" @@ -905,26 +929,27 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pytest" -version = "7.4.4" +version = "8.4.2" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79"}, + {file = "pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01"}, ] [package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} +iniconfig = ">=1" +packaging = ">=20" +pluggy = ">=1.5,<2" +pygments = ">=2.7.2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] [[package]] name = "python-dateutil" @@ -1089,4 +1114,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.9,<3.14" -content-hash = "bc55325909b6761ca152fcdcc7366541d87072fe73d1325bf9e082cc6306cc2e" +content-hash = "3b7cb6bb3bf6ce2f30a29ca175522aab3852b6c1cb15546fabb6bbd62b701439" diff --git a/pyproject.toml b/pyproject.toml index 9e21f78..d666ed9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,22 +1,22 @@ [tool.poetry] name = "signaloid" -version = "1.6.1" +version = "1.7.0" description = "" authors = [ "Signaloid " ] packages = [ - { include = "signaloid", from = "src" } + { include = "signaloid", from = "src" } ] [tool.poetry.group.dev.dependencies] -wheel = "^0.46.2" -pex = "^2.1.159" -types-toml = "^0.10.8.7" -pytest = "^7.4.4" -mypy = "^1.8.0" -flake8 = "^7.0.0" +wheel = "^0.46.3" +pex = "^2.87.0" +types-toml = "^0.10.8.20240310" +pytest = "^8.4.2" +mypy = "^1.19.1" +flake8 = "^7.3.0" toml = "^0.10.2" [build-system] @@ -25,8 +25,8 @@ build-backend = "poetry.core.masonry.api" [tool.poetry.dependencies] python = ">=3.9,<3.14" -numpy = "^1.26.4" -matplotlib = "^3.8.3" +numpy = "~2.0.2" +matplotlib = "~3.9.4" [tool.poetry.scripts] signaloid-uxdata-toolkit = "signaloid.uxdata_toolkit:main" diff --git a/src/signaloid/circuitpython/extended_ulab_numpy.py b/src/signaloid/circuitpython/extended_ulab_numpy.py index 26784f1..84f535d 100644 --- a/src/signaloid/circuitpython/extended_ulab_numpy.py +++ b/src/signaloid/circuitpython/extended_ulab_numpy.py @@ -47,7 +47,7 @@ class NumpyWrapper: def __init__(self): - self.float_ = ulab_np.float + self.float64 = ulab_np.float def __getattr__(self, name): """ diff --git a/src/signaloid/distributional/distributional.py b/src/signaloid/distributional/distributional.py index 6444ab5..0cda2ca 100644 --- a/src/signaloid/distributional/distributional.py +++ b/src/signaloid/distributional/distributional.py @@ -112,23 +112,23 @@ def finite_dirac_deltas(self) -> list[DiracDelta]: return self.dirac_deltas @property - def positions(self) -> NDArray[np.float_]: + def positions(self) -> NDArray[np.float64]: """The list af all the Dirac Delta positions. :return: The list of all the Dirac Delta positions. - :rtype: NDArray[np.float_] + :rtype: NDArray[np.float64] """ - arr: NDArray[np.float_] = np.array([dd.position for dd in self.dirac_deltas], dtype=np.float_) + arr: NDArray[np.float64] = np.array([dd.position for dd in self.dirac_deltas], dtype=np.float64) return arr @property - def masses(self) -> NDArray[np.float_]: + def masses(self) -> NDArray[np.float64]: """The list af all the Dirac Delta floating-point masses. :return: The list of all the Dirac Delta floating-point masses. - :rtype: NDArray[np.float_] + :rtype: NDArray[np.float64] """ - arr: NDArray[np.float_] = np.array([dd.mass for dd in self.dirac_deltas], dtype=np.float_) + arr: NDArray[np.float64] = np.array([dd.mass for dd in self.dirac_deltas], dtype=np.float64) return arr @property diff --git a/src/signaloid/distributional_information_plotting/plot_histogram_dirac_deltas.py b/src/signaloid/distributional_information_plotting/plot_histogram_dirac_deltas.py index 10ece68..027b533 100644 --- a/src/signaloid/distributional_information_plotting/plot_histogram_dirac_deltas.py +++ b/src/signaloid/distributional_information_plotting/plot_histogram_dirac_deltas.py @@ -51,48 +51,48 @@ def __init__( self.plotting_resolution: Optional[int] = plotting_resolution self.plotting_ttr_order: Optional[int] = None - self._positions: NDArray[np.float_] = np.array([], dtype=np.float_) - self._masses: NDArray[np.float_] = np.array([], dtype=np.float_) - self._widths: NDArray[np.float_] = np.array([], dtype=np.float_) + self._positions: NDArray[np.float64] = np.array([], dtype=np.float64) + self._masses: NDArray[np.float64] = np.array([], dtype=np.float64) + self._widths: NDArray[np.float64] = np.array([], dtype=np.float64) self._max_value: Optional[float] = None self._construct_plot_data() @property - def positions(self) -> NDArray[np.float_]: + def positions(self) -> NDArray[np.float64]: """The boundary positions list. :return: The boundary positions list. - :rtype: NDArray[np.float_] + :rtype: NDArray[np.float64] """ return self._positions @positions.setter - def positions(self, positions: NDArray[np.float_]) -> None: + def positions(self, positions: NDArray[np.float64]) -> None: """Sets the boundary positions list, resetting the widths to avoid faulty values. :param positions: The boundary positions list to use - :type positions: NDArray[np.float_] + :type positions: NDArray[np.float64] """ self._positions = positions - self._widths = np.array([], dtype=np.float_) + self._widths = np.array([], dtype=np.float64) @property - def masses(self) -> NDArray[np.float_]: + def masses(self) -> NDArray[np.float64]: """The bin heights list. :return: The bin heights list. - :rtype: NDArray[np.float_] + :rtype: NDArray[np.float64] """ return self._masses @masses.setter - def masses(self, masses: NDArray[np.float_]) -> None: + def masses(self, masses: NDArray[np.float64]) -> None: """Sets the bin heights list, resetting the max value to avoid faulty value. :param masses: The bin heights list to use. - :type masses: NDArray[np.float_] + :type masses: NDArray[np.float64] """ self._masses = masses self._max_value = None @@ -144,11 +144,11 @@ def max_value(self) -> float: return self._max_value @property - def widths(self) -> NDArray[np.float_]: + def widths(self) -> NDArray[np.float64]: """The widths list between each pair of positions. :return: The widths list. - :rtype: NDArray[np.float_] + :rtype: NDArray[np.float64] """ if not self._widths.size > 0: self._widths = self.positions[1:] - self.positions[:-1] @@ -160,7 +160,7 @@ def _determine_boundary_positions( finite_sorted_dirac_deltas: list[DiracDelta], exponent: int, use_ttr_binning: bool - ) -> tuple[NDArray[np.float_], NDArray[np.float_]]: + ) -> tuple[NDArray[np.float64], NDArray[np.float64]]: """ If `use_ttr_binning` is true: Determines the internal boundary positions (and probabilities) using the @@ -232,12 +232,12 @@ def _determine_boundary_positions( @staticmethod def _handle_extremal_bins( finite_sorted_dirac_deltas: list[DiracDelta], - boundary_positions: NDArray[np.float_], - boundary_probabilities: NDArray[np.float_], - bin_widths: NDArray[np.float_], - bin_heights: NDArray[np.float_], + boundary_positions: NDArray[np.float64], + boundary_probabilities: NDArray[np.float64], + bin_widths: NDArray[np.float64], + bin_heights: NDArray[np.float64], left: bool = True, - ) -> tuple[NDArray[np.float_], NDArray[np.float_], NDArray[np.float_]]: + ) -> tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: """ Checking if (d/dx)^2 = 0 boundary condition has a solution. If not, falling back to the boundary condition d/dx = 0. @@ -324,9 +324,9 @@ def _handle_extremal_bins( @staticmethod def _get_binning( finite_sorted_dirac_deltas: list[DiracDelta], - boundary_positions: NDArray[np.float_], - boundary_probabilities: NDArray[np.float_] - ) -> tuple[NDArray[np.float_], NDArray[np.float_], NDArray[np.float_]]: + boundary_positions: NDArray[np.float64], + boundary_probabilities: NDArray[np.float64] + ) -> tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: """ Finds the binning for the given finite and sorted Dirac deltas and the calculated internal boundary positions and probabilities. @@ -386,7 +386,7 @@ def _create_binning( finite_sorted_dirac_deltas: list[DiracDelta], exponent: int, use_ttr_binning: bool - ) -> tuple[NDArray[np.float_], NDArray[np.float_], NDArray[np.float_]]: + ) -> tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: """ - If `use_ttr_binning` is true: Creates a binning using the TTR binning method. The TTR binning method @@ -423,9 +423,9 @@ def _create_binning( @staticmethod def _bin_pdf_expected_dirac_delta( - boundary_positions: NDArray[np.float_], - bin_widths: NDArray[np.float_], - bin_heights: NDArray[np.float_] + boundary_positions: NDArray[np.float64], + bin_widths: NDArray[np.float64], + bin_heights: NDArray[np.float64] ) -> DiracDelta: """ Computes the expected Dirac delta of an input bin PDF. @@ -454,9 +454,9 @@ def _bin_pdf_expected_dirac_delta( @staticmethod def _bin_pdf_to_ttr( - boundary_positions: NDArray[np.float_], - bin_widths: NDArray[np.float_], - bin_heights: NDArray[np.float_], + boundary_positions: NDArray[np.float64], + bin_widths: NDArray[np.float64], + bin_heights: NDArray[np.float64], order: int ) -> list[DiracDelta]: """ @@ -480,12 +480,12 @@ def _bin_pdf_to_ttr( if order == 0: return [expected_dirac_delta] - low_boundary_positions: NDArray[np.float_] = np.array([], dtype=np.float_) - low_bin_widths: NDArray[np.float_] = np.array([], dtype=np.float_) - low_bin_heights: NDArray[np.float_] = np.array([], dtype=np.float_) - high_boundary_positions: NDArray[np.float_] = np.array([], dtype=np.float_) - high_bin_widths: NDArray[np.float_] = np.array([], dtype=np.float_) - high_bin_heights: NDArray[np.float_] = np.array([], dtype=np.float_) + low_boundary_positions: NDArray[np.float64] = np.array([], dtype=np.float64) + low_bin_widths: NDArray[np.float64] = np.array([], dtype=np.float64) + low_bin_heights: NDArray[np.float64] = np.array([], dtype=np.float64) + high_boundary_positions: NDArray[np.float64] = np.array([], dtype=np.float64) + high_bin_widths: NDArray[np.float64] = np.array([], dtype=np.float64) + high_bin_heights: NDArray[np.float64] = np.array([], dtype=np.float64) for i, boundary_position in enumerate(boundary_positions): if boundary_position == expected_dirac_delta.position: @@ -544,8 +544,8 @@ def _construct_plot_data(self) -> None: return if len(finite_dirac_deltas) == 1: - self.positions = np.array([finite_dirac_deltas[0].position], dtype=np.float_) - self.masses = np.array([finite_dirac_deltas[0].mass], dtype=np.float_) + self.positions = np.array([finite_dirac_deltas[0].position], dtype=np.float64) + self.masses = np.array([finite_dirac_deltas[0].mass], dtype=np.float64) return # Set plot resolution to (N*2) where N is machine representation