From b2b3eed11361acf8fd7d1aeccec49a7fc84bd848 Mon Sep 17 00:00:00 2001 From: HlisTilen Date: Wed, 19 Mar 2025 21:13:58 +0100 Subject: [PATCH 1/3] feat: visualization.md --- .github/images/sankey.png | Bin 0 -> 75990 bytes .github/images/two_key.png | Bin 0 -> 58348 bytes .idea/.gitignore | 8 ++ .idea/NiaARM.iml | 19 +++ .../inspectionProfiles/profiles_settings.xml | 6 + .idea/misc.xml | 7 ++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 + poetry.lock | 114 +++++++++++++++--- visualization.md | 58 +++++++++ 10 files changed, 209 insertions(+), 17 deletions(-) create mode 100644 .github/images/sankey.png create mode 100644 .github/images/two_key.png create mode 100644 .idea/.gitignore create mode 100644 .idea/NiaARM.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 visualization.md diff --git a/.github/images/sankey.png b/.github/images/sankey.png new file mode 100644 index 0000000000000000000000000000000000000000..74dcf8695ef41796837e356bbcf47ae240de9a36 GIT binary patch literal 75990 zcmeEuWmH_r7A_D70fGdAdywE7+#v*);O>wB!L@;g;K3odHSW^5JHg!v8t9;nL*w$u z+?hLf=FZ=@-urQz)tu_Cs&i`Z+O_4YT^*vVD20wngbD`-hb|-iRs{|Yu?P+hLHya% z$8XTE;(8u0@J=dH;&A1oBs-5E0?f5!EEE*r7#_>d;E>?4;hy|z^7sb_PXvebTNw^c z7M}RuWfge3-`gO-!3A5wA^zS*=kfaM<^K47?EU-oNhbWCcg#fiqcvht=953l2;#rG z#rfrBJYG=jrL~>l;IN&4z2R3Z$RBSf3McbcOwApBZyDJuPVyT0X!U&g3?%w_+%qOy zOSuw%Z$nVP^XL$X3p%btz+XHi$4 z_6y-Po6}K&)AZ$}i^gPtg0Xf-Ai~Q`I3zkzcvR)j|5@CpVjD5zAT_hi@H{R5=O!;d zVjD#l5BTZ+bM-!T2Zg#o=V{$PS1TYqSK-pO5BtxD{<~#nIwC=?)ob^agnzD<`7BmU zi)Q=&FGK#LcTFsuzuG?H*rLimR=+`Elb$i_Wd0k$|LX1Q`irLY9{}BduBL^5T9m@n zAo+K8{nmS2@sXxl96>v|f3E(;kXWSp|7P~D-V48Ia`oG?q5rSB_*I?qiy>7%@cv<{ zUS^64{Gv(msD=5TtA8;>0dFb$pC7VrGMlEQJVuwL@E^kYAlFp~>lG?2}#nulqI+BU@PjlFLq4g zBIY$@JawgOQ^)SKxJ_36=3dk54e;u~W@u9m5mE5crPuD#`2L;yT~>lho%^V+YUH6$ zk}rUGX+GqWPK(q}vw45*sSl>1*P}&ao0{!EhIURXvU(X;n{5o+XaWbK9-7Y?^p1W6 zYiYi3-#99tFVy8CEl793Ee8TJZGyIu7akqE^Q`ZdG`^VrZWk zU$LsP-w&gWJN`Sss;MvY(5 zYjY=_Y7Y%SKHjN9FLb=2>UpC(Y`?HaAiRbl=q9VFHImOw-zItD98~r(bxB7%w}U~@ zc}rDm8zwt02J%**)w1C>%g-}98^B+?uMU#cXO0=31wLTVEvDpA( z^J!mw(!2d(cE)>4B2UWmjBsbCU$&MYYx)nO5sVFCoO++TH$@Y1o8)>)_?f^dx8 zXh80_mT_(ZC^%r!FhBV|Zd;PBi!mWznUWKS#hJbwYelP{PTH-mWCu+*eBn)JEP77T zJZ5~Z69rsqA&DRlLe<1_iF8C8b-i8_CyLe~qg&`28e0t=TG>sWv0smEaJSWa@_qe= zxb=bN74dor#c%3;7^2=O=)O9fB#w3^w{6N7d%RJfmgheAQ`!V8ROA}!7S^bW*QXnW^f!#Oz(#`f(<l@0Pwy1o-nY9{mb=Ld%3(}Mdz1$h*U zGi{VYs_!U4sh3It3Km*rWjhTY-}UQ

x5%9BgCJ#6v5S@XX*4;nDBss8b4j~11R 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

Uv`UZUq4H)X;f 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%0Aq$ub+O$%po* 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 literal 0 HcmV?d00001 diff --git a/.github/images/two_key.png b/.github/images/two_key.png new file mode 100644 index 0000000000000000000000000000000000000000..673e22bb1ad9c775cf4af024a8ae6b21cf8f4189 GIT binary patch literal 58348 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 + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..5a21b23 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..aabcf02 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 81e165d..0dbba9a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -6,6 +6,7 @@ version = "0.7.16" description = "A light, configurable Sphinx theme" optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, @@ -17,6 +18,7 @@ version = "2.16.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" +groups = ["docs"] files = [ {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, @@ -31,6 +33,7 @@ version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["docs"] files = [ {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, @@ -42,6 +45,7 @@ version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, @@ -53,6 +57,7 @@ version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" +groups = ["docs"] files = [ {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, @@ -154,6 +159,7 @@ version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, @@ -168,10 +174,12 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "docs", "test"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {main = "platform_system == \"Windows\"", docs = "sys_platform == \"win32\"", test = "sys_platform == \"win32\""} [[package]] name = "contourpy" @@ -179,6 +187,7 @@ version = "1.3.0" description = "Python library for calculating contours of 2D quadrilateral grids" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "contourpy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:880ea32e5c774634f9fcd46504bf9f080a41ad855f4fef54f5380f5133d343c7"}, {file = "contourpy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:76c905ef940a4474a6289c71d53122a4f77766eef23c03cd57016ce19d0f7b42"}, @@ -263,6 +272,7 @@ version = "7.6.10" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" +groups = ["test"] files = [ {file = "coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78"}, {file = "coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c"}, @@ -332,7 +342,7 @@ files = [ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] -toml = ["tomli"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "cycler" @@ -340,6 +350,7 @@ version = "0.12.1" description = "Composable style cycles" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, @@ -355,6 +366,7 @@ version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, @@ -366,6 +378,7 @@ version = "0.18.1" description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["docs"] files = [ {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, @@ -377,6 +390,7 @@ version = "2.0.0" description = "An implementation of lxml.xmlfile for the standard library" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa"}, {file = "et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54"}, @@ -388,6 +402,8 @@ version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["test"] +markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -402,6 +418,7 @@ version = "3.16.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, @@ -410,7 +427,7 @@ files = [ [package.extras] docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] -typing = ["typing-extensions (>=4.12.2)"] +typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] [[package]] name = "fonttools" @@ -418,6 +435,7 @@ version = "4.55.3" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0"}, {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f"}, @@ -472,18 +490,18 @@ files = [ ] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\"", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0) ; python_version <= \"3.12\"", "xattr ; sys_platform == \"darwin\"", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "pycairo", "scipy"] +interpolatable = ["munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\""] lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] symfont = ["sympy"] -type1 = ["xattr"] +type1 = ["xattr ; sys_platform == \"darwin\""] ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.1.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] +unicode = ["unicodedata2 (>=15.1.0) ; python_version <= \"3.12\""] +woff = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "zopfli (>=0.1.4)"] [[package]] name = "identify" @@ -491,6 +509,7 @@ version = "2.6.5" description = "File identification library for Python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "identify-2.6.5-py2.py3-none-any.whl", hash = "sha256:14181a47091eb75b337af4c23078c9d09225cd4c48929f521f3bf16b09d02566"}, {file = "identify-2.6.5.tar.gz", hash = "sha256:c10b33f250e5bba374fae86fb57f3adcebf1161bce7cdf92031915fd480c13bc"}, @@ -505,6 +524,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" +groups = ["docs"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -519,6 +539,7 @@ version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["docs"] files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, @@ -530,6 +551,8 @@ version = "8.5.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" +groups = ["docs", "test"] +markers = "python_version < \"3.10\"" files = [ {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, @@ -539,12 +562,12 @@ files = [ zipp = ">=3.20" [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +test = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] type = ["pytest-mypy"] [[package]] @@ -553,6 +576,8 @@ version = "6.5.2" description = "Read resources from Python packages" optional = false python-versions = ">=3.9" +groups = ["main"] +markers = "python_version < \"3.10\"" files = [ {file = "importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec"}, {file = "importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c"}, @@ -562,7 +587,7 @@ files = [ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] @@ -575,6 +600,7 @@ version = "2.0.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.7" +groups = ["test"] files = [ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, @@ -586,6 +612,7 @@ version = "3.1.5" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["docs"] files = [ {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, @@ -603,6 +630,7 @@ version = "1.4.2" description = "Lightweight pipelining with Python functions" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, @@ -614,6 +642,7 @@ version = "1.4.7" description = "A fast implementation of the Cassowary constraint solver" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, @@ -737,6 +766,7 @@ version = "3.0.0" description = "A lexer and codec to work with LaTeX code in Python." optional = false python-versions = ">=3.7" +groups = ["docs"] files = [ {file = "latexcodec-3.0.0-py3-none-any.whl", hash = "sha256:6f3477ad5e61a0a99bd31a6a370c34e88733a6bad9c921a3ffcfacada12f41a7"}, {file = "latexcodec-3.0.0.tar.gz", hash = "sha256:917dc5fe242762cc19d963e6548b42d63a118028cdd3361d62397e3b638b6bc5"}, @@ -748,6 +778,7 @@ version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, @@ -818,6 +849,7 @@ version = "3.9.4" description = "Python plotting package" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "matplotlib-3.9.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c5fdd7abfb706dfa8d307af64a87f1a862879ec3cd8d0ec8637458f0885b9c50"}, {file = "matplotlib-3.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d89bc4e85e40a71d1477780366c27fb7c6494d293e1617788986f74e2a03d7ff"}, @@ -883,6 +915,7 @@ version = "2.5.2" description = "Python micro framework for building nature-inspired algorithms." optional = false python-versions = "<3.14,>=3.9" +groups = ["main"] files = [ {file = "niapy-2.5.2-py3-none-any.whl", hash = "sha256:0cbf1c11785e9fde3e51ecc2f9e0d5dc065269d60c55b695e0bd56f3921f80a1"}, {file = "niapy-2.5.2.tar.gz", hash = "sha256:3342ad0c3806c8e70c34ba7da0f4a8a4f591518cfcb407fd8671d438179bfe2d"}, @@ -900,6 +933,7 @@ version = "3.9.1" description = "Natural Language Toolkit" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, @@ -925,6 +959,7 @@ version = "1.9.1" description = "Node.js virtual environment builder" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] files = [ {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, @@ -936,6 +971,7 @@ version = "1.26.4" 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"}, @@ -981,6 +1017,7 @@ version = "3.1.5" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2"}, {file = "openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050"}, @@ -995,6 +1032,7 @@ version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" +groups = ["main", "docs", "test"] files = [ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, @@ -1006,6 +1044,7 @@ version = "2.2.3" description = "Powerful data structures for data analysis, time series, and statistics" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, @@ -1092,6 +1131,7 @@ version = "11.1.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, @@ -1171,7 +1211,7 @@ docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline fpx = ["olefile"] mic = ["olefile"] tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] -typing = ["typing-extensions"] +typing = ["typing-extensions ; python_version < \"3.10\""] xmp = ["defusedxml"] [[package]] @@ -1180,6 +1220,7 @@ version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, @@ -1196,6 +1237,7 @@ version = "5.24.1" description = "An open-source, interactive data visualization library for Python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "plotly-5.24.1-py3-none-any.whl", hash = "sha256:f67073a1e637eb0dc3e46324d9d51e2fe76e9727c892dde64ddf1e1b51f29089"}, {file = "plotly-5.24.1.tar.gz", hash = "sha256:dbc8ac8339d248a4bcc36e08a5659bacfe1b079390b8953533f4eb22169b4bae"}, @@ -1211,6 +1253,7 @@ version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" +groups = ["test"] files = [ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, @@ -1226,6 +1269,7 @@ version = "3.8.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, @@ -1244,6 +1288,7 @@ version = "0.24.0" description = "A BibTeX-compatible bibliography processor in Python" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" +groups = ["docs"] files = [ {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, @@ -1263,6 +1308,7 @@ version = "1.0.3" description = "A docutils backend for pybtex." optional = false python-versions = ">=3.7" +groups = ["docs"] files = [ {file = "pybtex-docutils-1.0.3.tar.gz", hash = "sha256:3a7ebdf92b593e00e8c1c538aa9a20bca5d92d84231124715acc964d51d93c6b"}, {file = "pybtex_docutils-1.0.3-py3-none-any.whl", hash = "sha256:8fd290d2ae48e32fcb54d86b0efb8d573198653c7e2447d5bec5847095f430b9"}, @@ -1278,6 +1324,7 @@ version = "2.19.1" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" +groups = ["docs"] files = [ {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, @@ -1292,6 +1339,7 @@ version = "3.2.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"}, {file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"}, @@ -1306,6 +1354,7 @@ version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" +groups = ["test"] files = [ {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, @@ -1328,6 +1377,7 @@ version = "4.1.0" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.7" +groups = ["test"] files = [ {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, @@ -1346,6 +1396,7 @@ version = "3.16.0" description = "Pytest plugin to randomly order tests and control random.seed." optional = false python-versions = ">=3.9" +groups = ["test"] files = [ {file = "pytest_randomly-3.16.0-py3-none-any.whl", hash = "sha256:8633d332635a1a0983d3bba19342196807f6afb17c3eef78e02c2f85dade45d6"}, {file = "pytest_randomly-3.16.0.tar.gz", hash = "sha256:11bf4d23a26484de7860d82f726c0629837cf4064b79157bd18ec9d41d7feb26"}, @@ -1361,6 +1412,7 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -1375,6 +1427,7 @@ version = "2024.2" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, @@ -1386,6 +1439,7 @@ version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" +groups = ["dev", "docs"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -1448,6 +1502,7 @@ version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, @@ -1551,6 +1606,7 @@ version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["docs"] files = [ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, @@ -1572,6 +1628,7 @@ version = "1.6.1" description = "A set of python modules for machine learning and data mining" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "scikit_learn-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d056391530ccd1e501056160e3c9673b4da4805eb67eb2bdf4e983e1f9c9204e"}, {file = "scikit_learn-1.6.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0c8d036eb937dbb568c6242fa598d551d88fb4399c0344d95c001980ec1c7d36"}, @@ -1626,6 +1683,7 @@ version = "1.13.1" description = "Fundamental algorithms for scientific computing in Python" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, @@ -1668,6 +1726,7 @@ version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main", "docs"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -1679,6 +1738,7 @@ version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." optional = false python-versions = "*" +groups = ["docs"] files = [ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, @@ -1690,6 +1750,7 @@ version = "7.3.7" description = "Python documentation generator" optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3"}, {file = "sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc"}, @@ -1726,6 +1787,7 @@ version = "1.3.0" description = "Read the Docs theme for Sphinx" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +groups = ["docs"] files = [ {file = "sphinx_rtd_theme-1.3.0-py2.py3-none-any.whl", hash = "sha256:46ddef89cc2416a81ecfbeaceab1881948c014b1b6e4450b815311a89fb977b0"}, {file = "sphinx_rtd_theme-1.3.0.tar.gz", hash = "sha256:590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931"}, @@ -1745,6 +1807,7 @@ version = "2.0.0" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, @@ -1761,6 +1824,7 @@ version = "2.5.0" description = "Sphinx extension for BibTeX style citations." optional = false python-versions = ">=3.6" +groups = ["docs"] files = [ {file = "sphinxcontrib-bibtex-2.5.0.tar.gz", hash = "sha256:71b42e5db0e2e284f243875326bf9936aa9a763282277d75048826fef5b00eaa"}, {file = "sphinxcontrib_bibtex-2.5.0-py3-none-any.whl", hash = "sha256:748f726eaca6efff7731012103417ef130ecdcc09501b4d0c54283bf5f059f76"}, @@ -1779,6 +1843,7 @@ version = "2.0.0" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, @@ -1795,6 +1860,7 @@ version = "2.1.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, @@ -1811,6 +1877,7 @@ version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" optional = false python-versions = ">=2.7" +groups = ["docs"] files = [ {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, @@ -1825,6 +1892,7 @@ version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" +groups = ["docs"] files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, @@ -1839,6 +1907,7 @@ version = "2.0.0" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, @@ -1855,6 +1924,7 @@ version = "2.0.0" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, @@ -1871,6 +1941,7 @@ version = "9.0.0" description = "Retry code until it succeeds" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, @@ -1886,6 +1957,7 @@ version = "3.5.0" description = "threadpoolctl" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467"}, {file = "threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107"}, @@ -1897,6 +1969,8 @@ version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" +groups = ["main", "docs", "test"] +markers = "python_version < \"3.11\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -1938,6 +2012,7 @@ version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, @@ -1959,6 +2034,7 @@ version = "2024.2" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" +groups = ["main"] files = [ {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, @@ -1970,13 +2046,14 @@ version = "2.3.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -1987,6 +2064,7 @@ version = "20.28.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "virtualenv-20.28.1-py3-none-any.whl", hash = "sha256:412773c85d4dab0409b83ec36f7a6499e72eaf08c80e81e9576bca61831c71cb"}, {file = "virtualenv-20.28.1.tar.gz", hash = "sha256:5d34ab240fdb5d21549b76f9e8ff3af28252f5499fb6d6f031adac4e5a8c5329"}, @@ -1999,7 +2077,7 @@ platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] [[package]] name = "zipp" @@ -2007,20 +2085,22 @@ version = "3.21.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" +groups = ["main", "docs", "test"] +markers = "python_version < \"3.10\"" files = [ {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] type = ["pytest-mypy"] [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = ">=3.9,<3.14" content-hash = "c818a4593c4764d9d7dff76f946284a4092d34703abc836228b3a91d2b34f87b" diff --git a/visualization.md b/visualization.md new file mode 100644 index 0000000..17baa2c --- /dev/null +++ b/visualization.md @@ -0,0 +1,58 @@ +# Visualizations + +## Grouped matrix plot + +A grouped matrix plot visualizes the relationships between different groups of data. It is useful for identifying patterns and correlations within the dataset. + +![Grouped matrix plot](./.github/images/grouped_matrix_plot.png) + +**Reference**: Hahsler M. in Karpienko R. (2017). Visualizing association rules in hierarchical +groups, Journal of Business Economics, 87, 3, str. 317–335, +[https://doi.org/10.1007/s11573-016-0822-8](https://link.springer.com/article/10.1007/s11573-016-0822-8). + +## Hill slopes + +Hill slopes plots are used to visualize the steepness and direction of slopes in a dataset. They are often used in geographical and environmental data analysis. + +![Hill slopes](./.github/images/hill_slopes.png) + +**Reference**: Fister Ml. I., Fister D., Iglesias A., Galvez A., Osaba E., Del Ser J. in Fister I. (2020). +Visualization of Numerical Association Rules by Hill Slopes. V: Analide, C., +Novais, P., Camacho, D., Yin, H. (ur.), Intelligent Data Engineering and +Automated Learning – IDEAL 2020. IDEAL 2020. Lecture Notes in Computer +Science(), vol 12489. Springer, Cham., str. 101-111, +[https://doi.org/10.1007/978-3-030-62362-3_10](https://link.springer.com/chapter/10.1007/978-3-030-62362-3_10). + +## Sankey diagram + +A Sankey diagram is a flow diagram that shows the flow of data between different nodes. It is useful for visualizing the distribution and movement of data. + +![Sankey diagram](./.github/images/sankey.png) + +**Reference**: Fister Ml. I., Fister I., Fister D., Podgorelec V. in Salcedo-Sanz S. (2023). A +comprehensive review of visualization methods for association rule mining: +Taxonomy, challenges, open problems and future ideas. Expert Systems +Applications, 233, str. 120901, [https://doi.org/10.1016/j.eswa.2023.120901](https://www.sciencedirect.com/science/article/abs/pii/S0957417423014033). + +## Scatter plot + +A scatter plot displays values for typically two variables for a set of data. It is useful for identifying relationships and correlations between the variables. + +![Scatter plot](./.github/images/scatter_plot.png) + +**Reference**: Fister Ml. I., Fister I., Fister D., Podgorelec V. in Salcedo-Sanz S. (2023). A +comprehensive review of visualization methods for association rule mining: +Taxonomy, challenges, open problems and future ideas. Expert Systems +Applications, 233, str. 120901, [https://doi.org/10.1016/j.eswa.2023.120901](https://www.sciencedirect.com/science/article/abs/pii/S0957417423014033). + +## Two-key plot + +A two-key plot visualizes the relationship between two key metrics in a dataset. It is useful for comparing and contrasting the metrics to identify trends and patterns. + +![Two-key plot](./.github/images/two_key.png) + +**Reference**: Fister Ml. I., Fister I., Fister D., Podgorelec V. in Salcedo-Sanz S. (2023). A +comprehensive review of visualization methods for association rule mining: +Taxonomy, challenges, open problems and future ideas. Expert Systems +Applications, 233, str. 120901, [https://doi.org/10.1016/j.eswa.2023.120901](https://www.sciencedirect.com/science/article/abs/pii/S0957417423014033). + From fa13e336edd7af417bfe1d043d094223cf868813 Mon Sep 17 00:00:00 2001 From: HlisTilen Date: Wed, 19 Mar 2025 21:16:52 +0100 Subject: [PATCH 2/3] fix: link to visualization.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dc0349d..f89401f 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,7 @@ and equations can be found [here](interest_measures.md). ### Visualization -The framework currently supports: +The framework currently supports ([visualizations](visualization.md)): - hill slopes (presented in [4]), - scatter plot and From ccd4841229384409194057d2b42a9c190b3853e5 Mon Sep 17 00:00:00 2001 From: HlisTilen <44733158+HlisTilen@users.noreply.github.com> Date: Fri, 21 Mar 2025 00:27:34 +0100 Subject: [PATCH 3/3] Delete .idea directory --- .idea/.gitignore | 8 -------- .idea/NiaARM.iml | 19 ------------------- .../inspectionProfiles/profiles_settings.xml | 6 ------ .idea/misc.xml | 7 ------- .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ 6 files changed, 54 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/NiaARM.iml delete mode 100644 .idea/inspectionProfiles/profiles_settings.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/NiaARM.iml b/.idea/NiaARM.iml deleted file mode 100644 index 01f701e..0000000 --- a/.idea/NiaARM.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 5a21b23..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index aabcf02..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file