From 4240543b3b35697ca365295935a0be7ae646c5a4 Mon Sep 17 00:00:00 2001 From: Zain Sohail Date: Mon, 8 Jul 2024 19:14:12 +0200 Subject: [PATCH] add version 0.1.9 --- sed/v0.1.9/.buildinfo | 4 + sed/v0.1.9/.doctrees/environment.pickle | Bin 0 -> 3998491 bytes sed/v0.1.9/.doctrees/index.doctree | Bin 0 -> 6312 bytes .../.doctrees/misc/contributing.doctree | Bin 0 -> 24952 bytes .../.doctrees/misc/contribution.doctree | Bin 0 -> 3135 bytes sed/v0.1.9/.doctrees/misc/maintain.doctree | Bin 0 -> 31658 bytes .../user_guide/1_binning_fake_data.ipynb | 872 +++++ .../user_guide_1_binning_fake_data_13_0.png | Bin 0 -> 119970 bytes .../user_guide_1_binning_fake_data_8_0.png | Bin 0 -> 266443 bytes sed/v0.1.9/.doctrees/sed/api.doctree | Bin 0 -> 2909 bytes sed/v0.1.9/.doctrees/sed/binning.doctree | Bin 0 -> 125245 bytes sed/v0.1.9/.doctrees/sed/calibrator.doctree | Bin 0 -> 726848 bytes sed/v0.1.9/.doctrees/sed/config.doctree | Bin 0 -> 41121 bytes sed/v0.1.9/.doctrees/sed/core.doctree | Bin 0 -> 439956 bytes sed/v0.1.9/.doctrees/sed/dataset.doctree | Bin 0 -> 29502 bytes sed/v0.1.9/.doctrees/sed/dfops.doctree | Bin 0 -> 88191 bytes sed/v0.1.9/.doctrees/sed/diagnostic.doctree | Bin 0 -> 25150 bytes sed/v0.1.9/.doctrees/sed/io.doctree | Bin 0 -> 43855 bytes sed/v0.1.9/.doctrees/sed/loader.doctree | Bin 0 -> 669063 bytes sed/v0.1.9/.doctrees/sed/metadata.doctree | Bin 0 -> 47903 bytes .../user_guide/1_binning_fake_data.doctree | Bin 0 -> 50929 bytes .../.doctrees/user_guide/config.doctree | Bin 0 -> 55087 bytes sed/v0.1.9/.doctrees/user_guide/index.doctree | Bin 0 -> 3758 bytes .../.doctrees/user_guide/installation.doctree | Bin 0 -> 9710 bytes sed/v0.1.9/.doctrees/workflows/index.doctree | Bin 0 -> 3201 bytes .../user_guide_1_binning_fake_data_13_0.png | Bin 0 -> 119970 bytes .../user_guide_1_binning_fake_data_8_0.png | Bin 0 -> 266443 bytes sed/v0.1.9/_modules/index.html | 541 +++ sed/v0.1.9/_modules/sed/binning/binning.html | 1057 ++++++ .../_modules/sed/binning/numba_bin.html | 782 ++++ sed/v0.1.9/_modules/sed/binning/utils.html | 707 ++++ sed/v0.1.9/_modules/sed/calibrator/delay.html | 957 +++++ .../_modules/sed/calibrator/energy.html | 3030 ++++++++++++++++ .../_modules/sed/calibrator/momentum.html | 2778 +++++++++++++++ sed/v0.1.9/_modules/sed/core/config.html | 762 ++++ sed/v0.1.9/_modules/sed/core/dfops.html | 987 +++++ sed/v0.1.9/_modules/sed/core/metadata.html | 718 ++++ sed/v0.1.9/_modules/sed/core/processor.html | 3162 +++++++++++++++++ sed/v0.1.9/_modules/sed/diagnostics.html | 688 ++++ sed/v0.1.9/_modules/sed/io/hdf5.html | 717 ++++ sed/v0.1.9/_modules/sed/io/nexus.html | 570 +++ sed/v0.1.9/_modules/sed/io/tiff.html | 747 ++++ .../_modules/sed/loader/base/loader.html | 720 ++++ .../_modules/sed/loader/flash/loader.html | 1518 ++++++++ .../_modules/sed/loader/flash/metadata.html | 653 ++++ .../_modules/sed/loader/generic/loader.html | 696 ++++ .../_modules/sed/loader/loader_interface.html | 591 +++ .../_modules/sed/loader/mirrorutil.html | 903 +++++ .../_modules/sed/loader/mpes/loader.html | 1534 ++++++++ .../_modules/sed/loader/sxp/loader.html | 1568 ++++++++ sed/v0.1.9/_modules/sed/loader/utils.html | 730 ++++ sed/v0.1.9/_sources/index.md.txt | 49 + sed/v0.1.9/_sources/misc/contributing.rst.txt | 132 + sed/v0.1.9/_sources/misc/contribution.md.txt | 8 + sed/v0.1.9/_sources/misc/maintain.rst.txt | 156 + sed/v0.1.9/_sources/sed/api.rst.txt | 17 + sed/v0.1.9/_sources/sed/binning.rst.txt | 21 + sed/v0.1.9/_sources/sed/calibrator.rst.txt | 20 + sed/v0.1.9/_sources/sed/config.rst.txt | 8 + sed/v0.1.9/_sources/sed/core.rst.txt | 5 + sed/v0.1.9/_sources/sed/dataset.rst.txt | 344 ++ sed/v0.1.9/_sources/sed/dfops.rst.txt | 5 + sed/v0.1.9/_sources/sed/diagnostic.rst.txt | 5 + sed/v0.1.9/_sources/sed/io.rst.txt | 5 + sed/v0.1.9/_sources/sed/loader.rst.txt | 55 + sed/v0.1.9/_sources/sed/metadata.rst.txt | 5 + .../user_guide/1_binning_fake_data.ipynb.txt | 206 ++ sed/v0.1.9/_sources/user_guide/config.md.txt | 29 + sed/v0.1.9/_sources/user_guide/index.md.txt | 24 + .../_sources/user_guide/installation.md.txt | 74 + sed/v0.1.9/_sources/workflows/index.rst.txt | 8 + sed/v0.1.9/_static/basic.css | 925 +++++ sed/v0.1.9/_static/doctools.js | 156 + sed/v0.1.9/_static/documentation_options.js | 13 + sed/v0.1.9/_static/file.png | Bin 0 -> 286 bytes sed/v0.1.9/_static/language_data.js | 199 ++ sed/v0.1.9/_static/minus.png | Bin 0 -> 90 bytes .../_static/nbsphinx-broken-thumbnail.svg | 9 + sed/v0.1.9/_static/nbsphinx-code-cells.css | 259 ++ sed/v0.1.9/_static/nbsphinx-gallery.css | 31 + sed/v0.1.9/_static/nbsphinx-no-thumbnail.svg | 9 + sed/v0.1.9/_static/plus.png | Bin 0 -> 90 bytes sed/v0.1.9/_static/pygments.css | 152 + sed/v0.1.9/_static/scripts/bootstrap.js | 3 + .../_static/scripts/bootstrap.js.LICENSE.txt | 5 + sed/v0.1.9/_static/scripts/bootstrap.js.map | 1 + .../_static/scripts/pydata-sphinx-theme.js | 2 + .../scripts/pydata-sphinx-theme.js.map | 1 + sed/v0.1.9/_static/searchtools.js | 619 ++++ sed/v0.1.9/_static/sphinx_highlight.js | 154 + sed/v0.1.9/_static/styles/bootstrap.css | 6 + sed/v0.1.9/_static/styles/bootstrap.css.map | 1 + .../_static/styles/pydata-sphinx-theme.css | 2 + .../styles/pydata-sphinx-theme.css.map | 1 + sed/v0.1.9/_static/styles/theme.css | 2 + .../vendor/fontawesome/6.5.2/LICENSE.txt | 165 + .../vendor/fontawesome/6.5.2/css/all.min.css | 5 + .../vendor/fontawesome/6.5.2/js/all.min.js | 2 + .../6.5.2/js/all.min.js.LICENSE.txt | 5 + .../6.5.2/webfonts/fa-brands-400.ttf | Bin 0 -> 209128 bytes .../6.5.2/webfonts/fa-brands-400.woff2 | Bin 0 -> 117852 bytes .../6.5.2/webfonts/fa-regular-400.ttf | Bin 0 -> 67860 bytes .../6.5.2/webfonts/fa-regular-400.woff2 | Bin 0 -> 25392 bytes .../6.5.2/webfonts/fa-solid-900.ttf | Bin 0 -> 420332 bytes .../6.5.2/webfonts/fa-solid-900.woff2 | Bin 0 -> 156400 bytes .../6.5.2/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10832 bytes .../6.5.2/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4792 bytes sed/v0.1.9/_static/webpack-macros.html | 31 + sed/v0.1.9/genindex.html | 1428 ++++++++ sed/v0.1.9/index.html | 566 +++ sed/v0.1.9/misc/contributing.html | 718 ++++ sed/v0.1.9/misc/contribution.html | 586 +++ sed/v0.1.9/misc/maintain.html | 748 ++++ sed/v0.1.9/objects.inv | Bin 0 -> 7955 bytes sed/v0.1.9/py-modindex.html | 617 ++++ sed/v0.1.9/search.html | 521 +++ sed/v0.1.9/searchindex.js | 1 + sed/v0.1.9/sed/api.html | 592 +++ sed/v0.1.9/sed/binning.html | 970 +++++ sed/v0.1.9/sed/calibrator.html | 2577 ++++++++++++++ sed/v0.1.9/sed/config.html | 696 ++++ sed/v0.1.9/sed/core.html | 1753 +++++++++ sed/v0.1.9/sed/dataset.html | 847 +++++ sed/v0.1.9/sed/dfops.html | 812 +++++ sed/v0.1.9/sed/diagnostic.html | 642 ++++ sed/v0.1.9/sed/io.html | 722 ++++ sed/v0.1.9/sed/loader.html | 2801 +++++++++++++++ sed/v0.1.9/sed/metadata.html | 787 ++++ .../user_guide/1_binning_fake_data.html | 936 +++++ .../user_guide/1_binning_fake_data.ipynb | 872 +++++ sed/v0.1.9/user_guide/config.html | 1249 +++++++ sed/v0.1.9/user_guide/index.html | 613 ++++ sed/v0.1.9/user_guide/installation.html | 670 ++++ sed/v0.1.9/workflows/index.html | 568 +++ 134 files changed, 55218 insertions(+) create mode 100644 sed/v0.1.9/.buildinfo create mode 100644 sed/v0.1.9/.doctrees/environment.pickle create mode 100644 sed/v0.1.9/.doctrees/index.doctree create mode 100644 sed/v0.1.9/.doctrees/misc/contributing.doctree create mode 100644 sed/v0.1.9/.doctrees/misc/contribution.doctree create mode 100644 sed/v0.1.9/.doctrees/misc/maintain.doctree create mode 100644 sed/v0.1.9/.doctrees/nbsphinx/user_guide/1_binning_fake_data.ipynb create mode 100644 sed/v0.1.9/.doctrees/nbsphinx/user_guide_1_binning_fake_data_13_0.png create mode 100644 sed/v0.1.9/.doctrees/nbsphinx/user_guide_1_binning_fake_data_8_0.png create mode 100644 sed/v0.1.9/.doctrees/sed/api.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/binning.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/calibrator.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/config.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/core.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/dataset.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/dfops.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/diagnostic.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/io.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/loader.doctree create mode 100644 sed/v0.1.9/.doctrees/sed/metadata.doctree create mode 100644 sed/v0.1.9/.doctrees/user_guide/1_binning_fake_data.doctree create mode 100644 sed/v0.1.9/.doctrees/user_guide/config.doctree create mode 100644 sed/v0.1.9/.doctrees/user_guide/index.doctree create mode 100644 sed/v0.1.9/.doctrees/user_guide/installation.doctree create mode 100644 sed/v0.1.9/.doctrees/workflows/index.doctree create mode 100644 sed/v0.1.9/_images/user_guide_1_binning_fake_data_13_0.png create mode 100644 sed/v0.1.9/_images/user_guide_1_binning_fake_data_8_0.png create mode 100644 sed/v0.1.9/_modules/index.html create mode 100644 sed/v0.1.9/_modules/sed/binning/binning.html create mode 100644 sed/v0.1.9/_modules/sed/binning/numba_bin.html create mode 100644 sed/v0.1.9/_modules/sed/binning/utils.html create mode 100644 sed/v0.1.9/_modules/sed/calibrator/delay.html create mode 100644 sed/v0.1.9/_modules/sed/calibrator/energy.html create mode 100644 sed/v0.1.9/_modules/sed/calibrator/momentum.html create mode 100644 sed/v0.1.9/_modules/sed/core/config.html create mode 100644 sed/v0.1.9/_modules/sed/core/dfops.html create mode 100644 sed/v0.1.9/_modules/sed/core/metadata.html create mode 100644 sed/v0.1.9/_modules/sed/core/processor.html create mode 100644 sed/v0.1.9/_modules/sed/diagnostics.html create mode 100644 sed/v0.1.9/_modules/sed/io/hdf5.html create mode 100644 sed/v0.1.9/_modules/sed/io/nexus.html create mode 100644 sed/v0.1.9/_modules/sed/io/tiff.html create mode 100644 sed/v0.1.9/_modules/sed/loader/base/loader.html create mode 100644 sed/v0.1.9/_modules/sed/loader/flash/loader.html create mode 100644 sed/v0.1.9/_modules/sed/loader/flash/metadata.html create mode 100644 sed/v0.1.9/_modules/sed/loader/generic/loader.html create mode 100644 sed/v0.1.9/_modules/sed/loader/loader_interface.html create mode 100644 sed/v0.1.9/_modules/sed/loader/mirrorutil.html create mode 100644 sed/v0.1.9/_modules/sed/loader/mpes/loader.html create mode 100644 sed/v0.1.9/_modules/sed/loader/sxp/loader.html create mode 100644 sed/v0.1.9/_modules/sed/loader/utils.html create mode 100644 sed/v0.1.9/_sources/index.md.txt create mode 100644 sed/v0.1.9/_sources/misc/contributing.rst.txt create mode 100644 sed/v0.1.9/_sources/misc/contribution.md.txt create mode 100644 sed/v0.1.9/_sources/misc/maintain.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/api.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/binning.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/calibrator.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/config.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/core.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/dataset.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/dfops.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/diagnostic.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/io.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/loader.rst.txt create mode 100644 sed/v0.1.9/_sources/sed/metadata.rst.txt create mode 100644 sed/v0.1.9/_sources/user_guide/1_binning_fake_data.ipynb.txt create mode 100644 sed/v0.1.9/_sources/user_guide/config.md.txt create mode 100644 sed/v0.1.9/_sources/user_guide/index.md.txt create mode 100644 sed/v0.1.9/_sources/user_guide/installation.md.txt create mode 100644 sed/v0.1.9/_sources/workflows/index.rst.txt create mode 100644 sed/v0.1.9/_static/basic.css create mode 100644 sed/v0.1.9/_static/doctools.js create mode 100644 sed/v0.1.9/_static/documentation_options.js create mode 100644 sed/v0.1.9/_static/file.png create mode 100644 sed/v0.1.9/_static/language_data.js create mode 100644 sed/v0.1.9/_static/minus.png create mode 100644 sed/v0.1.9/_static/nbsphinx-broken-thumbnail.svg create mode 100644 sed/v0.1.9/_static/nbsphinx-code-cells.css create mode 100644 sed/v0.1.9/_static/nbsphinx-gallery.css create mode 100644 sed/v0.1.9/_static/nbsphinx-no-thumbnail.svg create mode 100644 sed/v0.1.9/_static/plus.png create mode 100644 sed/v0.1.9/_static/pygments.css create mode 100644 sed/v0.1.9/_static/scripts/bootstrap.js create mode 100644 sed/v0.1.9/_static/scripts/bootstrap.js.LICENSE.txt create mode 100644 sed/v0.1.9/_static/scripts/bootstrap.js.map create mode 100644 sed/v0.1.9/_static/scripts/pydata-sphinx-theme.js create mode 100644 sed/v0.1.9/_static/scripts/pydata-sphinx-theme.js.map create mode 100644 sed/v0.1.9/_static/searchtools.js create mode 100644 sed/v0.1.9/_static/sphinx_highlight.js create mode 100644 sed/v0.1.9/_static/styles/bootstrap.css create mode 100644 sed/v0.1.9/_static/styles/bootstrap.css.map create mode 100644 sed/v0.1.9/_static/styles/pydata-sphinx-theme.css create mode 100644 sed/v0.1.9/_static/styles/pydata-sphinx-theme.css.map create mode 100644 sed/v0.1.9/_static/styles/theme.css create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/LICENSE.txt create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/css/all.min.css create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/js/all.min.js create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/js/all.min.js.LICENSE.txt create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.ttf create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.woff2 create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.ttf create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2 create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.ttf create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.woff2 create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.ttf create mode 100644 sed/v0.1.9/_static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.woff2 create mode 100644 sed/v0.1.9/_static/webpack-macros.html create mode 100644 sed/v0.1.9/genindex.html create mode 100644 sed/v0.1.9/index.html create mode 100644 sed/v0.1.9/misc/contributing.html create mode 100644 sed/v0.1.9/misc/contribution.html create mode 100644 sed/v0.1.9/misc/maintain.html create mode 100644 sed/v0.1.9/objects.inv create mode 100644 sed/v0.1.9/py-modindex.html create mode 100644 sed/v0.1.9/search.html create mode 100644 sed/v0.1.9/searchindex.js create mode 100644 sed/v0.1.9/sed/api.html create mode 100644 sed/v0.1.9/sed/binning.html create mode 100644 sed/v0.1.9/sed/calibrator.html create mode 100644 sed/v0.1.9/sed/config.html create mode 100644 sed/v0.1.9/sed/core.html create mode 100644 sed/v0.1.9/sed/dataset.html create mode 100644 sed/v0.1.9/sed/dfops.html create mode 100644 sed/v0.1.9/sed/diagnostic.html create mode 100644 sed/v0.1.9/sed/io.html create mode 100644 sed/v0.1.9/sed/loader.html create mode 100644 sed/v0.1.9/sed/metadata.html create mode 100644 sed/v0.1.9/user_guide/1_binning_fake_data.html create mode 100644 sed/v0.1.9/user_guide/1_binning_fake_data.ipynb create mode 100644 sed/v0.1.9/user_guide/config.html create mode 100644 sed/v0.1.9/user_guide/index.html create mode 100644 sed/v0.1.9/user_guide/installation.html create mode 100644 sed/v0.1.9/workflows/index.html diff --git a/sed/v0.1.9/.buildinfo b/sed/v0.1.9/.buildinfo new file mode 100644 index 0000000..8a92f5b --- /dev/null +++ b/sed/v0.1.9/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 2ba3ed2f7d2da9d972f6b5ffb59ca4cb +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/sed/v0.1.9/.doctrees/environment.pickle b/sed/v0.1.9/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..37569a303679b1a84112cbd82e3a4d264fcbdbf4 GIT binary patch literal 3998491 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

o!pM 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¨U7MMkSsiZ5!V}5Sz|7DH-+w$`s>w{`kNWbx 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

Q~iO-POmeoW$Q}d$y0)Rqv`-? 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 z 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%0D!d9_KzC>G9{cbV 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/index.doctree b/sed/v0.1.9/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..570b33577523f5c5e8c95ae09d3ee79ee342fb2f GIT binary patch literal 6312 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

    kdvc#NLa}EpR@9gAycZ>NwQ|FEqy`k7#YqCmW?K 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/misc/contribution.doctree b/sed/v0.1.9/.doctrees/misc/contribution.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8a738efaa4a8df6fefba814639d8f0da2d87f8aa GIT binary patch literal 3135 zcmZuzTW=dh6i%Aju^nHU^a4^E5JH7kG;u+FKs+I+ghZq~ATE`vYBk;+dq$bvS!QM% z2PqOfv?9{Hb@)MC{sH^}egyA)XLr4EoJO*;bLPyse&_OY>$k`Kweru8Y%XLrKVV6c z>4e+hJBf~qlxHry4iA0_XW_o@8g^oJVPYQq8aQGhRbqG+o(Df9b|;lRsNZi|9y_VC z=DBEzw%B|g?u)K(Iq4K%y7F63_zSLdUTP#Za9#hF&q@8|%a@_DrkykBc0p|WZqyhn zHhjCb@yK6SGUMT>m@waC&KWr=9DE~RHe_PS?#);+YeB?!D`RQ()k%u{;xJ+HvEftV zDg35mGr9_5B;Gk(7kmDz@pqORJN}8uZ2Y8-njQb3&GFdsB$^s-MHK7&l#XMVYR9Rx z@i^95WfQ`5kS0OwioUojHi`+H@5DOIb&(}YQK|wc)?kE=o#D$7tnc21bK*UO?|uC4 z;rAha5AfUd+gFsreMHd6(&_t0S2(g+comNPpnRCZJ%=Ai-1lV`t0Li3sjA1~bMXcD zos`WJo;wi^uOYN7FA;!5%#@ylbKe#+NdTC0Kd1#XgicnZ6K;4C4%d9I#D~?HIt6bJ zxVx~k5Fd$8#GZJF@NXbwW29FsyX{AHboNgS%X4l5TaE<1-(Q4!A*Yz|Muy)?maxbc zkz6I$fhBRh3JEZ2S8P-nylm34{sy1op}*w}%dBD)rYJXh2B=i{Y&q?is$x;|l%Xj| z-?|^hg(37u4c7Y$N`-mfvD`VC%}~nQO>IsMAjg3z-~OJd0;y|?yR8eC7cLx$(UI@Y zc*YHL+93VigrRC2OLH8yDuofW9OKxlkA+bL6a+q^YN1;wZc)}wgWs8I?K187(&gd0 zA5e=x+N1eYn>2tjv_NByT1lx7Scu%MC|vQ95}ingTB>Un8tVrQp>KGujf)hekWknY zOf|=r-{y0Ps5#~eyI^YhR>CL64C;m_%w&ifI1FbgC|#r|=HyiP)emKc7)3mbbpo#7 zyM>$Xf4XlazVBYXjJPq{M1p0B0tS(G_!hh1M^&Vkq_j#Y!SAiytcVb={IC*wVZh?) z-OCp%FZ~U206?<>@lkLn_<>^CtY9;aa3?rlLtXlthR50@5sDZvfg0)!N4||#HHD7| zhfDxe)crh&wjZ*>>F9#wuSsBQkQ8YiHTXkRO9I*lHyKkTa8y!C^i%FHNV(-jqN90A zc)G#oxwbr7epx~!cF_xIWrfdClt{}aiX5q}++5TJYOD`uEGnTaG6)^iY|)~3`8)Il zCFtU1A@Yo*CCK*{IuG(x9f8knDlWh#n*oJNrqYG4*Z%#l<%c=XBZLJFEQ`yK^@%cJ zu%2qezb%~0?PudL$o3#VbpkzKo7p({+r(L#0M5wq6bW)jNC))&dygI?qC+!{SHu(L zLi`5{@u*csh&|@!Kyo)Nb)f#o!leqzx{ggyLhWgTe2`g25i7zA87wxeOv+9~U`P z(B@FK`??KaHh?0tDNwNJ3p>;)Y%y8klPSShX;u{@jr-#O)L@V#sNhqWAUJnWaytgs zal|piRD>mm`fO?TcD<$mu4-C!wR6A0vlp~B_)gVLP`&`8%o2(6aFJtX#?hUyGHk;r zfXiX^K?lb?th)E;1Vt2Mdb@r4vb4>-waO|pS&qj=3l=TE{&6UGpF8wbEjkz}f7z7@ zN8`j_(ZLq8o<_tUG}++6_Jt*>%*ypg{8{aDr0-Fq@6m<6f8MC?4U*oZvG6;W9Ie(U zTDh(mEPj8Zd4Cra_vzxHZ&SNL49~Ex5V86e&%{&fyF_rOIdXXx#ItiN-oyW=qHq0R z8P?_NK`c=mlqg87DAd0ed{si1DHR`LjWS3lS~ZnYvff%DHr(Ay61xkn<)fWT@-c^u zqrrE3RaSk2RS4a+L=w%Atyn7s2*L-9*Uc{pVW7W;^Do0U=o8q9(Q&ZFT2w}*uxYZF p$XgA$1ou|Gj-i-lgzH{HbD(aSw9)updTKE^Re_D-EEJQ2{{b-z<7)r_ literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/misc/maintain.doctree b/sed/v0.1.9/.doctrees/misc/maintain.doctree new file mode 100644 index 0000000000000000000000000000000000000000..de5cb6d037f3b42cc120558a81fd67718539df65 GIT binary patch literal 31658 zcmeHQdyHIHdADQlu6Mm&KN4?%#L3C#;q~B|we!MkX%au<;KbhA4si?V`ZUn*L4(b4Nv#t+6ktwBF^jqS!w#-wqxvB}sI9GiRG)g5>4onT?^ zSSUev?g`sjoOAVBx$fw$QLfsZW%@b?a^1O>=~m}jA>Sp(1uM6ly3Vf{TZP_;b0n*jiUslO*##ka+@kO}9&Fd!FkWJ*R<=w)N*b{Q6X}$GD4U+% zQhp8IP$)doc0H(*9n(8{yQa6RrtU(u6N1@TfUh4|RFpg}MQwPY>UZ~TT0y|2?2Hov zoU90#K;iaEg)I~^W9Sbxm0$}=*jw(v7mmU<*qRb=i}GuW3aKr&8i{Q z6GC!=o7FZ8;&(KwTmjS;RW;nvF+0o*6@kx}C+M&EiLHCivP56D!UA5P<0I}69}tXR zZdvngMWi)+d4a|cWl@6Y=^u_59D_DEtZDc7el!1>}gVg+L!V{ z?F%cRM;hWz@ca3d3KP^mn-OZpbH)dZ52EvY-uMs+HVvhn5bTE|LC!Tyk5#!S4bOv% znxiL%Uny1X*4!Cb^wBeqEgU~b{Z9$MNDSq!7s2Tthr!ACr12@^&#xGt4#8r4CW(&g zGoj<=LgBP_$!w5|MvyQZBR35xoJPujhe)|`K=TS-{wE(^{%a)&NW9z#3B0^gVZzHx ztH4Vz0$1*M-BX+TA?L;faz?8)22e;q$gfh*&FPIBHmpU}ug|1vbSg&?9iLF#ZO2M(9;Bi?l*r|mt^cHDVCbIcY&jp_1OhAo-s@?AtX2!fW{Jld)7;I8A? zRoz7?v(Yx|CgLT}S}w6iJf>N$%^dxrZ=#!E-jdB~ny0zChr%|y`v80R2(#-9L9fnu zkHYY>uzal~f%Y1pB#OM63z68f06;4CRt4IzD=t+#tmrULBAG|~6XGF7|5dwPHyadl zy5xfa`&tb2Hie79J@pLC&e6#eYwVKgcs^`YZ{w5Qrr~10Ui-EctE5eK ziPS(N!0BMm(6=eJyPQjPWV=3UWVPM9Q2t_u@?^X1h>}&YV zsBru?x?0NR6-Dn|tT4lCSsWj%%%4e^Ng60swaBGJ01e%*8N>%}yE&V`qC=mlbM8iQI>B$6G zjh#II*rNm%p8FMPFjJIyN}%T{RztW~r4hOa;bzfE7jw0w2>V3DqOefprMC0ra2cr- z9f@7!9OB$nutgFfF+3VVTEG*XRdXTL;?Q(w^E8#dsYzr&G}FOWmAkmnG@1I)9I6Zp z=M|{Ok@pRS!o#L_(yuT|3)c~G!yTsK+9bM!liQIlt%%Rc!>mEwp20aCDilM~|CYY= zfB!rZp-F@+g^W;qkJ$qZ6!aPm)HQ^@Er5t;hna9lTDyia9m`%$Hd11TYc-S7*_2A& z&tyg%>2w-IAV9{@LFR^d*0!a!5qw(93>p1KLr0`Nn6SEIxA^ae`K$y+D_W&AaS{mI z>oSAp9#A)8gFeK`-5>s9G5q4w9~#VZ4EcBGf|i8L0}5nPV~E)}-FM*|=ne}7iGOyK zkA!^WtD$}h4vK8J%tMU>6Ly<*eAi(5B@8~GR-0>*z{4tz)~*`J**oYG^(u{BSx55> zmk|c*lve?rHXrl(z0wt7Kr$s7wOtr zCCl*2FQt;XGoLl0`Hui8$$?mxJ=u)|N+{m``CKMR-oDGdJ^Hn8|KggIA|PT{4c)SJ z(}y9b_X$D8$(v6Kb0ps)Y)p8Q9z#r6VUGz8u)kuI6pD?n$g){puh~fi{XCHz4JZB* zg3mY%B~RH+PaqtRls8=26i@$A3LZ*_M9J+!VL^8=8}Gu`^9fJU3rT^)y`qEZ#6@_| zLUF^xkDNdG_>uDYGpCN9=3x&_5{E$!<;3V&7{o1L;>@MaMR^rw^{SR%)6p4eHKtX0 zwiQ*7AM|*qM%~qtgQ-I0$Bt-daCf2*8g>%0y?Op3;q!Sj^P+X}#H4rTer-r$KA^b-}4=vnKfO*u*Sz4 zoeG~iHMC0@yqR@Aw)RvXMPYLM!zB#6$PJRKI_tMxcG1^;ysx5rOFEJUSTtj{iwG?n znEF8&jkFVaDe{ICP`jS2z<&WH?xNZ0V9I%7u*Zs+tuBWitKrywXP(V)n9K=l7oPfMfYt+Izk^We`2qFwhjFPS?;vJwTEyC#eCAJ+8H00t z`CXJLh`LrvK$(}|_G<7?lnlV6bknY2_?*r@!4om2m6)7%c&lBZ%mW{R7uh+A_52QZ zXriVv$GM+X4ZXUEyp)gF4lXZFOzr1xFr1rlSzD)IPIHj!QWn#N$%6$xi&v7b4A;h? zlI`gg+g?o8A@{m~zwByM1B)53G%p%UgeeW;8Z@CG$s$bEaNxPM@H)3JF(uU6z!tcnHctCrK9_ zk(y)Zjh91*76+lHl@awiV4=rhUf-vEX;s^wkm*kGX2tsFQ`Wz-i@aaD$X`iEi8-LG zP(bbF_di%u*1TI#G9GN@sj2csA2?K!?-yQx3HCLZt8Okumd{v<$S|(AsT46cmBCPo zY`B^9Hxe|?L&Cf!l3rn{=3F1(9+Xof&GG6gE|=EUU1eGHwSuyQ1Bjf^gEZrtkSbWGSk65 zz;E78LU}W_lV67yLBTVeg5i|LIvgDI8_xw3l*GXPhmN6jQ%l^N=U0AB^DHqT_V^IG zLnnFkKnRm6$l;Q2x!ocB8}=l#M7NgMNTeI}gc&|^PqAn+Ekw=&606OJG4>bO)WFtGzrHiE*88rskF5~`udfzrX! z!2^XtNCa}Ob<=4H?a>mG@QtXL;NxMrK{aH8=ZM^y5<8A1Q-Vee)-f%B|2xRacd&H^ z(}lDAwIc1q7h@IUg?@eqn>BQ{aMs-y60;y=w%}K=Gt`LXg|#@yMezM0AbLa;F;>yO<^0Y0QOdUT9kdO;S)2&UWS`qf+Xgp@qT&Ji-|d zA+!BVC~6tfOaGaelw7CwbhC0#yJXUn#a%vF1@2N+^WkdP>}NTl^6Ih+KR;Q=9- z3#MhaY0D#L>#Trj)Pcm@HTc4uKKuCQG_j~nS+f&rgjVZBTyr^_b*4LxO^fQPm|EiO z2!}glxz@{kpqs%=*Uv_;y@65&;;jxD3WUPu~ySnW`FlJ z?qbuzu7$#;1?%TQ8|0=209>kT3IP-l*HhwF76Xp(NI?)c9c;X$)M}+_4G(V#`t%+? z!+Oi`&_j925Yo0P5sD;mER0!{7T&#jGI1P298#t!iN_mqc%hz5A~E@UV7tQE9xk4~ zn0(J`#HXjR`7siy7-IZkMiK$v{$U|m{yGJQin2bQOX*TszYk@7bhXO5cx}2pW&LvJ zYEvMs&J!<&j#J?{SMIA6kSp5$!m70WEVTXkT-qLN^1-O+oNnfMIEY;BV1pwZm!hEcevn(`)KJV-UEexo0o4sjDKW`K%N*D#}p5&O&@8u`%~fy5}}Y_ci*NJ z5&Vn_D7uoR@iK2g^`$~ zSpNWGy@S*?`3(|&(wma*gz*ioEML;&O}~~c5u!TMYn26oFCLx( zQN8RPS@=pj*wdtB;b3Rt^bj`O^-T~du4N$?Iwk ziDy1mOgj9uD26)$iK#yZrs}-G!IVg+Q57$a9sV0uFhs?bziv=bDdWKfV&Qc`fZB5p zCt0%iCt&e?xmX-5x`ED@|GoEXH8gnY?ne;nW?w8e>bjpy)S+m46 z(_Mwa<2VlzCzK+YFHgjj>1w$qvUm3Et0er;DXv^!vC+TDr8RPjU&){?sog(KusPf@ zUN}SvaLFoP%ZeE(+8#y|BXTt;J|j)r!LA9uLzp&Hgp&$&VZb*SNROw4m&nyY`p74h^9sWR!~NiW>ptB7?|!&OqkwNk+>6FlaGMTJtdI4kBbKSr$la~i8{&>^2Q{t?L9=ya&p~37sF`IHG0w{=>5|&j z@JwkT-bs9h^ zM;0%wye&=s;I5xS1lhBF0P4P-zj7#bd?{Ryx-VX%{vnzZ3p!Vu0wZ-W<^&E zDP*Lfmg+?#s3o5(4PHn!I8>PuYD5Kx+FZ_VT6uArlWeFXxBO@>)D3QTV6;r0Y;@(9 zG&hs%WH&MRJv2D_mt@cK-3*=4cc=<-CiKrOr=H8=R=-7M6-N|1*b5a3X^`#@XLrTk zjQ-(eeC$o~WThxl>|j0{fh0ETVh8T*!r6U&BQhQadRU}{*{|Rc4?mr9?{#AK& z;T?T-(I>)OCruz0yoP$X`jMz`wap(YG7on4fM4k9Kb1nwkCQ=*LFD$7ttg)B6I4pE zvf(Z>3_m}X!JjDM=Z9hWALdn>BlstUrs1;}PxOSG>w_cFnM7S^^UEX$A+1;Km2pt| z6?$7%sYg-D3y|ZNxEzOSiAO1a&CA6;GkDiEG@G=rzZnbrnvxYOE*-(wq#9gCe{92w?C-{`R4SDt0-z z-GOl&8UJ6c{1O?*34c5IJ*ha3koWUj;TbD9vogah5p3sVEQ7RGOooC|FZ|N;SJlIC8#M0(VdihCp<^ma#v$ z!NW<5F3x?S)Sf&OhF`BW;@P-LsC#NdFd@s}p!-uBd>XHA45q@vZOYMAU6b;OxUwtQ zf4-FCO8`+PlH7x@~)OUV`%Dsg1!l zy6Fr-bNMnt=2jO^rf~U{*}*kmEgoH?$(zIzEbZn`%5-FRSzbAYH-;6$JIGE4lXRkl zgN3O`07HD&1rvs5MPEmPo%&_dD}x))cV(fGV5Fv3{03e(wWK+1NDU>hEu@7f;}CyU zC#JgZ4W`UCWK_oCx;EwUyTQ2c)r*IUIJmVN+?@Qe%vXz-4W#@n-GRi3)T)OI*@UE( zRz`R$-C$4ZmsAr?du+poU`n(b(;#c#octkGIoLrw0Bf!R5n23}qHXd#J}} z5&%Exws1v`IPSuQsIKSV`RNz1ExH0uTn4zOYT%-;DpW5l4szx~MD0btgPXDF4n%Qw zweSR2_~tmXT?Y!JYuH83!u2bua%Kw?L3o)a?2#@kTU-3nuEbMu6(Sy^wR-f0))&z&ig-Ro55?!%<}sLg^DzDO z5+)^^->1LcLSNsEzx-gF%F=Rcei0)teTA32!b@H8joWZdA#cE#Nj#kCCBK+{8H>4g$rNfPQD}X!!j7knOYGv#=gq!w5UX?UXL?LNBCA zohf%2+xuGbanu<`cl|{J!(je+bT1&I>;JGX5ZGszs28O@WehG84#p}T#Hnld%&^(; zJG*C}81_sD59DY9%UAEgg4IMb@i66^z(JmI<4w)46LN+HB_m;nxe+s6{BFL@kDNYn zhI%b=Zz;T}xC|5*Y$Esf_e4Q>H)J@wggddC|A5EIaeX|{$S1;k6%pRMS`prx5Fwh0 zMfl^~B78Zo2%9gVMh*eunyGaZ;C+e!?^~?^?@I^}&BOwn+>#fA\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    posxposyenergy
    00.020543-0.0662550.177019
    10.620387-0.8164150.335644
    20.435228-1.812815-0.673063
    31.930518-0.7731920.517242
    40.832919-1.2338321.066147
    ............
    99995-0.6239951.838118-0.860296
    99996-1.6463980.2639521.146353
    999970.317341-0.876428-0.297616
    99998-0.714653-1.932742-0.235242
    999990.6769550.9983231.789145
    \n", + "

    100000 rows × 3 columns

    \n", + "" + ], + "text/plain": [ + " posx posy energy\n", + "0 0.020543 -0.066255 0.177019\n", + "1 0.620387 -0.816415 0.335644\n", + "2 0.435228 -1.812815 -0.673063\n", + "3 1.930518 -0.773192 0.517242\n", + "4 0.832919 -1.233832 1.066147\n", + "... ... ... ...\n", + "99995 -0.623995 1.838118 -0.860296\n", + "99996 -1.646398 0.263952 1.146353\n", + "99997 0.317341 -0.876428 -0.297616\n", + "99998 -0.714653 -1.932742 -0.235242\n", + "99999 0.676955 0.998323 1.789145\n", + "\n", + "[100000 rows x 3 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n_pts = 100000\n", + "cols = [\"posx\", \"posy\", \"energy\"]\n", + "df = pd.DataFrame(np.random.randn(n_pts, len(cols)), columns=cols)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "6902fd56-1456-4da6-83a4-0f3f6b831eb6", + "metadata": {}, + "source": [ + "### Define the binning range" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a7601cd7-cd51-40a9-8fc7-8b7d32ff15d0", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-08T17:03:11.915662Z", + "iopub.status.busy": "2024-07-08T17:03:11.915491Z", + "iopub.status.idle": "2024-07-08T17:03:11.919425Z", + "shell.execute_reply": "2024-07-08T17:03:11.918809Z" + } + }, + "outputs": [], + "source": [ + "binAxes = [\"posx\", \"posy\", \"energy\"]\n", + "nBins = [120, 120, 120]\n", + "binRanges = [(-2, 2), (-2, 2), (-2, 2)]\n", + "coords = {ax: np.linspace(r[0], r[1], n) for ax, r, n in zip(binAxes, binRanges, nBins)}" + ] + }, + { + "cell_type": "markdown", + "id": "00054b5d-fc96-4959-b562-7cb8545a9535", + "metadata": {}, + "source": [ + "### Compute the binning along the pandas dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "758a0e95-7a03-4d44-9dae-e6bd2334554c", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-08T17:03:11.922031Z", + "iopub.status.busy": "2024-07-08T17:03:11.921827Z", + "iopub.status.idle": "2024-07-08T17:03:13.085220Z", + "shell.execute_reply": "2024-07-08T17:03:13.084722Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 989 ms, sys: 51.8 ms, total: 1.04 s\n", + "Wall time: 1.16 s\n" + ] + } + ], + "source": [ + "%%time\n", + "res = bin_partition(\n", + " part=df,\n", + " bins=nBins,\n", + " axes=binAxes,\n", + " ranges=binRanges,\n", + " hist_mode=\"numba\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c4f2b55f-11b3-4456-abd6-b0865749df96", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-08T17:03:13.087692Z", + "iopub.status.busy": "2024-07-08T17:03:13.087517Z", + "iopub.status.idle": "2024-07-08T17:03:13.439874Z", + "shell.execute_reply": "2024-07-08T17:03:13.439438Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(1, 3, figsize=(8, 2.5), constrained_layout=True)\n", + "for i in range(3):\n", + " axs[i].imshow(res.sum(i))" + ] + }, + { + "cell_type": "markdown", + "id": "e632dc1d-5eb5-4621-8bef-4438ce2c6a0c", + "metadata": {}, + "source": [ + "### Transform to dask dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ba0416b3-b4b6-4b18-8ed3-a76ab4889892", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-08T17:03:13.443448Z", + "iopub.status.busy": "2024-07-08T17:03:13.443275Z", + "iopub.status.idle": "2024-07-08T17:03:13.585118Z", + "shell.execute_reply": "2024-07-08T17:03:13.584528Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
    Dask DataFrame Structure:
    \n", + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    posxposyenergy
    npartitions=50
    0float64float64float64
    2000.........
    ............
    98000.........
    99999.........
    \n", + "
    \n", + "
    Dask Name: from_pandas, 1 graph layer
    " + ], + "text/plain": [ + "Dask DataFrame Structure:\n", + " posx posy energy\n", + "npartitions=50 \n", + "0 float64 float64 float64\n", + "2000 ... ... ...\n", + "... ... ... ...\n", + "98000 ... ... ...\n", + "99999 ... ... ...\n", + "Dask Name: from_pandas, 1 graph layer" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ddf = dask.dataframe.from_pandas(df, npartitions=50)\n", + "ddf" + ] + }, + { + "cell_type": "markdown", + "id": "01066d40-010a-490b-9033-7339e5a21b26", + "metadata": {}, + "source": [ + "### Compute distributed binning on the partitioned dask dataframe\n", + "In this example, the small dataset does not give significant improvement over the pandas implementation, at least using this number of partitions.\n", + "A single partition would be faster (you can try...) but we use multiple for demonstration purpouses." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "cbed3261-187c-498d-8ee0-0c3a3c8a8c1e", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-08T17:03:13.587862Z", + "iopub.status.busy": "2024-07-08T17:03:13.587671Z", + "iopub.status.idle": "2024-07-08T17:03:14.078520Z", + "shell.execute_reply": "2024-07-08T17:03:14.078056Z" + } + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6866b934b21247578250e1ce35170d00", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/6 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(1, 3, figsize=(8, 2.5), constrained_layout=True)\n", + "for dim, ax in zip(binAxes, axs):\n", + " res.sum(dim).plot(ax=ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8adf386-669f-4b77-920f-6dfec7b637c9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "728003ee06929e5fa5ff815d1b96bf487266025e4b7440930c6bf4536d02d243" + }, + "kernelspec": { + "display_name": "python3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "18d1d19ed9dd41f6872db00d23fc038c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_31db89d4941d4490a7b80ec178d10808", + "max": 6.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_bf3535194f594772b5950a59e560b21a", + "value": 6.0 + } + }, + "221af06b31bd4f7ab982464e8c07aa0a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "31854b5d903448a7b7585971af023fb5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_48a8d9eb093d45bc986a54e7a049b526", + "placeholder": "​", + "style": "IPY_MODEL_221af06b31bd4f7ab982464e8c07aa0a", + "value": "100%" + } + }, + "31db89d4941d4490a7b80ec178d10808": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "48a8d9eb093d45bc986a54e7a049b526": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6866b934b21247578250e1ce35170d00": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_31854b5d903448a7b7585971af023fb5", + "IPY_MODEL_18d1d19ed9dd41f6872db00d23fc038c", + "IPY_MODEL_edbc2dc39db841ab841bc3950d754c05" + ], + "layout": "IPY_MODEL_d6071a0c08c046eabf0e062996e824ba" + } + }, + "83ea49250e80458ab864a748d4e5a0f0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "88f6e141d4e24684adfd925405c313e3": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bf3535194f594772b5950a59e560b21a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "d6071a0c08c046eabf0e062996e824ba": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "edbc2dc39db841ab841bc3950d754c05": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_88f6e141d4e24684adfd925405c313e3", + "placeholder": "​", + "style": "IPY_MODEL_83ea49250e80458ab864a748d4e5a0f0", + "value": " 6/6 [00:00<00:00, 35.34it/s]" + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/sed/v0.1.9/.doctrees/nbsphinx/user_guide_1_binning_fake_data_13_0.png b/sed/v0.1.9/.doctrees/nbsphinx/user_guide_1_binning_fake_data_13_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b88fa410d12d6563068b6402bdfe3b0798b1c6b2 GIT binary patch literal 119970 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
    ?*w|4%Xj=5jkjV)|KUEKD$rg@$IUdeyO52M8$T
    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

    sDNr-Q3%U;*~A12TdutNy0o_+F_TOV%Ve= zDTRoO61RB%rYV#&e>`Zc>Sti6w^Jpb-AUy?N&a^V?HVuamy z>&?e>ZzWmL-IgU#GW?V_xN*f3gX^s{s4SBjBq7@+CHzKP z?;(Zzs*OtuG^0DWWIUOwV3})2lAR&3f-;gTJqE}r2y0HUj{W^>gjf+WPuIV!u5^7nQBx-bWNyhA#wYraA`*D zPMPya_kuUv5V&CBFtGh~f|CDRha8|IoU<{i`l!tFYnmq7QjmK5tnEN|j*VC38FxbC5y zIIDxbbj(v+$3oXxkb#4E%xj0k`E>Hgxmeb%+{geO_vIMP$&sNBh*4$!eyS6iD(p<1 zNqD~4xxq_B6Ry!%XOznyZybgY-=tbS^`S>o1nm`nhk~Ly*_+%3eP3Z6kSeb&ot0i@ zVXu}PF;7*iUcLB>#s$>X`rU5c?CuK!_W8WLOc#K_^(a&7 zKpUj&hx7_1gD=;?PHfT{t&ZPAL68BwnXdUEkK(Z)?e{sjyYglh!b;1rM9mDt%Q29wHQNe0>EM!f;!%6e~9IuSq;-yOn5X)&iK%dU{?Q*7D?3I4Ez+ZVuwP@z$z! zE|qS6Dea_tI?z)?Cau@3V@c_pi@{&@((M|)tsc40N2B2l5&)O$_RfMYh-$&4mV1cb zq9Bh|&#$Iv9er9keO*52`K2TeW%iL;@v*7j*M+<9bnhyJV>1}3k-xY=Gpw

    LRW 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Νt-H2oY=VrH7P*Zv03F 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�td(~oHm6=>JYmG|^=BPDKL+HUk%S37 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/nbsphinx/user_guide_1_binning_fake_data_8_0.png b/sed/v0.1.9/.doctrees/nbsphinx/user_guide_1_binning_fake_data_8_0.png new file mode 100644 index 0000000000000000000000000000000000000000..85718d193907f81da13a807943f56a5ce2e54321 GIT binary patch literal 266443 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%0A4+!HN?ph-dgNIjrZHG5dVk@a&K>^az8e8 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�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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/api.doctree b/sed/v0.1.9/.doctrees/sed/api.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f4f4c05b0c6b73d3b686ef55918313295d0dc846 GIT binary patch literal 2909 zcmZ8j-;WzL5WY4|F3Bai-nB(Y?ST*~w4!%GhzG<2;zxy`MW?Fb$5XX(cAeOY*IsOI zFNahK9*Q{0Z(aER_#=4d8}DY5yOW~Z8INbiGv7D%@7=$j@9o6Due4(X>_|? zbVX0>zNj9ELFjtv72jG4ov)sKU(qsFZ~Vwt6t-5ruIlK$f+3c##6cJ&ZE~U$dQDEJ z;f9i$SEuESg(36a%30}g7RtRNGe>#uriwWSCBD0w<@HxTD~pXVW9icJIoXt9*RusJ zRbpS<6(ey^bi`5kV)~Qg)=ht7QcoW@m2%Txj9pG0&yu<2P9&)*&PkjiT^B!CAy2Hs zA>Mh~DQ7rqKQ(z_N}X*Lqpp+KL2Q$H%eM>Fti6jfiT6;g_wl=r--q};#P4oE;j<~? z;H)T@mGOiRPD7vcsjeg+jS57O?!^dEGr6Bj%~Ms_8)H` zLwYP8nW)FKpl4^Uu29JG|5TcbS(hC}aXrb=|Kof$n- z`l9sJsn`eT7F_chKM(){?mWv2z;Uk*m>|j$;;<1*t00Y0=Y&W}s|ehsCY@K|aBhs( z#`CR3;9*RY2VG89b7ONt$i#sM1?ZU5Kyz?;x7KjQqb50%9&~L+10psXTE)on!dRau z{*t47*TYaS)r#G4z*iDg^URlSZPX3jjL*si!cESYB`U$fa+X6gK#NjNhpPSx6RA<7 zgzMB~M7S_0{rvc|V+U4*dzTjzZmqG2U^-KP9NLbvrM?RLb)~nwbfcFl99>zt;zIlr zCbiQ|0_&~!E-zf!8E(=605m61AB6)|VXT;5lx)FK?hNvE&@kMx9Fr$Yz*)cqVQ4Cy zhF-&bltX3!Drmo|L@!KO=}odxh3gX78fRr*BrX0>)u@nwp4Ci|!~Lj<=%?OqRE6VZ zW|CD-c)H0~g>gLD-Weg1`sAf_lI9zHC7E<=rsyDXKAnc$H7~%i5e|bPrz6Q=K5opC z_2>$3(HDZ?qKHJ~n!IJ`_Z|if`c#X+=K+xmu+a;kP{~~S>dDT(|8>Kp;6;M6U|#7o zmTW|t876K*+z4+A?+f?&bPBaQDbBqx`o!49v^!~Vo-`ZxAFSQez$U~lxjm8G&tnYme=2;g5NzPt3?#~EBKN})AekpEJKF;!t{{wD zgq!YMd$vl1TnL39;Cn+ELjK6*3_Sa_1g#xPbt}rXm?)F7`d$b}sbI(lt*_~ZI>#bn z_p&Syf*vGsx;JA0R{=Cq&w+yVTsWjj;mX++JDC%F={AgHq*ukV0%~w?WMJ?)QV<+h z-bJ{R!fKiDoJp17?L>1nrhU-7egIcBucz8Y=y3g#UMHbnPZQ7=V3azOpodR9vkQ*t zgqO(yk^;CqUR0RixDIK0hr>(S`n>`*yvw`11l8zN*CX z!io3rUx<+lbXOw$_779tZ2F zans=?|Cp}U(>T9#)mO8E`y4YP#cK+%sKQ=qltN)~23#7u-!%F+IQ;ACIna*>C3u7< mphLgwfbHnGq~2@Qv1NPBn*tD7P`8E|O}Azc(0yIbPW}h~Acn*M literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/binning.doctree b/sed/v0.1.9/.doctrees/sed/binning.doctree new file mode 100644 index 0000000000000000000000000000000000000000..96329e42ac37cd6bbed4865d5486065d99aa75bd GIT binary patch literal 125245 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/calibrator.doctree b/sed/v0.1.9/.doctrees/sed/calibrator.doctree new file mode 100644 index 0000000000000000000000000000000000000000..02669e01b84af4d385e70ee29ede7793d6789e93 GIT binary patch literal 726848 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

    !3AEFnhxEo3ccuz^N&qYq1 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

    KkDn9HV;!S)-7{fyKF_8_05boFB}Oa} zQ-RJm|5R{_M@e#1fwM~P%Jvsxqp%Netd%)Yp}o&zz^tcRJ%!E|c*fCyhvoV8 zdA^o6fXAhh$#$ksG{U#ya+2urccOaCCXa7=bRz9T@nzL{)Kmwk&a9dwtgDkw9?H>W7gydc)+ks}h+zehZaK!u}LkK?c* znA`|xxf2!!GPLk!z36g25gpJuTMl!9sWP${j#i+E`S4^yD{CKgo%By`JG_&siMEqo zKKmiu%h_^J4ZV|oSU-oTgk5aXz{gP(HSnFSSDE84KPQiJ{N-L7Vo)0#f61wU)A1K` zP{-d}pl{Uim;AN&9Di4jRoWvo81x7a4-HNyVJ^T!=AhE%Dm!onzSdmh0L*zqXsboL zMWs%z){?*Qm>Hr^m&Zmbr8VFhjDOKSGS}fY`!DNw3wmB&vjnUa<#uIs3Dj9`Zi7R+ zH5;4L5V?AA@bVp{Ru3GDzvLX}ZpY%!Wo2is+H;Yr&4S3g7%#GAq+yS2KZ_;B_p|QB zyB!PGRKJJS=x)c8dsJ`8%1d@!-WQsu%Q4{vEYjd=H2y9)@mnV+ES`=IEUgv+SHX3NT0~Sg(4>jEqZ~o zV-^^>CQvZ1a8_;?46R=kjPn}78{G{hh=-DpD4uzAA(4~H>@12Q{3T@YQ782l8T@CU z3_kCy+%5xJe}oLa?QSSR29$(E87wj{;&L)sDCgs2MNJfv`i--X7D@dwP*Ssg=$b9< zlA`silG;C8wel`WDWX3Ix|>Xp86_rBW((y7c1}|B*{{4u*|+G=5@&xb@;MF)h1|S3 z$yvEwKD2&SK67vj!8<}fL@&;CHTWWZFoVx4>`UnP-CBK` z)k4*8eiP#^LYqCSeC`l?6XRZ}TRv|f5UbzBpv+M^Y7OlBmy{l|2J#0^N}DszVC@U; zRz+p!7aIK8C71o6kjo$>v$pymbS=UM{{X1FtE@dPrH6s6^}N%4VoK91D06Q-bk^)y z_`iu`p0#^m;#fFdJP!VmbiETUpOngFTh#V*Qo3pwA@+dFn>uL0H$>!fMCYBbN(vEU zP^eeK<#MPyX}H(~`P`HqQbFSRu^hS?Q{`y@exF;o`>Gq{3o?d0YdV|u#I&K;ZQnSc zr5o>_-3}DHB!w8r?w);;WOd&?y9Dj?K{Ndsm13)~y#ax7#@P+DLb26qj8@<(MG0cj zwkP_^MYsVDGrMtOcN+cQ86{FSwZDxhEr?9L4Tj0GObtE(>g?m0+HckB3z~mEPH3}d z?F1QbgSx!~iZVy(sC8=pPD&4113uhxPVGNSY4|5SWbOUkX6-)rsLE*92x;*W$Xd_T zen?8w2SFhhymX?she6#*dTW~q22*-y7#Q{${p1c>@QsY%8U0BqM682Cy%OY;q3*5< za%)NtsUYFwTHdLDK}eaiUiT|nJAI58T$o9DRVP6Cd)GO&)B4^ z*=C%63EEz-)fWW1uO+nEvvz`fZ-BbJ114jRvO?8)W720sp1}we5RB6+@@w<895EB(Ka~eGb{&a}-Csf7UfsA7nAN9@*L}zxlmcXykBL% z;$c>#%AQXBR!p}kH^n8R1{W7He9VA9g%RCN@6P zjg^ZK>AlR)O`ra;k`9d(&@5 z_V(g7MnSVQdA>SI0U7w*NVu7sJTW;6d_3FUcWL$6QAL_SZzibbp0~{kReZPj}BIWVmc{)6uaKT_ed0b4!ptR zJ{Zjv=(!vvz`0$3xv-oTAK8aLQ^{UY*iI)_@PD zoMz=Gr!;(44_SL|w^_R_rH6s6^~|r$l%^X!WNtf^xi+)%i&A>XnA_S%yxe2oLA@dr?M zpb+(y7;;{oVNEMBL!Jw|y}%HQExk4WVr#yKwULXhw^7H^5pt`vFwkl@wZ+w1*!a=V z?y$hB)JL1(!HPbs%psMO8_xXtR~xe6$vp%%$x6a1ZMd&*30O=^P|*@=5vegOLX7d+ zL4tZCf-TV0M8WIBf2>O1zQ~c*Y6n9h!&(iKWli!PDC`TI<;Mx+Z$a0fR+pPDwoY3@ z=(1<+WSuqyb$dq`WsI^;vrk87q;!$B&=nNBIE8=DMQaNYF0T7Xq-MfdsBy-h2#dNwl0xdyjUjT&&v@%cM2oU9O^zo)S~amKflFPI_^#ei96stI8{NuaY*r8r)1v>=`Z ztREnz=OhG!YSh&znRqwNxCqE@+_CvT`xY|$i6%3*0GK)X9>NsR64m<;lV$mPr+(+V z$^WC(=BA8I{(mBr*|T;s`Tq^-_D=qkHGz}=VLwqBW~Un!nRSu1(3Q#mQ7Hs0hC;pC z!YqNh19_}Z{<`*=CVxYoHJyz*F_QGU{n+vYkFrXWO#rrR+C6*LEPC}5<0xKU-UShO zA<}Pie0s7BL4jAdS8zY2)g%-!Sa~aT2sB*BM=IdmU~o{PejVh2C_Ki3OLB!N{)SDV zy<(_OynBH=9eR1L&_?0ba9=mi|^D#=#~fDqP&gB13>PXo#|qS>=%lN1SKir zGEl@fk>0pF&bB=!MZ9uwu+%9srp;=7x&rRnYoriLG`*WksNrfiyCj(;?$G4rWr^K33c8pz7LWBf^Ra-d+daWM2|a7F`HCtK_lO zKM`O5Z`UR=u&+=Wie{zGdN1vTp$#N8G21(yfRr^z`9a$P;uxTHQVS zbXb>?Q;K4fc!Kc27umWVVq?@tYtwk*Kz!G-$3%t}k2cD%mS4QOu%13fmqp1SKU79> zTLG);#rQs+$i>#;n8?QhBWkAeQ7 z;>g`p^ht>CX{o(C33_))Z13!d;{rltq|g+59UKTx2q23=7UDpcA!`AJtU`O&R2J(> zNfXR}ehl+@yp(IOP&jnWLEs{T!eB^*^&kCR(Da&MnmVuovR1t|s#g*5I1!!Lmv8jv z;}3u!`=TW7)HfbTn}^tm3Z%`$J_%_W0%?=b9?n48n1cq={%`0T4Wv!}+IxYtPn~Mi zb|pvBUS^J@ZK<=9P}-I%cl-4Y%wc4#KAb>W7 zUg`oN2iERcDDC?|59HOYI)L1vwC~Nz&OCR|h0?YNA|Ffp;ntjVj<^0U5bnXOhw;(0 z1$U}{z-shp+BFC}#iOwITyqGjcMwebfS zK^sq$MEAmOzs1=xi(uXmD41KEmD>eF>sJNi47>eFcS8x{p(G@VCo=5z_ng#QWbmy( z8T`yyxm^ad{s9hBzC~ZQxtmLn4J9N|Ha&?+{|sjzE%MqCD6bbfE4Ryw*00J- zia^iIkWz|}*(=>mCdiBulPELpNr(V{B!Nah|2c@Iil03C`H_}gx)lDL zZ=b=o`$H&+<_b6kxOcX2l4f4n!ooNP?Pc?~*kwHmeUc-#a2qv$B)8nr$O>DjBzt@Rqz?c+(z&TTX-97M@2HX+Q;P zh+0OfTt=#Fmf_kmxWcw3DpPQIxsDIZ?`YyV6^XA!+}FTecBpS15DL|e)C&Ve_}5^e zJvdljT6lB;ToEX){hxFmn$i(-%mZ%pl)@gVX|zeHk?qYKH#1}w~y88Q|;bzTyH#g zWuD+C658xpLE@Ffi;_K;O|p z3%-#N9FgFoDMWk-3iV2mABVb=Mu|<3Ur*^F6(l$tD1p;3RYrf4$Gss>*Fx9pb=!A+ z+_B^l9!cS>!rV+BPO>WAJaj)JwlgyikQ+j9^81@i@oFg4D*$>e)SU!CHbK5W zrH53I`izdLGWwflbVHuh(Diy%{t5igWY%&|a1j&uMZ^ch6gc@p@PDf}Ch;~X%>#Bn zb{CYq$jE)b)mx4y8gDsz{7!xlB|kQOe~)NrZu-V#S%BW@+Ytx+_gYbI^Y*7yXCx>-6#GXC z!G2nlo-&*|mFQ^>r!YAVr`#dfFV^Y{8bcQn+U!|7!Kq82ZtobP%u#U4df<6^N)K5B zKA3WvN1u_>@Xj8x_F3I#?F}hC3}mfmetknq)356xbKjK8T$@$x!zn#v%nb{{{+SM1 z@QsXM^XRuzi1-E+>eVFvU8p+=fNX+%Af<;~X&+Q?PuM6j~4mP^(nZU-7=bUbiJYmJwTk-?VX&$yl0?n7{B`eb_59g7P z2*g#sRBo4>;Fr!LC9%LX(#u)HOKOu4Uv07(N`O;0)Y8KqQd^H%yKLH~TXX zU)JifBbGGFf058-&)NyNeHH5Vf*WN_Ah_L^(nZ!nSHSI0DFpnXhdlmEIFEI3({;}T zZn-?!!v{0NaYLS8XN)Z-#@&&>R>z86X+gh9AhN&Xor0s!IUcST@Q#E8B0Ck{ZlC~# zj}yc}6zyilrRoq8oqwcYfz$-&%mR3rfHbQThCq0G&PDwn->V_Z5(j|Ff@j=hIj7ZV_)Bjg|NzUnnZ zjUiIsu+;k($M9UnG7JhXNV0c}Lf}!=_j~4^$Q9uKN3VUoD@H`zYx?a(F>$081|)G~ zvNBSAixJ0bU!T*#*qHYL) zkdqyXYhTC5beb>ej)g+WuYF-*8Gw8fN4At31~&JTmYtH}OSwmo ztm;w@IWHdMvOZO&KbS={D$~R2TI_+D^P+OT(7|`sjIVv2t?|L#DYpDtPdWwTCgrs+ zES$u73`BkgY1vIATjx;D+vVz7=b(_qShCl_7Zq>uAYE=z;jEGeB0ns^cbi4^#p~FC zF~Pw^-`b@Y7RoCeszaLx9_K=+i5_z$NHn&#=bO|POM)EVx0q2Lgg3}D_A{B6#8{q z3Y`uV`mg>d6!O@?!B5A!Cg8Dyl~@Y`P4Ou0&KX)(r)NO#mO&ZmMOZ2E@`ybvfOr_(0APi#KX!0M zVx0Q0fEXS-Fvfwo%r9UdldDUY_{;If4v>679Cykaf9!zAV&cQdUFmUHvI5pT$eZA% z;jse}1IGE-0hXYT9lQnlMjtyMe?51P9h}grO`jC)8XZF?n@pvaZRO3K~4$Jc0PXra}BW{UAP{4^JIy?T1wzks8N zAlhzqSJWUi(1EXA&QW(gSmh4|wirWibqlH*AryC!&(U%P*zsnDDzIa?QB&U+LKD8Z zdpA~E!&f+<-3Jmib-lcL;m^!w#>X?8mG|Y*&P##YS~0`XTto#!5( zP{|My^-c|zVIQlWl6!7iJ)*&Lnml+&)Q1Uf_M-A;I5Z^c*8#Td4nXva9ugI)K!~Fp zRqM1d9aS639BO5}V4+^kK1*=B%N-sXNrzmYCPftkb5AV5F=^c@3oT|t(D3PI)Iy1^ z^2cCHR~;lGrK_u0ZibN{O4IE8pE(y_s`lc3E3=`JL0BG)6&a%A+kzy6sn|vls10YIg!`uhhoGQKVL4nM>~m&(O^7mcObfEKhK@TYSb!D!7U&z)ad8Qa@9L6lOdhv9=2Ji zl-k1yY&q7^SqK2RrZ>l!FbqSk3BF`9+pvgI111x&vI4D zze%HmyHm`=_6?*{FmBR#*ka{WlwS#yzmBx*MpB`?ov%ix4~fZQEZJeeghE^Zp76{j zfs2Z9<%mJv+MP#VTN4I|=yIdIOgnI3lZuurmQinREyyxEuTJ({9KhHJ1Y@YCXsWYlEEy7*@KkGBQ$t! z+?YhJCb-#)_9KxQfbEsYm^g|=>a;OQq@m2ARvrtf)T{ZWa+ZfiJyPie$uBB=f|z^l zlt-w{BM(nN68dMoixeHmMTMy#d14n8uEt89!y0i>p|ffeIiG7q`3#+0aBN1G^Oc$H zXTi-@2$Ez{d{qK&GP+}D226Lw>ygcWN}lN2+e5m>56f=EO3CRj9Sa#IL>zU~C&PbB1J|jCj=}nM0)6Q&Ixchg0M+)K!5XgGm;i<5iZr;2}8# zC&#CO8S?zEO0nC?@jv6bo!0(#azqk!nXjR6bQ}>xDXU|bz^TWv>j$6|2ISaPGkTqQp@;YK;W{?KC}P4fxKaoRQ$4Ow;fa0i-Q`6AA}-CH)YJ z50tbA{8AN0yF{Svf*F_+l2+P?ns%Mb(losoD!G(SmPeB#s2XB@Ggrpwh4yc|O1%C?j8)riYY~Xl)*ooG>w0*8V0dsG-cE*6B=4 zQhGJ}vY0MlR+m2DQB^qR*%{aSNKxf^&a{J3hdwylm0%4>r5iQPI}cNk(fP5iTt4k&n{-tT>tL`H+#{3B=Sc9 z+bfYVaTJNvX=9Q|LzyIpNqRNERDR7vqaLYrg5-xu?@pkc*`WsRwi4R6_fb85igbs7 z>haOinNnV7-lb8i-KaLX;V=Fc^Ub>dQsvVwBuD^un6wrvc{Ya9VbXH_Fe$$3W%xy) z_TmuK$Z5hxsNq_VU>6v*u?qvHwsKs=W)vk)bZtjS*ErQ*ft8X|U0S&tra>HQ`Vmqi zF;;yj4Bo6)XH*G?obpJRzSCchGaV@y#B}!##Eo%+p@t(Qvaxg?Az=x6 zg!JdoH+qCb{(A0?kVrg@YBSmKkt3c4s;#+OTiqOt+QQjjEW4?$s;a^bJmdjWeucO2 zjLzX`3okS0sF^nUlyMg%fEU!wf`^f07xbFVGXo?gz#>Egb28oLSpF(v#9HSc^ z7ejQl^c4i79}}%Kv8(5ZNL(-?N>&_TXg`=kEj;eT-*Qm&C{%JyEb>9oKa;Z3K~a34 zL_=52H-=jHRT^Y}(GRlx5J*s!=V-@5E1q?UyoHWSp;8zf?HaiESjZ?|!#@`K8qnK% zEF^I1ITrdX)Em&T5TZbjgErN2c!`JygP7Ei>?5LyEc$yr+V+lGocH++9n#HETZIC)(Y3;+kLq^LK!dEM|6IV=tJ< zK1_N6R9B6=m@UKdimc<}?DsWTZoJr$+2aH+dr?_jOP_$k0f&N5LUFIS#)MJCRi}$d zTn%N8IhVU&JRh&7$!@T*7;mwtol$TT-kZG$!7_N?CK1L zDq;F({N=a_7%3RUboc0ICSbm?3o-%o&9`8v!30c}5l#~@mY^o!A3@)!37GuVw+UEu zeYEsRFurzazqF86uij8vGs_$w986^@6(V>^gx zVx+LTu!zo}g|)DoTnLlwLT=FI7T#q%qXSQvmvehv(AoI&7Zm#DS3p5|5_gNu68u;cjtQO4}9I+MpF3cKdm`btm+7p>g zwS2^$lh(KxpADu5fc(7qfCC_KIsAjfUtK!%ze5-ce!->R!x~_qmUx_+x7T&n5oz6& zD;FmlISfrSI#td!o760jpWtJp)|en9he+ecnCJ)3Tm!iT80~~a@SPePohKw3s8KM| zO&4c2Zmm@#eyQeW^+Wx}lx1v3*4VmK!;>Vx8HuFL-Tuo)cc9m_`b5qfVOk5;$ z{Ml!NyrXLnPBNs1bcAr0#*D(d;&u*P`DM?hRwKCJvZ9F z4a%M#H_+L=pGHhCFX?fJ2-kjyQ3Uv5zU5azv@7F2nNMo&E!=0k&~v*&kJ1$gMn5K6 zs!0z=swZEdGwnggb-zfkM@Hw{vDhq>gqNZs!lC#4HYx=(o=Yoo^!ca2`ZZ3hEyo;t zpb{vHXJY&g+{jyizXb5NIDwZA1P#_B**^pBQ23>}@O#|EY#g|}75X6>`V)6U2kQ-W zRy5o7dacpQHY;FiepS2Hf@x|WZjI(Z*%$?}LeM8SKDhAeREv;98?%yKzV{@@$nVrA zIcu_X>TIrq0kux(+I2+Nb~|$#(R4B2EfoMy>p_k{splZ)B&e6*AZMj%ICo3mMS{*P zJqrIL7|?T^2LLAdWal{KZ(Q%<2@W5UK-*KG9IjZrCpd?ln`=hR4Veuvn-hh+;p*CC z2|_YoO@sy&^*mNYlF)}3c)qYzwh^6!Ex<~@fX;BqEPV@Mz+3<=%%x3A4g7=FfGQ=U zrGvnqiJE@r*Y}RonMBcAD3d>@GWiXFj=7Aiv_SPei2-=Xzez!Z< zsCM_2Rsvon!lXm+FBF~9D#Vp{5%Kyl;lWe3tc?OS&qE`uYNIjyRM#Z!;RXB!}mT5JEfl50tY6WtRS$ z%0eQ_a7)D^tQ2c15I@67n&9YE*ORw!(mM#wxv=6=GKR<1Drx26_q+yfD057r zAtnZn4#K_+q*Dt#GVP%m&X&w9i<-kTTa``*$pa0zAOTcnq2tPuE3uSTn(I2}z>Vmr zn$MC6FpKZfqNk&2X{T@S@Vx?BQ{hls4{2?FHrr%!RqxtEznOuG< zJ5?*UD^+3#SWBmQHH)vGK^L<^SgVn%&O}NjIR{Sz*7yFJtyFj>I=U3g976rX?9ON} z`>lSG^wC-`eZUJMli*&oaa*Gu+bl%ni{%Ca(q*XO7a`ntfKbVrTve!}1=l|HQ*qtS zzURn{(92owJ^n%YX}a|lZi{gi%+&C!;O|2*k4$C}%Z~m_9!(=} zcmIZzl^j5qYQu`5FK`_Z1!y-`b>u98`{QYFf0W|mwMP8J3EXatpzs5%5x;del)@T8 zQLs-#PWCLPs$9~0Jq%hT7vU^YGX;|l{f$e3SOjb(R7zqpI?f5)&Lj#yfJvvg8%n_> zib6^zEz_r+9v&@}N^lk_d4fY1Is0be&;MbwO2HwDLP`#eh$V6lZ|0ESI9J%0;Kz@g zJ+biP$%OoP)(PCs4+=kkAM=0fnl(!)_(4%f$&VG%c;MTV9>y$D3vmwV*@9I^IXh`# z)f%XjWNEO@3Ea*q3O|5V8{G}1U=>9nC94*bTM~Tp*u$jx{AbP{ks%m!xwA_a#$1|^ zF?lC&J7XyP0LC=j4W(cVMIj|)7E0Ur9=6P-KXRtN;HEFnJ%me5bZl6#$Qhrc>UL+2lj?VvD<>6kMSwgmA@O zR(NV>bxV%{mYwH&`zPHk=5&X{nU6CopVu=5{TZj=0q|Bt{DZ00 zp4>Ag%j*oDv5?!vg(ws40-xC?T#jY;V%KIS!3UVWRRG?pBlMZa%ygqx0buZNu3VcL z&%e!!Ftm1@gO2G|Ar4kC4+whX3I+fuYZFl z;O!SQc$ff7jZaIglw{pU2jWDWQn92Uva z#;0&KQz)1JNQ20eP|4{}w*VaG^0i8?SnZbn0SX5=Iy?o%(~{dBN_7^v%*s+~7Zsd@ z*`>*Z^gh%!o;mI91q2^fra^EyR2mi^Rsrm^d??vs=B`cCOUee_qXlzij+#7L3}sGB zsa^%AbfETyDED#spl7(C$gz9+A0S2D_w-*S4u!$Lq}9;8;x4PT8&eUieb8IOa+PL8 z_LHOTZ`+TKC!M2rY(HAGar6%3p8mvSr0XI>@8gVs%ooK{S;wTf1UGv?Lrkkt<-%OLpmF}Hs5O~KB>HH^Qbk-G* zE`uh;V<@vd?YMmGy4&KB`Pg;u-mx7r#OTDF3CW2?Z`rS%UgjZnpmw^39(^$NW6)2V zqh_mEr7qxoDk-@si<(k>F_@xKGli;pI7n2Ps`^_(zaCYE*@IG5k7=+Hsj5c_UiPB$ znmBZk_C0`|NL5kdBve(;rs*bYVIZn%;Xx|T?8K8+iSwb-u%?8?06T!rx~kG;(4?vi zWhVO?q9%PM4^&-a=?M5W)&m~N4%ApX{j;R+2}qQSC_U}i7ck5c*rfSqWt zQ1T>HO0_iIWGxItDP5Nafoq3I=j+4htScp53QbDMP-Y_-gUKEFbfZv=C>^$6-<;(k zW}v?L!`R=An+LbG>*Z)|24B2Vp1RU@cDQvVo>~}d0pdaCN5EK3U&wB%SD)f79iBk& z?Hs9UStdyycT68iIf8a~2FW7RMz<64^=Ko^4$?**!{Jvncy=WtP2PV?aI+WfM<0C^ zU?IkVX&x)qik)h1R!D|EDrs3*9HYt%6 zg1$e~Tl24%KIPH*f$OCY)7>Lo`LM@96Rwyp#mk2zGSyVB3X!zg{){;TKXBr-yFEyj+3M<(M3#G2SC}o!k=Ii0SzSG-!AmqN-cN9|7wux`B7vXogTVF)WBzPaF73i0t*#PM*txnoEKS3!pwh4=iq!x+ ztpMBUdt#byCZuoT)z!Iaka*D$X}!4*T3c6FuSnBNgEq1=bEc0LeCjCC>S|9K1lmw( zScB#ofE_Ss^wkwoU!E0Bt1Cm9+WuZgh)uVSjeqs^G0&V3xcYi6xnss2u+R)rQrM>& z_)nH|b-EJ56&J3gm^HjsYvl37FM<$I(psz7%D^J48RZ&N1@_1ZtjI_`@Z!v1)Ccy8 ziMFKjTzmUukkGPa)JKWX_AH|?TNW7qGRpmK>=!k7iKf5%2yXVG{Vby%0N9BJ6eW!~yd{BVeL{(oU~))kj7hbF~kC^NM`MyOC$ItG4a^%owJ2P&(Z zq>UAB&jzwvY_@W+i3HVDsi>R9)Cx?$2gc8ay{{%(e0~f}6c)KPv4kfSpLCQ35F{&1!dlS(;w527DUL zvop-4Y5J8zB=A%p1h&r^d((6?A%&eg!?&bq_)SBkZ)YgmYK9r`H25n>?EZ^><1)n-fv@`rc8U(%%m4>x5{11Q~p!M|y7E)iH6-^5) zLz$Obc7}bf8N}?Wx9ML}t?>{!a7i^uoKImdX7V-P%%bz*>S%YNI0dg$;+Xox?m-4b(aX8U)0oa|-$CQ!@|*R9tNl$8n%`8!c*snlRsS;SNz0 z{?Y6)lG0VuMa~WnIl?p#{}kl8IY{oN(*KWO7DC`gJoAH$PT7=K1A@c z7wt#yd<i!3G zK%(=3bRw=d>eoXzdZ-+zho)(a;ZQvUaiEiFAreT(riDB~cSh!^n!`SXrPa?|sAO3E zVD_N2(2*J}H(pE&9ZvAF7wtz29R;uxX(39Sgj(qIG~Hw^3`7f^p9X>RhDhg^gwa{o zLb?o^w2-09HkTH155yiFL`IyZgY+i-I%t-M#(_F$JB{t+)j`}3DKlEBjCqzn6r@G* z_(DtlVUXal<=VNKQ z$yykQ;`!?|2;4P9I^PpUXI=5=GH6mfhB6l@ipM|tbZtY2nWk;@cKq6AkB6{<+U5^f z5VOqaWUW@#4*V}B&+lN&r8>O%*~-+~Ew~Yvo2k~|PVW?0fxy61Ay<1<{e$ttj5p!p z5NT|$6@QD(*3W{ZjcJ=76QcBJ8_W*UHnWik{OF5*2+S7DSE1RJh@@}kLZxBZKoFngsy~d|8!^wl~W{(4i7VSrj*y2dugr+Pt5Vb%|8X1b_a>w z8MIF=tTgaYVw*0{mD|yIjRrgrJU*TwnCCOaX|uV#T5ExEtPOim=1+yLR9yWUMx%Ors8ek>>{}b80$b z3p(jAokN4XTK`rLk)#>@&7`P1UeLK)Ypn|^aKp3$Arhm!L5ixiOtU>bU7RXH33(Q$ z&oJhb%FYTyOI(PIzX>Wmq*2~ImojO3&_k$zwR?{=Jq)lDNz)ez5+-TFUo>fYfsiIY z(FJvMNPZc*&qJCX8FGT;8vBL>P?^R?ML1xMJ@3+})oxT{l^uTzLM>XLlH4suOlL2^ zN*!U zwe_&h;27ED6f+VpfYYNdE~ zbbYdCM@18TJUDvCW;}xD!Cb%}NX8tWpJcsYZ+t=|6FAhbw%F%%xmcH8Sd9x|tji|* z+8q^V3a#eG6DQWM1v^#Lj2gS5Y$eK7H*U$5n-FNF5#`(D&1hbQx{cE*oIzn`Fv}C7 z3ni@i3RlS!THzt5R&YNX`lYyT=k?Fov!OEEN#y*3crf&q-%*ayd0BdDGmeEV9@mVs z^oKwni>V&)5a@TIl4}tqzcl$zq^yM9B3bAe?gG(y>{l*m@wX7NXVakkbBc!d{m=O$ z>Uuy``u2AvD17Z*3H12m9hpr&L@!pk8%pu61VzChxA^?Y;*#*Gls$sV9bT?hEgzwqL7j?D^1ft4}X?wr8t{<@&&i@&VE|B zb#+2+HJrfh+@kOUxOJVop%mPrD5T`pB08_qxweN(^VqMPJMp*R%B{}+Sh#X?Lauzs z3Ea*V3O|4=pLI8sf-4k-lw4UTEt7hg!hVdI!oLMmzUu6bg(+W7$dvCmf!mov;j2uU z1?xcG5AwI@!w=ofq+kg}ASFvy7#6ENtXZrS;vLg+MHgo+bj{rsHvKjso0dC)+u20n zt8AJ>*5`V0HNOw~ySVfUY$*QH=7NUnuBccHBlbj_wc80TK76zRHm69wFwm5;? z8ARc$45EuQW}wqoZrj`qrC<+5AtieT{c?N7**y!BiV2zYYA0|zlPLTEChc=Kl!8eV zg_KO{`!T)uJNskd%6k%WD}#aC^8TA$Gqxb{4w_XWUxV9)410X(G7=sg908J^KoY(xA3y)}+LNl)i-Duc(w z7uh!7`*hv~=aA>Z;H5iiJK)dc5knV$8)h;GcE1b+HP7KodBn_?0SAK`gkWi~GAsZK zoDd8UqL}=iamv2-*cX_c*Zl67!GIf2Gwg@{sNKjS=OXS{xW#ll{5Q6vi&l4bsyPoU zt>I%7mJ0)U)b97wJ!(g8sNtPZ6hsJJ%{>Yf*AuHj?%1IIGv|P#ppxOH17>>;w^YA4 zPhi9i8a&lFrin1Wb9Fkw&0bVK8S5NW-`fp%K<$M9TRsUwjbwbUjuJ@etTp__WodfJ z8ZdYqHDyOE^(c=mFx5<a3551*~n$F59Py+eel5=$l=e@^pdgx57oz{V`j{i^$t1+WFEWj9r97Mq0I7L z%_*3mm$xtD@WAmBn6i%WZ~*6zOQ|R0YEsnWTE%46uIh*=Og zDA(AF@!;sngRMqHd;sG_5Fc(rhuiinyY?(C%e+NZN zc4lMO__m&Y2+W?)pt&()*WVr^nAwZ=Gcx`iU?b((In7JM^8 zq6j2Q7OPyd6AvYT(Rm?M8kPoH2CxI@tSbmz3QY>aQ0BOV!%PUM4#clD{?;R%fm&lr zyxSNh(GoSiu?-?e#wB36*en#MTT(np^6dBIUZds^M{rDNMTQ{2c|nrHbjLYFa(Z+J zW(VnxIqm?Fuh8HnlIkl6ZuX-6XpgG^b|R^!1WKqq8fm)8S{R7-czqfKt{WnqZwRBa zu03=)G-(e*nbE|9O$;9$j9-78?V($s{&=}|uxq@kc10l~b_`G;Se)n&3}u@^^`QnK zA}0?uO)qpxO0>G+};)U}i7ck81fl zfSpLSQ1T>HE&raTo2-R_sFq)*LExDo()rmiI_s)MmqL?jF_bwmd<2S7q{H*;nA<%B z4An8rErExSCGTus7QLz+Ri~ou@U>$H+2m|Rn-&XqO{*e_ha>iq>68~hC4>D7vx9Vs$NsfhgXhMLEyK?txY>*LqgA#5 z>_l3H5=hZ1R{PggX?n>T@F^8XAh~jyW{X24ZnY2M+O1u0NYl-P)Sb@Z9rk5ra zWNYBD^bP1UIyNiM0j3$M=2j-v7M*&5bp(b!Te?4>SvfJTbBfj#S|iK`k>GktbMjs*m><&EiZoGa60IOk~DS98)(LCz>aJ z?pVhsfBr3Kw`8fxEc>h}P5vWL$uRk2w#<01rPDL{KVO6A#*Iz>8G@U=Xg`zxu>d>K zEmsijDUGN0$yHh-{D9C6*sq?3 zVzw+F-Zg^L=y=dF6`C6}wnF%=hok+h5M~2HiBaw(1b?_f!?ft zxNG zLB2`ARD+x)MB>b#(Z>vjr$Qye-T||N^n$}AuvLSVNGn`O@Uj=}M=M+cuoG#8m^g}7 z&}n1R3cY2nJP!uU{u>++e-eiW1f2X|J3vGiv_T?7UMI6(3!dbWt1vCtxtMr5WtmzT zB?kwJUsSIZ1>GH5xnh+q6_~FSeWl!}02aw@@a?0TDJXJ7&|qUq;B|y3J&Oa(9+VPz zmj=r|vXKL9X>bd{%U-k}C2$+SPNW1VaTMc$eSiCzG~Hw^_^bzs9Hssy4FdNLk;O9JT1A&alU6a58CXzW9kyS`{4`X@I6?9dkB27k^<=>S z@rIEeJxjmvax!%$pG}IEyg_;6kdACy6MqY3d~J~6vCB}`U?tCGC@I9_Il}9Hcd=C< z`$V$CgZpySk)3#vjpV@(d_(4kz+{oEaA zu?bK4Z}2QQyf6#;a0UKJE>^2GM@w6O4dFiLOqFxZrYSTb{!F`Y09+iWT_As@>cTI7 z1!(jen(&-x53!ZAuzloZ)U3DwG&+_U#kbXK`8F8WOo0f;x}B3v`4euyT8u){7eZYY zYVihj2{c-G3(x4h&<%MMJT0++*`O$iBZWzn%xc?mqX&Zoj2~U_81T)Dm{oNV=84Mru0)_T1|s# zsV_|B7qlcyR^ac|^~<1USI ze3L=u%1k3yor#(mbRf@=C#Qr~S=C8eTnO3c7$$sTSLYL%b=VDzx$(O+bpR>XOnD`3?B z5s25DOE*GVB3j^W@Yhz{GXEI#07zm?7{xxV)5T;-GL)GgGgU~SUd*n!=~!J|ddx!; z#Qsv~24MdvDeAu9e}?o9H#y5E3aFk#n+QEV2OR}ZZnGOO%_%s$C;G}Hncg+UX+U&Y zqU@~2ZZPRQ2`U++6SHMl{YdA98Z0+n?4;^^f|tFhES;qlP&gpy$VE`xE1fZ66zSCI zVv+XR*R#sJ9#EI%&CYm9c3(^S3oKAw zurOPO)sO7nqQP?G#bmcj@Uj=}M|N)o*k0L<38ToaP8XBx8p<5kBfDm{3(3`i_$Bw% z9*PA@?ik%0h#9}93;exNqoVa~G`<=n6im^6nRKy7STTE0!uq%d%PxUPPbRGYO7OB5 z?MGOj0N7q(jR~U&t47bi3p zKS&oQ-i3U8IAlL88eORhr(H^r0PL{nSghn(!b^umM~uQEi8$*JTOj)jh9LQi+5>_4 zzG8yAXNDk6jP|EN4VMK7JIDBdof|M80*-ku59u1`$7NV4IX~vK+TaUH^rB(n#9>Ga z2!iiSj8z}Hgg5I|Co_aYPDv$9&-=@9rXvM|nC>3^?4*Wo#JMHGU5TA?a6^b-sNtlB zEQjZFr(M%Q2bQ1*9q)m@(Sr{1*K>E!@q$Vv+p1;jvrn<>u`e8ruP_PzW9kAIEW0PC?1GW z4nJBD-7VdZVDzJfgL~OU*LISzem*Zleklmkvi8HOj>r($f5(Zv<#6HKP{}p5$cGEx zBxPlMx#0EStNsA^#u)DGH;#92}fg^RkIWn5Bwejvq9Zt!|r~@@j`@?HM zi0tt|9lJg>8P}g1)d!3@hM@|K8Lk=qg&{QIYrZqF(i*NQK?4oMjJ}2IPaX$=#UG3# z0g!JN3t%%5Et3>dy{wwug~DaK5s@Lp)!>*Y`rd=+5Ji)EsDbQ3%!j?z)<73dq%^pG|1lb#b#rOl2ftmDmT zn!YK3xTV)Y;Q$NrEl@lSaqagUKAxtF38^ct?eoFKN30Yt;qEjD{1sGkEpKE24yEzE zDQRpK;J;7P!-ORE2=MpQH2wGxiTh+);@Ym*|0YcjP3p(iz`|9k!nSKo$+$@yfYpm) zTf|&h_oGom4<>FX^E}6tCMGGpqJ4b~coIv*B_2Lwf7qepMWm?v&~Y>03uI_~U~+V0 zL>-Q9>g`H>yxyq6z2O=xAIrHqT`3ypXbzZeN6fp9(}UQ==IE25l3|X$EY+u%XQQU_lU)t$@4vzYjTp{Ik_#86zUT z-b2J55qFLnZa;rXf`P;AwzwenAX;LVEl#6jY!LSIw+9Ivv!CCHl{{;A$$q}(QrBjV z4^>Yo!Q}UcpiFrC-UPg5T)?gkm5oV|rA5cAnu}#q=2}hai3CY`w$|hPY`d=wOH&3WcsR91M|NuJd3BOVER%mjTD=!4UbY z?}H)H_0iHHa6zX-jgRBpjTzMDc&?fspQ=Gn7ZPm-4z8FtG%K5t%0if%JOqA-%jTpv z+zKOw)rCb=FBR6pQNePVNu3c6rq<{Z`z~5%wA|z42jK{?SrV{=oEzS`&04!L1?Q)0 zJ1fD@x!OcaYpt4vHTFy+f@??M=nZF?wN|d&z3_m}2rm=m;j@iff&)8Crf6WBEQ7VR zvxw)Ei`A&RwKE?==(Hf-MYG#kp07={Tg7s70$iM{E%42O2OTfZmD^FX`;IQXOwpNJ zYq#p{R(ES*>DJBy7O4li4Wma}<@j?>XL+=z*vdk0 zTJ0t;G^aBsA5FGr0N#?_xduiFff9`P1?}MUhx3dDqR;`hT+hlc+ z6ley5Kmi@*g5`f2x(O61=0R5B9>E?sMC~lewc$)wWOWXL`vslFdDt~(V-WI@5%~K*kvWUCfGQ(IdFog`rK{zoC&PoR8pG1m|ynmIszEY~*&w zpCF>kaeRT~RA)dC%f(8u)qTkU|MtwB&XRgm&jMK@2skxGWf61m4bUtOkItcmR;%9J zux=e>Hz(?QTZLM6qSlyM*XWa)hyB09?fDG;s}Xjp)ekET(9cMeu^@hSny258gq z$6Opld6GX5GwI)>rAeGuvzWZC4xaHHOrC+8qNS%Xc?JG(1tjgx0<6{ATPLt-y?vz4 zK2m-kDZ8&-I0|MI0YvD4zWI+}W8^Y{C_z z?wfIq^9{fPuCG-3axSRUP_wryFd{Yp*HKGCKu0h`+J!!Q{h- zL-GksDr+EVU^4$mNETyq-?5N9fXQj2ker1{X$+DYCJ&te$s?G&cpW6?VY2&VNUp`? zyO=zV$<=2=5@GV^TOj!eCO2IS$t{>X`Ep2}!sH8=L-Hj|-h34#e}u{US3+_sCV!lT z-;32?Z{hNkFkL z3Bag;Gkbmfr==M8OV|M_0HsH<8{fm^pIVSSipkS$NPdCI$ZklMVsi8zNRG$kbJsv} zHzxb8gXBg`HoqQ{3ov=fn;^LulgHl*$&;9T@#!YXa5V5yD&kmQo?)OWclqB4P2im5{;R@L?e$!#6HO&g}7kwYv^#G zeG=eUIvtab;;sEpVS=xcm+;l{5?*B__qR*v#Zf{pk9KFVJP{Jjym+bz(S`O9}FmYBUYvp)uB}G?inQ`d_3d9AxRZ{6-1wJfZ8!cQdAELuzzrdaW z)?-t(HmsBw?gc^0*X*PVT-MhIL?V{?T(+sMj{kFiWhmO~d zo7>Lp%#*;(mP4OE!8##*JG{w5{H;?vfeJnqlZWOWhD7q7iI$8Ub;;t==?)0EPHH**07J*L0)X zQ5Q>Q{e*8VQ=M+KEi_l?R?nWZ_u4z`v+b?+zUc6wYXi#<4!zEF+J}w^c?E}F?fEAT z1y-ZB>|23dt9zX_x;zAS1NNiN##;3QjN=(sZ0Ro9o1#gl-LO_Qk#K3*zW~1Nb0Cyw z;{S8;{{j5JKx2Rye1~yfi6%OxvFx9QB4j)LXT)b|H-w?6p@6Z@G^f`x(#9gM09dT5zW9(oU$I6H49@iOking z?a(bjN-9~Xq;yA-l%`2aTtw5Eqe1jVG?pY>QmBme$i0uP!wtFO_Z{$k$D@x!p5$GbJUw3rct= z6Z~!_cgm%3 zJwaYP=A1N}T`SpZbb8S3bUZ(-1ufGLZ|!=NYurO){}gA&$_?t$Qs04!Z-bD2OHKyS zp8ohKwD<0~&dx*~Ij&Tx8sKC31GFE^)Z3T9(nE1~IU4$A0ogz8BTM=rvVRtnEmX=6 z3W$F;LA*o_=yMb`oR*%F`joI;t07g8D2o-~&TZbbsbD;rI&in6(Ew_2_Z1V*)Py8H zm@?e+i@O*`AEM_`RI;Z(C+Jhk&O{xlmQ<-y%#q@OWh>^g0Tpw+n0U5g1n~hC^V;Gr zhEfdgc@)K5CxfJzamJLG^(hyVot^+n?WT*Bde@4@ldazFfa?AAV&d8A6~vW#Up7u* z+4IrZ=qV|_y?CHQ85tk{C`PtJ&(ix$W1F}uZ6dx_!+5B87}>_~2Ll?zCyR+^8-pOO zjA4RSAaV%&Lh=8X#a#@g2Hx|)YACK4{d^0nGN(pKS1nFOaf$qzWkdI2>K7{$nT})9 z=BN{}p6W@*I#mbs)Qjfi&zjk;+lf4}3=^3FU=y1DiWT;vvuYedkdRBfvH|3SYEGkP z-x*Ee7odt>G|MpzS{c$p%6*aq9dpdr!I}haG6|0XpoD~$8e>u7ExACvddZdA6z2hh zO05^c1Y6x<-5pIYcbiR?ii4xsTIkhDg1|1^O!MP=?%9Q#+M=JW`|7|J z*dhl!zm~ELBn@))ihvyIIGzL>D)wbE4ZHrM819t-Q;g8IB+x?m2>?8XwfJ5O2n>NM z2MypZ9iV5dYRC6ZIt{DQ-=;cy4JSo?69`0<39rejYyj}V{Wi$7I!!Fh8pbm3GO$=< zEOHn5!~%?=G0T6(V2@!tSW@`FBkN`p`~g}xXe_N6Sho{8)N%p>ObiELLQplpS75Pw zY1#s4Yhm* zXEAjE^INEj0P!=$0TKM^Qk)9rJIK2kk~|=M7(LyPj=k5N5lkYW%tW)xj@4}NsIFGl z5)1^c&+cmrdv!}RO(PDoS4$`+hHCX9C9DI(2+KW}YVURT(?2{i(lRO@z>?Qk>*Er) zw=W?QTVehHXJ|sJQ6TAW9!JwC5b>#UZ5tkYBL&ifg-VlW{bGN;BDL|ys~N>;aM=kre_eY!2<$8mb;o@&o`Sjbm+BLG(IDV=dgz?^YNt; z@+*cC^2@o9kKi8&cRt!;R1|jOQn7B`G#_=WHbvyxDyChHF)^)gicXWfTdj_522P+= ziYA#fWo9I<6z}y^e}!PYYjWOiVZ7&8#WOET5L$Qy(Tlcp)_T!)6j-aBrc-y2*+koL z8LoA#p1T>OSap$rxE2*q^`K+bon@!qyBkkD)-Dt&0h`zNA6MFJy3;H)}^tld_T~3f?%3k?}>iE74e|HUc%x*y749i}WxrLokBrjo z!)UZolKli|k0ja6cveXdbmt@dQUmNM`7Tf z(P*P|_-~*+pbkl03!1w6BKdqYX*_<%{kp4U)Da20N?g|{jm?|hiu#+0rn4r5sq<(~ zJWr}&g03_&^IM1U-ZQB7-u_u@KAIr5HM;4cx@V$k9HytvqX}9uMORwm%9xlsJu3xJ z=9lJCTe_z95zv#0OEK`nCALSi)1_q8d) zux#j{kCl!NRi1#KO8l=IWr(7OGU*oPU~e6z z_f)+dtYs$v!-G$$oB>A!hi6`vsa7GSa-q#?(QS zo8~>ajvmS!Pi1vtY^p$c{triC;QMH_QEA>&pgmx4OQ(6HT0QXNeqWlGQRk`u2ebC$ zcf2b#Z$Ey=y9b!Ll_8`BQ=V`gEwO?j6Rxw6aA}(n21&Q5`UWIf8rhN*D?hoK)$uKv zTp9bT(30F_N{Mw}c13+32n^e6StS`(VwZ;S@I;x??V*XJW8|kLq%)CSosUKt*%cM* zPPX3c>PU)SF>fNfI?Q;>uezS>>L_TJ1|Tk+0kf-{Mj4{$p)AN3W>>9II(9cuw%*9H z&C9Ot8fAzB%C;c8ddDc;-oJs8edpLE`_L#u%L5S6`iph+Q090lnJUPx z9vg*$zeA&q%C5cw+5-l+baq9m)dPQ4c9l`*JKAh2o+>GnV;x9{Mt01TG;*o*G@X%5 zQU8zM@!S1VwVHO*(kM@fN*dM4v7zv_B&tqN$D zh9fSV0duVvk1|BjLs`f#%(bo>rQ<6%P`0leS+;q(*2*YD98k6exz_3^-F7!nvacJv zWbYegh#7v7n`=EVrVjFRt&gmuhcd?-DA)SrC=5J;MjMrDeG0S(3~uRMi&U!z{;XW9 zzs~g&@qGW2KYb(1%9_BDX{DxcR4kpuDL>Pvag~FmrBt4S&6b$Na5-4?=OURA&(sFV zz-0O}&U9JQ6wm$=@D$#|JYlX_H9XN1*i_=((*2ofQTlxau?k8TD@}YaWz+c?g_an7 zhbaT*pWK>7#kzm2H!+%?O42LlO(aH>XtYtWV-~baV+R+`fQgYY$`C~lW%0Q%F?!A@ z9alF{w$B||wt0!s<)aL7K-m@~Mz0yA+gER(WN#X~Wc^WwnBf<>iP0Tn>L5Qcx_2Et zlsVo&iO~b2Fz~x*v{AwBy`Vi{a7!mfq*^`jXC+1%bvknTd%C7nZEr=Io#bw-oj3s_ zo_*s@SKGBhjnrp`(xliBmhK-SJ1c9NM-Elh`bsw|Pn^EZ=IY|9bMOsV(W}JEa7Jax z^O~uR=U1^^=(Km-x9H_{xq(XPm%UJt+~7nnrDY~E@k@3hgNd(I>hk1Jau?6fzRo;_Sat)QY7q5|{sEoaI+t52Euwpk3U z5Gy3E)ZEa~G(p!K?0LRo!#&PjW|T#eKF`7EK*D9Xhs4 z#2R_2#N-ZTY~n4U6>1c}CFH(9>ruQFaZz7UrEvRe^vl=aosgIMKDMgjJs-w(!*KXZ zknuZ{Y%4T2s| zBVDxBTE$zo+WWcgTR^>{U{Gh;-PenBs*F3zxxPM>$c1x#twcbBJD2+&kV^R06DTP4t*iz!c0(!ZhUN~pJc*u#Mpxs!=_E zm{GBy@r!6tG~sC31&w~pirUT~Dh|bbzh~r0b zuu5pl<2~KDX8)m`!u|ViD3^N_I@4##q`g<{llG~E^5t=VIHS{jByJly8+%NrCIdQb zm`=gGJs$V=#9jUhN1{xP_H!}ES%+0r?6=xc=4f#Yr#4#mvqXlo@tcYbKL0S~@Ptbp zg(yz2)b6Px5c}`VM~O1U{^N!0XP(Yp@ufc;x;79npNsPdd`LNryuB<7mgvJ93{wBlk!6lhC#M zzbNTH;)orIU{ASQ5I0%p?pFFWHzO|J+;b;U5be~gu(BY}Gm1?G!hIMVkgIi<+-bB( z%11lLDB5==LJqz9$&QMS&!OT+#KcKWNiAhHXM)vy7f&B{iUXdXZf}Nc_6Qy!o3s06 zQ;w|rO@fwrC(GABw6VlDYrYE1RHTkoFlaAWJ5pYP_(}CLj;ZTAS zzWpFmQ@%`fA95X3&OgAW54Cv+)k}ToLyUneAE7(C;!)?kBx+MAYh^)cLgg;;e#TV3 zRLIf<*!Lb*wHWOCi9^pHPl>j8q{39bS|XJ7n94UmyVO+vfiaL}Ds(4hDkFgBX(~g3 z=UZlzEEJ1WfamER+1OIxdAd%Tt3vSnj4^SQ0MFALmHX4*mzYkUKNXUcFzCAmpekTc znh(Z2amBEwn7QI>6?k4Yl=Q{ab%Yv~OkG-r$v}auV`U`LpI<>Sdi^krvZUc!v?y9i zYDohPXw0%tpqMh_)zMBhwC*rNlj(y`jRx1ju;Auf2Igsqm^uKsnVH1CnW?8RTrrLR zYI!{gZj$(h(s;4E3vg2|3?+_N+=zpl@k(21GXvsec})()={|t9I?H_A_t39LF*f(T z@vryc*FEn0+20SazaM0OKg9n29{c-Y`U{7!#|T9R=E*_7lhg-AYHde_B4411zR4xdVpj>qvchElRB0&dg%BPxs98=v>I3_Doqx(_e z=yGt(|3IUn$w$XAzsKrkFiyyM9^>ksVw{yJ#!uf~WP~}4&!N%CjL)UKNvK4LeI~BJ z$2A{mC5rR&N8$VcKbQ2| zQgPiRCZ6el8;OZO33JcI#1%JvnD}3z-MTSx>YQWZU1-Rq%NP^af}4hk%cun0_is>} zqIwx7e*GlC`J>`-B%!E8*)WY2oJ~&$?lYvEqKr7}A2m$A6;13!W8irer%VH0ZPID> z4&N_~Z!)&mX0276h)w4wG6YAQ^UrD1S>OCU@)MTTVbzVey4K?fYYm&=0Q|5|+2NFZ zeq`coyircoWvBP6X;K`gZPb0s#CNyAIDJZC&A@4);hH>nl)e?|;9Hv#{{NXkVu7d- z@%rKrp?!Fi60@h_Nrz_tEFFNwuL>SBpLCQXr}|S3u?EtMlq~KWMiz1jbT2j9C({PZ zS{V;IhDT5jY6*u?AwOUbM6R*vcq`_zux{bgh0i*uwwxalsfZf(M}``<0J%PlMj6jK zs8~-qOP_V9B_S}K^yZdNr>G?p*fgLn_OL(7ILoi9FBOM<+VL6C*5Nl6zSB=TV$md? zcBCbf1tQm3$!I|nN?9?e>U_At$Tp{^M@FLZjt$hLBkf-{qJnpP*L*z zSt{0Pm0EYflf0cflC+BX61F{yMn!qCZrkn`!EOFih%^l1&VhERZO4L1*mhbjS+<=~ z=koE{h;oN?KjrT5uT0s+@*lz-I`QhFlhSu2J zQMp&T!}3^kNr`m(rshJD@&V8T14KCS0Ep7r0U_zP3_w*t(lUb|3X+x!U6oyDK+K1W7+fexCpbhsecu*)G{z954ZTXAq)03X!D z=NL3z$Fz&~+far+T_mG+F*yCrxNUUn#_pockWD{GeR^gs4pwL0QxW1v@koXTt(6qq zr-)1%wBD=it51mn6II)7XH{jsTvTvr->vybFH(cqy|YNAIZ*FTG%8AIbzE_V)zvWS zxs+|DS|%>x(e}$9)Mdc6jlcZ#8 zTCx76QHErOw%CO#zB@WAz5t^raZr>tswNRn7GgEhJf%kp^ApOQ@|K&5y(I%a{4oV= z*u)Kj*Gw3(GDaNn)?tJqal|$?+9xA9LgH9(#OEpF(_loxVYC}SW3cs78h`fQX+7dg z5LJ=Tc1}k_4PGoM??$5xG?9w+9HA6%DMSij~P=9OosTjx($5>~vcL{!?^t3(M^*SHu1?IMYooU-KGV_(e7x=pYFfQn5~JedhZwDQd->2}I;ujI;czy7{^f zqw)}d;dfEJ)O=&nB+NH0nJn|osB;FHZ=d3o^3qMpZT9me^69hLLXvX5eft1Z#d@2< z{($T46Rc|aJQZ)S6xJSJD?vSXSJE=`4TJ8K>M1lskCas&q8{Zdlx0WxjM!Upq@mbg& zTOd-l72gpJapwTO8N6^ay$R}m6wCwCn6~MSboQNV`=G9wpEW`2ShPcy;42GO?^rY~-n|cc(e8#PuEPE)~g%>lO4%F3Z z(Gde6xtEt%O^cP(=!>g0_FZ!@j~+#XrWw%jT@V95cd*v9PFfJ(mT1;Co1wg%jCSKW zScos!n_)LlrIQV7sk?&ayH1%tJxQi-+*@V~B{L9z-J(I^E9<+QHe^(@+I5dUH;;3t zy5aKTixvY1zt2wItXXtQSIx%BC{4?U#EDhxm5AoJq%|s&j7l%sm%5W8;eHDy3!`Rq z6%VrY*~uHJ#?fgs2H09)LqtuCsfYKY&Gt%{j+n-HaJ|LC$LLST=VLv;QEONoSPHsv zm|&;)LwJ&i(}1m7%g!ng;b@oH4ZWHwincf~ubqug_0@Tp_bY1S%^m9c7iOJ*hYuy)c39B!g>fR6)nDGm{6xJ|kS+-wI1 zLwm`XpW)t45fEzhEHvmLQq0pYbb^n^FkiIVM6CgpZ}-hpP!+#~iS8!X+Ffm9Rwyxkq%C9fqCY!b68p98^1Nq3yM+p1*Ra7oABp z84IXc3$e=#F#!shM)~5o7d#IV-Q_RWQ{<^ck$<)%4|g@mXir#v)v>~5)(1ksAv?Zz)1y3|RGX5Pw z%k;zAtzCF_08yRJuK8uH>D5gk+>cYaMbkW>z=L6oI4OmFUAe|5DrP#n!4!-u zM1%zm9B4}cJlc~er45U$7}S>Iiz#xV1}oo2h5UEL{WMLhkJ6t%p+A3&Kiz1CYOpg^ zXntUI?qT=u?%L;22{ph>cCq^qek2bvu;pB7UmQ=4aw?1_ouK8x(&IUCUv%?^KJyT} z?)a<=Q06AvVkbeclOkN&|LW5ISeL+Fm%v~q0rz7}4ER#Dm`Wf#Cc2$<2lh^~k4q>d z$$DHzdI_%wr-x;?mb_+c{H*F3slvGSOoHN!?3Fdzlc0~;#SdvZJ2Op7+`*)dfLX@@ za`1^Boh;I9avQ{?x$PyQ{C+6No`>wbwjpuiJ zGW{iWaXlYB@8vkD$0x@zxLF(flL;3-hRL_lLcrKc)vnX=2YkT<)bo}(e9UU8JZHWU z^$PQ%Nik<{jwaYyMbX6N$Bte_6K9++k$YQ+T4bv?aC*`9SQN}hw>#~6v)iDUutJf2 Qwn5XGi2RhJb(gCD2S!1)-2eap literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/core.doctree b/sed/v0.1.9/.doctrees/sed/core.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3bce8dcc7b669d682292d0e3556812d9bc96044c GIT binary patch literal 439956 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 ?KXZ*+4z_nGd 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/dataset.doctree b/sed/v0.1.9/.doctrees/sed/dataset.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c81de9bbec8f17be521d6b6622c217aeff045275 GIT binary patch literal 29502 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

    V%2@liNhqOF{@J=`jdOLE=ATbiz=05f4dTP+Y!j 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/diagnostic.doctree b/sed/v0.1.9/.doctrees/sed/diagnostic.doctree new file mode 100644 index 0000000000000000000000000000000000000000..67bc6d8ecbc190e0194906c8c99af3226a5848e1 GIT binary patch literal 25150 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≀O~mN50*iu+f>ym{1$0Ig4Ut^V zMqLBl>;M{r$mNKBjDCjf2W7T;+rqI{3N5}&PpAZef_Yy=kYP}3LFJ1Gst#3&S3vX# z4@v15?k0ffSRDi^d*8&%uTHb2uFITBiIdufACQ}RkF0msr5_h}}u zco_LqboCFL2ERqYZ&~!%!6X8?NDd+fpcoh-CXqs>CdwydpG=|N!Bc_QPQ!CzQ1iq$ zW)kDv^C^n+QLVht(G-1*8h%K_)Kytp@(TuQ7(yOa5_n;YID6~>Ex-i^!`XW%+$7SU zg)X1&KZq`kkgPBcIPVz%#G=C39;T8P<7AG*MY)#%+;5WgT4<5Ume!5@kX~c${{TC} BIB5U? literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/io.doctree b/sed/v0.1.9/.doctrees/sed/io.doctree new file mode 100644 index 0000000000000000000000000000000000000000..595befcbbf5826301edef9c60c558e2cdb7c8b29 GIT binary patch literal 43855 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/loader.doctree b/sed/v0.1.9/.doctrees/sed/loader.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e5341c40fa4d955bc960b207f9427e94ff51c0ce GIT binary patch literal 669063 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/sed/metadata.doctree b/sed/v0.1.9/.doctrees/sed/metadata.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ccfba09bfe52dc02d6506688c53d8c7178ed45ef GIT binary patch literal 47903 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/user_guide/1_binning_fake_data.doctree b/sed/v0.1.9/.doctrees/user_guide/1_binning_fake_data.doctree new file mode 100644 index 0000000000000000000000000000000000000000..86d39e83fb26f6b97d8a19b3c1131306b2068646 GIT binary patch literal 50929 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/user_guide/index.doctree b/sed/v0.1.9/.doctrees/user_guide/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..136448317f36d4b91225882dd001b17cb30c332c GIT binary patch literal 3758 zcmb_f-EU(@6;C#?V>^lS(M?-H7p2?X(v=!}3p^km`04_pk&K}9186iF-#hlq=6*3V zcjF+ffQKS1jl@HThf00pkKym&kKh@8XYReW<8Fk68p(?1%*^@t&H0^k{HNC6|IyzF zf9}8(Qf0FNkK-(lh4HQv=TVu8%=*v#qd)uS{w>$l{L18|j)Zp`I1x#e#9Czj0-Jq0 zZ&hLjwSw(bSiZO{TkigoS|hhA&rT<~J{^mx$}*u(OCz)y^t{};@UF+L)oNT?_(68J zRBT|w?L-MT210yqWjw9Eb>gyEF2+2%)M8Sf&ofIA$iCaABi`*Iwn(djJn(Ki;n~!? zI|!k4JC;wwA=z{7Cd{7>KOoPBf8Z(`HvXI8N4dTn8WFRJ7DlotFRp1h1O{eEv9M{W zVlh-%EM|i=CQ~XC{(Qr=3l7NO)0XQp!Yp7cx5}~Xx*a2;;97&ZY{@oZ@)kB*R@p?X zBHAP8PJc$G0&+OC{cAC!Cv&TNpZf5C@}V5aH|3VRKavkd<(SJuz$=e0yu6Fg%lN#C z&(|(|DPNaw%LnH>^1gfn*B;Te;9)1q(;_dkc*T#(MY#b8^T=wk>SMikn<4qo9j@br zhXz1eh36f)S8nVZ%abG|kpGM4Zck-VQpRGUl5kx9lDkgIXR#=(^yiz%8D2kj|L0k_ ztg`9p`#*VtCz&Ss*w0;CsyIdp%-w#iZ6WAnWjYpG#Po8#fWOJJ<>tMTs8mhA^&5J^4&)4z)euI0X2l)S>Vq%jO^2yrzc9`Wz{^G)q z+&5Oxe20y}KH$M7{8F%(gRcNpzKH0fAA+ibp0Q5qoUI&&mzETy!?1Be>0cA zoy*^yZ^%#P@&Xr_yjqR=0Nzj6qn6SCjPl?siSlSAO1M2y(?wuzC9s_z#m_i`x-Fu= ztwwZ$i2nG0M08S)#e!(AN1mO9>Hwr`+EvoiM!G`6Z?2GVt0Li2S#!N%?V@bSH{4yT zd1fl6utMik6soG4wrma#RS8|63He=8u$!(Qm6{3^t4rX>?KP56!bYxRgtf>TG>IcB zV4>(wbf~qcbnOp$Qi6<433Khdv_)zCNWMLC-Kjvm=Qh_!#x7D$fRt&0#cpMg!OA6; zy?R;d1gm|}g;8y%T^Mc=^{%};p5(dBaw}Fg!TNowqu?%^q06LH2l@sTr9h=lsool> z{CXu3i3k#Qr7S9W-CkHrYGP~F%lJ(eCB1_^?7M?wiLNL3c0l( zmubNk`3F>kK%vd+j3=bc7&9vkFlm3xtHl1jDYjh*6}c;EyjEAqJ1ou$j>7p z7t$u1A`26hD(m0d_}9N%u3w0P0Ty&2R4NK*k0fIb?};1kRcUQuzBe2~YzD=(m3cPE z^>pan37rfs;3Tsm#RFM9NC)z>hmXGlMEiOYt*Ix;QvI8adTI}pv6n&*l(3Uv1N|)LNgna4)w_F<oR}_4~fbq$bzOW98;w* z<#_F!N-2GloL6L|>Fv@ZYcLJO;P^FMkV04(If-!Ul8Kb7gkgN9Ivd- z+T3l4?3u^tsjBzE6-X3e0JCTG z4b8agURgh?GPO2Ey3KD@6XLh&TQv{LhfiCZ8yn^YbD;Z@8QwG*bcv^1xJFY6;y7CR zld3F?>`%9`-3%sf^YOy)Nf!WUigypPw&9o3thd7jglT? z(p-0KszCtuIp$CjR^R0p@^j<5B(T>79{9PJU(Ag>#{bXdBjfg0b3NSNj}#a~uLq5l zgo;{ou6pHFNp%iy4{oI6JXz2u9KE|HT%7LS(AaIPhD*mc^rJaxOWp8fU01z>Ar~b# zq!%@o-6&5IK(hl;^5d5e9S12C%ErT+IA7Tb{sSGYE?+x+pLL4%Fw;r^? fuqh>bFQ(>D*HIdCTra&g=%z`DG2^)}$AkX@fIPb_ literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/.doctrees/user_guide/installation.doctree b/sed/v0.1.9/.doctrees/user_guide/installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7e94b0015e1e928fc7b887bd6e9e543c5cee888f GIT binary patch literal 9710 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 SxI1|05;+OnlDAT1YyJbKR>a#klAvdB}t|e zZiDY7IxbS4x$r7H{3*N$4}9OS6RQgo^WfLO5eumj!?W-__%X3NsqB9Je$(>UNu4#% zMMreS=JW7C^nJ%kr+Dki_Ybu>nk#)`12KVT;~8I)^7hrsP+8K=8T7g!wtYWp3>E9X zTibWwHDYpl`G^favXuIGiwWoV0hUGao zfwjG&_j~7AAUQ}jZ$$Wh<1-%CA-PDb<3o}LkhEUqv$P0_xM)pVb%QeT$lq{=WmYkY zP?Q_JK(Z^8b)0rgRbi-k%BU2i?}{JCg&_<_4Pu8YN`+kCv)nnEEl`ZxO?AzU&Kw6c zeD^!13goLP&#o?9Ubt`|CI`O1;2Af}X%lcr7_jeHn&YrlDU6`y2**KvER4cwgqTN! zdAfz-4khd~_?@}dF4K;;E`f~^6*)2_`Y-TGUCQ)6A6|j3h+bP;alv2pHz`< zN$HeQg5SM#b4i5w*^eus=LW2v-nn>j>7~C$4ghFYAU+BX1wT?OTNG@;5$*)%t0+l- z-SAkOBtrcHCQw5~e&D;Y&gSqD;gAV{ieg^|(e-0iI31mn{8b5TjglhGqXvJ7YDtiQ zp2?UZfs>L_qMveqPRcDW5*;m5!qYXr%(dlF`(+7{*hRHgz!^E7 zB0&xb>4Cm?|HF?F(XpAwm&6n0T>N`0@u*csh&|$FUvf7ub)f#I!leqz`i{*|L0bsNA~07YhVpkUP(cBoU>Vs?p7rUYN5SyhZQ zw2uN%gBg;bf=^+B;M_sU%@|xq5l@*^5!Mvyv!&VF^`Zf|s(IDb&ip#hj%oP&Ue!%d zz5pX;tweda$T73v=uQ~?+b{~?a#&u_!7&7>d;6UW)M_078Pev>p-V-CO#<{yB39qx zP&~7~PXu?G!@?Iq9G+Qm5C5Nuq4lG7vdY(^SR&=59ug}GRppAWGP6yo_+UJeo6fXq z@?WyvxI}EY`xhkkS6a(QI~U}myBbIB{N`m@^$lh_dPa;T1+WNyE7nROu}#kaY*-fgCWTmY#`e^rR#wzzkhK@ZJ|40K=D%oN`?sFa`gm6#b3;hH z>$JXW1%}3cwLISXKaP5b#K8Zn8u$n0=J5J)PxJauu>VmmXCo!yGE>nEC34iZ>Wxp! zzX2_Ndx@q9FHo$gQ{BW-IbLP0wFtt_09lLoRD=t6mII T+Y2hQK|*7x?%)*nVz&Pusx9%5 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/_images/user_guide_1_binning_fake_data_13_0.png b/sed/v0.1.9/_images/user_guide_1_binning_fake_data_13_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b88fa410d12d6563068b6402bdfe3b0798b1c6b2 GIT binary patch literal 119970 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

    ?*w|4%Xj=5jkjV)|KUEKD$rg@$IUdeyO52M8$T
    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

    sDNr-Q3%U;*~A12TdutNy0o_+F_TOV%Ve= zDTRoO61RB%rYV#&e>`Zc>Sti6w^Jpb-AUy?N&a^V?HVuamy z>&?e>ZzWmL-IgU#GW?V_xN*f3gX^s{s4SBjBq7@+CHzKP z?;(Zzs*OtuG^0DWWIUOwV3})2lAR&3f-;gTJqE}r2y0HUj{W^>gjf+WPuIV!u5^7nQBx-bWNyhA#wYraA`*D zPMPya_kuUv5V&CBFtGh~f|CDRha8|IoU<{i`l!tFYnmq7QjmK5tnEN|j*VC38FxbC5y zIIDxbbj(v+$3oXxkb#4E%xj0k`E>Hgxmeb%+{geO_vIMP$&sNBh*4$!eyS6iD(p<1 zNqD~4xxq_B6Ry!%XOznyZybgY-=tbS^`S>o1nm`nhk~Ly*_+%3eP3Z6kSeb&ot0i@ zVXu}PF;7*iUcLB>#s$>X`rU5c?CuK!_W8WLOc#K_^(a&7 zKpUj&hx7_1gD=;?PHfT{t&ZPAL68BwnXdUEkK(Z)?e{sjyYglh!b;1rM9mDt%Q29wHQNe0>EM!f;!%6e~9IuSq;-yOn5X)&iK%dU{?Q*7D?3I4Ez+ZVuwP@z$z! zE|qS6Dea_tI?z)?Cau@3V@c_pi@{&@((M|)tsc40N2B2l5&)O$_RfMYh-$&4mV1cb zq9Bh|&#$Iv9er9keO*52`K2TeW%iL;@v*7j*M+<9bnhyJV>1}3k-xY=Gpw

    LRW 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Νt-H2oY=VrH7P*Zv03F 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�td(~oHm6=>JYmG|^=BPDKL+HUk%S37 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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/_images/user_guide_1_binning_fake_data_8_0.png b/sed/v0.1.9/_images/user_guide_1_binning_fake_data_8_0.png new file mode 100644 index 0000000000000000000000000000000000000000..85718d193907f81da13a807943f56a5ce2e54321 GIT binary patch literal 266443 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%0A4+!HN?ph-dgNIjrZHG5dVk@a&K>^az8e8 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�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 literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/_modules/index.html b/sed/v0.1.9/_modules/index.html new file mode 100644 index 0000000..1576fa8 --- /dev/null +++ b/sed/v0.1.9/_modules/index.html @@ -0,0 +1,541 @@ + + + + + + + + + + Overview: module code — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + + +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/binning/binning.html b/sed/v0.1.9/_modules/sed/binning/binning.html new file mode 100644 index 0000000..addd59c --- /dev/null +++ b/sed/v0.1.9/_modules/sed/binning/binning.html @@ -0,0 +1,1057 @@ + + + + + + + + + + sed.binning.binning — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.binning.binning

    +"""This module contains the binning functions of the sed.binning module
    +
    +"""
    +import gc
    +from functools import reduce
    +from typing import cast
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import dask.dataframe
    +import numpy as np
    +import pandas as pd
    +import psutil
    +import xarray as xr
    +from threadpoolctl import threadpool_limits
    +from tqdm.auto import tqdm
    +
    +from .numba_bin import numba_histogramdd
    +from .utils import _arraysum
    +from .utils import bin_centers_to_bin_edges
    +from .utils import simplify_binning_arguments
    +
    +N_CPU = psutil.cpu_count()
    +
    +
    +
    +[docs] +def bin_partition( + part: Union[dask.dataframe.DataFrame, pd.DataFrame], + bins: Union[ + int, + dict, + Sequence[int], + Sequence[np.ndarray], + Sequence[tuple], + ] = 100, + axes: Sequence[str] = None, + ranges: Sequence[Tuple[float, float]] = None, + hist_mode: str = "numba", + jitter: Union[list, dict] = None, + return_edges: bool = False, + skip_test: bool = False, +) -> Union[np.ndarray, Tuple[np.ndarray, list]]: + """Compute the n-dimensional histogram of a single dataframe partition. + + Args: + part (Union[dask.dataframe.DataFrame, pd.DataFrame]): dataframe on which + to perform the histogram. Usually a partition of a dask DataFrame. + bins (int, dict, Sequence[int], Sequence[np.ndarray], Sequence[tuple], optional): + Definition of the bins. Can be any of the following cases: + + - an integer describing the number of bins for all dimensions. This + requires "ranges" to be defined as well. + - A sequence containing one entry of the following types for each + dimenstion: + + - an integer describing the number of bins. This requires "ranges" + to be defined as well. + - a np.arrays defining the bin centers + - a tuple of 3 numbers describing start, end and step of the binning + range. + + - a dictionary made of the axes as keys and any of the above as + values. + + The last option takes priority over the axes and range arguments. + Defaults to 100. + axes (Sequence[str], optional): Sequence containing the names of + the axes (columns) on which to calculate the histogram. The order will be + the order of the dimensions in the resulting array. Only not required if + bins are provided as dictionary containing the axis names. + Defaults to None. + ranges (Sequence[Tuple[float, float]], optional): Sequence of tuples containing + the start and end point of the binning range. Required if bins given as + int or Sequence[int]. Defaults to None. + hist_mode (str, optional): Histogram calculation method. + + - "numpy": use ``numpy.histogramdd``, + - "numba" use a numba powered similar method. + + Defaults to "numba". + jitter (Union[list, dict], optional): a list of the axes on which to apply + jittering. To specify the jitter amplitude or method (normal or uniform + noise) a dictionary can be passed. This should look like + jitter={'axis':{'amplitude':0.5,'mode':'uniform'}}. + This example also shows the default behaviour, in case None is + passed in the dictionary, or jitter is a list of strings. + Warning: this is not the most performing approach. Applying jitter + on the dataframe before calling the binning is much faster. + Defaults to None. + return_edges (bool, optional): If True, returns a list of D arrays + describing the bin edges for each dimension, similar to the + behaviour of ``np.histogramdd``. Defaults to False. + skip_test (bool, optional): Turns off input check and data transformation. + Defaults to False as it is intended for internal use only. + Warning: setting this True might make error tracking difficult. + + Raises: + ValueError: When the method requested is not available. + AttributeError: if bins axes and range are not congruent in dimensionality. + KeyError: when the columns along which to compute the histogram are not + present in the dataframe + + Returns: + Union[np.ndarray, Tuple[np.ndarray, list]]: 2-element tuple returned only when + returnEdges is True. Otherwise only hist is returned. + + - **hist**: The result of the n-dimensional binning + - **edges**: A list of D arrays describing the bin edges for each dimension. + """ + if not skip_test: + bins, axes, ranges = simplify_binning_arguments(bins, axes, ranges) + else: + if not isinstance(bins, list) or not ( + all(isinstance(x, (int, np.int64)) for x in bins) + or all(isinstance(x, np.ndarray) for x in bins) + ): + raise TypeError( + "bins needs to be of type 'List[int] or List[np.ndarray]' if tests are skipped!", + ) + if not (isinstance(axes, list)) or not all(isinstance(axis, str) for axis in axes): + raise TypeError( + "axes needs to be of type 'List[str]' if tests are skipped!", + ) + bins = cast(Union[List[int], List[np.ndarray]], bins) + axes = cast(List[str], axes) + ranges = cast(List[Tuple[float, float]], ranges) + + # convert bin centers to bin edges: + if all(isinstance(x, np.ndarray) for x in bins): + bins = cast(List[np.ndarray], bins) + for i, bin_centers in enumerate(bins): + bins[i] = bin_centers_to_bin_edges(bin_centers) + else: + bins = cast(List[int], bins) + # shift ranges by half a bin size to align the bin centers to the given ranges, + # as the histogram functions interprete the ranges as limits for the edges. + for i, nbins in enumerate(bins): + halfbinsize = (ranges[i][1] - ranges[i][0]) / (nbins) / 2 + ranges[i] = ( + ranges[i][0] - halfbinsize, + ranges[i][1] - halfbinsize, + ) + + # Locate columns for binning operation + col_id = [part.columns.get_loc(axis) for axis in axes] + + if jitter is not None: + sel_part = part[axes].copy() + + if isinstance(jitter, Sequence): + jitter = {k: None for k in jitter} + for col, jpars in jitter.items(): + if col in axes: + if jpars is None: + jpars = {} + amp = jpars.get("amplitude", 0.5) + mode = jpars.get("mode", "uniform") + ax_index = axes.index(col) + _bin = bins[ax_index] + if isinstance(_bin, (int, np.int64)): + rng = ranges[ax_index] + binsize = abs(rng[1] - rng[0]) / _bin + else: + binsize = abs(_bin[0] - _bin[1]) + assert np.allclose( + binsize, + abs(_bin[-3] - _bin[-2]), + ), f"bins along {col} are not uniform. Cannot apply jitter." + apply_jitter_on_column(sel_part, amp * binsize, col, mode) + vals = sel_part.values + else: + vals = part.values[:, col_id] + if hist_mode == "numba": + hist_partition, edges = numba_histogramdd( + vals, + bins=bins, + ranges=ranges, + ) + elif hist_mode == "numpy": + hist_partition, edges = np.histogramdd( + vals, + bins=bins, + range=ranges, + ) + else: + raise ValueError( + f"No binning method {hist_mode} available. Please choose between " f"numba and numpy.", + ) + + if return_edges: + return hist_partition, edges + + return hist_partition
    + + + +
    +[docs] +def bin_dataframe( + df: dask.dataframe.DataFrame, + bins: Union[ + int, + dict, + Sequence[int], + Sequence[np.ndarray], + Sequence[tuple], + ] = 100, + axes: Sequence[str] = None, + ranges: Sequence[Tuple[float, float]] = None, + hist_mode: str = "numba", + mode: str = "fast", + jitter: Union[list, dict] = None, + pbar: bool = True, + n_cores: int = N_CPU - 1, + threads_per_worker: int = 4, + threadpool_api: str = "blas", + return_partitions: bool = False, + **kwds, +) -> xr.DataArray: + """Computes the n-dimensional histogram on columns of a dataframe, + parallelized. + + Args: + df (dask.dataframe.DataFrame): a dask.DataFrame on which to perform the + histogram. + bins (int, dict, Sequence[int], Sequence[np.ndarray], Sequence[tuple], optional): + Definition of the bins. Can be any of the following cases: + + - an integer describing the number of bins for all dimensions. This + requires "ranges" to be defined as well. + - A sequence containing one entry of the following types for each + dimenstion: + + - an integer describing the number of bins. This requires "ranges" + to be defined as well. + - a np.arrays defining the bin centers + - a tuple of 3 numbers describing start, end and step of the binning + range. + + - a dictionary made of the axes as keys and any of the above as + values. + + The last option takes priority over the axes and range arguments. + Defaults to 100. + axes (Sequence[str], optional): Sequence containing the names of + the axes (columns) on which to calculate the histogram. The order will be + the order of the dimensions in the resulting array. Only not required if + bins are provided as dictionary containing the axis names. + Defaults to None. + ranges (Sequence[Tuple[float, float]], optional): Sequence of tuples containing + the start and end point of the binning range. Required if bins given as + int or Sequence[int]. Defaults to None. + hist_mode (str, optional): Histogram calculation method. + + - "numpy": use ``numpy.histogramdd``, + - "numba" use a numba powered similar method. + + Defaults to "numba". + mode (str, optional): Defines how the results from each partition are combined. + + - 'fast': Uses parallelized recombination of results. + - 'lean': Store all partition results in a list, and recombine at the + end. + - 'legacy': Single-core recombination of partition results. + + Defaults to "fast". + jitter (Union[list, dict], optional): a list of the axes on which to apply + jittering. To specify the jitter amplitude or method (normal or uniform + noise) a dictionary can be passed. This should look like + jitter={'axis':{'amplitude':0.5,'mode':'uniform'}}. + This example also shows the default behaviour, in case None is + passed in the dictionary, or jitter is a list of strings. + Warning: this is not the most performing approach. applying jitter + on the dataframe before calling the binning is much faster. + Defaults to None. + pbar (bool, optional): Option to show the tqdm progress bar. Defaults to True. + n_cores (int, optional): Number of CPU cores to use for parallelization. + Defaults to all but one of the available cores. Defaults to N_CPU-1. + threads_per_worker (int, optional): Limit the number of threads that + multiprocessing can spawn. Defaults to 4. + threadpool_api (str, optional): The API to use for multiprocessing. + Defaults to "blas". + return_partitions (bool, optional): Option to return a hypercube of dimension + n+1, where the last dimension corresponds to the dataframe partitions. + Defaults to False. + **kwds: Keyword arguments passed to ``dask.compute()`` + + Raises: + Warning: Warns if there are unimplemented features the user is trying to use. + ValueError: Raised when there is a mismatch in dimensions between the + binning parameters. + + Returns: + xr.DataArray: The result of the n-dimensional binning represented in an + xarray object, combining the data with the axes (bin centers). + """ + bins, axes, ranges = simplify_binning_arguments(bins, axes, ranges) + + # create the coordinate axes for the xarray output + # if provided as array, they are interpreted as bin centers + if isinstance(bins[0], np.ndarray): + bins = cast(List[np.ndarray], bins) + coords = dict(zip(axes, bins)) + elif ranges is None: + raise ValueError( + "bins is not an array and range is none. this shouldn't happen.", + ) + else: + bins = cast(List[int], bins) + coords = { + ax: np.linspace(r[0], r[1], n, endpoint=False) for ax, r, n in zip(axes, ranges, bins) + } + + full_shape = tuple(axis.size for axis in coords.values()) + + full_result = np.zeros(full_shape) + partition_results = [] # Partition-level results + + # limit multithreading in worker threads + with threadpool_limits(limits=threads_per_worker, user_api=threadpool_api): + # Main loop for binning + for i in tqdm(range(0, df.npartitions, n_cores), disable=not pbar): + core_tasks = [] # Core-level jobs + for j in range(0, n_cores): + partition_index = i + j + if partition_index >= df.npartitions: + break + + df_partition = df.get_partition( + partition_index, + ) # Obtain dataframe partition + core_tasks.append( + dask.delayed(bin_partition)( + df_partition, + bins=bins, + axes=axes, + ranges=ranges, + hist_mode=hist_mode, + jitter=jitter, + skip_test=True, + return_edges=False, + ), + ) + + if len(core_tasks) > 0: + core_results = dask.compute(*core_tasks, **kwds) + + if return_partitions: + for core_result in core_results: + partition_results.append(core_result) + del core_results + + elif mode == "legacy": + # Combine all core results for a dataframe partition + partition_result = np.zeros_like(core_results[0]) + for core_result in core_results: + partition_result += core_result + + partition_results.append(partition_result) + # del partitionResult + + elif mode == "lean": + # Combine all core results for a dataframe partition + partition_result = reduce(_arraysum, core_results) + full_result += partition_result + del partition_result + del core_results + + elif mode == "fast": + combine_tasks = [] + for j in range(0, n_cores): + combine_parts = [] + # split results along the first dimension among worker + # threads + for core_result in core_results: + combine_parts.append( + core_result[ + int(j * full_shape[0] / n_cores) : int( + (j + 1) * full_shape[0] / n_cores, + ), + ..., + ], + ) + combine_tasks.append( + dask.delayed(reduce)(_arraysum, combine_parts), + ) + combine_results = dask.compute(*combine_tasks, **kwds) + # Directly fill into target array. This is much faster than + # the (not so parallel) reduce/concatenation used before, + # and uses less memory. + + for j in range(0, n_cores): + full_result[ + int(j * full_shape[0] / n_cores) : int( + (j + 1) * full_shape[0] / n_cores, + ), + ..., + ] += combine_results[j] + del combine_parts + del combine_tasks + del combine_results + del core_results + else: + raise ValueError(f"Could not interpret mode {mode}") + + del core_tasks + + if return_partitions: + coords = {**coords, **{"df_part": np.arange(df.npartitions)}} + dims = list(axes) + dims.append("df_part") + data_array = xr.DataArray( + data=np.stack(partition_results, axis=-1).astype("float32"), + coords=coords, + dims=dims, + ) + + else: + if mode == "legacy": + # still need to combine all partition results + full_result = np.zeros_like(partition_results[0]) + for partition_result in partition_results: + full_result += np.nan_to_num(partition_result) + + data_array = xr.DataArray( + data=full_result.astype("float32"), + coords=coords, + dims=list(axes), + ) + + gc.collect() + return data_array
    + + + +def normalization_histogram_from_timestamps( + df: dask.dataframe.DataFrame, + axis: str, + bin_centers: np.ndarray, + time_stamp_column: str, +) -> xr.DataArray: + """Get a normalization histogram from the time stamps column in the dataframe. + + Args: + df (dask.dataframe.DataFrame): a dask.DataFrame on which to perform the + histogram. + axis (str): The axis (dataframe column) on which to calculate the normalization + histogram. + bin_centers (np.ndarray): Bin centers used for binning of the axis. + time_stamp_column (str): Dataframe column containing the time stamps. + + Returns: + xr.DataArray: Calculated normalization histogram. + """ + time_per_electron = df[time_stamp_column].diff() + + bins = df[axis].map_partitions( + pd.cut, + bins=bin_centers_to_bin_edges(bin_centers), + ) + + histogram = time_per_electron.groupby([bins]).sum().compute().values + + data_array = xr.DataArray( + data=histogram, + coords={axis: bin_centers}, + ) + + return data_array + + +def normalization_histogram_from_timed_dataframe( + df: dask.dataframe.DataFrame, + axis: str, + bin_centers: np.ndarray, + time_unit: float, +) -> xr.DataArray: + """Get a normalization histogram from a timed datafram. + + Args: + df (dask.dataframe.DataFrame): a dask.DataFrame on which to perform the + histogram. Entries should be based on an equal time unit. + axis (str): The axis (dataframe column) on which to calculate the normalization + histogram. + bin_centers (np.ndarray): Bin centers used for binning of the axis. + time_unit (float): Time unit the data frame entries are based on. + + Returns: + xr.DataArray: Calculated normalization histogram. + """ + bins = df[axis].map_partitions( + pd.cut, + bins=bin_centers_to_bin_edges(bin_centers), + ) + + histogram = df[axis].groupby([bins]).count().compute().values * time_unit + # histogram = bin_dataframe(df, axes=[axis], bins=[bin_centers]) * time_unit + + data_array = xr.DataArray( + data=histogram, + coords={axis: bin_centers}, + ) + + return data_array + + +def apply_jitter_on_column( + df: Union[dask.dataframe.core.DataFrame, pd.DataFrame], + amp: float, + col: str, + mode: str = "uniform", +): + """Add jittering to the column of a dataframe. + + Args: + df (Union[dask.dataframe.core.DataFrame, pd.DataFrame]): Dataframe to add + noise/jittering to. + amp (float): Amplitude scaling for the jittering noise. + col (str): Name of the column to add jittering to. + mode (str, optional): Choose between 'uniform' for uniformly + distributed noise, or 'normal' for noise with normal distribution. + For columns with digital values, one should choose 'uniform' as + well as amplitude (amp) equal to the step size. Defaults to "uniform". + """ + colsize = df[col].size + if mode == "uniform": + # Uniform Jitter distribution + df[col] += amp * np.random.uniform(low=-1, high=1, size=colsize) + elif mode == "normal": + # Normal Jitter distribution works better for non-linear + # transformations and jitter sizes that don't match the original bin + # sizes + df[col] += amp * np.random.standard_normal(size=colsize) +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/binning/numba_bin.html b/sed/v0.1.9/_modules/sed/binning/numba_bin.html new file mode 100644 index 0000000..f7069ce --- /dev/null +++ b/sed/v0.1.9/_modules/sed/binning/numba_bin.html @@ -0,0 +1,782 @@ + + + + + + + + + + sed.binning.numba_bin — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.binning.numba_bin

    +"""This file contains code for binning using numba precompiled code for the
    +sed.binning module
    +
    +"""
    +from typing import Any
    +from typing import cast
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import numba
    +import numpy as np
    +
    +
    +@numba.jit(nogil=True, nopython=True)
    +def _hist_from_bin_range(
    +    sample: np.ndarray,
    +    bins: Sequence[int],
    +    ranges: np.ndarray,
    +) -> np.ndarray:
    +    """N dimensional binning function, pre-compiled by Numba for performance.
    +    Behaves much like numpy.histogramdd, but calculates and returns unsigned 32
    +    bit integers.
    +
    +    Args:
    +        sample (np.ndarray): The data to be histogrammed with shape N,D.
    +        bins (Sequence[int]): The number of bins for each dimension D.
    +        ranges (np.ndarray): A sequence of length D, each an optional (lower,
    +            upper) tuple giving the outer bin edges to be used if the edges are
    +            not given explicitly in bins.
    +
    +    Raises:
    +        ValueError: In case of dimension mismatch.
    +
    +    Returns:
    +        np.ndarray: The computed histogram.
    +    """
    +    ndims = len(bins)
    +    if sample.shape[1] != ndims:
    +        raise ValueError(
    +            "The dimension of bins is not equal to the dimension of the sample x",
    +        )
    +
    +    hist = np.zeros(bins, np.uint32)
    +    hist_flat = hist.ravel()
    +    delta = np.zeros(ndims, np.float64)
    +    strides = np.zeros(ndims, np.int64)
    +
    +    for i in range(ndims):
    +        delta[i] = 1 / ((ranges[i, 1] - ranges[i, 0]) / bins[i])
    +        strides[i] = hist.strides[i] // hist.itemsize  # pylint: disable=E1136
    +
    +    for t in range(sample.shape[0]):
    +        is_inside = True
    +        flatidx = 0
    +        for i in range(ndims):
    +            # strip off numerical rounding errors
    +            j = round((sample[t, i] - ranges[i, 0]) * delta[i], 11)
    +            # add counts on last edge
    +            if j == bins[i]:
    +                j = bins[i] - 1
    +            is_inside = is_inside and (0 <= j < bins[i])
    +            flatidx += int(j) * strides[i]
    +            # don't check all axes if you already know you're out of the range
    +            if not is_inside:
    +                break
    +        if is_inside:
    +            hist_flat[flatidx] += int(is_inside)
    +
    +    return hist
    +
    +
    +
    +[docs] +@numba.jit(nogil=True, parallel=False, nopython=True) +def binsearch(bins: np.ndarray, val: float) -> int: + """Bisection index search function. + + Finds the index of the bin with the highest value below val, i.e. the left edge. + returns -1 when the value is outside the bin range. + + Args: + bins (np.ndarray): the array on which + val (float): value to search for + + Returns: + int: index of the bin array, returns -1 when value is outside the bins range + """ + if np.isnan(val): + return -1 + low, high = 0, len(bins) - 1 + mid = high // 2 + if val == bins[high]: + return high - 1 + if (val < bins[low]) | (val > bins[high]): + return -1 + + while True: + if val < bins[mid]: + high = mid + elif val < bins[mid + 1]: + return mid + else: + low = mid + mid = (low + high) // 2
    + + + +@numba.jit(nopython=True, nogil=True, parallel=False) +def _hist_from_bins( + sample: np.ndarray, + bins: Sequence[np.ndarray], + shape: Tuple, +) -> np.ndarray: + """Numba powered binning method, similar to np.histogramdd. + + Computes the histogram on pre-defined bins. + + Args: + sample (np.ndarray) : the array of shape (N,D) on which to compute the histogram + bins (Sequence[np.ndarray]): array of shape (N,D) defining the D bins on which + to compute the histogram, i.e. the desired output axes. + shape (Tuple): shape of the resulting array. Workaround for the fact numba + does not allow to create tuples. + Returns: + hist: the computed n-dimensional histogram + """ + ndims = len(bins) + if sample.shape[1] != ndims: + raise ValueError( + "The dimension of bins is not equal to the dimension of the sample x", + ) + hist = np.zeros(shape, np.uint32) + hist_flat = hist.ravel() + + strides = np.zeros(ndims, np.int64) + + for i in range(ndims): + strides[i] = hist.strides[i] // hist.itemsize # pylint: disable=E1136 + for t in range(sample.shape[0]): + is_inside = True + flatidx = 0 + for i in range(ndims): + j = binsearch(bins[i], sample[t, i]) + # binsearch returns -1 when the value is outside the bin range + is_inside = is_inside and (j >= 0) + flatidx += int(j) * strides[i] + # don't check all axes if you already know you're out of the range + if not is_inside: + break + if is_inside: + hist_flat[flatidx] += int(is_inside) + + return hist + + +
    +[docs] +def numba_histogramdd( + sample: np.ndarray, + bins: Union[int, Sequence[int], Sequence[np.ndarray], np.ndarray], + ranges: Sequence = None, +) -> Tuple[np.ndarray, List[np.ndarray]]: + """Multidimensional histogramming function, powered by Numba. + + Behaves in total much like numpy.histogramdd. Returns uint32 arrays. + This was chosen because it has a significant performance improvement over + uint64 for large binning volumes. Be aware that this can cause overflows + for very large sample sets exceeding 3E9 counts in a single bin. This + should never happen in a realistic photoemission experiment with useful bin + sizes. + + Args: + sample (np.ndarray): The data to be histogrammed with shape N,D + bins (Union[int, Sequence[int], Sequence[np.ndarray], np.ndarray]): The number + of bins for each dimension D, or a sequence of bin edges on which to calculate + the histogram. + ranges (Sequence, optional): The range(s) to use for binning when bins is a sequence + of integers or sequence of arrays. Defaults to None. + + Raises: + ValueError: In case of dimension mismatch. + TypeError: Wrong type for bins. + ValueError: In case of wrong shape of bins + RuntimeError: Internal shape error after binning + + Returns: + Tuple[np.ndarray, List[np.ndarray]]: 2-element tuple of The computed histogram + and s list of D arrays describing the bin edges for each dimension. + + - **hist**: The computed histogram + - **edges**: A list of D arrays describing the bin edges for + each dimension. + """ + try: + # Sample is an ND-array. + num_rows, num_cols = sample.shape # pylint: disable=unused-variable + except (AttributeError, ValueError): + # Sample is a sequence of 1D arrays. + sample = np.atleast_2d(sample).T + num_rows, num_cols = sample.shape # pylint: disable=unused-variable + + if isinstance(bins, (int, np.int_)): # bins provided as a single number + bins = num_cols * [bins] + num_bins = len(bins) # Number of dimensions in bins + + if num_bins != num_cols: # check number of dimensions + raise ValueError( + "The dimension of bins must be equal to the dimension of the sample x.", + ) + + if not isinstance(bins[0], (int, np.int_, np.ndarray)): + raise TypeError( + f"bins must be int, np.ndarray or a sequence of the two. " + f"Found {type(bins[0])} instead", + ) + + # method == "array" + if isinstance(bins[0], np.ndarray): + bins = cast(List[np.ndarray], list(bins)) + hist = _hist_from_bins( + sample, + tuple(bins), + tuple(b.size - 1 for b in bins), + ) + return hist, bins + + # method == "int" + assert isinstance(bins[0], (int, np.int_)) + # normalize the range argument + if ranges is None: + raise ValueError( + "must define a value for ranges when bins is the number of bins", + ) + if num_cols == 1 and isinstance(ranges[0], (int, float)): + ranges = (ranges,) + elif len(ranges) != num_cols: + raise ValueError( + "range argument must have one entry per dimension", + ) + + # ranges = np.asarray(ranges) + bins = tuple(bins) + + # Create edge arrays + edges: List[Any] = [] + nbin = np.empty(num_cols, int) + + for i in range(num_cols): + edges.append(np.linspace(ranges[i][0], ranges[i][1], bins[i] + 1)) + + nbin[i] = len(edges[i]) + 1 # includes an outlier on each end + + hist = _hist_from_bin_range(sample, bins, np.asarray(ranges)) + + if (hist.shape != nbin - 2).any(): + raise RuntimeError("Internal Shape Error") + + return hist, edges
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/binning/utils.html b/sed/v0.1.9/_modules/sed/binning/utils.html new file mode 100644 index 0000000..b7819ab --- /dev/null +++ b/sed/v0.1.9/_modules/sed/binning/utils.html @@ -0,0 +1,707 @@ + + + + + + + + + + sed.binning.utils — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.binning.utils

    +"""This file contains helper functions for the sed.binning module
    +
    +"""
    +from typing import cast
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import numpy as np
    +
    +
    +def _arraysum(array_a, array_b):
    +    """Calculate the sum of two arrays."""
    +    return array_a + array_b
    +
    +
    +
    +[docs] +def simplify_binning_arguments( + bins: Union[ + int, + dict, + Sequence[int], + Sequence[np.ndarray], + Sequence[tuple], + ], + axes: Sequence[str] = None, + ranges: Sequence[Tuple[float, float]] = None, +) -> Tuple[Union[List[int], List[np.ndarray]], List[str], List[Tuple[float, float]]]: + """Convert the flexible input for defining bins into a + simple "axes" "bins" "ranges" tuple. + + This allows to mimic the input used in numpy.histogramdd flexibility into the + binning functions defined here. + + Args: + bins (int, dict, Sequence[int], Sequence[np.ndarray], Sequence[tuple]): + Definition of the bins. Can be any of the following cases: + + - an integer describing the number of bins for all dimensions. This + requires "ranges" to be defined as well. + - A sequence containing one entry of the following types for each + dimenstion: + + - an integer describing the number of bins. This requires "ranges" + to be defined as well. + - a np.arrays defining the bin centers + - a tuple of 3 numbers describing start, end and step of the binning + range. + + - a dictionary made of the axes as keys and any of the above as + values. + + The last option takes priority over the axes and range arguments. + axes (Sequence[str], optional): Sequence containing the names of + the axes (columns) on which to calculate the histogram. The order will be + the order of the dimensions in the resulting array. Only not required if + bins are provided as dictionary containing the axis names. + Defaults to None. + ranges (Sequence[Tuple[float, float]], optional): Sequence of tuples containing + the start and end point of the binning range. Required if bins given as + int or Sequence[int]. Defaults to None. + + Raises: + ValueError: Wrong shape of bins, + TypeError: Wrong type of bins + AttributeError: Axes not defined + AttributeError: Shape mismatch + + Returns: + Tuple[Union[List[int], List[np.ndarray]], List[Tuple[float, float]]]: Tuple + containing lists of bin centers, axes, and ranges. + """ + # if bins is a dictionary: unravel to axes and bins + if isinstance(bins, dict): + axes = [] + bins_ = [] + for k, v in bins.items(): + axes.append(k) + bins_.append(v) + bins = bins_ + + # if bins provided as single int, apply to all dimensions + if isinstance(bins, (int, np.int64)): + bins = [bins] * len(axes) + + # Check that we have a sequence of bins now + if not isinstance(bins, Sequence): + raise TypeError(f"Cannot interpret bins of type {type(bins)}") + + # check that we have axes + if axes is None: + raise AttributeError("Must define on which axes to bin") + + # check that axes is a sequence + if not isinstance(axes, Sequence): + raise TypeError(f"Cannot interpret axes of type {type(axes)}") + + # check that all elements of axes are str + if not all(isinstance(axis, str) for axis in axes): + raise TypeError("Axes has to contain only strings!") + + # we got tuples as bins, expand to bins and ranges + if all(isinstance(x, tuple) for x in bins): + bins = cast(Sequence[tuple], bins) + assert len(bins[0]) == 3, "Tuples as bins need to have format (start, end, num_bins)." + ranges = [] + bins_ = [] + for tpl in bins: + assert isinstance(tpl, tuple) + ranges.append((tpl[0], tpl[1])) + bins_.append(tpl[2]) + bins = bins_ + + # if bins are provided as int, check that ranges are present + if all(isinstance(x, (int, np.int64)) for x in bins): + bins = cast(List[int], list(bins)) + if ranges is None: + raise AttributeError( + "Must provide a range if bins is an integer or list of integers", + ) + if not isinstance(ranges, Sequence): + raise AttributeError( + f"Ranges must be a sequence, not {type(ranges)}.", + ) + + # otherwise, all bins should by np.ndarrays here + elif all(isinstance(x, np.ndarray) for x in bins): + bins = cast(List[np.ndarray], list(bins)) + else: + raise TypeError(f"Could not interpret bins of type {type(bins)}") + + # check that number of bins and number of axes is the same. + if len(axes) != len(bins): + raise AttributeError( + "axes and bins must have the same number of elements", + ) + + return bins, list(axes), list(ranges) if ranges else None
    + + + +
    +[docs] +def bin_edges_to_bin_centers(bin_edges: np.ndarray) -> np.ndarray: + """Converts a list of bin edges into corresponding bin centers + + Args: + bin_edges: 1d array of bin edges + + Returns: + bin_centers: 1d array of bin centers + """ + bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 + + return bin_centers
    + + + +
    +[docs] +def bin_centers_to_bin_edges(bin_centers: np.ndarray) -> np.ndarray: + """Converts a list of bin centers into corresponding bin edges + + Args: + bin_centers: 1d array of bin centers + + Returns: + bin_edges: 1d array of bin edges + """ + bin_edges = (bin_centers[1:] + bin_centers[:-1]) / 2 + + bin_edges = np.insert( + bin_edges, + 0, + bin_centers[0] - (bin_centers[1] - bin_centers[0]) / 2, + ) + bin_edges = np.append( + bin_edges, + bin_centers[len(bin_centers) - 1] + + (bin_centers[len(bin_centers) - 1] - bin_centers[len(bin_centers) - 2]) / 2, + ) + + return bin_edges
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/calibrator/delay.html b/sed/v0.1.9/_modules/sed/calibrator/delay.html new file mode 100644 index 0000000..3932b3f --- /dev/null +++ b/sed/v0.1.9/_modules/sed/calibrator/delay.html @@ -0,0 +1,957 @@ + + + + + + + + + + sed.calibrator.delay — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.calibrator.delay

    +"""sed.calibrator.delay module. Code for delay calibration.
    +"""
    +from copy import deepcopy
    +from datetime import datetime
    +from typing import Any
    +from typing import Dict
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import dask.dataframe
    +import h5py
    +import numpy as np
    +import pandas as pd
    +
    +from sed.core import dfops
    +
    +
    +
    +[docs] +class DelayCalibrator: + """ + Pump-Probe delay calibration methods. + Initialization of the DelayCalibrator class passes the config. + + Args: + config (dict, optional): Config dictionary. Defaults to None. + """ + + def __init__( + self, + config: dict = None, + ) -> None: + """Initialization of the DelayCalibrator class passes the config. + + Args: + config (dict, optional): Config dictionary. Defaults to None. + """ + if config is not None: + self._config = config + else: + self._config = {} + + self.adc_column: str = self._config["dataframe"].get("adc_column", None) + self.delay_column: str = self._config["dataframe"]["delay_column"] + self.corrected_delay_column = self._config["dataframe"].get( + "corrected_delay_column", + self.delay_column, + ) + self.calibration: Dict[str, Any] = self._config["delay"].get("calibration", {}) + self.offsets: Dict[str, Any] = self._config["delay"].get("offsets", {}) + +
    +[docs] + def append_delay_axis( + self, + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + adc_column: str = None, + delay_column: str = None, + calibration: Dict[str, Any] = None, + adc_range: Union[Tuple, List, np.ndarray] = None, + delay_range: Union[Tuple, List, np.ndarray] = None, + time0: float = None, + delay_range_mm: Union[Tuple, List, np.ndarray] = None, + datafile: str = None, + p1_key: str = None, + p2_key: str = None, + t0_key: str = None, + verbose: bool = True, + ) -> Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: + """Calculate and append the delay axis to the events dataframe, by converting + values from an analog-digital-converter (ADC). + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): The dataframe where + to apply the delay calibration to. + adc_column (str, optional): Source column for delay calibration. + Defaults to config["dataframe"]["adc_column"]. + delay_column (str, optional): Destination column for delay calibration. + Defaults to config["dataframe"]["delay_column"]. + calibration (dict, optional): Calibration dictionary with parameters for + delay calibration. + adc_range (Union[Tuple, List, np.ndarray], optional): The range of used + ADC values. Defaults to config["delay"]["adc_range"]. + delay_range (Union[Tuple, List, np.ndarray], optional): Range of scanned + delay values in ps. If omitted, the range is calculated from the + delay_range_mm and t0 values. + time0 (float, optional): Pump-Probe overlap value of the delay coordinate. + If omitted, it is searched for in the data files. + delay_range_mm (Union[Tuple, List, np.ndarray], optional): Range of scanned + delay stage in mm. If omitted, it is searched for in the data files. + datafile (str, optional): Datafile in which delay parameters are searched + for. Defaults to None. + p1_key (str, optional): hdf5 key for delay_range_mm start value. + Defaults to config["delay"]["p1_key"] + p2_key (str, optional): hdf5 key for delay_range_mm end value. + Defaults to config["delay"]["p2_key"] + t0_key (str, optional): hdf5 key for t0 value (mm). + Defaults to config["delay"]["t0_key"] + verbose (bool, optional): Option to print out diagnostic information. + Defaults to True. + + Raises: + ValueError: Raised if delay parameters are not found in the file. + NotImplementedError: Raised if no sufficient information passed. + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: dataframe with added column + and delay calibration metdata dictionary. + """ + # pylint: disable=duplicate-code + if calibration is None: + calibration = deepcopy(self.calibration) + + if ( + adc_range is not None + or delay_range is not None + or time0 is not None + or delay_range_mm is not None + or datafile is not None + ): + calibration = {} + calibration["creation_date"] = datetime.now().timestamp() + if adc_range is not None: + calibration["adc_range"] = adc_range + if delay_range is not None: + calibration["delay_range"] = delay_range + if time0 is not None: + calibration["time0"] = time0 + if delay_range_mm is not None: + calibration["delay_range_mm"] = delay_range_mm + else: + # report usage of loaded parameters + if "creation_date" in calibration and verbose: + datestring = datetime.fromtimestamp(calibration["creation_date"]).strftime( + "%m/%d/%Y, %H:%M:%S", + ) + print(f"Using delay calibration parameters generated on {datestring}") + + if adc_column is None: + adc_column = self.adc_column + if delay_column is None: + delay_column = self.delay_column + if p1_key is None: + p1_key = self._config["delay"].get("p1_key", "") + if p2_key is None: + p2_key = self._config["delay"].get("p2_key", "") + if t0_key is None: + t0_key = self._config["delay"].get("t0_key", "") + + if "adc_range" not in calibration.keys(): + calibration["adc_range"] = np.asarray( + self._config["delay"]["adc_range"], + ) / 2 ** (self._config["dataframe"]["adc_binning"] - 1) + + if "delay_range" not in calibration.keys(): + if "delay_range_mm" not in calibration.keys() or "time0" not in calibration.keys(): + if datafile is not None and p1_key and p2_key and t0_key: + try: + ret = extract_delay_stage_parameters( + datafile, + p1_key, + p2_key, + t0_key, + ) + except KeyError as exc: + raise ValueError( + "Delay stage values not found in file", + ) from exc + calibration["datafile"] = datafile + calibration["delay_range_mm"] = (ret[0], ret[1]) + calibration["time0"] = ret[2] + if verbose: + print(f"Extract delay range from file '{datafile}'.") + else: + raise NotImplementedError( + "Not enough parameters for delay calibration.", + ) + + calibration["delay_range"] = np.asarray( + mm_to_ps( + np.asarray(calibration["delay_range_mm"]), + calibration["time0"], + ), + ) + if verbose: + print(f"Converted delay_range (ps) = {calibration['delay_range']}") + calibration["creation_date"] = datetime.now().timestamp() + + if "delay_range" in calibration.keys(): + df[delay_column] = calibration["delay_range"][0] + ( + df[adc_column] - calibration["adc_range"][0] + ) * (calibration["delay_range"][1] - calibration["delay_range"][0]) / ( + calibration["adc_range"][1] - calibration["adc_range"][0] + ) + self.calibration = deepcopy(calibration) + if verbose: + print( + "Append delay axis using delay_range = " + f"[{calibration['delay_range'][0]}, {calibration['delay_range'][1]}]" + " and adc_range = " + f"[{calibration['adc_range'][0]}, {calibration['adc_range'][1]}]", + ) + else: + raise NotImplementedError + + metadata = {"calibration": calibration} + return df, metadata
    + + +
    +[docs] + def add_offsets( + self, + df: dask.dataframe.DataFrame, + offsets: Dict[str, Any] = None, + constant: float = None, + flip_delay_axis: bool = None, + columns: Union[str, Sequence[str]] = None, + weights: Union[float, Sequence[float]] = 1.0, + preserve_mean: Union[bool, Sequence[bool]] = False, + reductions: Union[str, Sequence[str]] = None, + delay_column: str = None, + verbose: bool = True, + ) -> Tuple[dask.dataframe.DataFrame, dict]: + """Apply an offset to the delay column based on a constant or other columns. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + offsets (Dict, optional): Dictionary of delay offset parameters. + constant (float, optional): The constant to shift the delay axis by. + flip_delay_axis (bool, optional): Whether to flip the time axis. Defaults to False. + columns (Union[str, Sequence[str]]): Name of the column(s) to apply the shift from. + weights (Union[int, Sequence[int]]): weights to apply to the columns. + Can also be used to flip the sign (e.g. -1). Defaults to 1. + preserve_mean (bool): Whether to subtract the mean of the column before applying the + shift. Defaults to False. + reductions (str): The reduction to apply to the column. Should be an available method + of dask.dataframe.Series. For example "mean". In this case the function is applied + to the column to generate a single value for the whole dataset. If None, the shift + is applied per-dataframe-row. Defaults to None. Currently only "mean" is supported. + delay_column (str, optional): Name of the column containing the delay values. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to True. + + Returns: + dask.dataframe.DataFrame: Dataframe with the shifted delay axis. + dict: Metadata dictionary. + """ + if offsets is None: + offsets = deepcopy(self.offsets) + + if delay_column is None: + delay_column = self.delay_column + + metadata: Dict[str, Any] = { + "applied": True, + } + + if columns is not None or constant is not None or flip_delay_axis: + # pylint:disable=duplicate-code + # use passed parameters, overwrite config + offsets = {} + offsets["creation_date"] = datetime.now().timestamp() + # column-based offsets + if columns is not None: + if weights is None: + weights = 1 + if isinstance(weights, (int, float, np.integer, np.floating)): + weights = [weights] + if len(weights) == 1: + weights = [weights[0]] * len(columns) + if not isinstance(weights, Sequence): + raise TypeError( + f"Invalid type for weights: {type(weights)}. Must be a number or sequence", + ) + if not all(isinstance(s, (int, float, np.integer, np.floating)) for s in weights): + raise TypeError( + f"Invalid type for weights: {type(weights)}. Must be a number or sequence", + ) + + if isinstance(columns, str): + columns = [columns] + if isinstance(preserve_mean, bool): + preserve_mean = [preserve_mean] * len(columns) + if not isinstance(reductions, Sequence): + reductions = [reductions] + if len(reductions) == 1: + reductions = [reductions[0]] * len(columns) + + # store in offsets dictionary + for col, weight, pmean, red in zip(columns, weights, preserve_mean, reductions): + offsets[col] = { + "weight": weight, + "preserve_mean": pmean, + "reduction": red, + } + + # constant offset + if isinstance(constant, (int, float, np.integer, np.floating)): + offsets["constant"] = constant + elif constant is not None: + raise TypeError(f"Invalid type for constant: {type(constant)}") + # flip the time direction + if flip_delay_axis: + offsets["flip_delay_axis"] = flip_delay_axis + + elif "creation_date" in offsets and verbose: + datestring = datetime.fromtimestamp(offsets["creation_date"]).strftime( + "%m/%d/%Y, %H:%M:%S", + ) + print(f"Using delay offset parameters generated on {datestring}") + + if len(offsets) > 0: + # unpack dictionary + columns = [] + weights = [] + preserve_mean = [] + reductions = [] + if verbose: + print("Delay offset parameters:") + for k, v in offsets.items(): + if k == "creation_date": + continue + if k == "constant": + constant = v + if verbose: + print(f" Constant: {constant} ") + elif k == "flip_delay_axis": + fda = str(v) + if fda.lower() in ["true", "1"]: + flip_delay_axis = True + elif fda.lower() in ["false", "0"]: + flip_delay_axis = False + else: + raise ValueError( + f"Invalid value for flip_delay_axis in config: {flip_delay_axis}.", + ) + if verbose: + print(f" Flip delay axis: {flip_delay_axis} ") + else: + columns.append(k) + try: + weight = v["weight"] + except KeyError: + weight = 1 + weights.append(weight) + pm = v.get("preserve_mean", False) + preserve_mean.append(pm) + red = v.get("reduction", None) + reductions.append(red) + if verbose: + print( + f" Column[{k}]: Weight={weight}, Preserve Mean: {pm}, ", + f"Reductions: {red}.", + ) + + if len(columns) > 0: + df = dfops.offset_by_other_columns( + df=df, + target_column=delay_column, + offset_columns=columns, + weights=weights, + preserve_mean=preserve_mean, + reductions=reductions, + ) + + if constant: + df[delay_column] = df.map_partitions( + lambda x: x[delay_column] + constant, + meta=(delay_column, np.float64), + ) + + if flip_delay_axis: + df[delay_column] = -df[delay_column] + + self.offsets = offsets + metadata["offsets"] = offsets + + return df, metadata
    +
    + + + +
    +[docs] +def extract_delay_stage_parameters( + file: str, + p1_key: str, + p2_key: str, + t0_key: str, +) -> Tuple: + """ + Read delay stage ranges from hdf5 file + + Parameters: + file (str): filename + p1_key (str): hdf5 path to the start of the scan range + p2_key (str): hdf5 path to the end of the scan range + t0_key (str): hdf5 path to the t0 value + + Returns: + tuple: (p1_value, p2_value, t0_value) + """ + with h5py.File(file, "r") as file_handle: + values = [] + for key in [p1_key, p2_key, t0_key]: + if key[0] == "@": + values.append(file_handle.attrs[key[1:]]) + else: + values.append(file_handle[p1_key]) + + return tuple(values)
    + + + +
    +[docs] +def mm_to_ps( + delay_mm: Union[float, np.ndarray], + time0_mm: float, +) -> Union[float, np.ndarray]: + """Converts a delaystage position in mm into a relative delay in picoseconds + (double pass). + + Args: + delay_mm (Union[float, Sequence[float]]): Delay stage position in mm + time0_mm (float): Delay stage position of pump-probe overlap in mm + + Returns: + Union[float, Sequence[float]]: Relative delay in picoseconds + """ + delay_ps = (delay_mm - time0_mm) / 0.15 + return delay_ps
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/calibrator/energy.html b/sed/v0.1.9/_modules/sed/calibrator/energy.html new file mode 100644 index 0000000..4fd64ea --- /dev/null +++ b/sed/v0.1.9/_modules/sed/calibrator/energy.html @@ -0,0 +1,3030 @@ + + + + + + + + + + sed.calibrator.energy — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.calibrator.energy

    +"""sed.calibrator.energy module. Code for energy calibration and
    +correction. Mostly ported from https://github.com/mpes-kit/mpes.
    +"""
    +import itertools as it
    +import warnings as wn
    +from copy import deepcopy
    +from datetime import datetime
    +from functools import partial
    +from typing import Any
    +from typing import cast
    +from typing import Dict
    +from typing import List
    +from typing import Literal
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import bokeh.plotting as pbk
    +import dask.dataframe
    +import h5py
    +import ipywidgets as ipw
    +import matplotlib
    +import matplotlib.pyplot as plt
    +import numpy as np
    +import pandas as pd
    +import psutil
    +import xarray as xr
    +from bokeh.io import output_notebook
    +from bokeh.palettes import Category10 as ColorCycle
    +from fastdtw import fastdtw
    +from IPython.display import display
    +from lmfit import Minimizer
    +from lmfit import Parameters
    +from lmfit.printfuncs import report_fit
    +from numpy.linalg import lstsq
    +from scipy.signal import savgol_filter
    +from scipy.sparse.linalg import lsqr
    +
    +from sed.binning import bin_dataframe
    +from sed.core import dfops
    +from sed.loader.base.loader import BaseLoader
    +
    +
    +
    +[docs] +class EnergyCalibrator: + """Electron binding energy calibration workflow. + + For the initialization of the EnergyCalibrator class an instance of a + loader is required. The data can be loaded using the optional arguments, + or using the load_data method or bin_data method. + + Args: + loader (BaseLoader): Instance of a loader, subclassed from BaseLoader. + biases (np.ndarray, optional): Bias voltages used. Defaults to None. + traces (np.ndarray, optional): TOF-Data traces corresponding to the bias + values. Defaults to None. + tof (np.ndarray, optional): TOF-values for the data traces. + Defaults to None. + config (dict, optional): Config dictionary. Defaults to None. + """ + + def __init__( + self, + loader: BaseLoader, + biases: np.ndarray = None, + traces: np.ndarray = None, + tof: np.ndarray = None, + config: dict = None, + ): + """For the initialization of the EnergyCalibrator class an instance of a + loader is required. The data can be loaded using the optional arguments, + or using the load_data method or bin_data method. + + Args: + loader (BaseLoader): Instance of a loader, subclassed from BaseLoader. + biases (np.ndarray, optional): Bias voltages used. Defaults to None. + traces (np.ndarray, optional): TOF-Data traces corresponding to the bias + values. Defaults to None. + tof (np.ndarray, optional): TOF-values for the data traces. + Defaults to None. + config (dict, optional): Config dictionary. Defaults to None. + """ + self.loader = loader + self.biases: np.ndarray = None + self.traces: np.ndarray = None + self.traces_normed: np.ndarray = None + self.tof: np.ndarray = None + + if traces is not None and tof is not None and biases is not None: + self.load_data(biases=biases, traces=traces, tof=tof) + + if config is None: + config = {} + + self._config = config + + self.featranges: List[Tuple] = [] # Value ranges for feature detection + self.peaks: np.ndarray = np.asarray([]) + self.calibration: Dict[str, Any] = self._config["energy"].get("calibration", {}) + + self.tof_column = self._config["dataframe"]["tof_column"] + self.tof_ns_column = self._config["dataframe"].get("tof_ns_column", None) + self.corrected_tof_column = self._config["dataframe"]["corrected_tof_column"] + self.energy_column = self._config["dataframe"]["energy_column"] + self.x_column = self._config["dataframe"]["x_column"] + self.y_column = self._config["dataframe"]["y_column"] + self.binwidth: float = self._config["dataframe"]["tof_binwidth"] + self.binning: int = self._config["dataframe"]["tof_binning"] + self.x_width = self._config["energy"]["x_width"] + self.y_width = self._config["energy"]["y_width"] + self.tof_width = np.asarray( + self._config["energy"]["tof_width"], + ) / 2 ** (self.binning - 1) + self.tof_fermi = self._config["energy"]["tof_fermi"] / 2 ** (self.binning - 1) + self.color_clip = self._config["energy"]["color_clip"] + self.sector_delays = self._config["dataframe"].get("sector_delays", None) + self.sector_id_column = self._config["dataframe"].get("sector_id_column", None) + self.offsets: Dict[str, Any] = self._config["energy"].get("offsets", {}) + self.correction: Dict[str, Any] = self._config["energy"].get("correction", {}) + + @property + def ntraces(self) -> int: + """Property returning the number of traces. + + Returns: + int: The number of loaded/calculated traces. + """ + return len(self.traces) + + @property + def nranges(self) -> int: + """Property returning the number of specified feature ranges which Can be a + multiple of ntraces. + + Returns: + int: The number of specified feature ranges. + """ + return len(self.featranges) + + @property + def dup(self) -> int: + """Property returning the duplication number, i.e. the number of feature + ranges per trace. + + Returns: + int: The duplication number. + """ + return int(np.round(self.nranges / self.ntraces)) + +
    +[docs] + def load_data( + self, + biases: np.ndarray = None, + traces: np.ndarray = None, + tof: np.ndarray = None, + ): + """Load data into the class. Not provided parameters will be overwritten by + empty arrays. + + Args: + biases (np.ndarray, optional): Bias voltages used. Defaults to None. + traces (np.ndarray, optional): TOF-Data traces corresponding to the bias + values. Defaults to None. + tof (np.ndarray, optional): TOF-values for the data traces. + Defaults to None. + """ + if biases is not None: + self.biases = biases + else: + self.biases = np.asarray([]) + if tof is not None: + self.tof = tof + else: + self.tof = np.asarray([]) + if traces is not None: + self.traces = self.traces_normed = traces + else: + self.traces = self.traces_normed = np.asarray([])
    + + +
    +[docs] + def bin_data( + self, + data_files: List[str], + axes: List[str] = None, + bins: List[int] = None, + ranges: Sequence[Tuple[float, float]] = None, + biases: np.ndarray = None, + bias_key: str = None, + **kwds, + ): + """Bin data from single-event files, and load into class. + + Args: + data_files (List[str]): list of file names to bin + axes (List[str], optional): bin axes. Defaults to + config["dataframe"]["tof_column"]. + bins (List[int], optional): number of bins. + Defaults to config["energy"]["bins"]. + ranges (Sequence[Tuple[float, float]], optional): bin ranges. + Defaults to config["energy"]["ranges"]. + biases (np.ndarray, optional): Bias voltages used. + If not provided, biases are extracted from the file meta data. + bias_key (str, optional): hdf5 path where bias values are stored. + Defaults to config["energy"]["bias_key"]. + **kwds: Keyword parameters for bin_dataframe + """ + if axes is None: + axes = [self.tof_column] + if bins is None: + bins = [self._config["energy"]["bins"]] + if ranges is None: + ranges_ = [ + np.array(self._config["energy"]["ranges"]) / 2 ** (self.binning - 1), + ] + ranges = [cast(Tuple[float, float], tuple(v)) for v in ranges_] + # pylint: disable=duplicate-code + hist_mode = kwds.pop("hist_mode", self._config["binning"]["hist_mode"]) + mode = kwds.pop("mode", self._config["binning"]["mode"]) + pbar = kwds.pop("pbar", self._config["binning"]["pbar"]) + try: + num_cores = kwds.pop("num_cores", self._config["binning"]["num_cores"]) + except KeyError: + num_cores = psutil.cpu_count() - 1 + threads_per_worker = kwds.pop( + "threads_per_worker", + self._config["binning"]["threads_per_worker"], + ) + threadpool_api = kwds.pop( + "threadpool_API", + self._config["binning"]["threadpool_API"], + ) + + read_biases = False + if biases is None: + read_biases = True + if bias_key is None: + try: + bias_key = self._config["energy"]["bias_key"] + except KeyError as exc: + raise ValueError( + "Either Bias Values or a valid bias_key has to be present!", + ) from exc + + dataframe, _, _ = self.loader.read_dataframe( + files=data_files, + collect_metadata=False, + ) + traces = bin_dataframe( + dataframe, + bins=bins, + axes=axes, + ranges=ranges, + hist_mode=hist_mode, + mode=mode, + pbar=pbar, + n_cores=num_cores, + threads_per_worker=threads_per_worker, + threadpool_api=threadpool_api, + return_partitions=True, + **kwds, + ) + if read_biases: + if bias_key: + try: + biases = extract_bias(data_files, bias_key) + except KeyError as exc: + raise ValueError( + "Either Bias Values or a valid bias_key has to be present!", + ) from exc + tof = traces.coords[(axes[0])] + self.traces = self.traces_normed = np.asarray(traces.T) + self.tof = np.asarray(tof) + self.biases = np.asarray(biases)
    + + +
    +[docs] + def normalize(self, smooth: bool = False, span: int = 7, order: int = 1): + """Normalize the spectra along an axis. + + Args: + smooth (bool, optional): Option to smooth the signals before normalization. + Defaults to False. + span (int, optional): span smoothing parameters of the LOESS method + (see ``scipy.signal.savgol_filter()``). Defaults to 7. + order (int, optional): order smoothing parameters of the LOESS method + (see ``scipy.signal.savgol_filter()``). Defaults to 1. + """ + self.traces_normed = normspec( + self.traces, + smooth=smooth, + span=span, + order=order, + )
    + + +
    +[docs] + def adjust_ranges( + self, + ranges: Tuple, + ref_id: int = 0, + traces: np.ndarray = None, + peak_window: int = 7, + apply: bool = False, + **kwds, + ): + """Display a tool to select or extract the equivalent feature ranges + (containing the peaks) among all traces. + + Args: + ranges (Tuple): + Collection of feature detection ranges, within which an algorithm + (i.e. 1D peak detector) with look for the feature. + ref_id (int, optional): Index of the reference trace. Defaults to 0. + traces (np.ndarray, optional): Collection of energy dispersion curves. + Defaults to self.traces_normed. + peak_window (int, optional): area around a peak to check for other peaks. + Defaults to 7. + apply (bool, optional): Option to directly apply the provided parameters. + Defaults to False. + **kwds: + keyword arguments for trace alignment (see ``find_correspondence()``). + """ + if traces is None: + traces = self.traces_normed + + self.add_ranges( + ranges=ranges, + ref_id=ref_id, + traces=traces, + infer_others=True, + mode="replace", + ) + self.feature_extract(peak_window=peak_window) + + # make plot + labels = kwds.pop("labels", [str(b) + " V" for b in self.biases]) + figsize = kwds.pop("figsize", (8, 4)) + plot_segs = [] + plot_peaks = [] + fig, ax = plt.subplots(figsize=figsize) + colors = plt.get_cmap("rainbow")(np.linspace(0, 1, len(traces))) + for itr, color in zip(range(len(traces)), colors): + trace = traces[itr, :] + # main traces + ax.plot( + self.tof, + trace, + ls="-", + color=color, + linewidth=1, + label=labels[itr], + ) + # segments: + seg = self.featranges[itr] + cond = (self.tof >= seg[0]) & (self.tof <= seg[1]) + tofseg, traceseg = self.tof[cond], trace[cond] + (line,) = ax.plot( + tofseg, + traceseg, + ls="-", + color=color, + linewidth=3, + ) + plot_segs.append(line) + # markers + (scatt,) = ax.plot( + self.peaks[itr, 0], + self.peaks[itr, 1], + ls="", + marker=".", + color="k", + markersize=10, + ) + plot_peaks.append(scatt) + ax.legend(fontsize=8, loc="upper right") + ax.set_title("") + + def update(refid, ranges): + self.add_ranges(ranges, refid, traces=traces) + self.feature_extract(peak_window=7) + for itr, _ in enumerate(self.traces_normed): + seg = self.featranges[itr] + cond = (self.tof >= seg[0]) & (self.tof <= seg[1]) + tofseg, traceseg = ( + self.tof[cond], + self.traces_normed[itr][cond], + ) + plot_segs[itr].set_ydata(traceseg) + plot_segs[itr].set_xdata(tofseg) + + plot_peaks[itr].set_xdata(self.peaks[itr, 0]) + plot_peaks[itr].set_ydata(self.peaks[itr, 1]) + + fig.canvas.draw_idle() + + refid_slider = ipw.IntSlider( + value=ref_id, + min=0, + max=10, + step=1, + ) + + ranges_slider = ipw.IntRangeSlider( + value=list(ranges), + min=min(self.tof), + max=max(self.tof), + step=1, + ) + + update(ranges=ranges, refid=ref_id) + + ipw.interact( + update, + refid=refid_slider, + ranges=ranges_slider, + ) + + def apply_func(apply: bool): # noqa: ARG001 + self.add_ranges( + ranges_slider.value, + refid_slider.value, + traces=self.traces_normed, + ) + self.feature_extract(peak_window=7) + ranges_slider.close() + refid_slider.close() + apply_button.close() + + apply_button = ipw.Button(description="apply") + display(apply_button) # pylint: disable=duplicate-code + apply_button.on_click(apply_func) + plt.show() + + if apply: + apply_func(True)
    + + +
    +[docs] + def add_ranges( + self, + ranges: Union[List[Tuple], Tuple], + ref_id: int = 0, + traces: np.ndarray = None, + infer_others: bool = True, + mode: str = "replace", + **kwds, + ): + """Select or extract the equivalent feature ranges (containing the peaks) among all traces. + + Args: + ranges (Union[List[Tuple], Tuple]): + Collection of feature detection ranges, within which an algorithm + (i.e. 1D peak detector) with look for the feature. + ref_id (int, optional): Index of the reference trace. Defaults to 0. + traces (np.ndarray, optional): Collection of energy dispersion curves. + Defaults to self.traces_normed. + infer_others (bool, optional): Option to infer the feature detection range + in other traces from a given one using a time warp algorthm. + Defaults to True. + mode (str, optional): Specification on how to change the feature ranges + ('append' or 'replace'). Defaults to "replace". + **kwds: + keyword arguments for trace alignment (see ``find_correspondence()``). + """ + if traces is None: + traces = self.traces_normed + + # Infer the corresponding feature detection range of other traces by alignment + if infer_others: + assert isinstance(ranges, tuple) + newranges: List[Tuple] = [] + + for i in range(self.ntraces): + pathcorr = find_correspondence( + traces[ref_id, :], + traces[i, :], + **kwds, + ) + newranges.append(range_convert(self.tof, ranges, pathcorr)) + + else: + if isinstance(ranges, list): + newranges = ranges + else: + newranges = [ranges] + + if mode == "append": + self.featranges += newranges + elif mode == "replace": + self.featranges = newranges
    + + +
    +[docs] + def feature_extract( + self, + ranges: List[Tuple] = None, + traces: np.ndarray = None, + peak_window: int = 7, + ): + """Select or extract the equivalent landmarks (e.g. peaks) among all traces. + + Args: + ranges (List[Tuple], optional): List of ranges in each trace to look for + the peak feature, [start, end]. Defaults to self.featranges. + traces (np.ndarray, optional): Collection of 1D spectra to use for + calibration. Defaults to self.traces_normed. + peak_window (int, optional): area around a peak to check for other peaks. + Defaults to 7. + """ + if ranges is None: + ranges = self.featranges + + if traces is None: + traces = self.traces_normed + + # Augment the content of the calibration data + traces_aug = np.tile(traces, (self.dup, 1)) + # Run peak detection for each trace within the specified ranges + self.peaks = peaksearch( + traces_aug, + self.tof, + ranges=ranges, + pkwindow=peak_window, + )
    + + +
    +[docs] + def calibrate( + self, + ref_id: int = 0, + method: str = "lmfit", + energy_scale: str = "kinetic", + landmarks: np.ndarray = None, + biases: np.ndarray = None, + t: np.ndarray = None, + verbose: bool = True, + **kwds, + ) -> dict: + """Calculate the functional mapping between time-of-flight and the energy + scale using optimization methods. + + Args: + ref_id (int, optional): The reference trace index (an integer). + Defaults to 0. + method (str, optional): Method for determining the energy calibration. + + - **'lmfit'**: Energy calibration using lmfit and 1/t^2 form. + - **'lstsq'**, **'lsqr'**: Energy calibration using polynomial form. + + Defaults to 'lmfit'. + energy_scale (str, optional): Direction of increasing energy scale. + + - **'kinetic'**: increasing energy with decreasing TOF. + - **'binding'**: increasing energy with increasing TOF. + + Defaults to "kinetic". + landmarks (np.ndarray, optional): Extracted peak positions (TOF) used for + calibration. Defaults to self.peaks. + biases (np.ndarray, optional): Bias values. Defaults to self.biases. + t (np.ndarray, optional): TOF values. Defaults to self.tof. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to True. + **kwds: keyword arguments. + See available keywords for ``poly_energy_calibration()`` and + ``fit_energy_calibration()`` + + Raises: + ValueError: Raised if invalid 'energy_scale' is passed. + NotImplementedError: Raised if invalid 'method' is passed. + + Returns: + dict: Calibration dictionary with coefficients. + """ + if landmarks is None: + landmarks = self.peaks[:, 0] + if biases is None: + biases = self.biases + if t is None: + t = self.tof + if energy_scale == "kinetic": + sign = -1 + elif energy_scale == "binding": + sign = 1 + else: + raise ValueError( + 'energy_scale needs to be either "binding" or "kinetic"', + f", got {energy_scale}.", + ) + + binwidth = kwds.pop("binwidth", self.binwidth) + binning = kwds.pop("binning", self.binning) + + if method == "lmfit": + self.calibration = fit_energy_calibration( + landmarks, + sign * biases, + binwidth, + binning, + ref_id=ref_id, + t=t, + energy_scale=energy_scale, + verbose=verbose, + **kwds, + ) + elif method in ("lstsq", "lsqr"): + self.calibration = poly_energy_calibration( + landmarks, + sign * biases, + ref_id=ref_id, + aug=self.dup, + method=method, + t=t, + energy_scale=energy_scale, + **kwds, + ) + else: + raise NotImplementedError() + + self.calibration["creation_date"] = datetime.now().timestamp() + return self.calibration
    + + +
    +[docs] + def view( # pylint: disable=dangerous-default-value + self, + traces: np.ndarray, + segs: List[Tuple] = None, + peaks: np.ndarray = None, + show_legend: bool = True, + backend: str = "matplotlib", + linekwds: dict = {}, + linesegkwds: dict = {}, + scatterkwds: dict = {}, + legkwds: dict = {}, + **kwds, + ): + """Display a plot showing line traces with annotation. + + Args: + traces (np.ndarray): Matrix of traces to visualize. + segs (List[Tuple], optional): Segments to be highlighted in the + visualization. Defaults to None. + peaks (np.ndarray, optional): Peak positions for labelling the traces. + Defaults to None. + show_legend (bool, optional): Option to display bias voltages as legends. + Defaults to True. + backend (str, optional): Backend specification, choose between 'matplotlib' + (static) or 'bokeh' (interactive). Defaults to "matplotlib". + linekwds (dict, optional): Keyword arguments for line plotting + (see ``matplotlib.pyplot.plot()``). Defaults to {}. + linesegkwds (dict, optional): Keyword arguments for line segments plotting + (see ``matplotlib.pyplot.plot()``). Defaults to {}. + scatterkwds (dict, optional): Keyword arguments for scatter plot + (see ``matplotlib.pyplot.scatter()``). Defaults to {}. + legkwds (dict, optional): Keyword arguments for legend + (see ``matplotlib.pyplot.legend()``). Defaults to {}. + **kwds: keyword arguments: + + - **labels** (list): Labels for each curve + - **xaxis** (np.ndarray): x (horizontal) axis values + - **title** (str): Title of the plot + - **legend_location** (str): Location of the plot legend + - **align** (bool): Option to shift traces by bias voltage + """ + lbs = kwds.pop("labels", [str(b) + " V" for b in self.biases]) + xaxis = kwds.pop("xaxis", self.tof) + ttl = kwds.pop("title", "") + align = kwds.pop("align", False) + energy_scale = kwds.pop("energy_scale", "kinetic") + + sign = 1 if energy_scale == "kinetic" else -1 + + if backend == "matplotlib": + figsize = kwds.pop("figsize", (12, 4)) + fig, ax = plt.subplots(figsize=figsize) + for itr, trace in enumerate(traces): + if align: + ax.plot( + xaxis + sign * (self.biases[itr] - self.biases[self.calibration["refid"]]), + trace, + ls="-", + linewidth=1, + label=lbs[itr], + **linekwds, + ) + else: + ax.plot( + xaxis, + trace, + ls="-", + linewidth=1, + label=lbs[itr], + **linekwds, + ) + + # Emphasize selected EDC segments + if segs is not None: + seg = segs[itr] + cond = (self.tof >= seg[0]) & (self.tof <= seg[1]) + tofseg, traceseg = self.tof[cond], trace[cond] + ax.plot( + tofseg, + traceseg, + ls="-", + linewidth=2, + **linesegkwds, + ) + # Emphasize extracted local maxima + if peaks is not None: + ax.scatter( + peaks[itr, 0], + peaks[itr, 1], + s=30, + **scatterkwds, + ) + + if show_legend: + try: + ax.legend(fontsize=12, **legkwds) + except TypeError: + pass + + ax.set_title(ttl) + + elif backend == "bokeh": + output_notebook(hide_banner=True) + colors = it.cycle(ColorCycle[10]) + ttp = [("(x, y)", "($x, $y)")] + + figsize = kwds.pop("figsize", (800, 300)) + fig = pbk.figure( + title=ttl, + width=figsize[0], + height=figsize[1], + tooltips=ttp, + ) + # Plotting the main traces + for itr, color in zip(range(len(traces)), colors): + trace = traces[itr, :] + if align: + fig.line( + xaxis + sign * (self.biases[itr] - self.biases[self.calibration["refid"]]), + trace, + color=color, + line_dash="solid", + line_width=1, + line_alpha=1, + legend_label=lbs[itr], + **kwds, + ) + else: + fig.line( + xaxis, + trace, + color=color, + line_dash="solid", + line_width=1, + line_alpha=1, + legend_label=lbs[itr], + **kwds, + ) + + # Emphasize selected EDC segments + if segs is not None: + seg = segs[itr] + cond = (self.tof >= seg[0]) & (self.tof <= seg[1]) + tofseg, traceseg = self.tof[cond], trace[cond] + fig.line( + tofseg, + traceseg, + color=color, + line_width=3, + **linekwds, + ) + + # Plot detected peaks + if peaks is not None: + fig.scatter( + peaks[itr, 0], + peaks[itr, 1], + fill_color=color, + fill_alpha=0.8, + line_color=None, + size=5, + **scatterkwds, + ) + + if show_legend: + fig.legend.location = kwds.pop("legend_location", "top_right") + fig.legend.spacing = 0 + fig.legend.padding = 2 + + pbk.show(fig)
    + + +
    +[docs] + def append_energy_axis( + self, + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + tof_column: str = None, + energy_column: str = None, + calibration: dict = None, + verbose: bool = True, + **kwds, + ) -> Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: + """Calculate and append the energy axis to the events dataframe. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): + Dataframe to apply the energy axis calibration to. + tof_column (str, optional): Label of the source column. + Defaults to config["dataframe"]["tof_column"]. + energy_column (str, optional): Label of the destination column. + Defaults to config["dataframe"]["energy_column"]. + calibration (dict, optional): Calibration dictionary. If provided, + overrides calibration from class or config. + Defaults to self.calibration or config["energy"]["calibration"]. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to True. + **kwds: additional keyword arguments for the energy conversion. They are + added to the calibration dictionary. + + Raises: + ValueError: Raised if expected calibration parameters are missing. + NotImplementedError: Raised if an invalid calib_type is found. + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: dataframe with added column + and energy calibration metadata dictionary. + """ + if tof_column is None: + if self.corrected_tof_column in df.columns: + tof_column = self.corrected_tof_column + else: + tof_column = self.tof_column + + if energy_column is None: + energy_column = self.energy_column + + binwidth = kwds.pop("binwidth", self.binwidth) + binning = kwds.pop("binning", self.binning) + + # pylint: disable=duplicate-code + if calibration is None: + calibration = deepcopy(self.calibration) + + if len(kwds) > 0: + for key, value in kwds.items(): + calibration[key] = value + calibration["creation_date"] = datetime.now().timestamp() + + elif "creation_date" in calibration and verbose: + datestring = datetime.fromtimestamp(calibration["creation_date"]).strftime( + "%m/%d/%Y, %H:%M:%S", + ) + print(f"Using energy calibration parameters generated on {datestring}") + + # try to determine calibration type if not provided + if "calib_type" not in calibration: + if "t0" in calibration and "d" in calibration and "E0" in calibration: + calibration["calib_type"] = "fit" + if "energy_scale" not in calibration: + calibration["energy_scale"] = "kinetic" + + elif "coeffs" in calibration and "E0" in calibration: + calibration["calib_type"] = "poly" + else: + raise ValueError("No valid calibration parameters provided!") + + if calibration["calib_type"] == "fit": + # Fitting metadata for nexus + calibration["fit_function"] = "(a0/(x0-a1))**2 + a2" + calibration["coefficients"] = np.array( + [ + calibration["d"], + calibration["t0"], + calibration["E0"], + ], + ) + df[energy_column] = tof2ev( + calibration["d"], + calibration["t0"], + binwidth, + binning, + calibration["energy_scale"], + calibration["E0"], + df[tof_column].astype("float64"), + ) + elif calibration["calib_type"] == "poly": + # Fitting metadata for nexus + fit_function = "a0" + for term in range(1, len(calibration["coeffs"]) + 1): + fit_function += f" + a{term}*x0**{term}" + calibration["fit_function"] = fit_function + calibration["coefficients"] = np.concatenate( + (calibration["coeffs"], [calibration["E0"]]), + )[::-1] + df[energy_column] = tof2evpoly( + calibration["coeffs"], + calibration["E0"], + df[tof_column].astype("float64"), + ) + else: + raise NotImplementedError + + metadata = self.gather_calibration_metadata(calibration) + + return df, metadata
    + + +
    +[docs] + def append_tof_ns_axis( + self, + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + tof_column: str = None, + tof_ns_column: str = None, + **kwds, + ) -> Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: + """Converts the time-of-flight time from steps to time in ns. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to convert. + tof_column (str, optional): Name of the column containing the + time-of-flight steps. Defaults to config["dataframe"]["tof_column"]. + tof_ns_column (str, optional): Name of the column to store the + time-of-flight in nanoseconds. Defaults to config["dataframe"]["tof_ns_column"]. + binwidth (float, optional): Time-of-flight binwidth in ns. + Defaults to config["energy"]["tof_binwidth"]. + binning (int, optional): Time-of-flight binning factor. + Defaults to config["energy"]["tof_binning"]. + + Returns: + dask.dataframe.DataFrame: Dataframe with the new columns. + dict: Metadata dictionary. + """ + binwidth = kwds.pop("binwidth", self.binwidth) + binning = kwds.pop("binning", self.binning) + if tof_column is None: + if self.corrected_tof_column in df.columns: + tof_column = self.corrected_tof_column + else: + tof_column = self.tof_column + + if tof_ns_column is None: + tof_ns_column = self.tof_ns_column + + df[tof_ns_column] = tof2ns( + binwidth, + binning, + df[tof_column].astype("float64"), + ) + metadata: Dict[str, Any] = { + "applied": True, + "binwidth": binwidth, + "binning": binning, + } + return df, metadata
    + + +
    +[docs] + def gather_calibration_metadata(self, calibration: dict = None) -> dict: + """Collects metadata from the energy calibration + + Args: + calibration (dict, optional): Dictionary with energy calibration + parameters. Defaults to None. + + Returns: + dict: Generated metadata dictionary. + """ + if calibration is None: + calibration = self.calibration + metadata: Dict[Any, Any] = {} + metadata["applied"] = True + metadata["calibration"] = deepcopy(calibration) + metadata["tof"] = deepcopy(self.tof) + # create empty calibrated axis entry, if it is not present. + if "axis" not in metadata["calibration"]: + metadata["calibration"]["axis"] = 0 + + return metadata
    + + +
    +[docs] + def adjust_energy_correction( + self, + image: xr.DataArray, + correction_type: str = None, + amplitude: float = None, + center: Tuple[float, float] = None, + correction: dict = None, + apply: bool = False, + **kwds, + ): + """Visualize the energy correction function on top of the TOF/X/Y graphs. + + Args: + image (xr.DataArray): Image data cube (x, y, tof) of binned data to plot. + correction_type (str, optional): Type of correction to apply to the TOF + axis. Valid values are: + + - 'spherical' + - 'Lorentzian' + - 'Gaussian' + - 'Lorentzian_asymmetric' + + Defaults to config["energy"]["correction_type"]. + amplitude (float, optional): Amplitude of the time-of-flight correction + term. Defaults to config["energy"]["correction"]["correction_type"]. + center (Tuple[float, float], optional): Center (x/y) coordinates for the + correction. Defaults to config["energy"]["correction"]["center"]. + correction (dict, optional): Correction dict. Defaults to the config values + and is updated from provided and adjusted parameters. + apply (bool, optional): whether to store the provided parameters within + the class. Defaults to False. + **kwds: Additional parameters to use for the adjustment plots: + + - **x_column** (str): Name of the x column. + - **y_column** (str): Name of the y column. + - **tof_column** (str): Name of the tog column to convert. + - **x_width** (int, int): x range to integrate around the center + - **y_width** (int, int): y range to integrate around the center + - **tof_fermi** (int): TOF value of the Fermi level + - **tof_width** (int, int): TOF range to plot around tof_fermi + - **color_clip** (int): highest value to plot in the color range + + Additional parameters for the correction functions: + + - **d** (float): Field-free drift distance. + - **gamma** (float): Linewidth value for correction using a 2D + Lorentz profile. + - **sigma** (float): Standard deviation for correction using a 2D + Gaussian profile. + - **gamma2** (float): Linewidth value for correction using an + asymmetric 2D Lorentz profile, X-direction. + - **amplitude2** (float): Amplitude value for correction using an + asymmetric 2D Lorentz profile, X-direction. + + Raises: + NotImplementedError: Raised for invalid correction_type. + """ + matplotlib.use("module://ipympl.backend_nbagg") + + if correction is None: + correction = deepcopy(self.correction) + + if correction_type is not None: + correction["correction_type"] = correction_type + + if amplitude is not None: + correction["amplitude"] = amplitude + + if center is not None: + correction["center"] = center + + x_column = kwds.pop("x_column", self.x_column) + y_column = kwds.pop("y_column", self.y_column) + tof_column = kwds.pop("tof_column", self.tof_column) + x_width = kwds.pop("x_width", self.x_width) + y_width = kwds.pop("y_width", self.y_width) + tof_fermi = kwds.pop("tof_fermi", self.tof_fermi) + tof_width = kwds.pop("tof_width", self.tof_width) + color_clip = kwds.pop("color_clip", self.color_clip) + + correction = {**correction, **kwds} + + if not {"correction_type", "amplitude", "center"}.issubset(set(correction.keys())): + raise ValueError( + "No valid energy correction found in config and required parameters missing!", + ) + + if isinstance(correction["center"], list): + correction["center"] = tuple(correction["center"]) + + x = image.coords[x_column].values + y = image.coords[y_column].values + + x_center = correction["center"][0] + y_center = correction["center"][1] + + correction_x = tof_fermi - correction_function( + x=x, + y=y_center, + **correction, + ) + correction_y = tof_fermi - correction_function( + x=x_center, + y=y, + **correction, + ) + fig, ax = plt.subplots(2, 1) + image.loc[ + { + y_column: slice(y_center + y_width[0], y_center + y_width[1]), + tof_column: slice( + tof_fermi + tof_width[0], + tof_fermi + tof_width[1], + ), + } + ].sum(dim=y_column).T.plot( + ax=ax[0], + cmap="terrain_r", + vmax=color_clip, + yincrease=False, + ) + image.loc[ + { + x_column: slice(x_center + x_width[0], x_center + x_width[1]), + tof_column: slice( + tof_fermi + tof_width[0], + tof_fermi + tof_width[1], + ), + } + ].sum(dim=x_column).T.plot( + ax=ax[1], + cmap="terrain_r", + vmax=color_clip, + yincrease=False, + ) + (trace1,) = ax[0].plot(x, correction_x) + line1 = ax[0].axvline(x=x_center) + (trace2,) = ax[1].plot(y, correction_y) + line2 = ax[1].axvline(x=y_center) + + amplitude_slider = ipw.FloatSlider( + value=correction["amplitude"], + min=0, + max=10, + step=0.1, + ) + x_center_slider = ipw.FloatSlider( + value=x_center, + min=0, + max=self._config["momentum"]["detector_ranges"][0][1], + step=1, + ) + y_center_slider = ipw.FloatSlider( + value=y_center, + min=0, + max=self._config["momentum"]["detector_ranges"][1][1], + step=1, + ) + + def update(amplitude, x_center, y_center, **kwds): + nonlocal correction + correction["amplitude"] = amplitude + correction["center"] = (x_center, y_center) + correction = {**correction, **kwds} + correction_x = tof_fermi - correction_function( + x=x, + y=y_center, + **correction, + ) + correction_y = tof_fermi - correction_function( + x=x_center, + y=y, + **correction, + ) + + trace1.set_ydata(correction_x) + line1.set_xdata(x=x_center) + trace2.set_ydata(correction_y) + line2.set_xdata(x=y_center) + + fig.canvas.draw_idle() + + def common_apply_func(apply: bool): # noqa: ARG001 + self.correction = {} + self.correction["amplitude"] = correction["amplitude"] + self.correction["center"] = correction["center"] + self.correction["correction_type"] = correction["correction_type"] + self.correction["creation_date"] = datetime.now().timestamp() + amplitude_slider.close() + x_center_slider.close() + y_center_slider.close() + apply_button.close() + + if correction["correction_type"] == "spherical": + try: + update(correction["amplitude"], x_center, y_center, diameter=correction["diameter"]) + except KeyError as exc: + raise ValueError( + "Parameter 'diameter' required for correction type 'sperical', ", + "but not present!", + ) from exc + + diameter_slider = ipw.FloatSlider( + value=correction["diameter"], + min=0, + max=10000, + step=100, + ) + + ipw.interact( + update, + amplitude=amplitude_slider, + x_center=x_center_slider, + y_center=y_center_slider, + diameter=diameter_slider, + ) + + def apply_func(apply: bool): + common_apply_func(apply) + self.correction["diameter"] = correction["diameter"] + diameter_slider.close() + + elif correction["correction_type"] == "Lorentzian": + try: + update(correction["amplitude"], x_center, y_center, gamma=correction["gamma"]) + except KeyError as exc: + raise ValueError( + "Parameter 'gamma' required for correction type 'Lorentzian', but not present!", + ) from exc + + gamma_slider = ipw.FloatSlider( + value=correction["gamma"], + min=0, + max=2000, + step=1, + ) + + ipw.interact( + update, + amplitude=amplitude_slider, + x_center=x_center_slider, + y_center=y_center_slider, + gamma=gamma_slider, + ) + + def apply_func(apply: bool): + common_apply_func(apply) + self.correction["gamma"] = correction["gamma"] + gamma_slider.close() + + elif correction["correction_type"] == "Gaussian": + try: + update(correction["amplitude"], x_center, y_center, sigma=correction["sigma"]) + except KeyError as exc: + raise ValueError( + "Parameter 'sigma' required for correction type 'Gaussian', but not present!", + ) from exc + + sigma_slider = ipw.FloatSlider( + value=correction["sigma"], + min=0, + max=1000, + step=1, + ) + + ipw.interact( + update, + amplitude=amplitude_slider, + x_center=x_center_slider, + y_center=y_center_slider, + sigma=sigma_slider, + ) + + def apply_func(apply: bool): + common_apply_func(apply) + self.correction["sigma"] = correction["sigma"] + sigma_slider.close() + + elif correction["correction_type"] == "Lorentzian_asymmetric": + try: + if "amplitude2" not in correction: + correction["amplitude2"] = correction["amplitude"] + if "sigma2" not in correction: + correction["gamma2"] = correction["gamma"] + update( + correction["amplitude"], + x_center, + y_center, + gamma=correction["gamma"], + amplitude2=correction["amplitude2"], + gamma2=correction["gamma2"], + ) + except KeyError as exc: + raise ValueError( + "Parameter 'gamma' required for correction type 'Lorentzian_asymmetric', ", + "but not present!", + ) from exc + + gamma_slider = ipw.FloatSlider( + value=correction["gamma"], + min=0, + max=2000, + step=1, + ) + + amplitude2_slider = ipw.FloatSlider( + value=correction["amplitude2"], + min=0, + max=10, + step=0.1, + ) + + gamma2_slider = ipw.FloatSlider( + value=correction["gamma2"], + min=0, + max=2000, + step=1, + ) + + ipw.interact( + update, + amplitude=amplitude_slider, + x_center=x_center_slider, + y_center=y_center_slider, + gamma=gamma_slider, + amplitude2=amplitude2_slider, + gamma2=gamma2_slider, + ) + + def apply_func(apply: bool): + common_apply_func(apply) + self.correction["gamma"] = correction["gamma"] + self.correction["amplitude2"] = correction["amplitude2"] + self.correction["gamma2"] = correction["gamma2"] + gamma_slider.close() + amplitude2_slider.close() + gamma2_slider.close() + + else: + raise NotImplementedError + # pylint: disable=duplicate-code + apply_button = ipw.Button(description="apply") + display(apply_button) + apply_button.on_click(apply_func) + plt.show() + + if apply: + apply_func(True)
    + + +
    +[docs] + def apply_energy_correction( + self, + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + tof_column: str = None, + new_tof_column: str = None, + correction_type: str = None, + amplitude: float = None, + correction: dict = None, + verbose: bool = True, + **kwds, + ) -> Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: + """Apply correction to the time-of-flight (TOF) axis of single-event data. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): The dataframe where + to apply the energy correction to. + tof_column (str, optional): Name of the source column to convert. + Defaults to config["dataframe"]["tof_column"]. + new_tof_column (str, optional): Name of the destination column to convert. + Defaults to config["dataframe"]["corrected_tof_column"]. + correction_type (str, optional): Type of correction to apply to the TOF + axis. Valid values are: + + - 'spherical' + - 'Lorentzian' + - 'Gaussian' + - 'Lorentzian_asymmetric' + + Defaults to config["energy"]["correction_type"]. + amplitude (float, optional): Amplitude of the time-of-flight correction + term. Defaults to config["energy"]["correction"]["correction_type"]. + correction (dict, optional): Correction dictionary containing paramters + for the correction. Defaults to self.correction or + config["energy"]["correction"]. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to True. + **kwds: Additional parameters to use for the correction: + + - **x_column** (str): Name of the x column. + - **y_column** (str): Name of the y column. + - **d** (float): Field-free drift distance. + - **gamma** (float): Linewidth value for correction using a 2D + Lorentz profile. + - **sigma** (float): Standard deviation for correction using a 2D + Gaussian profile. + - **gamma2** (float): Linewidth value for correction using an + asymmetric 2D Lorentz profile, X-direction. + - **amplitude2** (float): Amplitude value for correction using an + asymmetric 2D Lorentz profile, X-direction. + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: dataframe with added column + and Energy correction metadata dictionary. + """ + if correction is None: + correction = deepcopy(self.correction) + + x_column = kwds.pop("x_column", self.x_column) + y_column = kwds.pop("y_column", self.y_column) + + if tof_column is None: + tof_column = self.tof_column + + if new_tof_column is None: + new_tof_column = self.corrected_tof_column + + if correction_type is not None or amplitude is not None or len(kwds) > 0: + if correction_type is not None: + correction["correction_type"] = correction_type + + if amplitude is not None: + correction["amplitude"] = amplitude + + for key, value in kwds.items(): + correction[key] = value + + correction["creation_date"] = datetime.now().timestamp() + + elif "creation_date" in correction and verbose: + datestring = datetime.fromtimestamp(correction["creation_date"]).strftime( + "%m/%d/%Y, %H:%M:%S", + ) + print(f"Using energy correction parameters generated on {datestring}") + + missing_keys = {"correction_type", "center", "amplitude"} - set(correction.keys()) + if missing_keys: + raise ValueError(f"Required correction parameters '{missing_keys}' missing!") + + df[new_tof_column] = df[tof_column] + correction_function( + x=df[x_column], + y=df[y_column], + **correction, + ) + metadata = self.gather_correction_metadata(correction=correction) + + return df, metadata
    + + +
    +[docs] + def gather_correction_metadata(self, correction: dict = None) -> dict: + """Collect meta data for energy correction + + Args: + correction (dict, optional): Dictionary with energy correction parameters. + Defaults to None. + + Returns: + dict: Generated metadata dictionary. + """ + if correction is None: + correction = self.correction + metadata: Dict[Any, Any] = {} + metadata["applied"] = True + metadata["correction"] = deepcopy(correction) + + return metadata
    + + +
    +[docs] + def align_dld_sectors( + self, + df: dask.dataframe.DataFrame, + tof_column: str = None, + sector_id_column: str = None, + sector_delays: np.ndarray = None, + ) -> Tuple[dask.dataframe.DataFrame, dict]: + """Aligns the time-of-flight axis of the different sections of a detector. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + tof_column (str, optional): Name of the column containing the time-of-flight values. + Defaults to config["dataframe"]["tof_column"]. + sector_id_column (str, optional): Name of the column containing the sector id values. + Defaults to config["dataframe"]["sector_id_column"]. + sector_delays (np.ndarray, optional): Array containing the sector delays. Defaults to + config["dataframe"]["sector_delays"]. + + Returns: + dask.dataframe.DataFrame: Dataframe with the new columns. + dict: Metadata dictionary. + """ + if sector_delays is None: + sector_delays = self.sector_delays + if sector_id_column is None: + sector_id_column = self.sector_id_column + + if sector_delays is None or sector_id_column is None: + raise ValueError( + "No value for sector_delays or sector_id_column found in config." + "Config file is not properly configured for dld sector correction.", + ) + tof_column = tof_column or self.tof_column + + # align the 8s sectors + sector_delays_arr = dask.array.from_array(sector_delays) + + def align_sector(x): + val = x[tof_column] - sector_delays_arr[x[sector_id_column].values.astype(int)] + return val.astype(np.float32) + + df[tof_column] = df.map_partitions(align_sector, meta=(tof_column, np.float32)) + metadata: Dict[str, Any] = { + "applied": True, + "sector_delays": sector_delays, + } + return df, metadata
    + + +
    +[docs] + def add_offsets( + self, + df: Union[pd.DataFrame, dask.dataframe.DataFrame] = None, + offsets: Dict[str, Any] = None, + constant: float = None, + columns: Union[str, Sequence[str]] = None, + weights: Union[float, Sequence[float]] = None, + preserve_mean: Union[bool, Sequence[bool]] = False, + reductions: Union[str, Sequence[str]] = None, + energy_column: str = None, + verbose: bool = True, + ) -> Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: + """Apply an offset to the energy column by the values of the provided columns. + + If no parameter is passed to this function, the offset is applied as defined in the + config file. If parameters are passed, they are used to generate a new offset dictionary + and the offset is applied using the ``dfops.apply_offset_from_columns()`` function. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + offsets (Dict, optional): Dictionary of energy offset parameters. + constant (float, optional): The constant to shift the energy axis by. + columns (Union[str, Sequence[str]]): Name of the column(s) to apply the shift from. + weights (Union[float, Sequence[float]]): weights to apply to the columns. + Can also be used to flip the sign (e.g. -1). Defaults to 1. + preserve_mean (bool): Whether to subtract the mean of the column before applying the + shift. Defaults to False. + reductions (str): The reduction to apply to the column. Should be an available method + of dask.dataframe.Series. For example "mean". In this case the function is applied + to the column to generate a single value for the whole dataset. If None, the shift + is applied per-dataframe-row. Defaults to None. Currently only "mean" is supported. + energy_column (str, optional): Name of the column containing the energy values. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to True. + + Returns: + dask.dataframe.DataFrame: Dataframe with the new columns. + dict: Metadata dictionary. + """ + if offsets is None: + offsets = deepcopy(self.offsets) + + if energy_column is None: + energy_column = self.energy_column + + metadata: Dict[str, Any] = { + "applied": True, + } + + # flip sign for binding energy scale + energy_scale = self.calibration.get("energy_scale", None) + if energy_scale is None: + raise ValueError("Energy scale not set. Cannot interpret the sign of the offset.") + if energy_scale not in ["binding", "kinetic"]: + raise ValueError(f"Invalid energy scale: {energy_scale}") + scale_sign: Literal[-1, 1] = -1 if energy_scale == "binding" else 1 + + if columns is not None or constant is not None: + # pylint:disable=duplicate-code + # use passed parameters, overwrite config + offsets = {} + offsets["creation_date"] = datetime.now().timestamp() + # column-based offsets + if columns is not None: + if weights is None: + weights = 1 + if isinstance(weights, (int, float, np.integer, np.floating)): + weights = [weights] + if len(weights) == 1: + weights = [weights[0]] * len(columns) + if not isinstance(weights, Sequence): + raise TypeError(f"Invalid type for weights: {type(weights)}") + if not all(isinstance(s, (int, float, np.integer, np.floating)) for s in weights): + raise TypeError(f"Invalid type for weights: {type(weights)}") + + if isinstance(columns, str): + columns = [columns] + if isinstance(preserve_mean, bool): + preserve_mean = [preserve_mean] * len(columns) + if not isinstance(reductions, Sequence): + reductions = [reductions] + if len(reductions) == 1: + reductions = [reductions[0]] * len(columns) + + # store in offsets dictionary + for col, weight, pmean, red in zip(columns, weights, preserve_mean, reductions): + offsets[col] = { + "weight": weight, + "preserve_mean": pmean, + "reduction": red, + } + + # constant offset + if isinstance(constant, (int, float, np.integer, np.floating)): + offsets["constant"] = constant + elif constant is not None: + raise TypeError(f"Invalid type for constant: {type(constant)}") + + elif "creation_date" in offsets and verbose: + datestring = datetime.fromtimestamp(offsets["creation_date"]).strftime( + "%m/%d/%Y, %H:%M:%S", + ) + print(f"Using energy offset parameters generated on {datestring}") + + if len(offsets) > 0: + # unpack dictionary + # pylint: disable=duplicate-code + columns = [] + weights = [] + preserve_mean = [] + reductions = [] + if verbose: + print("Energy offset parameters:") + for k, v in offsets.items(): + if k == "creation_date": + continue + if k == "constant": + # flip sign if binding energy scale + constant = v * scale_sign + if verbose: + print(f" Constant: {constant} ") + else: + columns.append(k) + try: + weight = v["weight"] + except KeyError: + weight = 1 + if not isinstance(weight, (int, float, np.integer, np.floating)): + raise TypeError(f"Invalid type for weight of column {k}: {type(weight)}") + # flip sign if binding energy scale + weight = weight * scale_sign + weights.append(weight) + pm = v.get("preserve_mean", False) + if str(pm).lower() in ["false", "0", "no"]: + pm = False + elif str(pm).lower() in ["true", "1", "yes"]: + pm = True + preserve_mean.append(pm) + red = v.get("reduction", None) + if str(red).lower() in ["none", "null"]: + red = None + reductions.append(red) + if verbose: + print( + f" Column[{k}]: Weight={weight}, Preserve Mean: {pm}, ", + f"Reductions: {red}.", + ) + + if len(columns) > 0: + df = dfops.offset_by_other_columns( + df=df, + target_column=energy_column, + offset_columns=columns, + weights=weights, + preserve_mean=preserve_mean, + reductions=reductions, + ) + + # apply constant + if constant: + if not isinstance(constant, (int, float, np.integer, np.floating)): + raise TypeError(f"Invalid type for constant: {type(constant)}") + df[energy_column] = df.map_partitions( + lambda x: x[energy_column] + constant, + meta=(energy_column, np.float64), + ) + + self.offsets = offsets + metadata["offsets"] = offsets + + return df, metadata
    +
    + + + +
    +[docs] +def extract_bias(files: List[str], bias_key: str) -> np.ndarray: + """Read bias values from hdf5 files + + Args: + files (List[str]): List of filenames + bias_key (str): hdf5 path to the bias value + + Returns: + np.ndarray: Array of bias values. + """ + bias_list: List[float] = [] + for file in files: + with h5py.File(file, "r") as file_handle: + if bias_key[0] == "@": + bias_list.append(round(file_handle.attrs[bias_key[1:]], 2)) + else: + bias_list.append(round(file_handle[bias_key], 2)) + + return np.asarray(bias_list)
    + + + +
    +[docs] +def correction_function( + x: Union[float, np.ndarray], + y: Union[float, np.ndarray], + correction_type: str, + center: Tuple[float, float], + amplitude: float, + **kwds, +) -> Union[float, np.ndarray]: + """Calculate the TOF correction based on the given X/Y coordinates and a model. + + Args: + x (float): x coordinate + y (float): y coordinate + correction_type (str): type of correction. One of + "spherical", "Lorentzian", "Gaussian", or "Lorentzian_asymmetric" + center (Tuple[int, int]): center position of the distribution (x,y) + amplitude (float): Amplitude of the correction + **kwds: Keyword arguments: + + - **diameter** (float): Field-free drift distance. + - **gamma** (float): Linewidth value for correction using a 2D + Lorentz profile. + - **sigma** (float): Standard deviation for correction using a 2D + Gaussian profile. + - **gamma2** (float): Linewidth value for correction using an + asymmetric 2D Lorentz profile, X-direction. + - **amplitude2** (float): Amplitude value for correction using an + asymmetric 2D Lorentz profile, X-direction. + + Returns: + float: calculated correction value + """ + if correction_type == "spherical": + try: + diameter = kwds.pop("diameter") + except KeyError as exc: + raise ValueError( + f"Parameter 'diameter' required for correction type '{correction_type}' " + "but not provided!", + ) from exc + correction = -( + ( + 1 + - np.sqrt( + 1 - ((x - center[0]) ** 2 + (y - center[1]) ** 2) / diameter**2, + ) + ) + * 100 + * amplitude + ) + + elif correction_type == "Lorentzian": + try: + gamma = kwds.pop("gamma") + except KeyError as exc: + raise ValueError( + f"Parameter 'gamma' required for correction type '{correction_type}' " + "but not provided!", + ) from exc + correction = ( + 100000 + * amplitude + / (gamma * np.pi) + * (gamma**2 / ((x - center[0]) ** 2 + (y - center[1]) ** 2 + gamma**2) - 1) + ) + + elif correction_type == "Gaussian": + try: + sigma = kwds.pop("sigma") + except KeyError as exc: + raise ValueError( + f"Parameter 'sigma' required for correction type '{correction_type}' " + "but not provided!", + ) from exc + correction = ( + 20000 + * amplitude + / np.sqrt(2 * np.pi * sigma**2) + * ( + np.exp( + -((x - center[0]) ** 2 + (y - center[1]) ** 2) / (2 * sigma**2), + ) + - 1 + ) + ) + + elif correction_type == "Lorentzian_asymmetric": + try: + gamma = kwds.pop("gamma") + except KeyError as exc: + raise ValueError( + f"Parameter 'gamma' required for correction type '{correction_type}' " + "but not provided!", + ) from exc + gamma2 = kwds.pop("gamma2", gamma) + amplitude2 = kwds.pop("amplitude2", amplitude) + correction = ( + 100000 + * amplitude + / (gamma * np.pi) + * (gamma**2 / ((y - center[1]) ** 2 + gamma**2) - 1) + ) + correction += ( + 100000 + * amplitude2 + / (gamma2 * np.pi) + * (gamma2**2 / ((x - center[0]) ** 2 + gamma2**2) - 1) + ) + + else: + raise NotImplementedError + + return correction
    + + + +
    +[docs] +def normspec( + specs: np.ndarray, + smooth: bool = False, + span: int = 7, + order: int = 1, +) -> np.ndarray: + """Normalize a series of 1D signals. + + Args: + specs (np.ndarray): Collection of 1D signals. + smooth (bool, optional): Option to smooth the signals before normalization. + Defaults to False. + span (int, optional): Smoothing span parameters of the LOESS method + (see ``scipy.signal.savgol_filter()``). Defaults to 7. + order (int, optional): Smoothing order parameters of the LOESS method + (see ``scipy.signal.savgol_filter()``).. Defaults to 1. + + Returns: + np.ndarray: The matrix assembled from a list of maximum-normalized signals. + """ + nspec = len(specs) + specnorm = [] + + for i in range(nspec): + spec = specs[i] + + if smooth: + spec = savgol_filter(spec, span, order) + + if type(spec) in (list, tuple): + nsp = spec / max(spec) + else: + nsp = spec / spec.max() + specnorm.append(nsp) + + # Align 1D spectrum + normalized_specs = np.asarray(specnorm) + + return normalized_specs
    + + + +
    +[docs] +def find_correspondence( + sig_still: np.ndarray, + sig_mov: np.ndarray, + **kwds, +) -> np.ndarray: + """Determine the correspondence between two 1D traces by alignment using a + time-warp algorithm. + + Args: + sig_still (np.ndarray): Reference 1D signals. + sig_mov (np.ndarray): 1D signal to be aligned. + **kwds: keyword arguments for ``fastdtw.fastdtw()`` + + Returns: + np.ndarray: Pixel-wise path correspondences between two input 1D arrays + (sig_still, sig_mov). + """ + dist = kwds.pop("dist_metric", None) + rad = kwds.pop("radius", 1) + _, pathcorr = fastdtw(sig_still, sig_mov, dist=dist, radius=rad) + return np.asarray(pathcorr)
    + + + +
    +[docs] +def range_convert( + x: np.ndarray, + xrng: Tuple, + pathcorr: np.ndarray, +) -> Tuple: + """Convert value range using a pairwise path correspondence (e.g. obtained + from time warping algorithm). + + Args: + x (np.ndarray): Values of the x axis (e.g. time-of-flight values). + xrng (Tuple): Boundary value range on the x axis. + pathcorr (np.ndarray): Path correspondence between two 1D arrays in the + following form, + [(id_1_trace_1, id_1_trace_2), (id_2_trace_1, id_2_trace_2), ...] + + Returns: + Tuple: Transformed range according to the path correspondence. + """ + pathcorr = np.asarray(pathcorr) + xrange_trans = [] + + for xval in xrng: # Transform each value in the range + xind = find_nearest(xval, x) + xind_alt = find_nearest(xind, pathcorr[:, 0]) + xind_trans = pathcorr[xind_alt, 1] + xrange_trans.append(x[xind_trans]) + + return tuple(xrange_trans)
    + + + +
    +[docs] +def find_nearest(val: float, narray: np.ndarray) -> int: + """Find the value closest to a given one in a 1D array. + + Args: + val (float): Value of interest. + narray (np.ndarray): The array to look for the nearest value. + + Returns: + int: Array index of the value nearest to the given one. + """ + return int(np.argmin(np.abs(narray - val)))
    + + + +
    +[docs] +def peaksearch( + traces: np.ndarray, + tof: np.ndarray, + ranges: List[Tuple] = None, + pkwindow: int = 3, + plot: bool = False, +) -> np.ndarray: + """Detect a list of peaks in the corresponding regions of multiple spectra. + + Args: + traces (np.ndarray): Collection of 1D spectra. + tof (np.ndarray): Time-of-flight values. + ranges (List[Tuple], optional): List of ranges for peak detection in the format + [(LowerBound1, UpperBound1), (LowerBound2, UpperBound2), ....]. + Defaults to None. + pkwindow (int, optional): Window width of a peak (amounts to lookahead in + ``peakdetect1d``). Defaults to 3. + plot (bool, optional): Specify whether to display a custom plot of the peak + search results. Defaults to False. + + Returns: + np.ndarray: Collection of peak positions. + """ + pkmaxs = [] + if plot: + plt.figure(figsize=(10, 4)) + + for rng, trace in zip(ranges, traces.tolist()): + cond = (tof >= rng[0]) & (tof <= rng[1]) + trace = np.array(trace).ravel() + tofseg, trseg = tof[cond], trace[cond] + maxs, _ = peakdetect1d(trseg, tofseg, lookahead=pkwindow) + try: + pkmaxs.append(maxs[0, :]) + except IndexError: # No peak found for this range + print(f"No peak detected in range {rng}.") + raise + + if plot: + plt.plot(tof, trace, "--k", linewidth=1) + plt.plot(tofseg, trseg, linewidth=2) + plt.scatter(maxs[0, 0], maxs[0, 1], s=30) + + return np.asarray(pkmaxs)
    + + + +# 1D peak detection algorithm adapted from Sixten Bergman +# https://gist.github.com/sixtenbe/1178136#file-peakdetect-py +def _datacheck_peakdetect( + x_axis: np.ndarray, + y_axis: np.ndarray, +) -> Tuple[np.ndarray, np.ndarray]: + """Input format checking for 1D peakdtect algorithm + + Args: + x_axis (np.ndarray): x-axis array + y_axis (np.ndarray): y-axis array + + Raises: + ValueError: Raised if x and y values don't have the same length. + + Returns: + Tuple[np.ndarray, np.ndarray]: Tuple of checked (x/y) arrays. + """ + + if x_axis is None: + x_axis = np.arange(len(y_axis)) + + if len(y_axis) != len(x_axis): + raise ValueError( + "Input vectors y_axis and x_axis must have same length", + ) + + # Needs to be a numpy array + y_axis = np.asarray(y_axis) + x_axis = np.asarray(x_axis) + + return x_axis, y_axis + + +
    +[docs] +def peakdetect1d( + y_axis: np.ndarray, + x_axis: np.ndarray = None, + lookahead: int = 200, + delta: int = 0, +) -> Tuple[np.ndarray, np.ndarray]: + """Function for detecting local maxima and minima in a signal. + Discovers peaks by searching for values which are surrounded by lower + or larger values for maxima and minima respectively + + Converted from/based on a MATLAB script at: + http://billauer.co.il/peakdet.html + + Args: + y_axis (np.ndarray): A list containing the signal over which to find peaks. + x_axis (np.ndarray, optional): A x-axis whose values correspond to the y_axis + list and is used in the return to specify the position of the peaks. If + omitted an index of the y_axis is used. + lookahead (int, optional): distance to look ahead from a peak candidate to + determine if it is the actual peak + '(samples / period) / f' where '4 >= f >= 1.25' might be a good value. + Defaults to 200. + delta (int, optional): this specifies a minimum difference between a peak and + the following points, before a peak may be considered a peak. Useful + to hinder the function from picking up false peaks towards to end of + the signal. To work well delta should be set to delta >= RMSnoise * 5. + Defaults to 0. + + Raises: + ValueError: Raised if lookahead and delta are out of range. + + Returns: + Tuple[np.ndarray, np.ndarray]: Tuple of positions of the positive peaks, + positions of the negative peaks + """ + max_peaks = [] + min_peaks = [] + dump = [] # Used to pop the first hit which almost always is false + + # Check input data + x_axis, y_axis = _datacheck_peakdetect(x_axis, y_axis) + # Store data length for later use + length = len(y_axis) + + # Perform some checks + if lookahead < 1: + raise ValueError("Lookahead must be '1' or above in value") + + if not (np.ndim(delta) == 0 and delta >= 0): + raise ValueError("delta must be a positive number") + + # maxima and minima candidates are temporarily stored in + # mx and mn respectively + _min, _max = np.Inf, -np.Inf + + # Only detect peak if there is 'lookahead' amount of points after it + for index, (x, y) in enumerate( + zip(x_axis[:-lookahead], y_axis[:-lookahead]), + ): + if y > _max: + _max = y + _max_pos = x + + if y < _min: + _min = y + _min_pos = x + + # Find local maxima + if y < _max - delta and _max != np.Inf: + # Maxima peak candidate found + # look ahead in signal to ensure that this is a peak and not jitter + if y_axis[index : index + lookahead].max() < _max: + max_peaks.append([_max_pos, _max]) + dump.append(True) + # Set algorithm to only find minima now + _max = np.Inf + _min = np.Inf + + if index + lookahead >= length: + # The end is within lookahead no more peaks can be found + break + continue + # else: + # mx = ahead + # mxpos = x_axis[np.where(y_axis[index:index+lookahead]==mx)] + + # Find local minima + if y > _min + delta and _min != -np.Inf: + # Minima peak candidate found + # look ahead in signal to ensure that this is a peak and not jitter + if y_axis[index : index + lookahead].min() > _min: + min_peaks.append([_min_pos, _min]) + dump.append(False) + # Set algorithm to only find maxima now + _min = -np.Inf + _max = -np.Inf + + if index + lookahead >= length: + # The end is within lookahead no more peaks can be found + break + # else: + # mn = ahead + # mnpos = x_axis[np.where(y_axis[index:index+lookahead]==mn)] + + # Remove the false hit on the first value of the y_axis + try: + if dump[0]: + max_peaks.pop(0) + else: + min_peaks.pop(0) + del dump + + except IndexError: # When no peaks have been found + pass + + return (np.asarray(max_peaks), np.asarray(min_peaks))
    + + + +
    +[docs] +def fit_energy_calibration( + pos: Union[List[float], np.ndarray], + vals: Union[List[float], np.ndarray], + binwidth: float, + binning: int, + ref_id: int = 0, + ref_energy: float = None, + t: Union[List[float], np.ndarray] = None, + energy_scale: str = "kinetic", + verbose: bool = True, + **kwds, +) -> dict: + """Energy calibration by nonlinear least squares fitting of spectral landmarks on + a set of (energy dispersion curves (EDCs). This is done here by fitting to the + function d/(t-t0)**2. + + Args: + pos (Union[List[float], np.ndarray]): Positions of the spectral landmarks + (e.g. peaks) in the EDCs. + vals (Union[List[float], np.ndarray]): Bias voltage value associated with + each EDC. + binwidth (float): Time width of each original TOF bin in ns. + binning (int): Binning factor of the TOF values. + ref_id (int, optional): Reference dataset index. Defaults to 0. + ref_energy (float, optional): Energy value of the feature in the refence + trace (eV). required to output the calibration. Defaults to None. + t (Union[List[float], np.ndarray], optional): Array of TOF values. Required + to calculate calibration trace. Defaults to None. + energy_scale (str, optional): Direction of increasing energy scale. + + - **'kinetic'**: increasing energy with decreasing TOF. + - **'binding'**: increasing energy with increasing TOF. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to True. + **kwds: keyword arguments: + + - **t0** (float): constrains and initial values for the fit parameter t0, + corresponding to the time of flight offset. Defaults to 1e-6. + - **E0** (float): constrains and initial values for the fit parameter E0, + corresponding to the energy offset. Defaults to min(vals). + - **d** (float): constrains and initial values for the fit parameter d, + corresponding to the drift distance. Defaults to 1. + + Returns: + dict: A dictionary of fitting parameters including the following, + + - "coeffs": Fitted function coefficents. + - "axis": Fitted energy axis. + """ + vals = np.asarray(vals) + nvals = vals.size + + if ref_id >= nvals: + wn.warn( + "Reference index (refid) cannot be larger than the number of traces!\ + Reset to the largest allowed number.", + ) + ref_id = nvals - 1 + + def residual(pars, time, data, binwidth, binning, energy_scale): + model = tof2ev( + pars["d"], + pars["t0"], + binwidth, + binning, + energy_scale, + pars["E0"], + time, + ) + if data is None: + return model + return model - data + + pars = Parameters() + d_pars = kwds.pop("d", {}) + pars.add( + name="d", + value=d_pars.get("value", 1), + min=d_pars.get("min", -np.inf), + max=d_pars.get("max", np.inf), + vary=d_pars.get("vary", True), + ) + t0_pars = kwds.pop("t0", {}) + pars.add( + name="t0", + value=t0_pars.get("value", 1e-6), + min=t0_pars.get("min", -np.inf), + max=t0_pars.get( + "max", + (min(pos) - 1) * binwidth * 2**binning, + ), + vary=t0_pars.get("vary", True), + ) + E0_pars = kwds.pop("E0", {}) # pylint: disable=invalid-name + pars.add( + name="E0", + value=E0_pars.get("value", min(vals)), + min=E0_pars.get("min", -np.inf), + max=E0_pars.get("max", np.inf), + vary=E0_pars.get("vary", True), + ) + fit = Minimizer( + residual, + pars, + fcn_args=(pos, vals, binwidth, binning, energy_scale), + ) + result = fit.leastsq() + if verbose: + report_fit(result) + + # Construct the calibrating function + pfunc = partial( + tof2ev, + result.params["d"].value, + result.params["t0"].value, + binwidth, + binning, + energy_scale, + ) + + # Return results according to specification + ecalibdict = {} + ecalibdict["d"] = result.params["d"].value + ecalibdict["t0"] = result.params["t0"].value + ecalibdict["E0"] = result.params["E0"].value + ecalibdict["energy_scale"] = energy_scale + + if (ref_energy is not None) and (t is not None): + energy_offset = pfunc(-1 * ref_energy, pos[ref_id]) + ecalibdict["axis"] = pfunc(-energy_offset, t) + ecalibdict["E0"] = -energy_offset + ecalibdict["refid"] = ref_id + + return ecalibdict
    + + + +
    +[docs] +def poly_energy_calibration( + pos: Union[List[float], np.ndarray], + vals: Union[List[float], np.ndarray], + order: int = 3, + ref_id: int = 0, + ref_energy: float = None, + t: Union[List[float], np.ndarray] = None, + aug: int = 1, + method: str = "lstsq", + energy_scale: str = "kinetic", + **kwds, +) -> dict: + """Energy calibration by nonlinear least squares fitting of spectral landmarks on + a set of (energy dispersion curves (EDCs). This amounts to solving for the + coefficient vector, a, in the system of equations T.a = b. Here T is the + differential drift time matrix and b the differential bias vector, and + assuming that the energy-drift-time relationship can be written in the form, + E = sum_n (a_n * t**n) + E0 + + + Args: + pos (Union[List[float], np.ndarray]): Positions of the spectral landmarks + (e.g. peaks) in the EDCs. + vals (Union[List[float], np.ndarray]): Bias voltage value associated with + each EDC. + order (int, optional): Polynomial order of the fitting function. Defaults to 3. + ref_id (int, optional): Reference dataset index. Defaults to 0. + ref_energy (float, optional): Energy value of the feature in the refence + trace (eV). required to output the calibration. Defaults to None. + t (Union[List[float], np.ndarray], optional): Array of TOF values. Required + to calculate calibration trace. Defaults to None. + aug (int, optional): Fitting dimension augmentation + (1=no change, 2=double, etc). Defaults to 1. + method (str, optional): Method for determining the energy calibration. + + - **'lmfit'**: Energy calibration using lmfit and 1/t^2 form. + - **'lstsq'**, **'lsqr'**: Energy calibration using polynomial form.. + + Defaults to "lstsq". + energy_scale (str, optional): Direction of increasing energy scale. + + - **'kinetic'**: increasing energy with decreasing TOF. + - **'binding'**: increasing energy with increasing TOF. + + Returns: + dict: A dictionary of fitting parameters including the following, + + - "coeffs": Fitted polynomial coefficients (the a's). + - "offset": Minimum time-of-flight corresponding to a peak. + - "Tmat": the T matrix (differential time-of-flight) in the equation Ta=b. + - "bvec": the b vector (differential bias) in the fitting Ta=b. + - "axis": Fitted energy axis. + """ + vals = np.asarray(vals) + nvals = vals.size + + if ref_id >= nvals: + wn.warn( + "Reference index (refid) cannot be larger than the number of traces!\ + Reset to the largest allowed number.", + ) + ref_id = nvals - 1 + + # Top-to-bottom ordering of terms in the T matrix + termorder = np.delete(range(0, nvals, 1), ref_id) + termorder = np.tile(termorder, aug) + # Left-to-right ordering of polynomials in the T matrix + polyorder = np.linspace(order, 1, order, dtype="int") + + # Construct the T (differential drift time) matrix, Tmat = Tmain - Tsec + t_main = np.array([pos[ref_id] ** p for p in polyorder]) + # Duplicate to the same order as the polynomials + t_main = np.tile(t_main, (aug * (nvals - 1), 1)) + + t_sec = [] + + for term in termorder: + t_sec.append([pos[term] ** p for p in polyorder]) + + t_mat = t_main - np.asarray(t_sec) + + # Construct the b vector (differential bias) + bvec = vals[ref_id] - np.delete(vals, ref_id) + bvec = np.tile(bvec, aug) + + # Solve for the a vector (polynomial coefficients) using least squares + if method == "lstsq": + sol = lstsq(t_mat, bvec, rcond=None) + elif method == "lsqr": + sol = lsqr(t_mat, bvec, **kwds) + poly_a = sol[0] + + # Construct the calibrating function + pfunc = partial(tof2evpoly, poly_a) + + # Return results according to specification + ecalibdict = {} + ecalibdict["offset"] = np.asarray(pos).min() + ecalibdict["coeffs"] = poly_a + ecalibdict["Tmat"] = t_mat + ecalibdict["bvec"] = bvec + ecalibdict["energy_scale"] = energy_scale + + if ref_energy is not None and t is not None: + energy_offset = pfunc(-1 * ref_energy, pos[ref_id]) + ecalibdict["axis"] = pfunc(-energy_offset, t) + ecalibdict["E0"] = -energy_offset + ecalibdict["refid"] = ref_id + + return ecalibdict
    + + + +
    +[docs] +def tof2ev( + tof_distance: float, + time_offset: float, + binwidth: float, + binning: int, + energy_scale: str, + energy_offset: float, + t: float, +) -> float: + """(d/(t-t0))**2 expression of the time-of-flight to electron volt + conversion formula. + + Args: + tof_distance (float): Drift distance in meter. + time_offset (float): time offset in ns. + binwidth (float): Time width of each original TOF bin in ns. + binning (int): Binning factor of the TOF values. + energy_scale (str, optional): Direction of increasing energy scale. + + - **'kinetic'**: increasing energy with decreasing TOF. + - **'binding'**: increasing energy with increasing TOF. + + energy_offset (float): Energy offset in eV. + t (float): TOF value in bin number. + + Returns: + float: Converted energy in eV + """ + sign = 1 if energy_scale == "kinetic" else -1 + + # m_e/2 [eV] bin width [s] + energy = ( + 2.84281e-12 * sign * (tof_distance / (t * binwidth * 2**binning - time_offset)) ** 2 + + energy_offset + ) + + return energy
    + + + +
    +[docs] +def tof2evpoly( + poly_a: Union[List[float], np.ndarray], + energy_offset: float, + t: float, +) -> float: + """Polynomial approximation of the time-of-flight to electron volt + conversion formula. + + Args: + poly_a (Union[List[float], np.ndarray]): Polynomial coefficients. + energy_offset (float): Energy offset in eV. + t (float): TOF value in bin number. + + Returns: + float: Converted energy. + """ + odr = len(poly_a) # Polynomial order + poly_a = poly_a[::-1] + energy = 0.0 + + for i, order in enumerate(range(1, odr + 1)): + energy += poly_a[i] * t**order + energy += energy_offset + + return energy
    + + + +
    +[docs] +def tof2ns( + binwidth: float, + binning: int, + t: float, +) -> float: + """Converts the time-of-flight steps to time-of-flight in nanoseconds. + + designed for use with dask.dataframe.DataFrame.map_partitions. + + Args: + binwidth (float): Time step size in seconds. + binning (int): Binning of the time-of-flight steps. + t (float): TOF value in bin number. + Returns: + float: Converted time in nanoseconds. + """ + val = t * 1e9 * binwidth * 2.0**binning + return val
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/calibrator/momentum.html b/sed/v0.1.9/_modules/sed/calibrator/momentum.html new file mode 100644 index 0000000..8c2ed58 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/calibrator/momentum.html @@ -0,0 +1,2778 @@ + + + + + + + + + + sed.calibrator.momentum — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.calibrator.momentum

    +"""sed.calibrator.momentum module. Code for momentum calibration and distortion
    +correction. Mostly ported from https://github.com/mpes-kit/mpes.
    +"""
    +import itertools as it
    +from copy import deepcopy
    +from datetime import datetime
    +from typing import Any
    +from typing import Dict
    +from typing import List
    +from typing import Tuple
    +from typing import Union
    +
    +import bokeh.palettes as bp
    +import bokeh.plotting as pbk
    +import dask.dataframe
    +import ipywidgets as ipw
    +import matplotlib
    +import matplotlib.pyplot as plt
    +import numpy as np
    +import pandas as pd
    +import scipy.ndimage as ndi
    +import xarray as xr
    +from bokeh.colors import RGB
    +from bokeh.io import output_notebook
    +from bokeh.palettes import Category10 as ColorCycle
    +from IPython.display import display
    +from joblib import delayed
    +from joblib import Parallel
    +from matplotlib import cm
    +from numpy.linalg import norm
    +from scipy.interpolate import griddata
    +from scipy.ndimage import map_coordinates
    +from symmetrize import pointops as po
    +from symmetrize import sym
    +from symmetrize import tps
    +
    +
    +
    +[docs] +class MomentumCorrector: + """ + Momentum distortion correction and momentum calibration workflow functions. + + Args: + data (Union[xr.DataArray, np.ndarray], optional): Multidimensional hypervolume + containing the data. Defaults to None. + bin_ranges (List[Tuple], optional): Binning ranges of the data volume, if + provided as np.ndarray. Defaults to None. + rotsym (int, optional): Rotational symmetry of the data. Defaults to 6. + config (dict, optional): Config dictionary. Defaults to None. + """ + + def __init__( + self, + data: Union[xr.DataArray, np.ndarray] = None, + bin_ranges: List[Tuple] = None, + rotsym: int = 6, + config: dict = None, + ): + """Constructor of the MomentumCorrector class. + + Args: + data (Union[xr.DataArray, np.ndarray], optional): Multidimensional + hypervolume containing the data. Defaults to None. + bin_ranges (List[Tuple], optional): Binning ranges of the data volume, + if provided as np.ndarray. Defaults to None. + rotsym (int, optional): Rotational symmetry of the data. Defaults to 6. + config (dict, optional): Config dictionary. Defaults to None. + """ + if config is None: + config = {} + + self._config = config + + self.image: np.ndarray = None + self.img_ndim: int = None + self.slice: np.ndarray = None + self.slice_corrected: np.ndarray = None + self.slice_transformed: np.ndarray = None + self.bin_ranges: List[Tuple] = self._config["momentum"].get("bin_ranges", []) + + if data is not None: + self.load_data(data=data, bin_ranges=bin_ranges) + + self.detector_ranges = self._config["momentum"]["detector_ranges"] + + self.rotsym = int(rotsym) + self.rotsym_angle = int(360 / self.rotsym) + self.arot = np.array([0] + [self.rotsym_angle] * (self.rotsym - 1)) + self.ascale = np.array([1.0] * self.rotsym) + self.peaks: np.ndarray = None + self.include_center: bool = False + self.use_center: bool = False + self.pouter: np.ndarray = None + self.pcent: Tuple[float, ...] = None + self.pouter_ord: np.ndarray = None + self.prefs: np.ndarray = None + self.ptargs: np.ndarray = None + self.csm_original: float = np.nan + self.mdist: float = np.nan + self.mcvdist: float = np.nan + self.mvvdist: float = np.nan + self.cvdist: np.ndarray = np.array(np.nan) + self.vvdist: np.ndarray = np.array(np.nan) + self.rdeform_field: np.ndarray = None + self.cdeform_field: np.ndarray = None + self.rdeform_field_bkp: np.ndarray = None + self.cdeform_field_bkp: np.ndarray = None + self.inverse_dfield: np.ndarray = None + self.dfield_updated: bool = False + self.transformations: Dict[str, Any] = self._config["momentum"].get("transformations", {}) + self.correction: Dict[str, Any] = self._config["momentum"].get("correction", {}) + self.adjust_params: Dict[str, Any] = {} + self.calibration: Dict[str, Any] = self._config["momentum"].get("calibration", {}) + + self.x_column = self._config["dataframe"]["x_column"] + self.y_column = self._config["dataframe"]["y_column"] + self.corrected_x_column = self._config["dataframe"]["corrected_x_column"] + self.corrected_y_column = self._config["dataframe"]["corrected_y_column"] + self.kx_column = self._config["dataframe"]["kx_column"] + self.ky_column = self._config["dataframe"]["ky_column"] + + self._state: int = 0 + + @property + def features(self) -> dict: + """Dictionary of detected features for the symmetrization process. + ``self.features`` is a derived attribute from existing ones. + + Returns: + dict: Dict containing features "verts" and "center". + """ + feature_dict = { + "verts": np.asarray(self.__dict__.get("pouter_ord", [])), + "center": np.asarray(self.__dict__.get("pcent", [])), + } + + return feature_dict + + @property + def symscores(self) -> dict: + """Dictionary of symmetry-related scores. + + Returns: + dict: Dictionary containing symmetry scores. + """ + sym_dict = { + "csm_original": self.__dict__.get("csm_original", ""), + "csm_current": self.__dict__.get("csm_current", ""), + "arm_original": self.__dict__.get("arm_original", ""), + "arm_current": self.__dict__.get("arm_current", ""), + } + + return sym_dict + +
    +[docs] + def load_data( + self, + data: Union[xr.DataArray, np.ndarray], + bin_ranges: List[Tuple] = None, + ): + """Load binned data into the momentum calibrator class + + Args: + data (Union[xr.DataArray, np.ndarray]): + 2D or 3D data array, either as np.ndarray or xr.DataArray. + bin_ranges (List[Tuple], optional): + Binning ranges. Needs to be provided in case the data are given + as np.ndarray. Otherwise, they are determined from the coords of + the xr.DataArray. Defaults to None. + + Raises: + ValueError: Raised if the dimensions of the input data do not fit. + """ + if isinstance(data, xr.DataArray): + self.image = np.squeeze(data.data) + self.bin_ranges = [] + for axis in data.coords: + self.bin_ranges.append( + ( + data.coords[axis][0].values, + 2 * data.coords[axis][-1].values - data.coords[axis][-2].values, # endpoint + ), + ) + else: + assert bin_ranges is not None + self.image = np.squeeze(data) + self.bin_ranges = bin_ranges + + self.img_ndim = self.image.ndim + if (self.img_ndim > 3) or (self.img_ndim < 2): + raise ValueError("The input image dimension need to be 2 or 3!") + if self.img_ndim == 2: + self.slice = self.image + + if self.slice is not None: + self.slice_corrected = self.slice_transformed = self.slice
    + + +
    +[docs] + def select_slicer( + self, + plane: int = 0, + width: int = 5, + axis: int = 2, + apply: bool = False, + ): + """Interactive panel to select (hyper)slice from a (hyper)volume. + + Args: + plane (int, optional): initial value of the plane slider. Defaults to 0. + width (int, optional): initial value of the width slider. Defaults to 5. + axis (int, optional): Axis along which to slice the image. Defaults to 2. + apply (bool, optional): Option to directly apply the values and select the + slice. Defaults to False. + """ + matplotlib.use("module://ipympl.backend_nbagg") + + assert self.img_ndim == 3 + selector = slice(plane, plane + width) + image = np.moveaxis(self.image, axis, 0) + try: + img_slice = image[selector, ...].sum(axis=0) + except AttributeError: + img_slice = image[selector, ...] + + fig, ax = plt.subplots(1, 1) + img = ax.imshow(img_slice.T, origin="lower", cmap="terrain_r") + + def update(plane: int, width: int): + selector = slice(plane, plane + width) + try: + img_slice = image[selector, ...].sum(axis=0) + except AttributeError: + img_slice = image[selector, ...] + img.set_data(img_slice.T) + axmin = np.min(img_slice, axis=(0, 1)) + axmax = np.max(img_slice, axis=(0, 1)) + if axmin < axmax: + img.set_clim(axmin, axmax) + ax.set_title(f"Plane[{plane}:{plane+width}]") + fig.canvas.draw_idle() + + update(plane, width) + + plane_slider = ipw.IntSlider( + value=plane, + min=0, + max=self.image.shape[2] - width, + step=1, + ) + width_slider = ipw.IntSlider(value=width, min=1, max=20, step=1) + + ipw.interact( + update, + plane=plane_slider, + width=width_slider, + ) + + def apply_fun(apply: bool): # noqa: ARG001 + start = plane_slider.value + stop = plane_slider.value + width_slider.value + + selector = slice( + start, + stop, + ) + self.select_slice(selector=selector, axis=axis) + + img.set_data(self.slice.T) + axmin = np.min(self.slice, axis=(0, 1)) + axmax = np.max(self.slice, axis=(0, 1)) + if axmin < axmax: + img.set_clim(axmin, axmax) + ax.set_title( + f"Plane[{start}:{stop}]", + ) + fig.canvas.draw_idle() + + plane_slider.close() + width_slider.close() + apply_button.close() + + apply_button = ipw.Button(description="apply") + display(apply_button) + apply_button.on_click(apply_fun) + + plt.show() + + if apply: + apply_fun(True)
    + + +
    +[docs] + def select_slice( + self, + selector: Union[slice, List[int], int], + axis: int = 2, + ): + """Select (hyper)slice from a (hyper)volume. + + Args: + selector (Union[slice, List[int], int]): + Selector along the specified axis to extract the slice (image). Use + the construct slice(start, stop, step) to select a range of images + and sum them. Use an integer to specify only a particular slice. + axis (int, optional): Axis along which to select the image. Defaults to 2. + + Raises: + ValueError: Raised if self.image is already 2D. + """ + if self.img_ndim > 2: + image = np.moveaxis(self.image, axis, 0) + try: + self.slice = image[selector, ...].sum(axis=0) + except AttributeError: + self.slice = image[selector, ...] + + if self.slice is not None: + self.slice_corrected = self.slice_transformed = self.slice + + elif self.img_ndim == 2: + raise ValueError("Input image dimension is already 2!")
    + + +
    +[docs] + def add_features( + self, + features: np.ndarray, + direction: str = "ccw", + rotsym: int = 6, + symscores: bool = True, + **kwds, + ): + """Add features as reference points provided as np.ndarray. If provided, + detects the center of the points and orders the points. + + Args: + features (np.ndarray): + Array of landmarks, possibly including a center peak. Its shape should + be (n,2), where n is equal to the rotation symmetry, or the rotation + symmetry+1, if the center is included. + direction (str, optional): + Direction for ordering the points. Defaults to "ccw". + symscores (bool, optional): + Option to calculate symmetry scores. Defaults to False. + **kwds: Keyword arguments. + + - **symtype** (str): Type of symmetry scores to calculte + if symscores is True. Defaults to "rotation". + + Raises: + ValueError: Raised if the number of points does not match the rotsym. + """ + self.rotsym = int(rotsym) + self.rotsym_angle = int(360 / self.rotsym) + self.arot = np.array([0] + [self.rotsym_angle] * (self.rotsym - 1)) + self.ascale = np.array([1.0] * self.rotsym) + + if features.shape[0] == self.rotsym: # assume no center present + self.pcent, self.pouter = po.pointset_center( + features, + method="centroid", + ) + self.include_center = False + elif features.shape[0] == self.rotsym + 1: # assume center included + self.pcent, self.pouter = po.pointset_center( + features, + method="centroidnn", + ) + self.include_center = True + else: + raise ValueError( + f"Found {features.shape[0]} points, ", + f"but {self.rotsym} or {self.rotsym+1} (incl.center) required.", + ) + if isinstance(self.pcent, np.ndarray): + self.pcent = tuple(val.item() for val in self.pcent) + # Order the point landmarks + self.pouter_ord = po.pointset_order( + self.pouter, + direction=direction, + ) + + # Calculate geometric distances + if self.pcent is not None: + self.calc_geometric_distances() + + if symscores is True: + symtype = kwds.pop("symtype", "rotation") + self.csm_original = self.calc_symmetry_scores(symtype=symtype) + + if self.rotsym == 6 and self.pcent is not None: + self.mdist = (self.mcvdist + self.mvvdist) / 2 + self.mcvdist = self.mdist + self.mvvdist = self.mdist
    + + +
    +[docs] + def feature_extract( + self, + image: np.ndarray = None, + direction: str = "ccw", + feature_type: str = "points", + rotsym: int = 6, + symscores: bool = True, + **kwds, + ): + """Extract features from the selected 2D slice. + Currently only point feature detection is implemented. + + Args: + image (np.ndarray, optional): + The (2D) image slice to extract features from. + Defaults to self.slice + direction (str, optional): + The circular direction to reorder the features in ('cw' or 'ccw'). + Defaults to "ccw". + feature_type (str, optional): + The type of features to extract. Defaults to "points". + rotsym (int, optional): Rotational symmetry of the data. Defaults to 6. + symscores (bool, optional): + Option for calculating symmetry scores. Defaults to True. + **kwds: + Extra keyword arguments for ``symmetrize.pointops.peakdetect2d()``. + + Raises: + NotImplementedError: + Raised for undefined feature_types. + """ + if image is None: + if self.slice is not None: + image = self.slice + else: + raise ValueError("No image loaded for feature extraction!") + + if feature_type == "points": + # Detect the point landmarks + self.peaks = po.peakdetect2d(image, **kwds) + + self.add_features( + features=self.peaks, + direction=direction, + rotsym=rotsym, + symscores=symscores, + **kwds, + ) + else: + raise NotImplementedError
    + + +
    +[docs] + def feature_select( + self, + image: np.ndarray = None, + features: np.ndarray = None, + include_center: bool = True, + rotsym: int = 6, + apply: bool = False, + **kwds, + ): + """Extract features from the selected 2D slice. + Currently only point feature detection is implemented. + + Args: + image (np.ndarray, optional): + The (2D) image slice to extract features from. + Defaults to self.slice + include_center (bool, optional): + Option to include the image center/centroid in the registration + process. Defaults to True. + features (np.ndarray, optional): + Array of landmarks, possibly including a center peak. Its shape should + be (n,2), where n is equal to the rotation symmetry, or the rotation + symmetry+1, if the center is included. + If omitted, an array filled with zeros is generated. + rotsym (int, optional): Rotational symmetry of the data. Defaults to 6. + apply (bool, optional): Option to directly store the features in the class. + Defaults to False. + **kwds: + Extra keyword arguments for ``symmetrize.pointops.peakdetect2d()``. + + Raises: + ValueError: If no valid image is found from which to ge the coordinates. + """ + matplotlib.use("module://ipympl.backend_nbagg") + if image is None: + if self.slice is not None: + image = self.slice + else: + raise ValueError("No valid image loaded!") + + fig, ax = plt.subplots(1, 1) + ax.imshow(image.T, origin="lower", cmap="terrain_r") + + if features is None: + features = np.zeros((rotsym + (include_center), 2)) + + markers = [] + for peak in features: + markers.append(ax.plot(peak[0], peak[1], "o")[0]) + + def update_point_no( + point_no: int, + ): + fig.canvas.draw_idle() + + point_x = features[point_no][0] + point_y = features[point_no][1] + + point_input_x.value = point_x + point_input_y.value = point_y + + def update_point_pos( + point_x: float, + point_y: float, + ): + fig.canvas.draw_idle() + point_no = point_no_input.value + features[point_no][0] = point_x + features[point_no][1] = point_y + + markers[point_no].set_xdata(point_x) + markers[point_no].set_ydata(point_y) + + point_no_input = ipw.Dropdown( + options=range(features.shape[0]), + description="Point:", + ) + + point_input_x = ipw.FloatText(features[0][0]) + point_input_y = ipw.FloatText(features[0][1]) + ipw.interact( + update_point_no, + point_no=point_no_input, + ) + ipw.interact( + update_point_pos, + point_y=point_input_y, + point_x=point_input_x, + ) + + def onclick(event): + point_input_x.value = event.xdata + point_input_y.value = event.ydata + point_no_input.value = (point_no_input.value + 1) % features.shape[0] + + cid = fig.canvas.mpl_connect("button_press_event", onclick) + + def apply_func(apply: bool): # noqa: ARG001 + fig.canvas.mpl_disconnect(cid) + + point_no_input.close() + point_input_x.close() + point_input_y.close() + apply_button.close() + + fig.canvas.draw_idle() + + self.add_features( + features=features, + rotsym=rotsym, + **kwds, + ) + + apply_button = ipw.Button(description="apply") + display(apply_button) + apply_button.on_click(apply_func) + + if apply: + apply_func(True) + + plt.show()
    + + +
    +[docs] + def calc_geometric_distances(self) -> None: + """Calculate geometric distances involving the center and the vertices. + Distances calculated include center-vertex and nearest-neighbor vertex-vertex + distances. + """ + self.cvdist = po.cvdist(self.pouter_ord, self.pcent) + self.mcvdist = self.cvdist.mean() + self.vvdist = po.vvdist(self.pouter_ord) + self.mvvdist = self.vvdist.mean()
    + + +
    +[docs] + def calc_symmetry_scores(self, symtype: str = "rotation") -> float: + """Calculate the symmetry scores from geometric quantities. + + Args: + symtype (str, optional): Type of symmetry score to calculate. + Defaults to "rotation". + + Returns: + float: Calculated symmetry score. + """ + csm = po.csm( + self.pcent, + self.pouter_ord, + rotsym=self.rotsym, + type=symtype, + ) + + return csm
    + + +
    +[docs] + def spline_warp_estimate( + self, + image: np.ndarray = None, + use_center: bool = None, + fixed_center: bool = True, + interp_order: int = 1, + ascale: Union[float, list, tuple, np.ndarray] = None, + verbose: bool = True, + **kwds, + ) -> np.ndarray: + """Estimate the spline deformation field using thin plate spline registration. + + Args: + image (np.ndarray, optional): + 2D array. Image slice to be corrected. Defaults to self.slice. + use_center (bool, optional): + Option to use the image center/centroid in the registration + process. Defaults to config value, or True. + fixed_center (bool, optional): + Option to have a fixed center during registration-based + symmetrization. Defaults to True. + interp_order (int, optional): + Order of interpolation (see ``scipy.ndimage.map_coordinates()``). + Defaults to 1. + ascale: (Union[float, np.ndarray], optional): Scale parameter determining a realtive + scale for each symmetry feature. If provided as single float, rotsym has to be 4. + This parameter describes the relative scaling between the two orthogonal symmetry + directions (for an orthorhombic system). This requires the correction points to be + located along the principal axes (X/Y points of the Brillouin zone). Otherwise, an + array with ``rotsym`` elements is expected, containing relative scales for each + feature. Defaults to an array of equal scales. + verbose (bool, optional): Option to report the used landmarks for correction. + Defaults to True. + **kwds: keyword arguments: + + - **landmarks**: (list/array): Landmark positions (row, column) used + for registration. Defaults to self.pouter_ord + - **targets**: (list/array): Target positions (row, column) used for + registration. If empty, it will be generated by + ``symmetrize.rotVertexGenerator()``. + - **new_centers**: (dict): User-specified center positions for the + reference and target sets. {'lmkcenter': (row, col), + 'targcenter': (row, col)} + Returns: + np.ndarray: The corrected image. + """ + if image is None: + if self.slice is not None: + image = self.slice + else: + image = np.zeros(self._config["momentum"]["bins"][0:2]) + self.bin_ranges = self._config["momentum"]["ranges"] + + if self.pouter_ord is None: + if self.pouter is not None: + self.pouter_ord = po.pointset_order(self.pouter) + self.correction["creation_date"] = datetime.now().timestamp() + self.correction["creation_date"] = datetime.now().timestamp() + else: + try: + features = np.asarray( + self.correction["feature_points"], + ) + rotsym = self.correction["rotation_symmetry"] + include_center = self.correction["include_center"] + if not include_center and len(features) > rotsym: + features = features[:rotsym, :] + ascale = self.correction.get("ascale", None) + if ascale is not None: + ascale = np.asarray(ascale) + + if verbose: + if "creation_date" in self.correction: + datestring = datetime.fromtimestamp( + self.correction["creation_date"], + ).strftime( + "%m/%d/%Y, %H:%M:%S", + ) + print( + "No landmarks defined, using momentum correction parameters " + f"generated on {datestring}", + ) + else: + print( + "No landmarks defined, using momentum correction parameters " + "from config.", + ) + except KeyError as exc: + raise ValueError( + "No valid landmarks defined, and no landmarks found in configuration!", + ) from exc + + self.add_features(features=features, rotsym=rotsym, include_center=include_center) + + else: + self.correction["creation_date"] = datetime.now().timestamp() + + if ascale is not None: + if isinstance(ascale, (int, float, np.floating, np.integer)): + if self.rotsym != 4: + raise ValueError( + "Providing ascale as scalar number is only valid for 'rotsym'==4.", + ) + self.ascale = np.array([1.0, ascale, 1.0, ascale]) + elif isinstance(ascale, (tuple, list, np.ndarray)): + if len(ascale) != len(self.ascale): + raise ValueError( + f"ascale needs to be of length 'rotsym', but has length {len(ascale)}.", + ) + self.ascale = np.asarray(ascale) + else: + raise TypeError( + ( + "ascale needs to be a single number or a list/tuple/np.ndarray of length ", + f"'rotsym' ({self.rotsym})!", + ), + ) + + if use_center is None: + try: + use_center = self.correction["use_center"] + except KeyError: + use_center = True + self.use_center = use_center + + self.prefs = kwds.pop("landmarks", self.pouter_ord) + self.ptargs = kwds.pop("targets", []) + + # Generate the target point set + if not self.ptargs: + self.ptargs = sym.rotVertexGenerator( + self.pcent, + fixedvertex=self.pouter_ord[0, :], + arot=self.arot, + direction=-1, + scale=self.ascale, + ret="all", + )[1:, :] + + if use_center is True: + # Use center of image pattern in the registration-based symmetrization + if fixed_center is True: + # Add the same center to both the reference and target sets + + self.prefs = np.column_stack((self.prefs.T, self.pcent)).T + self.ptargs = np.column_stack((self.ptargs.T, self.pcent)).T + + else: # Add different centers to the reference and target sets + newcenters = kwds.pop("new_centers", {}) + self.prefs = np.column_stack( + (self.prefs.T, newcenters["lmkcenter"]), + ).T + self.ptargs = np.column_stack( + (self.ptargs.T, newcenters["targcenter"]), + ).T + + # Non-iterative estimation of deformation field + corrected_image, splinewarp = tps.tpsWarping( + self.prefs, + self.ptargs, + image, + None, + interp_order, + ret="all", + **kwds, + ) + + self.reset_deformation(image=image, coordtype="cartesian") + + self.update_deformation( + splinewarp[0], + splinewarp[1], + ) + + # save backup copies to reset transformations + self.rdeform_field_bkp = self.rdeform_field + self.cdeform_field_bkp = self.cdeform_field + + self.correction["outer_points"] = self.pouter_ord + self.correction["center_point"] = np.asarray(self.pcent) + self.correction["reference_points"] = self.prefs + self.correction["target_points"] = self.ptargs + self.correction["rotation_symmetry"] = self.rotsym + self.correction["use_center"] = self.use_center + self.correction["include_center"] = self.include_center + if self.include_center: + self.correction["feature_points"] = np.concatenate( + (self.pouter_ord, np.asarray([self.pcent])), + ) + else: + self.correction["feature_points"] = self.pouter_ord + self.correction["ascale"] = self.ascale + + if self.slice is not None: + self.slice_corrected = corrected_image + + if verbose: + print("Calulated thin spline correction based on the following landmarks:") + print(f"pouter: {self.pouter}") + if use_center: + print(f"pcent: {self.pcent}") + + return corrected_image
    + + +
    +[docs] + def apply_correction( + self, + image: np.ndarray, + axis: int, + dfield: np.ndarray = None, + ) -> np.ndarray: + """Apply a 2D transform to a stack of 2D images (3D) along a specific axis. + + Args: + image (np.ndarray): Image which to apply the transformation to + axis (int): Axis for slice selection. + dfield (np.ndarray, optional): row and column deformation field. + Defaults to [self.rdeform_field, self.cdeformfield]. + + Returns: + np.ndarray: The corrected image. + """ + if dfield is None: + dfield = np.asarray([self.rdeform_field, self.cdeform_field]) + + image_corrected = sym.applyWarping( + image, + axis, + warptype="deform_field", + dfield=dfield, + ) + + return image_corrected
    + + +
    +[docs] + def reset_deformation(self, **kwds): + """Reset the deformation field. + + Args: + **kwds: keyword arguments: + + - **image**: the image to base the deformation fields on. Its sizes are + used. Defaults to self.slice + - **coordtype**: The coordinate system to use. Defaults to 'cartesian'. + """ + image = kwds.pop("image", self.slice) + coordtype = kwds.pop("coordtype", "cartesian") + coordmat = sym.coordinate_matrix_2D( + image, + coordtype=coordtype, + stackaxis=0, + ).astype("float64") + + self.rdeform_field = coordmat[1, ...] + self.cdeform_field = coordmat[0, ...] + + self.dfield_updated = True
    + + +
    +[docs] + def update_deformation(self, rdeform: np.ndarray, cdeform: np.ndarray): + """Update the class deformation field by applying the provided column/row + deformation fields. + + Parameters: + rdeform (np.ndarray): 2D array of row-ordered deformation field. + cdeform (np.ndarray): 2D array of column-ordered deformation field. + """ + self.rdeform_field = ndi.map_coordinates( + self.rdeform_field, + [rdeform, cdeform], + order=1, + cval=np.nan, + ) + self.cdeform_field = ndi.map_coordinates( + self.cdeform_field, + [rdeform, cdeform], + order=1, + cval=np.nan, + ) + + self.dfield_updated = True
    + + +
    +[docs] + def coordinate_transform( + self, + transform_type: str, + keep: bool = False, + interp_order: int = 1, + mapkwds: dict = None, + **kwds, + ) -> np.ndarray: + """Apply a pixel-wise coordinate transform to the image + by means of the deformation field. + + Args: + transform_type (str): Type of deformation to apply to image slice. Possible + values are: + + - translation. + - rotation. + - rotation_auto. + - scaling. + - scaling_auto. + - homomorphy. + + keep (bool, optional): Option to keep the specified coordinate transform in + the class. Defaults to False. + interp_order (int, optional): Interpolation order for filling in missed + pixels. Defaults to 1. + mapkwds (dict, optional): Additional arguments passed to + ``scipy.ndimage.map_coordinates()``. Defaults to None. + **kwds: keyword arguments. + Additional arguments in specific deformation field. + See ``symmetrize.sym`` module. + Returns: + np.ndarray: The corrected image. + """ + if mapkwds is None: + mapkwds = {} + + image = kwds.pop("image", self.slice) + stackax = kwds.pop("stackaxis", 0) + coordmat = sym.coordinate_matrix_2D( + image, + coordtype="homogeneous", + stackaxis=stackax, + ) + + if transform_type == "translation": + if "xtrans" in kwds and "ytrans" in kwds: + tmp = kwds["ytrans"] + kwds["ytrans"] = kwds["xtrans"] + kwds["xtrans"] = tmp + + rdisp, cdisp = sym.translationDF( + coordmat, + stackaxis=stackax, + ret="displacement", + **kwds, + ) + elif transform_type == "rotation": + rdisp, cdisp = sym.rotationDF( + coordmat, + stackaxis=stackax, + ret="displacement", + **kwds, + ) + elif transform_type == "rotation_auto": + center = kwds.pop("center", self.pcent) + # Estimate the optimal rotation angle using intensity symmetry + angle_auto, _ = sym.sym_pose_estimate( + image / image.max(), + center=center, + **kwds, + ) + self.adjust_params = dictmerge( + self.adjust_params, + {"center": center, "angle": angle_auto}, + ) + rdisp, cdisp = sym.rotationDF( + coordmat, + stackaxis=stackax, + ret="displacement", + angle=angle_auto, + ) + elif transform_type == "scaling": + rdisp, cdisp = sym.scalingDF( + coordmat, + stackaxis=stackax, + ret="displacement", + **kwds, + ) + elif transform_type == "scaling_auto": # Compare scaling to a reference image + pass + elif transform_type == "shearing": + rdisp, cdisp = sym.shearingDF( + coordmat, + stackaxis=stackax, + ret="displacement", + **kwds, + ) + elif transform_type == "homography": + transform = kwds.pop("transform", np.eye(3)) + rdisp, cdisp = sym.compose_deform_field( + coordmat, + mat_transform=transform, + stackaxis=stackax, + ret="displacement", + **kwds, + ) + + # Compute deformation field + if stackax == 0: + rdeform, cdeform = ( + coordmat[1, ...] + rdisp, + coordmat[0, ...] + cdisp, + ) + elif stackax == -1: + rdeform, cdeform = ( + coordmat[..., 1] + rdisp, + coordmat[..., 0] + cdisp, + ) + + # Resample image in the deformation field + if image is self.slice: # resample using all previous displacement fields + total_rdeform = ndi.map_coordinates( + self.rdeform_field, + [rdeform, cdeform], + order=1, + ) + total_cdeform = ndi.map_coordinates( + self.cdeform_field, + [rdeform, cdeform], + order=1, + ) + slice_transformed = ndi.map_coordinates( + image, + [total_rdeform, total_cdeform], + order=interp_order, + **mapkwds, + ) + self.slice_transformed = slice_transformed + else: + # if external image is provided, apply only the new addional tranformation + slice_transformed = ndi.map_coordinates( + image, + [rdeform, cdeform], + order=interp_order, + **mapkwds, + ) + + # Combine deformation fields + if keep is True: + self.update_deformation( + rdeform, + cdeform, + ) + self.adjust_params["applied"] = True + self.adjust_params = dictmerge(self.adjust_params, kwds) + + return slice_transformed
    + + +
    +[docs] + def pose_adjustment( + self, + transformations: Dict[str, Any] = None, + apply: bool = False, + reset: bool = True, + verbose: bool = True, + **kwds, + ): + """Interactive panel to adjust transformations that are applied to the image. + Applies first a scaling, next a x/y translation, and last a rotation around + the center of the image (pixel 256/256). + + Args: + transformations (dict, optional): Dictionary with transformations. + Defaults to self.transformations or config["momentum"]["transformtions"]. + apply (bool, optional): + Option to directly apply the provided transformations. + Defaults to False. + reset (bool, optional): + Option to reset the correction before transformation. Defaults to True. + verbose (bool, optional): + Option to report the performed transformations. Defaults to True. + **kwds: Keyword parameters defining defaults for the transformations: + + - **scale** (float): Initial value of the scaling slider. + - **xtrans** (float): Initial value of the xtrans slider. + - **ytrans** (float): Initial value of the ytrans slider. + - **angle** (float): Initial value of the angle slider. + """ + matplotlib.use("module://ipympl.backend_nbagg") + if self.slice_corrected is None or not self.slice_corrected.any(): + if self.slice is None or not self.slice.any(): + self.slice = np.zeros(self._config["momentum"]["bins"][0:2]) + source_image = self.slice + plot = False + else: + source_image = self.slice_corrected + plot = True + + transformed_image = source_image + + if reset: + if self.rdeform_field_bkp is not None and self.cdeform_field_bkp is not None: + self.rdeform_field = self.rdeform_field_bkp + self.cdeform_field = self.cdeform_field_bkp + else: + self.reset_deformation() + + center = self._config["momentum"]["center_pixel"] + if plot: + fig, ax = plt.subplots(1, 1) + img = ax.imshow(transformed_image.T, origin="lower", cmap="terrain_r") + ax.axvline(x=center[0]) + ax.axhline(y=center[1]) + + if transformations is None: + transformations = deepcopy(self.transformations) + + if len(kwds) > 0: + for key, value in kwds.items(): + transformations[key] = value + + elif "creation_date" in transformations and verbose: + datestring = datetime.fromtimestamp(transformations["creation_date"]).strftime( + "%m/%d/%Y, %H:%M:%S", + ) + print(f"Using transformation parameters generated on {datestring}") + + def update(scale: float, xtrans: float, ytrans: float, angle: float): + transformed_image = source_image + if scale != 1: + transformations["scale"] = scale + transformed_image = self.coordinate_transform( + image=transformed_image, + transform_type="scaling", + xscale=scale, + yscale=scale, + ) + if xtrans != 0: + transformations["xtrans"] = xtrans + if ytrans != 0: + transformations["ytrans"] = ytrans + if xtrans != 0 or ytrans != 0: + transformed_image = self.coordinate_transform( + image=transformed_image, + transform_type="translation", + xtrans=xtrans, + ytrans=ytrans, + ) + if angle != 0: + transformations["angle"] = angle + transformed_image = self.coordinate_transform( + image=transformed_image, + transform_type="rotation", + angle=angle, + center=center, + ) + if plot: + img.set_data(transformed_image.T) + axmin = np.min(transformed_image, axis=(0, 1)) + axmax = np.max(transformed_image, axis=(0, 1)) + if axmin < axmax: + img.set_clim(axmin, axmax) + fig.canvas.draw_idle() + + update( + scale=transformations.get("scale", 1), + xtrans=transformations.get("xtrans", 0), + ytrans=transformations.get("ytrans", 0), + angle=transformations.get("angle", 0), + ) + + scale_slider = ipw.FloatSlider( + value=transformations.get("scale", 1), + min=0.8, + max=1.2, + step=0.01, + ) + xtrans_slider = ipw.FloatSlider( + value=transformations.get("xtrans", 0), + min=-200, + max=200, + step=1, + ) + ytrans_slider = ipw.FloatSlider( + value=transformations.get("ytrans", 0), + min=-200, + max=200, + step=1, + ) + angle_slider = ipw.FloatSlider( + value=transformations.get("angle", 0), + min=-180, + max=180, + step=1, + ) + results_box = ipw.Output() + ipw.interact( + update, + scale=scale_slider, + xtrans=xtrans_slider, + ytrans=ytrans_slider, + angle=angle_slider, + ) + + def apply_func(apply: bool): # noqa: ARG001 + if transformations.get("scale", 1) != 1: + self.coordinate_transform( + transform_type="scaling", + xscale=transformations["scale"], + yscale=transformations["scale"], + keep=True, + ) + if verbose: + with results_box: + print(f"Applied scaling with scale={transformations['scale']}.") + if transformations.get("xtrans", 0) != 0 or transformations.get("ytrans", 0) != 0: + self.coordinate_transform( + transform_type="translation", + xtrans=transformations.get("xtrans", 0), + ytrans=transformations.get("ytrans", 0), + keep=True, + ) + if verbose: + with results_box: + print( + f"Applied translation with (xtrans={transformations.get('xtrans', 0)},", + f"ytrans={transformations.get('ytrans', 0)}).", + ) + if transformations.get("angle", 0) != 0: + self.coordinate_transform( + transform_type="rotation", + angle=transformations["angle"], + center=center, + keep=True, + ) + if verbose: + with results_box: + print(f"Applied rotation with angle={transformations['angle']}.") + + display(results_box) + + if plot: + img.set_data(self.slice_transformed.T) + axmin = np.min(self.slice_transformed, axis=(0, 1)) + axmax = np.max(self.slice_transformed, axis=(0, 1)) + if axmin < axmax: + img.set_clim(axmin, axmax) + fig.canvas.draw_idle() + + if transformations != self.transformations: + transformations["creation_date"] = datetime.now().timestamp() + self.transformations = transformations + + if verbose: + plt.figure() + subs = 20 + plt.title("Deformation field") + plt.scatter( + self.rdeform_field[::subs, ::subs].ravel(), + self.cdeform_field[::subs, ::subs].ravel(), + c="b", + ) + plt.show() + scale_slider.close() + xtrans_slider.close() + ytrans_slider.close() + angle_slider.close() + apply_button.close() + + apply_button = ipw.Button(description="apply") + display(apply_button) + apply_button.on_click(apply_func) + + if plot: + plt.show() + + if apply: + apply_func(True)
    + + +
    +[docs] + def calc_inverse_dfield(self): + """Calculate the inverse dfield from the cdeform and rdeform fields""" + self.inverse_dfield = generate_inverse_dfield( + self.rdeform_field, + self.cdeform_field, + self.bin_ranges, + self.detector_ranges, + ) + + return self.inverse_dfield
    + + +
    +[docs] + def view( # pylint: disable=dangerous-default-value + self, + image: np.ndarray = None, + origin: str = "lower", + cmap: str = "terrain_r", + figsize: Tuple[int, int] = (4, 4), + points: dict = None, + annotated: bool = False, + backend: str = "matplotlib", + imkwds: dict = {}, + scatterkwds: dict = {}, + cross: bool = False, + crosshair: bool = False, + crosshair_radii: List[int] = [50, 100, 150], + crosshair_thickness: int = 1, + **kwds, + ): + """Display image slice with specified annotations. + + Args: + image (np.ndarray, optional): The image to plot. Defaults to self.slice. + origin (str, optional): Figure origin specification ('lower' or 'upper'). + Defaults to "lower". + cmap (str, optional): Colormap specification. Defaults to "terrain_r". + figsize (Tuple[int, int], optional): Figure size. Defaults to (4, 4). + points (dict, optional): Points for annotation. Defaults to None. + annotated (bool, optional): Option to add annotation. Defaults to False. + backend (str, optional): Visualization backend specification. Defaults to + "matplotlib". + + - 'matplotlib': use static display rendered by matplotlib. + - 'bokeh': use interactive display rendered by bokeh. + + imkwds (dict, optional): Keyword arguments for + ``matplotlib.pyplot.imshow()``. Defaults to {}. + scatterkwds (dict, optional): Keyword arguments for + ``matplotlib.pyplot.scatter()``. Defaults to {}. + cross (bool, optional): Option to display a horizontal/vertical lines at + self.pcent. Defaults to False. + crosshair (bool, optional): Display option to plot circles around center + self.pcent. Works only in bokeh backend. Defaults to False. + crosshair_radii (List[int], optional): Pixel radii of circles to plot when + crosshair option is activated. Defaults to [50, 100, 150]. + crosshair_thickness (int, optional): Thickness of crosshair circles. + Defaults to 1. + **kwds: keyword arguments. + General extra arguments for the plotting procedure. + """ + if image is None: + image = self.slice + num_rows, num_cols = image.shape + + if points is None: + points = self.features + + if annotated: + tsr, tsc = kwds.pop("textshift", (3, 3)) + txtsize = kwds.pop("textsize", 12) + + if backend == "matplotlib": + fig, ax = plt.subplots(figsize=figsize) + ax.imshow(image.T, origin=origin, cmap=cmap, **imkwds) + + if cross: + center = self._config["momentum"]["center_pixel"] + ax.axvline(x=center[0]) + ax.axhline(y=center[1]) + + # Add annotation to the figure + if annotated: + for ( + p_keys, # pylint: disable=unused-variable + p_vals, + ) in points.items(): + try: + ax.scatter(p_vals[:, 0], p_vals[:, 1], **scatterkwds) + except IndexError: + try: + ax.scatter(p_vals[0], p_vals[1], **scatterkwds) + except IndexError: + pass + + if p_vals.size > 2: + for i_pval, pval in enumerate(p_vals): + ax.text( + pval[0] + tsc, + pval[1] + tsr, + str(i_pval), + fontsize=txtsize, + ) + + elif backend == "bokeh": + output_notebook(hide_banner=True) + colors = it.cycle(ColorCycle[10]) + ttp = [("(x, y)", "($x, $y)")] + figsize = kwds.pop("figsize", (320, 300)) + palette = cm2palette(cmap) # Retrieve palette colors + fig = pbk.figure( + width=figsize[0], + height=figsize[1], + tooltips=ttp, + x_range=(0, num_rows), + y_range=(0, num_cols), + ) + fig.image( + image=[image.T], + x=0, + y=0, + dw=num_rows, + dh=num_cols, + palette=palette, + **imkwds, + ) + + if annotated is True: + for p_keys, p_vals in points.items(): + try: + xcirc, ycirc = p_vals[:, 0], p_vals[:, 1] + fig.scatter( + xcirc, + ycirc, + size=8, + color=next(colors), + **scatterkwds, + ) + except IndexError: + try: + xcirc, ycirc = p_vals[0], p_vals[1] + fig.scatter( + xcirc, + ycirc, + size=8, + color=next(colors), + **scatterkwds, + ) + except IndexError: + pass + if crosshair and self.pcent is not None: + for radius in crosshair_radii: + fig.annulus( + x=[self.pcent[0]], + y=[self.pcent[1]], + inner_radius=radius - crosshair_thickness, + outer_radius=radius, + color="red", + alpha=0.6, + ) + + pbk.show(fig)
    + + +
    +[docs] + def select_k_range( + self, + point_a: Union[np.ndarray, List[int]] = None, + point_b: Union[np.ndarray, List[int]] = None, + k_distance: float = None, + k_coord_a: Union[np.ndarray, List[float]] = None, + k_coord_b: Union[np.ndarray, List[float]] = np.array([0.0, 0.0]), + equiscale: bool = True, + apply: bool = False, + ): + """Interactive selection function for features for the Momentum axes calibra- + tion. It allows the user to select the pixel positions of two symmetry points + (a and b) and the k-space distance of the two. Alternatively, the corrdinates + of both points can be provided. See the equiscale option for details on the + specifications of point coordinates. + + Args: + point_a (Union[np.ndarray, List[int]], optional): Pixel coordinates of the + symmetry point a. + point_b (Union[np.ndarray, List[int]], optional): Pixel coordinates of the + symmetry point b. Defaults to the center pixel of the image, defined by + config["momentum"]["center_pixel"]. + k_distance (float, optional): The known momentum space distance between the + two symmetry points. + k_coord_a (Union[np.ndarray, List[float]], optional): Momentum coordinate + of the symmetry points a. Only valid if equiscale=False. + k_coord_b (Union[np.ndarray, List[float]], optional): Momentum coordinate + of the symmetry points b. Only valid if equiscale=False. Defaults to + the k-space center np.array([0.0, 0.0]). + equiscale (bool, optional): Option to adopt equal scale along both the x + and y directions. + + - **True**: Use a uniform scale for both x and y directions in the + image coordinate system. This applies to the situation where + k_distance is given and the points a and b are (close to) parallel + with one of the two image axes. + - **False**: Calculate the momentum scale for both x and y directions + separately. This applies to the situation where the points a and b + are sufficiently different in both x and y directions in the image + coordinate system. + + Defaults to 'True'. + + apply (bool, optional): Option to directly store the calibration parameters + to the class. Defaults to False. + + Raises: + ValueError: If no valid image is found from which to ge the coordinates. + """ + matplotlib.use("module://ipympl.backend_nbagg") + if self.slice_transformed is not None: + image = self.slice_transformed + elif self.slice_corrected is not None: + image = self.slice_corrected + elif self.slice is not None: + image = self.slice + else: + raise ValueError("No valid image loaded!") + + if point_b is None: + point_b = self._config["momentum"]["center_pixel"] + + if point_a is None: + point_a = [0, 0] + + fig, ax = plt.subplots(1, 1) + img = ax.imshow(image.T, origin="lower", cmap="terrain_r") + + (marker_a,) = ax.plot(point_a[0], point_a[1], "o") + (marker_b,) = ax.plot(point_b[0], point_b[1], "ro") + + def update( + point_a_x: int, + point_a_y: int, + point_b_x: int, + point_b_y: int, + k_distance: float, # noqa: ARG001 + ): + fig.canvas.draw_idle() + marker_a.set_xdata(point_a_x) + marker_a.set_ydata(point_a_y) + marker_b.set_xdata(point_b_x) + marker_b.set_ydata(point_b_y) + + point_a_input_x = ipw.IntText(point_a[0]) + point_a_input_y = ipw.IntText(point_a[1]) + point_b_input_x = ipw.IntText(point_b[0]) + point_b_input_y = ipw.IntText(point_b[1]) + k_distance_input = ipw.FloatText(k_distance) + ipw.interact( + update, + point_a_x=point_a_input_x, + point_a_y=point_a_input_y, + point_b_x=point_b_input_x, + point_b_y=point_b_input_y, + k_distance=k_distance_input, + ) + + self._state = 0 + + def onclick(event): + if self._state == 0: + point_a_input_x.value = event.xdata + point_a_input_y.value = event.ydata + self._state = 1 + else: + point_b_input_x.value = event.xdata + point_b_input_y.value = event.ydata + self._state = 0 + + cid = fig.canvas.mpl_connect("button_press_event", onclick) + + def apply_func(apply: bool): # noqa: ARG001 + point_a = [point_a_input_x.value, point_a_input_y.value] + point_b = [point_b_input_x.value, point_b_input_y.value] + calibration = self.calibrate( + point_a=point_a, + point_b=point_b, + k_distance=k_distance, + equiscale=equiscale, + k_coord_a=k_coord_a, + k_coord_b=k_coord_b, + ) + + img.set_extent(calibration["extent"]) + plt.title("Momentum calibrated data") + plt.xlabel("$k_x$", fontsize=15) + plt.ylabel("$k_y$", fontsize=15) + ax.axhline(0) + ax.axvline(0) + + fig.canvas.mpl_disconnect(cid) + + point_a_input_x.close() + point_a_input_y.close() + point_b_input_x.close() + point_b_input_y.close() + k_distance_input.close() + apply_button.close() + + fig.canvas.draw_idle() + + apply_button = ipw.Button(description="apply") + display(apply_button) + apply_button.on_click(apply_func) + + if apply: + apply_func(True) + + plt.show()
    + + +
    +[docs] + def calibrate( + self, + point_a: Union[np.ndarray, List[int]], + point_b: Union[np.ndarray, List[int]], + k_distance: float = None, + k_coord_a: Union[np.ndarray, List[float]] = None, + k_coord_b: Union[np.ndarray, List[float]] = np.array([0.0, 0.0]), + equiscale: bool = True, + image: np.ndarray = None, + ) -> dict: + """Momentum axes calibration using the pixel positions of two symmetry points + (a and b) and the absolute coordinate of a single point (b), defaulted to + [0., 0.]. All coordinates should be specified in the (x/y), i.e. (column_index, + row_index) format. See the equiscale option for details on the specifications + of point coordinates. + + Args: + point_a (Union[np.ndarray, List[int]], optional): Pixel coordinates of the + symmetry point a. + point_b (Union[np.ndarray, List[int]], optional): Pixel coordinates of the + symmetry point b. Defaults to the center pixel of the image, defined by + config["momentum"]["center_pixel"]. + k_distance (float, optional): The known momentum space distance between the + two symmetry points. + k_coord_a (Union[np.ndarray, List[float]], optional): Momentum coordinate + of the symmetry points a. Only valid if equiscale=False. + k_coord_b (Union[np.ndarray, List[float]], optional): Momentum coordinate + of the symmetry points b. Only valid if equiscale=False. Defaults to + the k-space center np.array([0.0, 0.0]). + equiscale (bool, optional): Option to adopt equal scale along both the x + and y directions. + + - **True**: Use a uniform scale for both x and y directions in the + image coordinate system. This applies to the situation where + k_distance is given and the points a and b are (close to) parallel + with one of the two image axes. + - **False**: Calculate the momentum scale for both x and y directions + separately. This applies to the situation where the points a and b + are sufficiently different in both x and y directions in the image + coordinate system. + + Defaults to 'True'. + image (np.ndarray, optional): The energy slice for which to return the + calibration. Defaults to self.slice_corrected. + + Returns: + dict: dictionary with following entries: + + - "axes": Tuple of 1D arrays + Momentum coordinates of the row and column. + - "extent": list + Extent of the two momentum axis (can be used directly in imshow). + - "grid": Tuple of 2D arrays + Row and column mesh grid generated from the coordinates + (can be used directly in pcolormesh). + - "coeffs": Tuple of (x, y) calibration coefficients + - "x_center", "y_center": Pixel positions of the k-space center + - "cstart", "rstart": Detector positions of the image used for + calibration + - "cstep", "rstep": Step size of detector coordinates in the image + used for calibration + """ + if image is None: + image = self.slice_corrected + + nrows, ncols = image.shape + point_a, point_b = map(np.array, [point_a, point_b]) + + rowdist = range(nrows) - point_b[0] + coldist = range(ncols) - point_b[1] + + if equiscale is True: + assert k_distance is not None + # Use the same conversion factor along both x and y directions + # (need k_distance) + pixel_distance = norm(point_a - point_b) + # Calculate the pixel to momentum conversion factor + xratio = yratio = k_distance / pixel_distance + + else: + assert k_coord_a is not None + # Calculate the conversion factor along x and y directions separately + # (need k_coord_a) + kxb, kyb = k_coord_b + kxa, kya = k_coord_a + # Calculate the column- and row-wise conversion factor + xratio = (kxa - kxb) / (point_a[0] - point_b[0]) + yratio = (kya - kyb) / (point_a[1] - point_b[1]) + + k_row = rowdist * xratio + k_coord_b[0] + k_col = coldist * yratio + k_coord_b[1] + + # Calculate other return parameters + k_rowgrid, k_colgrid = np.meshgrid(k_row, k_col) + + # Assemble into return dictionary + self.calibration = {} + self.calibration["creation_date"] = datetime.now().timestamp() + self.calibration["kx_axis"] = k_row + self.calibration["ky_axis"] = k_col + self.calibration["grid"] = (k_rowgrid, k_colgrid) + self.calibration["extent"] = (k_row[0], k_row[-1], k_col[0], k_col[-1]) + self.calibration["kx_scale"] = xratio + self.calibration["ky_scale"] = yratio + self.calibration["x_center"] = point_b[0] - k_coord_b[0] / xratio + self.calibration["y_center"] = point_b[1] - k_coord_b[1] / yratio + # copy parameters for applying calibration + try: + self.calibration["rstart"] = self.bin_ranges[0][0] + self.calibration["cstart"] = self.bin_ranges[1][0] + self.calibration["rstep"] = (self.bin_ranges[0][1] - self.bin_ranges[0][0]) / nrows + self.calibration["cstep"] = (self.bin_ranges[1][1] - self.bin_ranges[1][0]) / ncols + except (AttributeError, IndexError): + pass + + return self.calibration
    + + +
    +[docs] + def apply_corrections( + self, + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + x_column: str = None, + y_column: str = None, + new_x_column: str = None, + new_y_column: str = None, + verbose: bool = True, + **kwds, + ) -> Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: + """Calculate and replace the X and Y values with their distortion-corrected + version. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to apply + the distotion correction to. + x_column (str, optional): Label of the 'X' column before momentum + distortion correction. Defaults to config["momentum"]["x_column"]. + y_column (str, optional): Label of the 'Y' column before momentum + distortion correction. Defaults to config["momentum"]["y_column"]. + new_x_column (str, optional): Label of the 'X' column after momentum + distortion correction. + Defaults to config["momentum"]["corrected_x_column"]. + new_y_column (str, optional): Label of the 'Y' column after momentum + distortion correction. + Defaults to config["momentum"]["corrected_y_column"]. + verbose (bool, optional): Option to report the used landmarks for correction. + Defaults to True. + **kwds: Keyword arguments: + + - **dfield**: Inverse dfield + - **cdeform_field**, **rdeform_field**: Column- and row-wise forward + deformation fields. + + Additional keyword arguments are passed to ``apply_dfield``. + + Returns: + Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: Dataframe with + added columns and momentum correction metadata dictionary. + """ + if x_column is None: + x_column = self.x_column + if y_column is None: + y_column = self.y_column + + if new_x_column is None: + new_x_column = self.corrected_x_column + if new_y_column is None: + new_y_column = self.corrected_y_column + + if self.inverse_dfield is None or self.dfield_updated: + if self.rdeform_field is None and self.cdeform_field is None: + if self.correction or self.transformations: + if self.correction: + # Generate spline warp from class features or config + self.spline_warp_estimate(verbose=verbose) + if self.transformations: + # Apply config pose adjustments + self.pose_adjustment() + else: + raise ValueError("No corrections or transformations defined!") + + self.inverse_dfield = generate_inverse_dfield( + self.rdeform_field, + self.cdeform_field, + self.bin_ranges, + self.detector_ranges, + ) + self.dfield_updated = False + + out_df = df.map_partitions( + apply_dfield, + dfield=self.inverse_dfield, + x_column=x_column, + y_column=y_column, + new_x_column=new_x_column, + new_y_column=new_y_column, + detector_ranges=self.detector_ranges, + **kwds, + ) + + metadata = self.gather_correction_metadata() + + return out_df, metadata
    + + +
    +[docs] + def gather_correction_metadata(self) -> dict: + """Collect meta data for momentum correction. + + Returns: + dict: generated correction metadata dictionary. + """ + metadata: Dict[Any, Any] = {} + if len(self.correction) > 0: + metadata["correction"] = self.correction + metadata["correction"]["applied"] = True + metadata["correction"]["cdeform_field"] = self.cdeform_field + metadata["correction"]["rdeform_field"] = self.rdeform_field + try: + metadata["correction"]["creation_date"] = self.correction["creation_date"] + except KeyError: + pass + if len(self.adjust_params) > 0: + metadata["registration"] = self.adjust_params + metadata["registration"]["creation_date"] = datetime.now().timestamp() + metadata["registration"]["applied"] = True + metadata["registration"]["depends_on"] = ( + "/entry/process/registration/tranformations/rot_z" + if "angle" in metadata["registration"] and metadata["registration"]["angle"] + else "/entry/process/registration/tranformations/trans_y" + if "xtrans" in metadata["registration"] and metadata["registration"]["xtrans"] + else "/entry/process/registration/tranformations/trans_x" + if "ytrans" in metadata["registration"] and metadata["registration"]["ytrans"] + else "." + ) + if ( + "ytrans" in metadata["registration"] and metadata["registration"]["ytrans"] + ): # swapped definitions + metadata["registration"]["trans_x"] = {} + metadata["registration"]["trans_x"]["value"] = metadata["registration"]["ytrans"] + metadata["registration"]["trans_x"]["type"] = "translation" + metadata["registration"]["trans_x"]["units"] = "pixel" + metadata["registration"]["trans_x"]["vector"] = np.asarray( + [1.0, 0.0, 0.0], + ) + metadata["registration"]["trans_x"]["depends_on"] = "." + if "xtrans" in metadata["registration"] and metadata["registration"]["xtrans"]: + metadata["registration"]["trans_y"] = {} + metadata["registration"]["trans_y"]["value"] = metadata["registration"]["xtrans"] + metadata["registration"]["trans_y"]["type"] = "translation" + metadata["registration"]["trans_y"]["units"] = "pixel" + metadata["registration"]["trans_y"]["vector"] = np.asarray( + [0.0, 1.0, 0.0], + ) + metadata["registration"]["trans_y"]["depends_on"] = ( + "/entry/process/registration/tranformations/trans_x" + if "ytrans" in metadata["registration"] and metadata["registration"]["ytrans"] + else "." + ) + if "angle" in metadata["registration"] and metadata["registration"]["angle"]: + metadata["registration"]["rot_z"] = {} + metadata["registration"]["rot_z"]["value"] = metadata["registration"]["angle"] + metadata["registration"]["rot_z"]["type"] = "rotation" + metadata["registration"]["rot_z"]["units"] = "degrees" + metadata["registration"]["rot_z"]["vector"] = np.asarray( + [0.0, 0.0, 1.0], + ) + metadata["registration"]["rot_z"]["offset"] = np.concatenate( + (metadata["registration"]["center"], [0.0]), + ) + metadata["registration"]["rot_z"]["depends_on"] = ( + "/entry/process/registration/tranformations/trans_y" + if "xtrans" in metadata["registration"] and metadata["registration"]["xtrans"] + else "/entry/process/registration/tranformations/trans_x" + if "ytrans" in metadata["registration"] and metadata["registration"]["ytrans"] + else "." + ) + + return metadata
    + + +
    +[docs] + def append_k_axis( + self, + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + x_column: str = None, + y_column: str = None, + new_x_column: str = None, + new_y_column: str = None, + calibration: dict = None, + **kwds, + ) -> Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: + """Calculate and append the k axis coordinates (kx, ky) to the events dataframe. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to apply the + distotion correction to. + x_column (str, optional): Label of the source 'X' column. + Defaults to config["momentum"]["corrected_x_column"] or + config["momentum"]["x_column"] (whichever is present). + y_column (str, optional): Label of the source 'Y' column. + Defaults to config["momentum"]["corrected_y_column"] or + config["momentum"]["y_column"] (whichever is present). + new_x_column (str, optional): Label of the destination 'X' column after + momentum calibration. Defaults to config["momentum"]["kx_column"]. + new_y_column (str, optional): Label of the destination 'Y' column after + momentum calibration. Defaults to config["momentum"]["ky_column"]. + calibration (dict, optional): Dictionary containing calibration parameters. + Defaults to 'self.calibration' or config["momentum"]["calibration"]. + **kwds: Keyword parameters for momentum calibration. Parameters are added + to the calibration dictionary. + + Returns: + Tuple[Union[pd.DataFrame, dask.dataframe.DataFrame], dict]: Dataframe with + added columns and momentum calibration metadata dictionary. + """ + if x_column is None: + if self.corrected_x_column in df.columns: + x_column = self.corrected_x_column + else: + x_column = self.x_column + if y_column is None: + if self.corrected_y_column in df.columns: + y_column = self.corrected_y_column + else: + y_column = self.y_column + + if new_x_column is None: + new_x_column = self.kx_column + + if new_y_column is None: + new_y_column = self.ky_column + + # pylint: disable=duplicate-code + if calibration is None: + calibration = deepcopy(self.calibration) + + if len(kwds) > 0: + for key, value in kwds.items(): + calibration[key] = value + calibration["creation_date"] = datetime.now().timestamp() + + try: + (df[new_x_column], df[new_y_column]) = detector_coordiantes_2_k_koordinates( + r_det=df[x_column], + c_det=df[y_column], + r_start=calibration["rstart"], + c_start=calibration["cstart"], + r_center=calibration["x_center"], + c_center=calibration["y_center"], + r_conversion=calibration["kx_scale"], + c_conversion=calibration["ky_scale"], + r_step=calibration["rstep"], + c_step=calibration["cstep"], + ) + except KeyError as exc: + raise ValueError( + "Required calibration parameters missing!", + ) from exc + + metadata = self.gather_calibration_metadata(calibration=calibration) + + return df, metadata
    + + +
    +[docs] + def gather_calibration_metadata(self, calibration: dict = None) -> dict: + """Collect meta data for momentum calibration + + Args: + calibration (dict, optional): Dictionary with momentum calibration + parameters. If omitted will be taken from the class. + + Returns: + dict: Generated metadata dictionary. + """ + if calibration is None: + calibration = self.calibration + metadata: Dict[Any, Any] = {} + try: + metadata["creation_date"] = calibration["creation_date"] + except KeyError: + pass + metadata["applied"] = True + metadata["calibration"] = calibration + # create empty calibrated axis entries, if they are not present. + if "kx_axis" not in metadata["calibration"]: + metadata["calibration"]["kx_axis"] = 0 + if "ky_axis" not in metadata["calibration"]: + metadata["calibration"]["ky_axis"] = 0 + + return metadata
    +
    + + + +
    +[docs] +def cm2palette(cmap_name: str) -> list: + """Convert certain matplotlib colormap (cm) to bokeh palette. + + Args: + cmap_name (str): Name of the colormap/palette. + + Returns: + list: List of colors in hex representation (a bokoeh palette). + """ + if cmap_name in bp.all_palettes.keys(): + palette_func = getattr(bp, cmap_name) + palette = palette_func + + else: + palette_func = getattr(cm, cmap_name) + mpl_cm_rgb = (255 * palette_func(range(256))).astype("int") + palette = [RGB(*tuple(rgb)).to_hex() for rgb in mpl_cm_rgb] + + return palette
    + + + +
    +[docs] +def dictmerge( + main_dict: dict, + other_entries: Union[List[dict], Tuple[dict], dict], +) -> dict: + """Merge a dictionary with other dictionaries. + + Args: + main_dict (dict): Main dictionary. + other_entries (Union[List[dict], Tuple[dict], dict]): + Other dictionary or composite dictionarized elements. + + Returns: + dict: Merged dictionary. + """ + if isinstance( + other_entries, + ( + list, + tuple, + ), + ): # Merge main_dict with a list or tuple of dictionaries + for oth in other_entries: + main_dict = {**main_dict, **oth} + + elif isinstance(other_entries, dict): # Merge D with a single dictionary + main_dict = {**main_dict, **other_entries} + + return main_dict
    + + + +
    +[docs] +def detector_coordiantes_2_k_koordinates( + r_det: float, + c_det: float, + r_start: float, + c_start: float, + r_center: float, + c_center: float, + r_conversion: float, + c_conversion: float, + r_step: float, + c_step: float, +) -> Tuple[float, float]: + """Conversion from detector coordinates (rdet, cdet) to momentum coordinates + (kr, kc). + + Args: + r_det (float): Row detector coordinates. + c_det (float): Column detector coordinates. + r_start (float): Start value for row detector coordinates. + c_start (float): Start value for column detector coordinates. + r_center (float): Center value for row detector coordinates. + c_center (float): Center value for column detector coordinates. + r_conversion (float): Row conversion factor. + c_conversion (float): Column conversion factor. + r_step (float): Row stepping factor. + c_step (float): Column stepping factor. + + Returns: + Tuple[float, float]: Converted momentum space row/column coordinates. + """ + r_det0 = r_start + r_step * r_center + c_det0 = c_start + c_step * c_center + k_r = r_conversion * ((r_det - r_det0) / r_step) + k_c = c_conversion * ((c_det - c_det0) / c_step) + + return (k_r, k_c)
    + + + +
    +[docs] +def apply_dfield( + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + dfield: np.ndarray, + x_column: str, + y_column: str, + new_x_column: str, + new_y_column: str, + detector_ranges: List[Tuple], +) -> Union[pd.DataFrame, dask.dataframe.DataFrame]: + """Application of the inverse displacement-field to the dataframe coordinates. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to apply the + distotion correction to. + dfield (np.ndarray): The distortion correction field. 3D matrix, + with column and row distortion fields stacked along the first dimension. + x_column (str): Label of the 'X' source column. + y_column (str): Label of the 'Y' source column. + new_x_column (str): Label of the 'X' destination column. + new_y_column (str): Label of the 'Y' destination column. + detector_ranges (List[Tuple]): tuple of pixel ranges of the detector x/y + coordinates + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: dataframe with added columns + """ + x = df[x_column] + y = df[y_column] + + r_axis_steps = (detector_ranges[0][1] - detector_ranges[0][0]) / dfield[0].shape[0] + c_axis_steps = (detector_ranges[1][1] - detector_ranges[1][0]) / dfield[0].shape[1] + + df[new_x_column], df[new_y_column] = ( + map_coordinates(dfield[0], (x, y), order=1) * r_axis_steps, + map_coordinates(dfield[1], (x, y), order=1) * c_axis_steps, + ) + return df
    + + + +
    +[docs] +def generate_inverse_dfield( + rdeform_field: np.ndarray, + cdeform_field: np.ndarray, + bin_ranges: List[Tuple], + detector_ranges: List[Tuple], +) -> np.ndarray: + """Generate inverse deformation field using inperpolation with griddata. + Assuming the binning range of the input ``rdeform_field`` and ``cdeform_field`` + covers the whole detector. + + Args: + rdeform_field (np.ndarray): Row-wise deformation field. + cdeform_field (np.ndarray): Column-wise deformation field. + bin_ranges (List[Tuple]): Detector ranges of the binned coordinates. + detector_ranges (List[Tuple]): Ranges of detector coordinates to interpolate to. + + Returns: + np.ndarray: The calculated inverse deformation field (row/column) + """ + print( + "Calculating inverse deformation field, this might take a moment...", + ) + + # Interpolate to 2048x2048 grid of the detector coordinates + r_mesh, c_mesh = np.meshgrid( + np.linspace( + detector_ranges[0][0], + cdeform_field.shape[0], + detector_ranges[0][1], + endpoint=False, + ), + np.linspace( + detector_ranges[1][0], + cdeform_field.shape[1], + detector_ranges[1][1], + endpoint=False, + ), + sparse=False, + indexing="ij", + ) + + bin_step = ( + np.asarray(bin_ranges)[0:2][:, 1] - np.asarray(bin_ranges)[0:2][:, 0] + ) / cdeform_field.shape + rc_position = [] # row/column position in c/rdeform_field + r_dest = [] # destination pixel row position + c_dest = [] # destination pixel column position + for i in np.arange(cdeform_field.shape[0]): + for j in np.arange(cdeform_field.shape[1]): + if not np.isnan(rdeform_field[i, j]) and not np.isnan( + cdeform_field[i, j], + ): + rc_position.append( + [ + rdeform_field[i, j] + bin_ranges[0][0] / bin_step[0], + cdeform_field[i, j] + bin_ranges[0][0] / bin_step[1], + ], + ) + r_dest.append( + bin_step[0] * i + bin_ranges[0][0], + ) + c_dest.append( + bin_step[1] * j + bin_ranges[1][0], + ) + + ret = Parallel(n_jobs=2)( + delayed(griddata)(np.asarray(rc_position), np.asarray(arg), (r_mesh, c_mesh)) + for arg in [r_dest, c_dest] + ) + + inverse_dfield = np.asarray([ret[0], ret[1]]) + + return inverse_dfield
    + + + +
    +[docs] +def load_dfield(file: str) -> Tuple[np.ndarray, np.ndarray]: + """Load inverse dfield from file + + Args: + file (str): Path to file containing the inverse dfield + + Returns: + np.ndarray: the loaded inverse deformation field + """ + rdeform_field: np.ndarray = None + cdeform_field: np.ndarray = None + + try: + dfield = np.load(file) + rdeform_field = dfield[0] + cdeform_field = dfield[1] + + except FileNotFoundError: + pass + + return rdeform_field, cdeform_field
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/core/config.html b/sed/v0.1.9/_modules/sed/core/config.html new file mode 100644 index 0000000..e355ec7 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/core/config.html @@ -0,0 +1,762 @@ + + + + + + + + + + sed.core.config — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.core.config

    +"""This module contains a config library for loading yaml/json files into dicts
    +"""
    +import copy
    +import json
    +import os
    +import platform
    +from importlib.util import find_spec
    +from pathlib import Path
    +from typing import Union
    +
    +import yaml
    +
    +package_dir = os.path.dirname(find_spec("sed").origin)
    +
    +
    +
    +[docs] +def parse_config( + config: Union[dict, str] = None, + folder_config: Union[dict, str] = None, + user_config: Union[dict, str] = None, + system_config: Union[dict, str] = None, + default_config: Union[ + dict, + str, + ] = f"{package_dir}/config/default.yaml", + verbose: bool = True, +) -> dict: + """Load the config dictionary from a file, or pass the provided config dictionary. + The content of the loaded config dictionary is then completed from a set of pre-configured + config files in hierarchical order, by adding missing items. These additional config files + are searched for in different places on the system as detailed below. Alternatively, they + can be also passed as optional arguments (file path strings or dictionaries). + + Args: + config (Union[dict, str], optional): config dictionary or file path. + Files can be *json* or *yaml*. Defaults to None. + folder_config (Union[ dict, str, ], optional): working-folder-based config dictionary + or file path. The loaded dictionary is completed with the folder-based values, + taking preference over user, system and default values. Defaults to the file + "sed_config.yaml" in the current working directory. + user_config (Union[ dict, str, ], optional): user-based config dictionary + or file path. The loaded dictionary is completed with the user-based values, + taking preference over system and default values. + Defaults to the file ".sed/config.yaml" in the current user's home directory. + system_config (Union[ dict, str, ], optional): system-wide config dictionary + or file path. The loaded dictionary is completed with the system-wide values, + taking preference over default values. Defaults to the file "/etc/sed/config.yaml" + on linux, and "%ALLUSERSPROFILE%/sed/config.yaml" on windows. + default_config (Union[ dict, str, ], optional): default config dictionary + or file path. The loaded dictionary is completed with the default values. + Defaults to *package_dir*/config/default.yaml". + verbose (bool, optional): Option to report loaded config files. Defaults to True. + Raises: + TypeError: Raised if the provided file is neither *json* nor *yaml*. + FileNotFoundError: Raised if the provided file is not found. + + Returns: + dict: Loaded and possibly completed config dictionary. + """ + if config is None: + config = {} + + if isinstance(config, dict): + config_dict = copy.deepcopy(config) + else: + config_dict = load_config(config) + if verbose: + print(f"Configuration loaded from: [{str(Path(config).resolve())}]") + + folder_dict: dict = None + if isinstance(folder_config, dict): + folder_dict = copy.deepcopy(folder_config) + else: + if folder_config is None: + folder_config = "./sed_config.yaml" + if Path(folder_config).exists(): + folder_dict = load_config(folder_config) + if verbose: + print(f"Folder config loaded from: [{str(Path(folder_config).resolve())}]") + + user_dict: dict = None + if isinstance(user_config, dict): + user_dict = copy.deepcopy(user_config) + else: + if user_config is None: + user_config = str( + Path.home().joinpath(".sed").joinpath("config.yaml"), + ) + if Path(user_config).exists(): + user_dict = load_config(user_config) + if verbose: + print(f"User config loaded from: [{str(Path(user_config).resolve())}]") + + system_dict: dict = None + if isinstance(system_config, dict): + system_dict = copy.deepcopy(system_config) + else: + if system_config is None: + if platform.system() in ["Linux", "Darwin"]: + system_config = str( + Path("/etc/").joinpath("sed").joinpath("config.yaml"), + ) + elif platform.system() == "Windows": + system_config = str( + Path(os.environ["ALLUSERSPROFILE"]).joinpath("sed").joinpath("config.yaml"), + ) + if Path(system_config).exists(): + system_dict = load_config(system_config) + if verbose: + print(f"System config loaded from: [{str(Path(system_config).resolve())}]") + + if isinstance(default_config, dict): + default_dict = copy.deepcopy(default_config) + else: + default_dict = load_config(default_config) + if verbose: + print(f"Default config loaded from: [{str(Path(default_config).resolve())}]") + + if folder_dict is not None: + config_dict = complete_dictionary( + dictionary=config_dict, + base_dictionary=folder_dict, + ) + if user_dict is not None: + config_dict = complete_dictionary( + dictionary=config_dict, + base_dictionary=user_dict, + ) + if system_dict is not None: + config_dict = complete_dictionary( + dictionary=config_dict, + base_dictionary=system_dict, + ) + config_dict = complete_dictionary( + dictionary=config_dict, + base_dictionary=default_dict, + ) + + return config_dict
    + + + +
    +[docs] +def load_config(config_path: str) -> dict: + """Loads config parameter files. + + Args: + config_path (str): Path to the config file. Json or Yaml format are supported. + + Raises: + FileNotFoundError: Raised if the config file cannot be found. + TypeError: Raised if the provided file is neither *json* nor *yaml*. + + Returns: + dict: loaded config dictionary + """ + config_file = Path(config_path) + if not config_file.is_file(): + raise FileNotFoundError( + f"could not find the configuration file: {config_file}", + ) + + if config_file.suffix == ".json": + with open(config_file, encoding="utf-8") as stream: + config_dict = json.load(stream) + elif config_file.suffix == ".yaml": + with open(config_file, encoding="utf-8") as stream: + config_dict = yaml.safe_load(stream) + else: + raise TypeError("config file must be of type json or yaml!") + + return config_dict
    + + + +
    +[docs] +def save_config(config_dict: dict, config_path: str, overwrite: bool = False): + """Function to save a given config dictionary to a json or yaml file. Normally, it loads any + existing file of the given name, and keeps any existing dictionary keys not present in the + provided dictionary. The overwrite option creates a fully empty dictionry first. + + Args: + config_dict (dict): The dictionry to save. + config_path (str): A string containing the path to the file where to save the dictionary + to. + overwrite (bool, optional): Option to overwrite an existing file with the given dictionary. + Defaults to False. + """ + config_file = Path(config_path) + if config_file.is_file() and not overwrite: + existing_config = load_config(config_path=config_path) + else: + existing_config = {} + + new_config = complete_dictionary(config_dict, existing_config) + + if config_file.suffix == ".json": + with open(config_file, mode="w", encoding="utf-8") as stream: + json.dump(new_config, stream, indent=2) + elif config_file.suffix == ".yaml": + with open(config_file, mode="w", encoding="utf-8") as stream: + config_dict = yaml.dump(new_config, stream) + else: + raise TypeError("config file must be of type json or yaml!")
    + + + +
    +[docs] +def complete_dictionary(dictionary: dict, base_dictionary: dict) -> dict: + """Iteratively completes a dictionary from a base dictionary, by adding keys that are missing + in the dictionary, and are present in the base dictionary. + + Args: + dictionary (dict): the dictionary to be completed. + base_dictionary (dict): the base dictionary. + + Returns: + dict: the completed (merged) dictionary + """ + if base_dictionary: + for k, v in base_dictionary.items(): + if isinstance(v, dict): + if k not in dictionary.keys(): + dictionary[k] = v + else: + if not isinstance(dictionary[k], dict): + raise ValueError( + "Cannot merge dictionaries. " + f"Mismatch on Key {k}: {dictionary[k]}, {v}.", + ) + dictionary[k] = complete_dictionary(dictionary[k], v) + else: + if k not in dictionary.keys(): + dictionary[k] = v + + return dictionary
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/core/dfops.html b/sed/v0.1.9/_modules/sed/core/dfops.html new file mode 100644 index 0000000..e8417f3 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/core/dfops.html @@ -0,0 +1,987 @@ + + + + + + + + + + sed.core.dfops — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.core.dfops

    +"""This module contains dataframe operations functions for the sed package
    +
    +"""
    +# Note: some of the functions presented here were
    +# inspired by https://github.com/mpes-kit/mpes
    +from typing import Callable
    +from typing import Sequence
    +from typing import Union
    +
    +import dask.dataframe
    +import numpy as np
    +import pandas as pd
    +from dask.diagnostics import ProgressBar
    +
    +
    +
    +[docs] +def apply_jitter( + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + cols: Union[str, Sequence[str]], + cols_jittered: Union[str, Sequence[str]] = None, + amps: Union[float, Sequence[float]] = 0.5, + jitter_type: str = "uniform", +) -> Union[pd.DataFrame, dask.dataframe.DataFrame]: + """Add jittering to one or more dataframe columns. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to add + noise/jittering to. + cols (Union[str, Sequence[str]]): Names of the columns to add jittering to. + cols_jittered (Union[str, Sequence[str]], optional): Names of the columns + with added jitter. Defaults to None. + amps (Union[float, Sequence[float]], optional): Amplitude scalings for the + jittering noise. If one number is given, the same is used for all axes. + For normal noise, the added noise will have sdev [-amp, +amp], for + uniform noise it will cover the interval [-amp, +amp]. + Defaults to 0.5. + jitter_type (str, optional): the type of jitter to add. 'uniform' or 'normal' + distributed noise. Defaults to "uniform". + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: dataframe with added columns. + """ + assert cols is not None, "cols needs to be provided!" + assert jitter_type in ( + "uniform", + "normal", + ), "type needs to be one of 'normal', 'uniform'!" + + if isinstance(cols, str): + cols = [cols] + if isinstance(cols_jittered, str): + cols_jittered = [cols_jittered] + if cols_jittered is None: + cols_jittered = [col + "_jittered" for col in cols] + if isinstance(amps, float): + amps = list(np.ones(len(cols)) * amps) + + colsize = df[cols[0]].size + + if jitter_type == "uniform": + # Uniform Jitter distribution + jitter = np.random.uniform(low=-1, high=1, size=colsize) + elif jitter_type == "normal": + # Normal Jitter distribution works better for non-linear transformations and + # jitter sizes that don't match the original bin sizes + jitter = np.random.standard_normal(size=colsize) + + for col, col_jittered, amp in zip(cols, cols_jittered, amps): + df[col_jittered] = df[col] + amp * jitter + + return df
    + + + +
    +[docs] +def drop_column( + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + column_name: Union[str, Sequence[str]], +) -> Union[pd.DataFrame, dask.dataframe.DataFrame]: + """Delete columns. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + column_name (Union[str, Sequence[str]])): List of column names to be dropped. + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: Dataframe with dropped columns. + """ + out_df = df.drop(column_name, axis=1) + + return out_df
    + + + +
    +[docs] +def apply_filter( + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + col: str, + lower_bound: float = -np.inf, + upper_bound: float = np.inf, +) -> Union[pd.DataFrame, dask.dataframe.DataFrame]: + """Application of bound filters to a specified column (can be used consecutively). + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + col (str): Name of the column to filter. Passing "index" for col will + filter on the index in each dataframe partition. + lower_bound (float, optional): The lower bound used in the filtering. + Defaults to -np.inf. + upper_bound (float, optional): The lower bound used in the filtering. + Defaults to np.inf. + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: The filtered dataframe. + """ + df = df.copy() + if col == "index": + df["index"] = df.index + + out_df = df[(df[col] > lower_bound) & (df[col] < upper_bound)] + + if col == "index": + out_df = drop_column(out_df, "index") + + return out_df
    + + + +
    +[docs] +def add_time_stamped_data( + df: dask.dataframe.DataFrame, + time_stamps: np.ndarray, + data: np.ndarray, + dest_column: str, + time_stamp_column: str, + **kwds, +) -> dask.dataframe.DataFrame: + """Add data in form of timestamp/value pairs to the dataframe using interpolation to the + timestamps in the dataframe. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + time_stamps (np.ndarray): Time stamps of the values to add + data (np.ndarray): Values corresponding at the time stamps in time_stamps + dest_column (str): destination column name + time_stamp_column (str): Time stamp column name + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: Dataframe with added column + """ + if time_stamp_column not in df.columns: + raise ValueError(f"{time_stamp_column} not found in dataframe!") + + if len(time_stamps) != len(data): + raise ValueError("time_stamps and data have to be of same length!") + + def interpolate_timestamps( + df: dask.dataframe.DataFrame, + ) -> dask.dataframe.DataFrame: + df_timestamps = df[time_stamp_column] + df[dest_column] = np.interp(df_timestamps, time_stamps, data) + return df + + if not isinstance(df, dask.dataframe.DataFrame): + raise ValueError("This function only works for Dask Dataframes!") + + df = df.map_partitions(interpolate_timestamps, **kwds) + + return df
    + + + +
    +[docs] +def map_columns_2d( + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + map_2d: Callable, + x_column: str, + y_column: str, + **kwds, +) -> Union[pd.DataFrame, dask.dataframe.DataFrame]: + """Apply a 2-dimensional mapping simultaneously to two dimensions. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + map_2d (Callable): 2D mapping function. + x_column (str): The X column of the dataframe to apply mapping to. + y_column (str): The Y column of the dataframe to apply mapping to. + **kwds: Additional arguments for the 2D mapping function. + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: Dataframe with mapped columns. + """ + new_x_column = kwds.pop("new_x_column", x_column) + new_y_column = kwds.pop("new_y_column", y_column) + + (df[new_x_column], df[new_y_column]) = map_2d( + df[x_column], + df[y_column], + **kwds, + ) + + return df
    + + + +
    +[docs] +def forward_fill_lazy( + df: dask.dataframe.DataFrame, + columns: Sequence[str] = None, + before: Union[str, int] = "max", + compute_lengths: bool = False, + iterations: int = 2, +) -> dask.dataframe.DataFrame: + """Forward fill the specified columns multiple times in a dask dataframe. + + Allows forward filling between partitions. This is useful for dataframes + that have sparse data, such as those with many NaNs. + Runnin the forward filling multiple times can fix the issue of having + entire partitions consisting of NaNs. By default we run this twice, which + is enough to fix the issue for dataframes with no consecutive partitions of NaNs. + + Args: + df (dask.dataframe.DataFrame): The dataframe to forward fill. + columns (list): The columns to forward fill. If None, fills all columns + before (int, str, optional): The number of rows to include before the current partition. + if 'max' it takes as much as possible from the previous partition, which is + the size of the smallest partition in the dataframe. Defaults to 'max'. + compute_lengths (bool, optional): Whether to compute the length of each partition + iterations (int, optional): The number of times to forward fill the dataframe. + + Returns: + dask.dataframe.DataFrame: The dataframe with the specified columns forward filled. + """ + if columns is None: + columns = df.columns + elif isinstance(columns, str): + columns = [columns] + elif len(columns) == 0: + raise ValueError("columns must be a non-empty list of strings!") + for c in columns: + if c not in df.columns: + raise KeyError(f"{c} not in dataframe!") + + # Define a custom function to forward fill specified columns + def forward_fill_partition(df): + df[columns] = df[columns].ffill() + return df + + # calculate the number of rows in each partition and choose least + if before == "max": + nrows = df.map_partitions(len) + if compute_lengths: + with ProgressBar(): + print("Computing dataframe shape...") + nrows = nrows.compute() + before = min(nrows) + elif not isinstance(before, int): + raise TypeError('before must be an integer or "max"') + # Use map_overlap to apply forward_fill_partition + for _ in range(iterations): + df = df.map_overlap( + forward_fill_partition, + before=before, + after=0, + ) + return df
    + + + +
    +[docs] +def backward_fill_lazy( + df: dask.dataframe.DataFrame, + columns: Sequence[str] = None, + after: Union[str, int] = "max", + compute_lengths: bool = False, + iterations: int = 1, +) -> dask.dataframe.DataFrame: + """Forward fill the specified columns multiple times in a dask dataframe. + + Allows backward filling between partitions. Similar to forward fill, but backwards. + This helps to fill the initial values of a dataframe, which are often NaNs. + Use with care as the assumption of the values being the same in the past is often not true. + + Args: + df (dask.dataframe.DataFrame): The dataframe to forward fill. + columns (list): The columns to forward fill. If None, fills all columns + after (int, str, optional): The number of rows to include after the current partition. + if 'max' it takes as much as possible from the previous partition, which is + the size of the smallest partition in the dataframe. Defaults to 'max'. + compute_lengths (bool, optional): Whether to compute the length of each partition + iterations (int, optional): The number of times to backward fill the dataframe. + + Returns: + dask.dataframe.DataFrame: The dataframe with the specified columns backward filled. + """ + if columns is None: + columns = df.columns + elif isinstance(columns, str): + columns = [columns] + elif len(columns) == 0: + raise ValueError("columns must be a non-empty list of strings!") + for c in columns: + if c not in df.columns: + raise KeyError(f"{c} not in dataframe!") + + # Define a custom function to forward fill specified columns + def backward_fill_partition(df): + df[columns] = df[columns].bfill() + return df + + # calculate the number of rows in each partition and choose least + if after == "max": + nrows = df.map_partitions(len) + if compute_lengths: + with ProgressBar(): + print("Computing dataframe shape...") + nrows = nrows.compute() + after = min(nrows) + elif not isinstance(after, int): + raise TypeError('before must be an integer or "max"') + # Use map_overlap to apply forward_fill_partition + for _ in range(iterations): + df = df.map_overlap( + backward_fill_partition, + before=0, + after=after, + ) + return df
    + + + +
    +[docs] +def offset_by_other_columns( + df: dask.dataframe.DataFrame, + target_column: str, + offset_columns: Union[str, Sequence[str]], + weights: Union[float, Sequence[float]], + reductions: Union[str, Sequence[str]] = None, + preserve_mean: Union[bool, Sequence[bool]] = False, + inplace: bool = True, + rename: str = None, +) -> dask.dataframe.DataFrame: + """Apply an offset to a column based on the values of other columns. + + Args: + df (dask.dataframe.DataFrame): Dataframe to use. Currently supports only dask dataframes. + target_column (str): Name of the column to apply the offset to. + offset_columns (str): Name of the column(s) to use for the offset. + weights (flot): weights to apply on each column before adding. Used also for changing sign. + reductions (str, optional): Reduction function to use for the offset. Defaults to "mean". + Currently, only mean is supported. + preserve_mean (bool, optional): Whether to subtract the mean of the offset column. + Defaults to False. If a list is given, it must have the same length as + offset_columns. Otherwise the value passed is used for all columns. + inplace (bool, optional): Whether to apply the offset inplace. + If false, the new column will have the name provided by rename, or has the same name as + target_column with the suffix _offset if that is None. Defaults to True. + rename (str, optional): Name of the new column if inplace is False. Defaults to None. + Returns: + dask.dataframe.DataFrame: Dataframe with the new column. + """ + if target_column not in df.columns: + raise KeyError(f"{target_column} not in dataframe!") + + if isinstance(offset_columns, str): + offset_columns = [offset_columns] + elif not isinstance(offset_columns, Sequence): + raise TypeError(f"Invalid type for columns: {type(offset_columns)}") + if any(c not in df.columns for c in offset_columns): + raise KeyError(f"{offset_columns} not in dataframe!") + + if isinstance(weights, (int, float, np.floating, np.integer)): + weights = [weights] + elif not isinstance(weights, Sequence): + raise TypeError(f"Invalid type for signs: {type(weights)}") + if len(weights) != len(offset_columns): + raise ValueError("signs and offset_columns must have the same length!") + signs_dict = dict(zip(offset_columns, weights)) + + if isinstance(reductions, str) or reductions is None: + reductions = [reductions] * len(offset_columns) + elif not isinstance(reductions, Sequence): + raise ValueError(f"reductions must be a string or list of strings! not {type(reductions)}") + if any(r not in ["mean", None] for r in reductions): + raise NotImplementedError("Only reductions currently supported is 'mean'!") + + if isinstance(preserve_mean, bool): + preserve_mean = [preserve_mean] * len(offset_columns) + elif not isinstance(preserve_mean, Sequence): + raise TypeError(f"Invalid type for preserve_mean: {type(preserve_mean)}") + elif any(not isinstance(p, bool) for p in preserve_mean): + raise TypeError(f"Invalid type for preserve_mean: {type(preserve_mean)}") + if len(preserve_mean) != len(offset_columns): + raise ValueError("preserve_mean and offset_columns must have the same length!") + + if not inplace: + if rename is None: + rename = target_column + "_offset" + df[rename] = df[target_column] + target_column = rename + + if isinstance(df, pd.DataFrame): + raise NotImplementedError( + "Offsetting by other columns is currently not supported for pandas dataframes! " + "Please open a request on GitHub if this feature is required.", + ) + + # calculate the mean of the columns to reduce + means = { + col: dask.delayed(df[col].mean()) + for col, red, pm in zip(offset_columns, reductions, preserve_mean) + if red or pm + } + + # define the functions to apply the offsets + def shift_by_mean(x, cols, signs, means, flip_signs=False): + """Shift the target column by the mean of the offset columns.""" + for col in cols: + s = -signs[col] if flip_signs else signs[col] + x[target_column] = x[target_column] + s * means[col] + return x[target_column] + + def shift_by_row(x, cols, signs): + """Apply the offsets to the target column.""" + for col in cols: + x[target_column] = x[target_column] + signs[col] * x[col] + return x[target_column] + + # apply offset from the reduced columns + df[target_column] = df.map_partitions( + shift_by_mean, + cols=[col for col, red in zip(offset_columns, reductions) if red], + signs=signs_dict, + means=means, + meta=df[target_column].dtype, + ) + + # apply offset from the offset columns + df[target_column] = df.map_partitions( + shift_by_row, + cols=[col for col, red in zip(offset_columns, reductions) if not red], + signs=signs_dict, + meta=df[target_column].dtype, + ) + + # compensate shift from the preserved mean columns + if any(preserve_mean): + df[target_column] = df.map_partitions( + shift_by_mean, + cols=[col for col, pmean in zip(offset_columns, preserve_mean) if pmean], + signs=signs_dict, + means=means, + flip_signs=True, + meta=df[target_column].dtype, + ) + + return df
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/core/metadata.html b/sed/v0.1.9/_modules/sed/core/metadata.html new file mode 100644 index 0000000..9a2bb2a --- /dev/null +++ b/sed/v0.1.9/_modules/sed/core/metadata.html @@ -0,0 +1,718 @@ + + + + + + + + + + sed.core.metadata — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.core.metadata

    +"""This is a metadata handler class from the sed package
    +
    +"""
    +from copy import deepcopy
    +from typing import Any
    +from typing import Dict
    +
    +from sed.core.config import complete_dictionary
    +
    +
    +
    +[docs] +class MetaHandler: + """[summary]""" + + def __init__(self, meta: Dict = None) -> None: + self._m = deepcopy(meta) if meta is not None else {} + + def __getitem__(self, val: Any) -> None: + return self._m[val] + + def __repr__(self) -> str: + # TODO: #35 add pretty print, possibly to HTML + return str(self._m) + + @property + def metadata(self) -> dict: + """Property returning the metadata dict. + + Returns: + dict: Dictionary of metadata. + """ + return self._m + +
    +[docs] + def add( + self, + entry: Any, + name: str, + duplicate_policy: str = "raise", + ) -> None: + """Add an entry to the metadata container + + Args: + entry: dictionary containing the metadata to add. + name: name of the dictionary key under which to add entry. + duplicate_policy: Control behaviour in case the 'name' key + is already present in the metadata dictionary. Can be any of: + + - "raise": raises a DuplicateEntryError. + - "overwrite": overwrites the previous data with the new one. + - "merge": If ``entry`` is a dictionary, recursively merges it + into the existing one, overwriting existing entries. Otherwise + the same as "overwrite". + - "append": adds a trailing number, keeping both entries. + + Raises: + DuplicateEntryError: Raised if an entry already exists. + """ + if name not in self._m.keys() or duplicate_policy == "overwrite": + self._m[name] = deepcopy(entry) + elif duplicate_policy == "raise": + raise DuplicateEntryError( + f"an entry {name} already exists in metadata", + ) + elif duplicate_policy == "append": + i = 0 + while True: + i += 1 + newname = f"{name}_{i}" + if newname not in self._m.keys(): + break + self._m[newname] = deepcopy(entry) + + elif duplicate_policy == "merge": + if isinstance(self._m[name], dict): + if not isinstance(entry, dict): + raise ValueError( + "Cannot merge dictionary with non-dictionary entry!", + ) + complete_dictionary(self._m[name], deepcopy(entry)) + else: + self._m[name] = deepcopy(entry) + + else: + raise ValueError( + f"could not interpret duplication handling method {duplicate_policy}" + f"Please choose between overwrite,append or raise.", + )
    + + +
    +[docs] + def add_processing(self, method: str, **kwds: Any) -> None: + """docstring + + Args: + + Returns: + + """ + # TODO: #36 Add processing metadata validation tests + self._m["processing"][method] = kwds
    + + +
    +[docs] + def from_nexus(self, val: Any) -> None: + """docstring + + Args: + + Returns: + + """ + raise NotImplementedError()
    + + +
    +[docs] + def to_nexus(self, val: Any) -> None: + """docstring + + Args: + + Returns: + + """ + raise NotImplementedError()
    + + +
    +[docs] + def from_json(self, val: Any) -> None: + """docstring + + Args: + + Returns: + + """ + raise NotImplementedError()
    + + +
    +[docs] + def to_json(self, val: Any) -> None: + """docstring + + Args: + + Returns: + + """ + raise NotImplementedError()
    + + +
    +[docs] + def from_dict(self, val: Any) -> None: + """docstring + + Args: + + Returns: + + """ + raise NotImplementedError()
    + + +
    +[docs] + def to_dict(self, val: Any) -> None: + """docstring + + Args: + + Returns: + + """ + raise NotImplementedError()
    +
    + + + +
    +[docs] +class DuplicateEntryError(Exception): + """[summary]"""
    + + + +if __name__ == "__main__": + m = MetaHandler() + m.add({"start": 0, "stop": 1}, name="test") + print(m) +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/core/processor.html b/sed/v0.1.9/_modules/sed/core/processor.html new file mode 100644 index 0000000..c3d79af --- /dev/null +++ b/sed/v0.1.9/_modules/sed/core/processor.html @@ -0,0 +1,3162 @@ + + + + + + + + + + sed.core.processor — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.core.processor

    +"""This module contains the core class for the sed package
    +
    +"""
    +import pathlib
    +from datetime import datetime
    +from typing import Any
    +from typing import cast
    +from typing import Dict
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import dask.dataframe as ddf
    +import matplotlib.pyplot as plt
    +import numpy as np
    +import pandas as pd
    +import psutil
    +import xarray as xr
    +
    +from sed.binning import bin_dataframe
    +from sed.binning.binning import normalization_histogram_from_timed_dataframe
    +from sed.binning.binning import normalization_histogram_from_timestamps
    +from sed.calibrator import DelayCalibrator
    +from sed.calibrator import EnergyCalibrator
    +from sed.calibrator import MomentumCorrector
    +from sed.core.config import parse_config
    +from sed.core.config import save_config
    +from sed.core.dfops import add_time_stamped_data
    +from sed.core.dfops import apply_filter
    +from sed.core.dfops import apply_jitter
    +from sed.core.metadata import MetaHandler
    +from sed.diagnostics import grid_histogram
    +from sed.io import to_h5
    +from sed.io import to_nexus
    +from sed.io import to_tiff
    +from sed.loader import CopyTool
    +from sed.loader import get_loader
    +from sed.loader.mpes.loader import get_archiver_data
    +from sed.loader.mpes.loader import MpesLoader
    +
    +N_CPU = psutil.cpu_count()
    +
    +
    +
    +[docs] +class SedProcessor: + """Processor class of sed. Contains wrapper functions defining a work flow for data + correction, calibration and binning. + + Args: + metadata (dict, optional): Dict of external Metadata. Defaults to None. + config (Union[dict, str], optional): Config dictionary or config file name. + Defaults to None. + dataframe (Union[pd.DataFrame, ddf.DataFrame], optional): dataframe to load + into the class. Defaults to None. + files (List[str], optional): List of files to pass to the loader defined in + the config. Defaults to None. + folder (str, optional): Folder containing files to pass to the loader + defined in the config. Defaults to None. + runs (Sequence[str], optional): List of run identifiers to pass to the loader + defined in the config. Defaults to None. + collect_metadata (bool): Option to collect metadata from files. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"] or False. + **kwds: Keyword arguments passed to the reader. + """ + + def __init__( + self, + metadata: dict = None, + config: Union[dict, str] = None, + dataframe: Union[pd.DataFrame, ddf.DataFrame] = None, + files: List[str] = None, + folder: str = None, + runs: Sequence[str] = None, + collect_metadata: bool = False, + verbose: bool = None, + **kwds, + ): + """Processor class of sed. Contains wrapper functions defining a work flow + for data correction, calibration, and binning. + + Args: + metadata (dict, optional): Dict of external Metadata. Defaults to None. + config (Union[dict, str], optional): Config dictionary or config file name. + Defaults to None. + dataframe (Union[pd.DataFrame, ddf.DataFrame], optional): dataframe to load + into the class. Defaults to None. + files (List[str], optional): List of files to pass to the loader defined in + the config. Defaults to None. + folder (str, optional): Folder containing files to pass to the loader + defined in the config. Defaults to None. + runs (Sequence[str], optional): List of run identifiers to pass to the loader + defined in the config. Defaults to None. + collect_metadata (bool, optional): Option to collect metadata from files. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"] or False. + **kwds: Keyword arguments passed to parse_config and to the reader. + """ + config_kwds = { + key: value for key, value in kwds.items() if key in parse_config.__code__.co_varnames + } + for key in config_kwds.keys(): + del kwds[key] + self._config = parse_config(config, **config_kwds) + num_cores = self._config.get("binning", {}).get("num_cores", N_CPU - 1) + if num_cores >= N_CPU: + num_cores = N_CPU - 1 + self._config["binning"]["num_cores"] = num_cores + + if verbose is None: + self.verbose = self._config["core"].get("verbose", False) + else: + self.verbose = verbose + + self._dataframe: Union[pd.DataFrame, ddf.DataFrame] = None + self._timed_dataframe: Union[pd.DataFrame, ddf.DataFrame] = None + self._files: List[str] = [] + + self._binned: xr.DataArray = None + self._pre_binned: xr.DataArray = None + self._normalization_histogram: xr.DataArray = None + self._normalized: xr.DataArray = None + + self._attributes = MetaHandler(meta=metadata) + + loader_name = self._config["core"]["loader"] + self.loader = get_loader( + loader_name=loader_name, + config=self._config, + ) + + self.ec = EnergyCalibrator( + loader=get_loader( + loader_name=loader_name, + config=self._config, + ), + config=self._config, + ) + + self.mc = MomentumCorrector( + config=self._config, + ) + + self.dc = DelayCalibrator( + config=self._config, + ) + + self.use_copy_tool = self._config.get("core", {}).get( + "use_copy_tool", + False, + ) + if self.use_copy_tool: + try: + self.ct = CopyTool( + source=self._config["core"]["copy_tool_source"], + dest=self._config["core"]["copy_tool_dest"], + **self._config["core"].get("copy_tool_kwds", {}), + ) + except KeyError: + self.use_copy_tool = False + + # Load data if provided: + if dataframe is not None or files is not None or folder is not None or runs is not None: + self.load( + dataframe=dataframe, + metadata=metadata, + files=files, + folder=folder, + runs=runs, + collect_metadata=collect_metadata, + **kwds, + ) + + def __repr__(self): + if self._dataframe is None: + df_str = "Data Frame: No Data loaded" + else: + df_str = self._dataframe.__repr__() + attributes_str = f"Metadata: {self._attributes.metadata}" + pretty_str = df_str + "\n" + attributes_str + return pretty_str + + @property + def dataframe(self) -> Union[pd.DataFrame, ddf.DataFrame]: + """Accessor to the underlying dataframe. + + Returns: + Union[pd.DataFrame, ddf.DataFrame]: Dataframe object. + """ + return self._dataframe + + @dataframe.setter + def dataframe(self, dataframe: Union[pd.DataFrame, ddf.DataFrame]): + """Setter for the underlying dataframe. + + Args: + dataframe (Union[pd.DataFrame, ddf.DataFrame]): The dataframe object to set. + """ + if not isinstance(dataframe, (pd.DataFrame, ddf.DataFrame)) or not isinstance( + dataframe, + self._dataframe.__class__, + ): + raise ValueError( + "'dataframe' has to be a Pandas or Dask dataframe and has to be of the same kind " + "as the dataframe loaded into the SedProcessor!.\n" + f"Loaded type: {self._dataframe.__class__}, provided type: {dataframe}.", + ) + self._dataframe = dataframe + + @property + def timed_dataframe(self) -> Union[pd.DataFrame, ddf.DataFrame]: + """Accessor to the underlying timed_dataframe. + + Returns: + Union[pd.DataFrame, ddf.DataFrame]: Timed Dataframe object. + """ + return self._timed_dataframe + + @timed_dataframe.setter + def timed_dataframe(self, timed_dataframe: Union[pd.DataFrame, ddf.DataFrame]): + """Setter for the underlying timed dataframe. + + Args: + timed_dataframe (Union[pd.DataFrame, ddf.DataFrame]): The timed dataframe object to set + """ + if not isinstance(timed_dataframe, (pd.DataFrame, ddf.DataFrame)) or not isinstance( + timed_dataframe, + self._timed_dataframe.__class__, + ): + raise ValueError( + "'timed_dataframe' has to be a Pandas or Dask dataframe and has to be of the same " + "kind as the dataframe loaded into the SedProcessor!.\n" + f"Loaded type: {self._timed_dataframe.__class__}, " + f"provided type: {timed_dataframe}.", + ) + self._timed_dataframe = timed_dataframe + + @property + def attributes(self) -> dict: + """Accessor to the metadata dict. + + Returns: + dict: The metadata dict. + """ + return self._attributes.metadata + +
    +[docs] + def add_attribute(self, attributes: dict, name: str, **kwds): + """Function to add element to the attributes dict. + + Args: + attributes (dict): The attributes dictionary object to add. + name (str): Key under which to add the dictionary to the attributes. + """ + self._attributes.add( + entry=attributes, + name=name, + **kwds, + )
    + + + @property + def config(self) -> Dict[Any, Any]: + """Getter attribute for the config dictionary + + Returns: + Dict: The config dictionary. + """ + return self._config + + @property + def files(self) -> List[str]: + """Getter attribute for the list of files + + Returns: + List[str]: The list of loaded files + """ + return self._files + + @property + def binned(self) -> xr.DataArray: + """Getter attribute for the binned data array + + Returns: + xr.DataArray: The binned data array + """ + if self._binned is None: + raise ValueError("No binned data available, need to compute histogram first!") + return self._binned + + @property + def normalized(self) -> xr.DataArray: + """Getter attribute for the normalized data array + + Returns: + xr.DataArray: The normalized data array + """ + if self._normalized is None: + raise ValueError( + "No normalized data available, compute data with normalization enabled!", + ) + return self._normalized + + @property + def normalization_histogram(self) -> xr.DataArray: + """Getter attribute for the normalization histogram + + Returns: + xr.DataArray: The normalizazion histogram + """ + if self._normalization_histogram is None: + raise ValueError("No normalization histogram available, generate histogram first!") + return self._normalization_histogram + +
    +[docs] + def cpy(self, path: Union[str, List[str]]) -> Union[str, List[str]]: + """Function to mirror a list of files or a folder from a network drive to a + local storage. Returns either the original or the copied path to the given + path. The option to use this functionality is set by + config["core"]["use_copy_tool"]. + + Args: + path (Union[str, List[str]]): Source path or path list. + + Returns: + Union[str, List[str]]: Source or destination path or path list. + """ + if self.use_copy_tool: + if isinstance(path, list): + path_out = [] + for file in path: + path_out.append(self.ct.copy(file)) + return path_out + + return self.ct.copy(path) + + if isinstance(path, list): + return path + + return path
    + + +
    +[docs] + def load( + self, + dataframe: Union[pd.DataFrame, ddf.DataFrame] = None, + metadata: dict = None, + files: List[str] = None, + folder: str = None, + runs: Sequence[str] = None, + collect_metadata: bool = False, + **kwds, + ): + """Load tabular data of single events into the dataframe object in the class. + + Args: + dataframe (Union[pd.DataFrame, ddf.DataFrame], optional): data in tabular + format. Accepts anything which can be interpreted by pd.DataFrame as + an input. Defaults to None. + metadata (dict, optional): Dict of external Metadata. Defaults to None. + files (List[str], optional): List of file paths to pass to the loader. + Defaults to None. + runs (Sequence[str], optional): List of run identifiers to pass to the + loader. Defaults to None. + folder (str, optional): Folder path to pass to the loader. + Defaults to None. + collect_metadata (bool, optional): Option for collecting metadata in the reader. + **kwds: Keyword parameters passed to the reader. + + Raises: + ValueError: Raised if no valid input is provided. + """ + if metadata is None: + metadata = {} + if dataframe is not None: + timed_dataframe = kwds.pop("timed_dataframe", None) + elif runs is not None: + # If runs are provided, we only use the copy tool if also folder is provided. + # In that case, we copy the whole provided base folder tree, and pass the copied + # version to the loader as base folder to look for the runs. + if folder is not None: + dataframe, timed_dataframe, metadata = self.loader.read_dataframe( + folders=cast(str, self.cpy(folder)), + runs=runs, + metadata=metadata, + collect_metadata=collect_metadata, + **kwds, + ) + else: + dataframe, timed_dataframe, metadata = self.loader.read_dataframe( + runs=runs, + metadata=metadata, + collect_metadata=collect_metadata, + **kwds, + ) + + elif folder is not None: + dataframe, timed_dataframe, metadata = self.loader.read_dataframe( + folders=cast(str, self.cpy(folder)), + metadata=metadata, + collect_metadata=collect_metadata, + **kwds, + ) + elif files is not None: + dataframe, timed_dataframe, metadata = self.loader.read_dataframe( + files=cast(List[str], self.cpy(files)), + metadata=metadata, + collect_metadata=collect_metadata, + **kwds, + ) + else: + raise ValueError( + "Either 'dataframe', 'files', 'folder', or 'runs' needs to be provided!", + ) + + self._dataframe = dataframe + self._timed_dataframe = timed_dataframe + self._files = self.loader.files + + for key in metadata: + self._attributes.add( + entry=metadata[key], + name=key, + duplicate_policy="merge", + )
    + + +
    +[docs] + def filter_column( + self, + column: str, + min_value: float = -np.inf, + max_value: float = np.inf, + ) -> None: + """Filter values in a column which are outside of a given range + + Args: + column (str): Name of the column to filter + min_value (float, optional): Minimum value to keep. Defaults to None. + max_value (float, optional): Maximum value to keep. Defaults to None. + """ + if column != "index" and column not in self._dataframe.columns: + raise KeyError(f"Column {column} not found in dataframe!") + if min_value >= max_value: + raise ValueError("min_value has to be smaller than max_value!") + if self._dataframe is not None: + self._dataframe = apply_filter( + self._dataframe, + col=column, + lower_bound=min_value, + upper_bound=max_value, + ) + if self._timed_dataframe is not None and column in self._timed_dataframe.columns: + self._timed_dataframe = apply_filter( + self._timed_dataframe, + column, + lower_bound=min_value, + upper_bound=max_value, + ) + metadata = { + "filter": { + "column": column, + "min_value": min_value, + "max_value": max_value, + }, + } + self._attributes.add(metadata, "filter", duplicate_policy="merge")
    + + + # Momentum calibration workflow + # 1. Bin raw detector data for distortion correction +
    +[docs] + def bin_and_load_momentum_calibration( + self, + df_partitions: Union[int, Sequence[int]] = 100, + axes: List[str] = None, + bins: List[int] = None, + ranges: Sequence[Tuple[float, float]] = None, + plane: int = 0, + width: int = 5, + apply: bool = False, + **kwds, + ): + """1st step of momentum correction work flow. Function to do an initial binning + of the dataframe loaded to the class, slice a plane from it using an + interactive view, and load it into the momentum corrector class. + + Args: + df_partitions (Union[int, Sequence[int]], optional): Number of dataframe partitions + to use for the initial binning. Defaults to 100. + axes (List[str], optional): Axes to bin. + Defaults to config["momentum"]["axes"]. + bins (List[int], optional): Bin numbers to use for binning. + Defaults to config["momentum"]["bins"]. + ranges (List[Tuple], optional): Ranges to use for binning. + Defaults to config["momentum"]["ranges"]. + plane (int, optional): Initial value for the plane slider. Defaults to 0. + width (int, optional): Initial value for the width slider. Defaults to 5. + apply (bool, optional): Option to directly apply the values and select the + slice. Defaults to False. + **kwds: Keyword argument passed to the pre_binning function. + """ + self._pre_binned = self.pre_binning( + df_partitions=df_partitions, + axes=axes, + bins=bins, + ranges=ranges, + **kwds, + ) + + self.mc.load_data(data=self._pre_binned) + self.mc.select_slicer(plane=plane, width=width, apply=apply)
    + + + # 2. Generate the spline warp correction from momentum features. + # Either autoselect features, or input features from view above. +
    +[docs] + def define_features( + self, + features: np.ndarray = None, + rotation_symmetry: int = 6, + auto_detect: bool = False, + include_center: bool = True, + apply: bool = False, + **kwds, + ): + """2. Step of the distortion correction workflow: Define feature points in + momentum space. They can be either manually selected using a GUI tool, be + ptovided as list of feature points, or auto-generated using a + feature-detection algorithm. + + Args: + features (np.ndarray, optional): np.ndarray of features. Defaults to None. + rotation_symmetry (int, optional): Number of rotational symmetry axes. + Defaults to 6. + auto_detect (bool, optional): Whether to auto-detect the features. + Defaults to False. + include_center (bool, optional): Option to include a point at the center + in the feature list. Defaults to True. + apply (bool, optional): Option to directly apply the values and select the + slice. Defaults to False. + **kwds: Keyword arguments for ``MomentumCorrector.feature_extract()`` and + ``MomentumCorrector.feature_select()``. + """ + if auto_detect: # automatic feature selection + sigma = kwds.pop("sigma", self._config["momentum"]["sigma"]) + fwhm = kwds.pop("fwhm", self._config["momentum"]["fwhm"]) + sigma_radius = kwds.pop( + "sigma_radius", + self._config["momentum"]["sigma_radius"], + ) + self.mc.feature_extract( + sigma=sigma, + fwhm=fwhm, + sigma_radius=sigma_radius, + rotsym=rotation_symmetry, + **kwds, + ) + features = self.mc.peaks + + self.mc.feature_select( + rotsym=rotation_symmetry, + include_center=include_center, + features=features, + apply=apply, + **kwds, + )
    + + + # 3. Generate the spline warp correction from momentum features. + # If no features have been selected before, use class defaults. +
    +[docs] + def generate_splinewarp( + self, + use_center: bool = None, + verbose: bool = None, + **kwds, + ): + """3. Step of the distortion correction workflow: Generate the correction + function restoring the symmetry in the image using a splinewarp algortihm. + + Args: + use_center (bool, optional): Option to use the position of the + center point in the correction. Default is read from config, or set to True. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: Keyword arguments for MomentumCorrector.spline_warp_estimate(). + """ + if verbose is None: + verbose = self.verbose + + self.mc.spline_warp_estimate(use_center=use_center, verbose=verbose, **kwds) + + if self.mc.slice is not None and verbose: + print("Original slice with reference features") + self.mc.view(annotated=True, backend="bokeh", crosshair=True) + + print("Corrected slice with target features") + self.mc.view( + image=self.mc.slice_corrected, + annotated=True, + points={"feats": self.mc.ptargs}, + backend="bokeh", + crosshair=True, + ) + + print("Original slice with target features") + self.mc.view( + image=self.mc.slice, + points={"feats": self.mc.ptargs}, + annotated=True, + backend="bokeh", + )
    + + + # 3a. Save spline-warp parameters to config file. +
    +[docs] + def save_splinewarp( + self, + filename: str = None, + overwrite: bool = False, + ): + """Save the generated spline-warp parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + if len(self.mc.correction) == 0: + raise ValueError("No momentum correction parameters to save!") + correction = {} + for key, value in self.mc.correction.items(): + if key in ["reference_points", "target_points", "cdeform_field", "rdeform_field"]: + continue + if key in ["use_center", "rotation_symmetry"]: + correction[key] = value + elif key in ["center_point", "ascale"]: + correction[key] = [float(i) for i in value] + elif key in ["outer_points", "feature_points"]: + correction[key] = [] + for point in value: + correction[key].append([float(i) for i in point]) + else: + correction[key] = float(value) + + if "creation_date" not in correction: + correction["creation_date"] = datetime.now().timestamp() + + config = { + "momentum": { + "correction": correction, + }, + } + save_config(config, filename, overwrite) + print(f'Saved momentum correction parameters to "{filename}".')
    + + + # 4. Pose corrections. Provide interactive interface for correcting + # scaling, shift and rotation +
    +[docs] + def pose_adjustment( + self, + transformations: Dict[str, Any] = None, + apply: bool = False, + use_correction: bool = True, + reset: bool = True, + verbose: bool = None, + **kwds, + ): + """3. step of the distortion correction workflow: Generate an interactive panel + to adjust affine transformations that are applied to the image. Applies first + a scaling, next an x/y translation, and last a rotation around the center of + the image. + + Args: + transformations (dict, optional): Dictionary with transformations. + Defaults to self.transformations or config["momentum"]["transformtions"]. + apply (bool, optional): Option to directly apply the provided + transformations. Defaults to False. + use_correction (bool, option): Whether to use the spline warp correction + or not. Defaults to True. + reset (bool, optional): Option to reset the correction before transformation. + Defaults to True. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: Keyword parameters defining defaults for the transformations: + + - **scale** (float): Initial value of the scaling slider. + - **xtrans** (float): Initial value of the xtrans slider. + - **ytrans** (float): Initial value of the ytrans slider. + - **angle** (float): Initial value of the angle slider. + """ + if verbose is None: + verbose = self.verbose + + # Generate homomorphy as default if no distortion correction has been applied + if self.mc.slice_corrected is None: + if self.mc.slice is None: + self.mc.slice = np.zeros(self._config["momentum"]["bins"][0:2]) + self.mc.slice_corrected = self.mc.slice + + if not use_correction: + self.mc.reset_deformation() + + if self.mc.cdeform_field is None or self.mc.rdeform_field is None: + # Generate distortion correction from config values + self.mc.spline_warp_estimate(verbose=verbose) + + self.mc.pose_adjustment( + transformations=transformations, + apply=apply, + reset=reset, + verbose=verbose, + **kwds, + )
    + + + # 4a. Save pose adjustment parameters to config file. +
    +[docs] + def save_transformations( + self, + filename: str = None, + overwrite: bool = False, + ): + """Save the pose adjustment parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + if len(self.mc.transformations) == 0: + raise ValueError("No momentum transformation parameters to save!") + transformations = {} + for key, value in self.mc.transformations.items(): + transformations[key] = float(value) + + if "creation_date" not in transformations: + transformations["creation_date"] = datetime.now().timestamp() + + config = { + "momentum": { + "transformations": transformations, + }, + } + save_config(config, filename, overwrite) + print(f'Saved momentum transformation parameters to "{filename}".')
    + + + # 5. Apply the momentum correction to the dataframe +
    +[docs] + def apply_momentum_correction( + self, + preview: bool = False, + verbose: bool = None, + **kwds, + ): + """Applies the distortion correction and pose adjustment (optional) + to the dataframe. + + Args: + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: Keyword parameters for ``MomentumCorrector.apply_correction``: + + - **rdeform_field** (np.ndarray, optional): Row deformation field. + - **cdeform_field** (np.ndarray, optional): Column deformation field. + - **inv_dfield** (np.ndarray, optional): Inverse deformation field. + + """ + if verbose is None: + verbose = self.verbose + + x_column = self._config["dataframe"]["x_column"] + y_column = self._config["dataframe"]["y_column"] + + if self._dataframe is not None: + if verbose: + print("Adding corrected X/Y columns to dataframe:") + df, metadata = self.mc.apply_corrections( + df=self._dataframe, + verbose=verbose, + **kwds, + ) + if ( + self._timed_dataframe is not None + and x_column in self._timed_dataframe.columns + and y_column in self._timed_dataframe.columns + ): + tdf, _ = self.mc.apply_corrections( + self._timed_dataframe, + verbose=False, + **kwds, + ) + + # Add Metadata + self._attributes.add( + metadata, + "momentum_correction", + duplicate_policy="merge", + ) + self._dataframe = df + if ( + self._timed_dataframe is not None + and x_column in self._timed_dataframe.columns + and y_column in self._timed_dataframe.columns + ): + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if self.verbose: + print(self._dataframe)
    + + + # Momentum calibration work flow + # 1. Calculate momentum calibration +
    +[docs] + def calibrate_momentum_axes( + self, + point_a: Union[np.ndarray, List[int]] = None, + point_b: Union[np.ndarray, List[int]] = None, + k_distance: float = None, + k_coord_a: Union[np.ndarray, List[float]] = None, + k_coord_b: Union[np.ndarray, List[float]] = np.array([0.0, 0.0]), + equiscale: bool = True, + apply=False, + ): + """1. step of the momentum calibration workflow. Calibrate momentum + axes using either provided pixel coordinates of a high-symmetry point and its + distance to the BZ center, or the k-coordinates of two points in the BZ + (depending on the equiscale option). Opens an interactive panel for selecting + the points. + + Args: + point_a (Union[np.ndarray, List[int]]): Pixel coordinates of the first + point used for momentum calibration. + point_b (Union[np.ndarray, List[int]], optional): Pixel coordinates of the + second point used for momentum calibration. + Defaults to config["momentum"]["center_pixel"]. + k_distance (float, optional): Momentum distance between point a and b. + Needs to be provided if no specific k-koordinates for the two points + are given. Defaults to None. + k_coord_a (Union[np.ndarray, List[float]], optional): Momentum coordinate + of the first point used for calibration. Used if equiscale is False. + Defaults to None. + k_coord_b (Union[np.ndarray, List[float]], optional): Momentum coordinate + of the second point used for calibration. Defaults to [0.0, 0.0]. + equiscale (bool, optional): Option to apply different scales to kx and ky. + If True, the distance between points a and b, and the absolute + position of point a are used for defining the scale. If False, the + scale is calculated from the k-positions of both points a and b. + Defaults to True. + apply (bool, optional): Option to directly store the momentum calibration + in the class. Defaults to False. + """ + if point_b is None: + point_b = self._config["momentum"]["center_pixel"] + + self.mc.select_k_range( + point_a=point_a, + point_b=point_b, + k_distance=k_distance, + k_coord_a=k_coord_a, + k_coord_b=k_coord_b, + equiscale=equiscale, + apply=apply, + )
    + + + # 1a. Save momentum calibration parameters to config file. +
    +[docs] + def save_momentum_calibration( + self, + filename: str = None, + overwrite: bool = False, + ): + """Save the generated momentum calibration parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + if len(self.mc.calibration) == 0: + raise ValueError("No momentum calibration parameters to save!") + calibration = {} + for key, value in self.mc.calibration.items(): + if key in ["kx_axis", "ky_axis", "grid", "extent"]: + continue + + calibration[key] = float(value) + + if "creation_date" not in calibration: + calibration["creation_date"] = datetime.now().timestamp() + + config = {"momentum": {"calibration": calibration}} + save_config(config, filename, overwrite) + print(f"Saved momentum calibration parameters to {filename}")
    + + + # 2. Apply correction and calibration to the dataframe +
    +[docs] + def apply_momentum_calibration( + self, + calibration: dict = None, + preview: bool = False, + verbose: bool = None, + **kwds, + ): + """2. step of the momentum calibration work flow: Apply the momentum + calibration stored in the class to the dataframe. If corrected X/Y axis exist, + these are used. + + Args: + calibration (dict, optional): Optional dictionary with calibration data to + use. Defaults to None. + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: Keyword args passed to ``DelayCalibrator.append_delay_axis``. + """ + if verbose is None: + verbose = self.verbose + + x_column = self._config["dataframe"]["x_column"] + y_column = self._config["dataframe"]["y_column"] + + if self._dataframe is not None: + if verbose: + print("Adding kx/ky columns to dataframe:") + df, metadata = self.mc.append_k_axis( + df=self._dataframe, + calibration=calibration, + **kwds, + ) + if ( + self._timed_dataframe is not None + and x_column in self._timed_dataframe.columns + and y_column in self._timed_dataframe.columns + ): + tdf, _ = self.mc.append_k_axis( + df=self._timed_dataframe, + calibration=calibration, + **kwds, + ) + + # Add Metadata + self._attributes.add( + metadata, + "momentum_calibration", + duplicate_policy="merge", + ) + self._dataframe = df + if ( + self._timed_dataframe is not None + and x_column in self._timed_dataframe.columns + and y_column in self._timed_dataframe.columns + ): + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if self.verbose: + print(self._dataframe)
    + + + # Energy correction workflow + # 1. Adjust the energy correction parameters +
    +[docs] + def adjust_energy_correction( + self, + correction_type: str = None, + amplitude: float = None, + center: Tuple[float, float] = None, + apply=False, + **kwds, + ): + """1. step of the energy crrection workflow: Opens an interactive plot to + adjust the parameters for the TOF/energy correction. Also pre-bins the data if + they are not present yet. + + Args: + correction_type (str, optional): Type of correction to apply to the TOF + axis. Valid values are: + + - 'spherical' + - 'Lorentzian' + - 'Gaussian' + - 'Lorentzian_asymmetric' + + Defaults to config["energy"]["correction_type"]. + amplitude (float, optional): Amplitude of the correction. + Defaults to config["energy"]["correction"]["amplitude"]. + center (Tuple[float, float], optional): Center X/Y coordinates for the + correction. Defaults to config["energy"]["correction"]["center"]. + apply (bool, optional): Option to directly apply the provided or default + correction parameters. Defaults to False. + **kwds: Keyword parameters passed to ``EnergyCalibrator.adjust_energy_correction()``. + """ + if self._pre_binned is None: + print( + "Pre-binned data not present, binning using defaults from config...", + ) + self._pre_binned = self.pre_binning() + + self.ec.adjust_energy_correction( + self._pre_binned, + correction_type=correction_type, + amplitude=amplitude, + center=center, + apply=apply, + **kwds, + )
    + + + # 1a. Save energy correction parameters to config file. +
    +[docs] + def save_energy_correction( + self, + filename: str = None, + overwrite: bool = False, + ): + """Save the generated energy correction parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + if len(self.ec.correction) == 0: + raise ValueError("No energy correction parameters to save!") + correction = {} + for key, val in self.ec.correction.items(): + if key == "correction_type": + correction[key] = val + elif key == "center": + correction[key] = [float(i) for i in val] + else: + correction[key] = float(val) + + if "creation_date" not in correction: + correction["creation_date"] = datetime.now().timestamp() + + config = {"energy": {"correction": correction}} + save_config(config, filename, overwrite) + print(f"Saved energy correction parameters to {filename}")
    + + + # 2. Apply energy correction to dataframe +
    +[docs] + def apply_energy_correction( + self, + correction: dict = None, + preview: bool = False, + verbose: bool = None, + **kwds, + ): + """2. step of the energy correction workflow: Apply the enery correction + parameters stored in the class to the dataframe. + + Args: + correction (dict, optional): Dictionary containing the correction + parameters. Defaults to config["energy"]["calibration"]. + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: + Keyword args passed to ``EnergyCalibrator.apply_energy_correction()``. + """ + if verbose is None: + verbose = self.verbose + + tof_column = self._config["dataframe"]["tof_column"] + + if self._dataframe is not None: + if verbose: + print("Applying energy correction to dataframe...") + df, metadata = self.ec.apply_energy_correction( + df=self._dataframe, + correction=correction, + verbose=verbose, + **kwds, + ) + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + tdf, _ = self.ec.apply_energy_correction( + df=self._timed_dataframe, + correction=correction, + verbose=False, + **kwds, + ) + + # Add Metadata + self._attributes.add( + metadata, + "energy_correction", + ) + self._dataframe = df + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if verbose: + print(self._dataframe)
    + + + # Energy calibrator workflow + # 1. Load and normalize data +
    +[docs] + def load_bias_series( + self, + binned_data: Union[xr.DataArray, Tuple[np.ndarray, np.ndarray, np.ndarray]] = None, + data_files: List[str] = None, + axes: List[str] = None, + bins: List = None, + ranges: Sequence[Tuple[float, float]] = None, + biases: np.ndarray = None, + bias_key: str = None, + normalize: bool = None, + span: int = None, + order: int = None, + ): + """1. step of the energy calibration workflow: Load and bin data from + single-event files, or load binned bias/TOF traces. + + Args: + binned_data (Union[xr.DataArray, Tuple[np.ndarray, np.ndarray, np.ndarray]], optional): + Binned data If provided as DataArray, Needs to contain dimensions + config["dataframe"]["tof_column"] and config["dataframe"]["bias_column"]. If + provided as tuple, needs to contain elements tof, biases, traces. + data_files (List[str], optional): list of file paths to bin + axes (List[str], optional): bin axes. + Defaults to config["dataframe"]["tof_column"]. + bins (List, optional): number of bins. + Defaults to config["energy"]["bins"]. + ranges (Sequence[Tuple[float, float]], optional): bin ranges. + Defaults to config["energy"]["ranges"]. + biases (np.ndarray, optional): Bias voltages used. If missing, bias + voltages are extracted from the data files. + bias_key (str, optional): hdf5 path where bias values are stored. + Defaults to config["energy"]["bias_key"]. + normalize (bool, optional): Option to normalize traces. + Defaults to config["energy"]["normalize"]. + span (int, optional): span smoothing parameters of the LOESS method + (see ``scipy.signal.savgol_filter()``). + Defaults to config["energy"]["normalize_span"]. + order (int, optional): order smoothing parameters of the LOESS method + (see ``scipy.signal.savgol_filter()``). + Defaults to config["energy"]["normalize_order"]. + """ + if binned_data is not None: + if isinstance(binned_data, xr.DataArray): + if ( + self._config["dataframe"]["tof_column"] not in binned_data.dims + or self._config["dataframe"]["bias_column"] not in binned_data.dims + ): + raise ValueError( + "If binned_data is provided as an xarray, it needs to contain dimensions " + f"'{self._config['dataframe']['tof_column']}' and " + f"'{self._config['dataframe']['bias_column']}'!.", + ) + tof = binned_data.coords[self._config["dataframe"]["tof_column"]].values + biases = binned_data.coords[self._config["dataframe"]["bias_column"]].values + traces = binned_data.values[:, :] + else: + try: + (tof, biases, traces) = binned_data + except ValueError as exc: + raise ValueError( + "If binned_data is provided as tuple, it needs to contain " + "(tof, biases, traces)!", + ) from exc + self.ec.load_data(biases=biases, traces=traces, tof=tof) + + elif data_files is not None: + self.ec.bin_data( + data_files=cast(List[str], self.cpy(data_files)), + axes=axes, + bins=bins, + ranges=ranges, + biases=biases, + bias_key=bias_key, + ) + + else: + raise ValueError("Either binned_data or data_files needs to be provided!") + + if (normalize is not None and normalize is True) or ( + normalize is None and self._config["energy"]["normalize"] + ): + if span is None: + span = self._config["energy"]["normalize_span"] + if order is None: + order = self._config["energy"]["normalize_order"] + self.ec.normalize(smooth=True, span=span, order=order) + self.ec.view( + traces=self.ec.traces_normed, + xaxis=self.ec.tof, + backend="bokeh", + )
    + + + # 2. extract ranges and get peak positions +
    +[docs] + def find_bias_peaks( + self, + ranges: Union[List[Tuple], Tuple], + ref_id: int = 0, + infer_others: bool = True, + mode: str = "replace", + radius: int = None, + peak_window: int = None, + apply: bool = False, + ): + """2. step of the energy calibration workflow: Find a peak within a given range + for the indicated reference trace, and tries to find the same peak for all + other traces. Uses fast_dtw to align curves, which might not be too good if the + shape of curves changes qualitatively. Ideally, choose a reference trace in the + middle of the set, and don't choose the range too narrow around the peak. + Alternatively, a list of ranges for all traces can be provided. + + Args: + ranges (Union[List[Tuple], Tuple]): Tuple of TOF values indicating a range. + Alternatively, a list of ranges for all traces can be given. + ref_id (int, optional): The id of the trace the range refers to. + Defaults to 0. + infer_others (bool, optional): Whether to determine the range for the other + traces. Defaults to True. + mode (str, optional): Whether to "add" or "replace" existing ranges. + Defaults to "replace". + radius (int, optional): Radius parameter for fast_dtw. + Defaults to config["energy"]["fastdtw_radius"]. + peak_window (int, optional): Peak_window parameter for the peak detection + algorthm. amount of points that have to have to behave monotoneously + around a peak. Defaults to config["energy"]["peak_window"]. + apply (bool, optional): Option to directly apply the provided parameters. + Defaults to False. + """ + if radius is None: + radius = self._config["energy"]["fastdtw_radius"] + if peak_window is None: + peak_window = self._config["energy"]["peak_window"] + if not infer_others: + self.ec.add_ranges( + ranges=ranges, + ref_id=ref_id, + infer_others=infer_others, + mode=mode, + radius=radius, + ) + print(self.ec.featranges) + try: + self.ec.feature_extract(peak_window=peak_window) + self.ec.view( + traces=self.ec.traces_normed, + segs=self.ec.featranges, + xaxis=self.ec.tof, + peaks=self.ec.peaks, + backend="bokeh", + ) + except IndexError: + print("Could not determine all peaks!") + raise + else: + # New adjustment tool + assert isinstance(ranges, tuple) + self.ec.adjust_ranges( + ranges=ranges, + ref_id=ref_id, + traces=self.ec.traces_normed, + infer_others=infer_others, + radius=radius, + peak_window=peak_window, + apply=apply, + )
    + + + # 3. Fit the energy calibration relation +
    +[docs] + def calibrate_energy_axis( + self, + ref_id: int, + ref_energy: float, + method: str = None, + energy_scale: str = None, + verbose: bool = None, + **kwds, + ): + """3. Step of the energy calibration workflow: Calculate the calibration + function for the energy axis, and apply it to the dataframe. Two + approximations are implemented, a (normally 3rd order) polynomial + approximation, and a d^2/(t-t0)^2 relation. + + Args: + ref_id (int): id of the trace at the bias where the reference energy is + given. + ref_energy (float): Absolute energy of the detected feature at the bias + of ref_id + method (str, optional): Method for determining the energy calibration. + + - **'lmfit'**: Energy calibration using lmfit and 1/t^2 form. + - **'lstsq'**, **'lsqr'**: Energy calibration using polynomial form. + + Defaults to config["energy"]["calibration_method"] + energy_scale (str, optional): Direction of increasing energy scale. + + - **'kinetic'**: increasing energy with decreasing TOF. + - **'binding'**: increasing energy with increasing TOF. + + Defaults to config["energy"]["energy_scale"] + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds**: Keyword parameters passed to ``EnergyCalibrator.calibrate()``. + """ + if verbose is None: + verbose = self.verbose + + if method is None: + method = self._config["energy"]["calibration_method"] + + if energy_scale is None: + energy_scale = self._config["energy"]["energy_scale"] + + self.ec.calibrate( + ref_id=ref_id, + ref_energy=ref_energy, + method=method, + energy_scale=energy_scale, + verbose=verbose, + **kwds, + ) + if verbose: + print("Quality of Calibration:") + self.ec.view( + traces=self.ec.traces_normed, + xaxis=self.ec.calibration["axis"], + align=True, + energy_scale=energy_scale, + backend="bokeh", + ) + print("E/TOF relationship:") + self.ec.view( + traces=self.ec.calibration["axis"][None, :], + xaxis=self.ec.tof, + backend="matplotlib", + show_legend=False, + ) + if energy_scale == "kinetic": + plt.scatter( + self.ec.peaks[:, 0], + -(self.ec.biases - self.ec.biases[ref_id]) + ref_energy, + s=50, + c="k", + ) + elif energy_scale == "binding": + plt.scatter( + self.ec.peaks[:, 0], + self.ec.biases - self.ec.biases[ref_id] + ref_energy, + s=50, + c="k", + ) + else: + raise ValueError( + 'energy_scale needs to be either "binding" or "kinetic"', + f", got {energy_scale}.", + ) + plt.xlabel("Time-of-flight", fontsize=15) + plt.ylabel("Energy (eV)", fontsize=15) + plt.show()
    + + + # 3a. Save energy calibration parameters to config file. +
    +[docs] + def save_energy_calibration( + self, + filename: str = None, + overwrite: bool = False, + ): + """Save the generated energy calibration parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + if len(self.ec.calibration) == 0: + raise ValueError("No energy calibration parameters to save!") + calibration = {} + for key, value in self.ec.calibration.items(): + if key in ["axis", "refid", "Tmat", "bvec"]: + continue + if key == "energy_scale": + calibration[key] = value + elif key == "coeffs": + calibration[key] = [float(i) for i in value] + else: + calibration[key] = float(value) + + if "creation_date" not in calibration: + calibration["creation_date"] = datetime.now().timestamp() + + config = {"energy": {"calibration": calibration}} + save_config(config, filename, overwrite) + print(f'Saved energy calibration parameters to "{filename}".')
    + + + # 4. Apply energy calibration to the dataframe +
    +[docs] + def append_energy_axis( + self, + calibration: dict = None, + preview: bool = False, + verbose: bool = None, + **kwds, + ): + """4. step of the energy calibration workflow: Apply the calibration function + to to the dataframe. Two approximations are implemented, a (normally 3rd order) + polynomial approximation, and a d^2/(t-t0)^2 relation. a calibration dictionary + can be provided. + + Args: + calibration (dict, optional): Calibration dict containing calibration + parameters. Overrides calibration from class or config. + Defaults to None. + preview (bool): Option to preview the first elements of the data frame. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: + Keyword args passed to ``EnergyCalibrator.append_energy_axis()``. + """ + if verbose is None: + verbose = self.verbose + + tof_column = self._config["dataframe"]["tof_column"] + + if self._dataframe is not None: + if verbose: + print("Adding energy column to dataframe:") + df, metadata = self.ec.append_energy_axis( + df=self._dataframe, + calibration=calibration, + verbose=verbose, + **kwds, + ) + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + tdf, _ = self.ec.append_energy_axis( + df=self._timed_dataframe, + calibration=calibration, + verbose=False, + **kwds, + ) + + # Add Metadata + self._attributes.add( + metadata, + "energy_calibration", + duplicate_policy="merge", + ) + self._dataframe = df + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + self._timed_dataframe = tdf + + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if verbose: + print(self._dataframe)
    + + +
    +[docs] + def add_energy_offset( + self, + constant: float = None, + columns: Union[str, Sequence[str]] = None, + weights: Union[float, Sequence[float]] = None, + reductions: Union[str, Sequence[str]] = None, + preserve_mean: Union[bool, Sequence[bool]] = None, + preview: bool = False, + verbose: bool = None, + ) -> None: + """Shift the energy axis of the dataframe by a given amount. + + Args: + constant (float, optional): The constant to shift the energy axis by. + columns (Union[str, Sequence[str]]): Name of the column(s) to apply the shift from. + weights (Union[float, Sequence[float]]): weights to apply to the columns. + Can also be used to flip the sign (e.g. -1). Defaults to 1. + preserve_mean (bool): Whether to subtract the mean of the column before applying the + shift. Defaults to False. + reductions (str): The reduction to apply to the column. Should be an available method + of dask.dataframe.Series. For example "mean". In this case the function is applied + to the column to generate a single value for the whole dataset. If None, the shift + is applied per-dataframe-row. Defaults to None. Currently only "mean" is supported. + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + + Raises: + ValueError: If the energy column is not in the dataframe. + """ + if verbose is None: + verbose = self.verbose + + energy_column = self._config["dataframe"]["energy_column"] + if energy_column not in self._dataframe.columns: + raise ValueError( + f"Energy column {energy_column} not found in dataframe! " + "Run `append_energy_axis()` first.", + ) + if self.dataframe is not None: + if verbose: + print("Adding energy offset to dataframe:") + df, metadata = self.ec.add_offsets( + df=self._dataframe, + constant=constant, + columns=columns, + energy_column=energy_column, + weights=weights, + reductions=reductions, + preserve_mean=preserve_mean, + verbose=verbose, + ) + if self._timed_dataframe is not None and energy_column in self._timed_dataframe.columns: + tdf, _ = self.ec.add_offsets( + df=self._timed_dataframe, + constant=constant, + columns=columns, + energy_column=energy_column, + weights=weights, + reductions=reductions, + preserve_mean=preserve_mean, + ) + + self._attributes.add( + metadata, + "add_energy_offset", + # TODO: allow only appending when no offset along this column(s) was applied + # TODO: clear memory of modifications if the energy axis is recalculated + duplicate_policy="append", + ) + self._dataframe = df + if self._timed_dataframe is not None and energy_column in self._timed_dataframe.columns: + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + elif verbose: + print(self._dataframe)
    + + +
    +[docs] + def save_energy_offset( + self, + filename: str = None, + overwrite: bool = False, + ): + """Save the generated energy calibration parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + if len(self.ec.offsets) == 0: + raise ValueError("No energy offset parameters to save!") + + if "creation_date" not in self.ec.offsets.keys(): + self.ec.offsets["creation_date"] = datetime.now().timestamp() + + config = {"energy": {"offsets": self.ec.offsets}} + save_config(config, filename, overwrite) + print(f'Saved energy offset parameters to "{filename}".')
    + + +
    +[docs] + def append_tof_ns_axis( + self, + preview: bool = False, + verbose: bool = None, + **kwds, + ): + """Convert time-of-flight channel steps to nanoseconds. + + Args: + tof_ns_column (str, optional): Name of the generated column containing the + time-of-flight in nanosecond. + Defaults to config["dataframe"]["tof_ns_column"]. + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: additional arguments are passed to ``EnergyCalibrator.tof_step_to_ns()``. + + """ + if verbose is None: + verbose = self.verbose + + tof_column = self._config["dataframe"]["tof_column"] + + if self._dataframe is not None: + if verbose: + print("Adding time-of-flight column in nanoseconds to dataframe:") + # TODO assert order of execution through metadata + + df, metadata = self.ec.append_tof_ns_axis( + df=self._dataframe, + **kwds, + ) + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + tdf, _ = self.ec.append_tof_ns_axis( + df=self._timed_dataframe, + **kwds, + ) + + self._attributes.add( + metadata, + "tof_ns_conversion", + duplicate_policy="overwrite", + ) + self._dataframe = df + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if verbose: + print(self._dataframe)
    + + +
    +[docs] + def align_dld_sectors( + self, + sector_delays: np.ndarray = None, + preview: bool = False, + verbose: bool = None, + **kwds, + ): + """Align the 8s sectors of the HEXTOF endstation. + + Args: + sector_delays (np.ndarray, optional): Array containing the sector delays. Defaults to + config["dataframe"]["sector_delays"]. + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: additional arguments are passed to ``EnergyCalibrator.align_dld_sectors()``. + """ + if verbose is None: + verbose = self.verbose + + tof_column = self._config["dataframe"]["tof_column"] + + if self._dataframe is not None: + if verbose: + print("Aligning 8s sectors of dataframe") + # TODO assert order of execution through metadata + + df, metadata = self.ec.align_dld_sectors( + df=self._dataframe, + sector_delays=sector_delays, + **kwds, + ) + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + tdf, _ = self.ec.align_dld_sectors( + df=self._timed_dataframe, + sector_delays=sector_delays, + **kwds, + ) + + self._attributes.add( + metadata, + "dld_sector_alignment", + duplicate_policy="raise", + ) + self._dataframe = df + if self._timed_dataframe is not None and tof_column in self._timed_dataframe.columns: + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if verbose: + print(self._dataframe)
    + + + # Delay calibration function +
    +[docs] + def calibrate_delay_axis( + self, + delay_range: Tuple[float, float] = None, + datafile: str = None, + preview: bool = False, + verbose: bool = None, + **kwds, + ): + """Append delay column to dataframe. Either provide delay ranges, or read + them from a file. + + Args: + delay_range (Tuple[float, float], optional): The scanned delay range in + picoseconds. Defaults to None. + datafile (str, optional): The file from which to read the delay ranges. + Defaults to None. + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + **kwds: Keyword args passed to ``DelayCalibrator.append_delay_axis``. + """ + if verbose is None: + verbose = self.verbose + + adc_column = self._config["dataframe"]["adc_column"] + if adc_column not in self._dataframe.columns: + raise ValueError(f"ADC column {adc_column} not found in dataframe, cannot calibrate!") + + if self._dataframe is not None: + if verbose: + print("Adding delay column to dataframe:") + + if delay_range is None and datafile is None: + if len(self.dc.calibration) == 0: + try: + datafile = self._files[0] + except IndexError: + print( + "No datafile available, specify either", + " 'datafile' or 'delay_range'", + ) + raise + + df, metadata = self.dc.append_delay_axis( + self._dataframe, + delay_range=delay_range, + datafile=datafile, + verbose=verbose, + **kwds, + ) + if self._timed_dataframe is not None and adc_column in self._timed_dataframe.columns: + tdf, _ = self.dc.append_delay_axis( + self._timed_dataframe, + delay_range=delay_range, + datafile=datafile, + verbose=False, + **kwds, + ) + + # Add Metadata + self._attributes.add( + metadata, + "delay_calibration", + duplicate_policy="overwrite", + ) + self._dataframe = df + if self._timed_dataframe is not None and adc_column in self._timed_dataframe.columns: + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if self.verbose: + print(self._dataframe)
    + + +
    +[docs] + def save_delay_calibration( + self, + filename: str = None, + overwrite: bool = False, + ) -> None: + """Save the generated delay calibration parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + + if len(self.dc.calibration) == 0: + raise ValueError("No delay calibration parameters to save!") + calibration = {} + for key, value in self.dc.calibration.items(): + if key == "datafile": + calibration[key] = value + elif key in ["adc_range", "delay_range", "delay_range_mm"]: + calibration[key] = [float(i) for i in value] + else: + calibration[key] = float(value) + + if "creation_date" not in calibration: + calibration["creation_date"] = datetime.now().timestamp() + + config = { + "delay": { + "calibration": calibration, + }, + } + save_config(config, filename, overwrite)
    + + +
    +[docs] + def add_delay_offset( + self, + constant: float = None, + flip_delay_axis: bool = None, + columns: Union[str, Sequence[str]] = None, + weights: Union[float, Sequence[float]] = 1.0, + reductions: Union[str, Sequence[str]] = None, + preserve_mean: Union[bool, Sequence[bool]] = False, + preview: bool = False, + verbose: bool = None, + ) -> None: + """Shift the delay axis of the dataframe by a constant or other columns. + + Args: + constant (float, optional): The constant to shift the delay axis by. + flip_delay_axis (bool, optional): Option to reverse the direction of the delay axis. + columns (Union[str, Sequence[str]]): Name of the column(s) to apply the shift from. + weights (Union[float, Sequence[float]]): weights to apply to the columns. + Can also be used to flip the sign (e.g. -1). Defaults to 1. + preserve_mean (bool): Whether to subtract the mean of the column before applying the + shift. Defaults to False. + reductions (str): The reduction to apply to the column. Should be an available method + of dask.dataframe.Series. For example "mean". In this case the function is applied + to the column to generate a single value for the whole dataset. If None, the shift + is applied per-dataframe-row. Defaults to None. Currently only "mean" is supported. + preview (bool, optional): Option to preview the first elements of the data frame. + Defaults to False. + verbose (bool, optional): Option to print out diagnostic information. + Defaults to config["core"]["verbose"]. + + Raises: + ValueError: If the delay column is not in the dataframe. + """ + if verbose is None: + verbose = self.verbose + + delay_column = self._config["dataframe"]["delay_column"] + if delay_column not in self._dataframe.columns: + raise ValueError(f"Delay column {delay_column} not found in dataframe! ") + + if self.dataframe is not None: + if verbose: + print("Adding delay offset to dataframe:") + df, metadata = self.dc.add_offsets( + df=self._dataframe, + constant=constant, + flip_delay_axis=flip_delay_axis, + columns=columns, + delay_column=delay_column, + weights=weights, + reductions=reductions, + preserve_mean=preserve_mean, + verbose=verbose, + ) + if self._timed_dataframe is not None and delay_column in self._timed_dataframe.columns: + tdf, _ = self.dc.add_offsets( + df=self._timed_dataframe, + constant=constant, + flip_delay_axis=flip_delay_axis, + columns=columns, + delay_column=delay_column, + weights=weights, + reductions=reductions, + preserve_mean=preserve_mean, + verbose=False, + ) + + self._attributes.add( + metadata, + "delay_offset", + duplicate_policy="append", + ) + self._dataframe = df + if self._timed_dataframe is not None and delay_column in self._timed_dataframe.columns: + self._timed_dataframe = tdf + else: + raise ValueError("No dataframe loaded!") + if preview: + print(self._dataframe.head(10)) + else: + if verbose: + print(self._dataframe)
    + + +
    +[docs] + def save_delay_offsets( + self, + filename: str = None, + overwrite: bool = False, + ) -> None: + """Save the generated delay calibration parameters to the folder config file. + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + if filename is None: + filename = "sed_config.yaml" + if len(self.dc.offsets) == 0: + raise ValueError("No delay offset parameters to save!") + + if "creation_date" not in self.ec.offsets.keys(): + self.ec.offsets["creation_date"] = datetime.now().timestamp() + + config = { + "delay": { + "offsets": self.dc.offsets, + }, + } + save_config(config, filename, overwrite) + print(f'Saved delay offset parameters to "{filename}".')
    + + +
    +[docs] + def save_workflow_params( + self, + filename: str = None, + overwrite: bool = False, + ) -> None: + """run all save calibration parameter methods + + Args: + filename (str, optional): Filename of the config dictionary to save to. + Defaults to "sed_config.yaml" in the current folder. + overwrite (bool, optional): Option to overwrite the present dictionary. + Defaults to False. + """ + for method in [ + self.save_splinewarp, + self.save_transformations, + self.save_momentum_calibration, + self.save_energy_correction, + self.save_energy_calibration, + self.save_energy_offset, + self.save_delay_calibration, + self.save_delay_offsets, + ]: + try: + method(filename, overwrite) + except (ValueError, AttributeError, KeyError): + pass
    + + +
    +[docs] + def add_jitter( + self, + cols: List[str] = None, + amps: Union[float, Sequence[float]] = None, + **kwds, + ): + """Add jitter to the selected dataframe columns. + + Args: + cols (List[str], optional): The colums onto which to apply jitter. + Defaults to config["dataframe"]["jitter_cols"]. + amps (Union[float, Sequence[float]], optional): Amplitude scalings for the + jittering noise. If one number is given, the same is used for all axes. + For uniform noise (default) it will cover the interval [-amp, +amp]. + Defaults to config["dataframe"]["jitter_amps"]. + **kwds: additional keyword arguments passed to ``apply_jitter``. + """ + if cols is None: + cols = self._config["dataframe"]["jitter_cols"] + for loc, col in enumerate(cols): + if col.startswith("@"): + cols[loc] = self._config["dataframe"].get(col.strip("@")) + + if amps is None: + amps = self._config["dataframe"]["jitter_amps"] + + self._dataframe = self._dataframe.map_partitions( + apply_jitter, + cols=cols, + cols_jittered=cols, + amps=amps, + **kwds, + ) + if self._timed_dataframe is not None: + cols_timed = cols.copy() + for col in cols: + if col not in self._timed_dataframe.columns: + cols_timed.remove(col) + + if cols_timed: + self._timed_dataframe = self._timed_dataframe.map_partitions( + apply_jitter, + cols=cols_timed, + cols_jittered=cols_timed, + ) + metadata = [] + for col in cols: + metadata.append(col) + # TODO: allow only appending if columns are not jittered yet + self._attributes.add(metadata, "jittering", duplicate_policy="append")
    + + +
    +[docs] + def add_time_stamped_data( + self, + dest_column: str, + time_stamps: np.ndarray = None, + data: np.ndarray = None, + archiver_channel: str = None, + **kwds, + ): + """Add data in form of timestamp/value pairs to the dataframe using interpolation to the + timestamps in the dataframe. The time-stamped data can either be provided, or fetched from + an EPICS archiver instance. + + Args: + dest_column (str): destination column name + time_stamps (np.ndarray, optional): Time stamps of the values to add. If omitted, + time stamps are retrieved from the epics archiver + data (np.ndarray, optional): Values corresponding at the time stamps in time_stamps. + If omitted, data are retrieved from the epics archiver. + archiver_channel (str, optional): EPICS archiver channel from which to retrieve data. + Either this or data and time_stamps have to be present. + **kwds: additional keyword arguments passed to ``add_time_stamped_data``. + """ + time_stamp_column = kwds.pop( + "time_stamp_column", + self._config["dataframe"].get("time_stamp_alias", ""), + ) + + if time_stamps is None and data is None: + if archiver_channel is None: + raise ValueError( + "Either archiver_channel or both time_stamps and data have to be present!", + ) + if self.loader.__name__ != "mpes": + raise NotImplementedError( + "This function is currently only implemented for the mpes loader!", + ) + ts_from, ts_to = cast(MpesLoader, self.loader).get_start_and_end_time() + # get channel data with +-5 seconds safety margin + time_stamps, data = get_archiver_data( + archiver_url=self._config["metadata"].get("archiver_url", ""), + archiver_channel=archiver_channel, + ts_from=ts_from - 5, + ts_to=ts_to + 5, + ) + + self._dataframe = add_time_stamped_data( + self._dataframe, + time_stamps=time_stamps, + data=data, + dest_column=dest_column, + time_stamp_column=time_stamp_column, + **kwds, + ) + if self._timed_dataframe is not None: + if time_stamp_column in self._timed_dataframe: + self._timed_dataframe = add_time_stamped_data( + self._timed_dataframe, + time_stamps=time_stamps, + data=data, + dest_column=dest_column, + time_stamp_column=time_stamp_column, + **kwds, + ) + metadata: List[Any] = [] + metadata.append(dest_column) + metadata.append(time_stamps) + metadata.append(data) + self._attributes.add(metadata, "time_stamped_data", duplicate_policy="append")
    + + +
    +[docs] + def pre_binning( + self, + df_partitions: Union[int, Sequence[int]] = 100, + axes: List[str] = None, + bins: List[int] = None, + ranges: Sequence[Tuple[float, float]] = None, + **kwds, + ) -> xr.DataArray: + """Function to do an initial binning of the dataframe loaded to the class. + + Args: + df_partitions (Union[int, Sequence[int]], optional): Number of dataframe partitions to + use for the initial binning. Defaults to 100. + axes (List[str], optional): Axes to bin. + Defaults to config["momentum"]["axes"]. + bins (List[int], optional): Bin numbers to use for binning. + Defaults to config["momentum"]["bins"]. + ranges (List[Tuple], optional): Ranges to use for binning. + Defaults to config["momentum"]["ranges"]. + **kwds: Keyword argument passed to ``compute``. + + Returns: + xr.DataArray: pre-binned data-array. + """ + if axes is None: + axes = self._config["momentum"]["axes"] + for loc, axis in enumerate(axes): + if axis.startswith("@"): + axes[loc] = self._config["dataframe"].get(axis.strip("@")) + + if bins is None: + bins = self._config["momentum"]["bins"] + if ranges is None: + ranges_ = list(self._config["momentum"]["ranges"]) + ranges_[2] = np.asarray(ranges_[2]) / 2 ** ( + self._config["dataframe"]["tof_binning"] - 1 + ) + ranges = [cast(Tuple[float, float], tuple(v)) for v in ranges_] + + assert self._dataframe is not None, "dataframe needs to be loaded first!" + + return self.compute( + bins=bins, + axes=axes, + ranges=ranges, + df_partitions=df_partitions, + **kwds, + )
    + + +
    +[docs] + def compute( + self, + bins: Union[ + int, + dict, + tuple, + List[int], + List[np.ndarray], + List[tuple], + ] = 100, + axes: Union[str, Sequence[str]] = None, + ranges: Sequence[Tuple[float, float]] = None, + normalize_to_acquisition_time: Union[bool, str] = False, + **kwds, + ) -> xr.DataArray: + """Compute the histogram along the given dimensions. + + Args: + bins (int, dict, tuple, List[int], List[np.ndarray], List[tuple], optional): + Definition of the bins. Can be any of the following cases: + + - an integer describing the number of bins in on all dimensions + - a tuple of 3 numbers describing start, end and step of the binning + range + - a np.arrays defining the binning edges + - a list (NOT a tuple) of any of the above (int, tuple or np.ndarray) + - a dictionary made of the axes as keys and any of the above as values. + + This takes priority over the axes and range arguments. Defaults to 100. + axes (Union[str, Sequence[str]], optional): The names of the axes (columns) + on which to calculate the histogram. The order will be the order of the + dimensions in the resulting array. Defaults to None. + ranges (Sequence[Tuple[float, float]], optional): list of tuples containing + the start and end point of the binning range. Defaults to None. + normalize_to_acquisition_time (Union[bool, str]): Option to normalize the + result to the acquistion time. If a "slow" axis was scanned, providing + the name of the scanned axis will compute and apply the corresponding + normalization histogram. Defaults to False. + **kwds: Keyword arguments: + + - **hist_mode**: Histogram calculation method. "numpy" or "numba". See + ``bin_dataframe`` for details. Defaults to + config["binning"]["hist_mode"]. + - **mode**: Defines how the results from each partition are combined. + "fast", "lean" or "legacy". See ``bin_dataframe`` for details. + Defaults to config["binning"]["mode"]. + - **pbar**: Option to show the tqdm progress bar. Defaults to + config["binning"]["pbar"]. + - **n_cores**: Number of CPU cores to use for parallelization. + Defaults to config["binning"]["num_cores"] or N_CPU-1. + - **threads_per_worker**: Limit the number of threads that + multiprocessing can spawn per binning thread. Defaults to + config["binning"]["threads_per_worker"]. + - **threadpool_api**: The API to use for multiprocessing. "blas", + "openmp" or None. See ``threadpool_limit`` for details. Defaults to + config["binning"]["threadpool_API"]. + - **df_partitions**: A sequence of dataframe partitions, or the + number of the dataframe partitions to use. Defaults to all partitions. + - **filter**: A Sequence of Dictionaries with entries "col", "lower_bound", + "upper_bound" to apply as filter to the dataframe before binning. The + dataframe in the class remains unmodified by this. + + Additional kwds are passed to ``bin_dataframe``. + + Raises: + AssertError: Rises when no dataframe has been loaded. + + Returns: + xr.DataArray: The result of the n-dimensional binning represented in an + xarray object, combining the data with the axes. + """ + assert self._dataframe is not None, "dataframe needs to be loaded first!" + + hist_mode = kwds.pop("hist_mode", self._config["binning"]["hist_mode"]) + mode = kwds.pop("mode", self._config["binning"]["mode"]) + pbar = kwds.pop("pbar", self._config["binning"]["pbar"]) + num_cores = kwds.pop("num_cores", self._config["binning"]["num_cores"]) + threads_per_worker = kwds.pop( + "threads_per_worker", + self._config["binning"]["threads_per_worker"], + ) + threadpool_api = kwds.pop( + "threadpool_API", + self._config["binning"]["threadpool_API"], + ) + df_partitions: Union[int, Sequence[int]] = kwds.pop("df_partitions", None) + if isinstance(df_partitions, int): + df_partitions = list(range(0, min(df_partitions, self._dataframe.npartitions))) + if df_partitions is not None: + dataframe = self._dataframe.partitions[df_partitions] + else: + dataframe = self._dataframe + + filter_params = kwds.pop("filter", None) + if filter_params is not None: + try: + for param in filter_params: + if "col" not in param: + raise ValueError( + "'col' needs to be defined for each filter entry! ", + f"Not present in {param}.", + ) + assert set(param.keys()).issubset({"col", "lower_bound", "upper_bound"}) + dataframe = apply_filter(dataframe, **param) + except AssertionError as exc: + invalid_keys = set(param.keys()) - {"lower_bound", "upper_bound"} + raise ValueError( + "Only 'col', 'lower_bound' and 'upper_bound' allowed as filter entries. ", + f"Parameters {invalid_keys} not valid in {param}.", + ) from exc + + self._binned = bin_dataframe( + df=dataframe, + bins=bins, + axes=axes, + ranges=ranges, + hist_mode=hist_mode, + mode=mode, + pbar=pbar, + n_cores=num_cores, + threads_per_worker=threads_per_worker, + threadpool_api=threadpool_api, + **kwds, + ) + + for dim in self._binned.dims: + try: + self._binned[dim].attrs["unit"] = self._config["dataframe"]["units"][dim] + except KeyError: + pass + + self._binned.attrs["units"] = "counts" + self._binned.attrs["long_name"] = "photoelectron counts" + self._binned.attrs["metadata"] = self._attributes.metadata + + if normalize_to_acquisition_time: + if isinstance(normalize_to_acquisition_time, str): + axis = normalize_to_acquisition_time + print( + f"Calculate normalization histogram for axis '{axis}'...", + ) + self._normalization_histogram = self.get_normalization_histogram( + axis=axis, + df_partitions=df_partitions, + ) + # if the axes are named correctly, xarray figures out the normalization correctly + self._normalized = self._binned / self._normalization_histogram + self._attributes.add( + self._normalization_histogram.values, + name="normalization_histogram", + duplicate_policy="overwrite", + ) + else: + acquisition_time = self.loader.get_elapsed_time( + fids=df_partitions, + ) + if acquisition_time > 0: + self._normalized = self._binned / acquisition_time + self._attributes.add( + acquisition_time, + name="normalization_histogram", + duplicate_policy="overwrite", + ) + + self._normalized.attrs["units"] = "counts/second" + self._normalized.attrs["long_name"] = "photoelectron counts per second" + self._normalized.attrs["metadata"] = self._attributes.metadata + + return self._normalized + + return self._binned
    + + +
    +[docs] + def get_normalization_histogram( + self, + axis: str = "delay", + use_time_stamps: bool = False, + **kwds, + ) -> xr.DataArray: + """Generates a normalization histogram from the timed dataframe. Optionally, + use the TimeStamps column instead. + + Args: + axis (str, optional): The axis for which to compute histogram. + Defaults to "delay". + use_time_stamps (bool, optional): Use the TimeStamps column of the + dataframe, rather than the timed dataframe. Defaults to False. + **kwds: Keyword arguments: + + - **df_partitions**: A sequence of dataframe partitions, or the + number of the dataframe partitions to use. Defaults to all partitions. + + Raises: + ValueError: Raised if no data are binned. + ValueError: Raised if 'axis' not in binned coordinates. + ValueError: Raised if config["dataframe"]["time_stamp_alias"] not found + in Dataframe. + + Returns: + xr.DataArray: The computed normalization histogram (in TimeStamp units + per bin). + """ + + if self._binned is None: + raise ValueError("Need to bin data first!") + if axis not in self._binned.coords: + raise ValueError(f"Axis '{axis}' not found in binned data!") + + df_partitions: Union[int, Sequence[int]] = kwds.pop("df_partitions", None) + if isinstance(df_partitions, int): + df_partitions = list(range(0, min(df_partitions, self._dataframe.npartitions))) + if use_time_stamps or self._timed_dataframe is None: + if df_partitions is not None: + self._normalization_histogram = normalization_histogram_from_timestamps( + self._dataframe.partitions[df_partitions], + axis, + self._binned.coords[axis].values, + self._config["dataframe"]["time_stamp_alias"], + ) + else: + self._normalization_histogram = normalization_histogram_from_timestamps( + self._dataframe, + axis, + self._binned.coords[axis].values, + self._config["dataframe"]["time_stamp_alias"], + ) + else: + if df_partitions is not None: + self._normalization_histogram = normalization_histogram_from_timed_dataframe( + self._timed_dataframe.partitions[df_partitions], + axis, + self._binned.coords[axis].values, + self._config["dataframe"]["timed_dataframe_unit_time"], + ) + else: + self._normalization_histogram = normalization_histogram_from_timed_dataframe( + self._timed_dataframe, + axis, + self._binned.coords[axis].values, + self._config["dataframe"]["timed_dataframe_unit_time"], + ) + + return self._normalization_histogram
    + + +
    +[docs] + def view_event_histogram( + self, + dfpid: int, + ncol: int = 2, + bins: Sequence[int] = None, + axes: Sequence[str] = None, + ranges: Sequence[Tuple[float, float]] = None, + backend: str = "bokeh", + legend: bool = True, + histkwds: dict = None, + legkwds: dict = None, + **kwds, + ): + """Plot individual histograms of specified dimensions (axes) from a substituent + dataframe partition. + + Args: + dfpid (int): Number of the data frame partition to look at. + ncol (int, optional): Number of columns in the plot grid. Defaults to 2. + bins (Sequence[int], optional): Number of bins to use for the speicified + axes. Defaults to config["histogram"]["bins"]. + axes (Sequence[str], optional): Names of the axes to display. + Defaults to config["histogram"]["axes"]. + ranges (Sequence[Tuple[float, float]], optional): Value ranges of all + specified axes. Defaults toconfig["histogram"]["ranges"]. + backend (str, optional): Backend of the plotting library + ('matplotlib' or 'bokeh'). Defaults to "bokeh". + legend (bool, optional): Option to include a legend in the histogram plots. + Defaults to True. + histkwds (dict, optional): Keyword arguments for histograms + (see ``matplotlib.pyplot.hist()``). Defaults to {}. + legkwds (dict, optional): Keyword arguments for legend + (see ``matplotlib.pyplot.legend()``). Defaults to {}. + **kwds: Extra keyword arguments passed to + ``sed.diagnostics.grid_histogram()``. + + Raises: + TypeError: Raises when the input values are not of the correct type. + """ + if bins is None: + bins = self._config["histogram"]["bins"] + if axes is None: + axes = self._config["histogram"]["axes"] + axes = list(axes) + for loc, axis in enumerate(axes): + if axis.startswith("@"): + axes[loc] = self._config["dataframe"].get(axis.strip("@")) + if ranges is None: + ranges = list(self._config["histogram"]["ranges"]) + for loc, axis in enumerate(axes): + if axis == self._config["dataframe"]["tof_column"]: + ranges[loc] = np.asarray(ranges[loc]) / 2 ** ( + self._config["dataframe"]["tof_binning"] - 1 + ) + elif axis == self._config["dataframe"]["adc_column"]: + ranges[loc] = np.asarray(ranges[loc]) / 2 ** ( + self._config["dataframe"]["adc_binning"] - 1 + ) + + input_types = map(type, [axes, bins, ranges]) + allowed_types = [list, tuple] + + df = self._dataframe + + if not set(input_types).issubset(allowed_types): + raise TypeError( + "Inputs of axes, bins, ranges need to be list or tuple!", + ) + + # Read out the values for the specified groups + group_dict_dd = {} + dfpart = df.get_partition(dfpid) + cols = dfpart.columns + for ax in axes: + group_dict_dd[ax] = dfpart.values[:, cols.get_loc(ax)] + group_dict = ddf.compute(group_dict_dd)[0] + + # Plot multiple histograms in a grid + grid_histogram( + group_dict, + ncol=ncol, + rvs=axes, + rvbins=bins, + rvranges=ranges, + backend=backend, + legend=legend, + histkwds=histkwds, + legkwds=legkwds, + **kwds, + )
    + + +
    +[docs] + def save( + self, + faddr: str, + **kwds, + ): + """Saves the binned data to the provided path and filename. + + Args: + faddr (str): Path and name of the file to write. Its extension determines + the file type to write. Valid file types are: + + - "*.tiff", "*.tif": Saves a TIFF stack. + - "*.h5", "*.hdf5": Saves an HDF5 file. + - "*.nxs", "*.nexus": Saves a NeXus file. + + **kwds: Keyword argumens, which are passed to the writer functions: + For TIFF writing: + + - **alias_dict**: Dictionary of dimension aliases to use. + + For HDF5 writing: + + - **mode**: hdf5 read/write mode. Defaults to "w". + + For NeXus: + + - **reader**: Name of the nexustools reader to use. + Defaults to config["nexus"]["reader"] + - **definiton**: NeXus application definition to use for saving. + Must be supported by the used ``reader``. Defaults to + config["nexus"]["definition"] + - **input_files**: A list of input files to pass to the reader. + Defaults to config["nexus"]["input_files"] + - **eln_data**: An electronic-lab-notebook file in '.yaml' format + to add to the list of files to pass to the reader. + """ + if self._binned is None: + raise NameError("Need to bin data first!") + + if self._normalized is not None: + data = self._normalized + else: + data = self._binned + + extension = pathlib.Path(faddr).suffix + + if extension in (".tif", ".tiff"): + to_tiff( + data=data, + faddr=faddr, + **kwds, + ) + elif extension in (".h5", ".hdf5"): + to_h5( + data=data, + faddr=faddr, + **kwds, + ) + elif extension in (".nxs", ".nexus"): + try: + reader = kwds.pop("reader", self._config["nexus"]["reader"]) + definition = kwds.pop( + "definition", + self._config["nexus"]["definition"], + ) + input_files = kwds.pop( + "input_files", + self._config["nexus"]["input_files"], + ) + except KeyError as exc: + raise ValueError( + "The nexus reader, definition and input files need to be provide!", + ) from exc + + if isinstance(input_files, str): + input_files = [input_files] + + if "eln_data" in kwds: + input_files.append(kwds.pop("eln_data")) + + to_nexus( + data=data, + faddr=faddr, + reader=reader, + definition=definition, + input_files=input_files, + **kwds, + ) + + else: + raise NotImplementedError( + f"Unrecognized file format: {extension}.", + )
    +
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/diagnostics.html b/sed/v0.1.9/_modules/sed/diagnostics.html new file mode 100644 index 0000000..0b4b3c6 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/diagnostics.html @@ -0,0 +1,688 @@ + + + + + + + + + + sed.diagnostics — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.diagnostics

    +"""This module contains diagnostic output functions for the sed module
    +
    +"""
    +from typing import Sequence
    +from typing import Tuple
    +
    +import bokeh.plotting as pbk
    +import matplotlib.pyplot as plt
    +import numpy as np
    +from bokeh.io import output_notebook
    +from bokeh.layouts import gridplot
    +
    +
    +
    +[docs] +def plot_single_hist( + histvals: np.ndarray, + edges: np.ndarray, + legend: str = None, + **kwds, +) -> pbk.figure: + """Bokeh-based plotting of a single histogram with legend and tooltips. + + Args: + histvals (np.ndarray): Histogram counts (e.g. vertical axis). + edges (np.ndarray): Histogram edge values (e.g. horizontal axis). + legend (str, optional): Text for the plot legend. Defaults to None. + **kwds: Keyword arguments for ``bokeh.plotting.figure().quad()``. + + Returns: + pbk.figure: An instance of 'bokeh.plotting.figure' as a plot handle. + """ + ttp = kwds.pop("tooltip", [("(x, y)", "($x, $y)")]) + + fig = pbk.figure(background_fill_color="white", tooltips=ttp) + fig.quad( + top=histvals, + bottom=0, + left=edges[:-1], + right=edges[1:], + line_color="white", + alpha=0.8, + legend_label=legend, + **kwds, + ) + + fig.y_range.start = 0 # type: ignore + fig.legend.location = "top_right" + fig.grid.grid_line_color = "lightgrey" + + return fig
    + + + +
    +[docs] +def grid_histogram( + dct: dict, + ncol: int, + rvs: Sequence, + rvbins: Sequence, + rvranges: Sequence[Tuple[float, float]], + backend: str = "bokeh", + legend: bool = True, + histkwds: dict = None, + legkwds: dict = None, + **kwds, +): + """Grid plot of multiple 1D histograms. + + Args: + dct (dict): Dictionary containing the name and values of the random variables. + ncol (int): Number of columns in the plot grid. + rvs (Sequence): List of names for the random variables (rvs). + rvbins (Sequence): Bin values for all random variables. + rvranges (Sequence[Tuple[float, float]]): Value ranges of all random variables. + backend (str, optional): Backend for making the plot ('matplotlib' or 'bokeh'). + Defaults to "bokeh". + legend (bool, optional): Option to include a legend in each histogram plot. + Defaults to True. + histkwds (dict, optional): Keyword arguments for histogram plots. + Defaults to None. + legkwds (dict, optional): Keyword arguments for legends. Defaults to None. + **kwds: Additional keyword arguments. + """ + if histkwds is None: + histkwds = {} + if legkwds is None: + legkwds = {} + + figsz = kwds.pop("figsize", (14, 8)) + + if backend == "matplotlib": + nrv = len(rvs) + nrow = int(np.ceil(nrv / ncol)) + histtype = kwds.pop("histtype", "step") + + fig, ax = plt.subplots(nrow, ncol, figsize=figsz) + otherax = ax.copy() + for i, zipped in enumerate(zip(rvs, rvbins, rvranges)): + # Make each histogram plot + rvname, rvbin, rvrg = zipped + try: + axind = np.unravel_index(i, (nrow, ncol)) + ax[axind].hist( + dct[rvname], + bins=rvbin, + range=rvrg, + label=rvname, + histtype=histtype, + **histkwds, + ) + if legend: + ax[axind].legend(fontsize=15, **legkwds) + + otherax[axind] = None + + except IndexError: + ax[i].hist( + dct[rvname], + bins=rvbin, + range=rvrg, + label=rvname, + histtype=histtype, + **histkwds, + ) + if legend: + ax[i].legend(fontsize=15, **legkwds) + + otherax[i] = None + + for oax in otherax.flatten(): + if oax is not None: + fig.delaxes(oax) + + elif backend == "bokeh": + output_notebook(hide_banner=True) + + plots = [] + for i, zipped in enumerate(zip(rvs, rvbins, rvranges)): + rvname, rvbin, rvrg = zipped + histvals, edges = np.histogram(dct[rvname], bins=rvbin, range=rvrg) + + if legend: + plots.append( + plot_single_hist( + histvals, + edges, + legend=rvname, + **histkwds, + ), + ) + else: + plots.append( + plot_single_hist(histvals, edges, legend=None, **histkwds), + ) + + # Make grid plot + pbk.show( + gridplot( + plots, # type: ignore + ncols=ncol, + width=figsz[0] * 30, + height=figsz[1] * 28, + ), + )
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/io/hdf5.html b/sed/v0.1.9/_modules/sed/io/hdf5.html new file mode 100644 index 0000000..d8b3ee6 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/io/hdf5.html @@ -0,0 +1,717 @@ + + + + + + + + + + sed.io.hdf5 — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.io.hdf5

    +"""This module contains hdf5 file input/output functions for the sed.io module
    +
    +"""
    +from typing import Union
    +
    +import h5py
    +import numpy as np
    +import xarray as xr
    +
    +
    +def recursive_write_metadata(h5group: h5py.Group, node: dict):
    +    """Recurses through a python dictionary and writes it into an hdf5 file.
    +
    +    Args:
    +        h5group (h5py.Group): hdf5 group element where to store the current dict node
    +            to.
    +        node (dict): dictionary node to store
    +
    +    Raises:
    +        Warning: warns if elements have been converted into strings for saving.
    +        ValueError: Raised when elements cannot be saved even as strings.
    +    """
    +    for key, item in node.items():
    +        if isinstance(
    +            item,
    +            (
    +                np.ndarray,
    +                np.int64,
    +                np.float64,
    +                str,
    +                bytes,
    +                int,
    +                float,
    +                list,
    +            ),
    +        ):
    +            try:
    +                h5group.create_dataset(key, data=item)
    +            except TypeError:
    +                h5group.create_dataset(key, data=str(item))
    +                print(f"Saved {key} as string.")
    +        elif isinstance(item, dict):
    +            group = h5group.create_group(key)
    +            recursive_write_metadata(group, item)
    +        else:
    +            try:
    +                h5group.create_dataset(key, data=str(item))
    +                print(f"Saved {key} as string.")
    +            except BaseException as exc:
    +                raise ValueError(
    +                    f"Unknown error occured, cannot save {item} of type {type(item)}.",
    +                ) from exc
    +
    +
    +def recursive_parse_metadata(
    +    node: Union[h5py.Group, h5py.Dataset],
    +) -> dict:
    +    """Recurses through an hdf5 file, and parse it into a dictionary.
    +
    +    Args:
    +        node (Union[h5py.Group, h5py.Dataset]): hdf5 group or dataset to parse into
    +            dictionary.
    +
    +    Returns:
    +        dict: Dictionary of elements in the hdf5 path contained in node
    +    """
    +    if isinstance(node, h5py.Group):
    +        dictionary = {}
    +        for key, value in node.items():
    +            dictionary[key] = recursive_parse_metadata(value)
    +
    +    else:
    +        entry = node[...]
    +        try:
    +            dictionary = entry.item()
    +            if isinstance(dictionary, (bytes, bytearray)):
    +                dictionary = dictionary.decode()
    +        except ValueError:
    +            dictionary = entry
    +
    +    return dictionary
    +
    +
    +
    +[docs] +def to_h5(data: xr.DataArray, faddr: str, mode: str = "w"): + """Save xarray formatted data to hdf5 + + Args: + data (xr.DataArray): input data + faddr (str): complete file name (including path) + mode (str, optional): hdf5 read/write mode. Defaults to "w". + + Raises: + Warning: subfunction warns if elements have been converted into strings for + saving. + """ + with h5py.File(faddr, mode) as h5_file: + print(f"saving data to {faddr}") + + # Saving data, make a single dataset + dataset = h5_file.create_dataset("binned/BinnedData", data=data.data) + try: + dataset.attrs["units"] = data.attrs["units"] + dataset.attrs["long_name"] = data.attrs["long_name"] + except KeyError: + pass + + # Saving axes + axes_group = h5_file.create_group("axes") + axes_number = 0 + for bin_name in data.dims: + axis = axes_group.create_dataset( + f"ax{axes_number}", + data=data.coords[bin_name], + ) + axis.attrs["name"] = bin_name + try: + axis.attrs["unit"] = data.coords[bin_name].attrs["unit"] + except KeyError: + pass + axes_number += 1 + + if "metadata" in data.attrs and isinstance( + data.attrs["metadata"], + dict, + ): + meta_group = h5_file.create_group("metadata") + + recursive_write_metadata(meta_group, data.attrs["metadata"]) + + print("Saving complete!")
    + + + +
    +[docs] +def load_h5(faddr: str, mode: str = "r") -> xr.DataArray: + """Read xarray data from formatted hdf5 file + + Args: + faddr (str): complete file name (including path) + mode (str, optional): hdf5 read/write mode. Defaults to "r". + + Raises: + ValueError: Raised if data or axes are not found in the file. + + Returns: + xr.DataArray: output xarra data + """ + with h5py.File(faddr, mode) as h5_file: + # Reading data array + try: + data = np.asarray(h5_file["binned"]["BinnedData"]) + except KeyError as exc: + raise ValueError( + f"Wrong Data Format, the BinnedData were not found. The error was{exc}.", + ) from exc + + # Reading the axes + bin_axes = [] + bin_names = [] + + try: + for axis in h5_file["axes"]: + bin_axes.append(h5_file["axes"][axis]) + bin_names.append(h5_file["axes"][axis].attrs["name"]) + except KeyError as exc: + raise ValueError( + f"Wrong Data Format, the axes were not found. The error was {exc}", + ) from exc + + # load metadata + metadata = None + if "metadata" in h5_file: + metadata = recursive_parse_metadata(h5_file["metadata"]) + + coords = {} + for name, vals in zip(bin_names, bin_axes): + coords[name] = vals + + xarray = xr.DataArray(data, dims=bin_names, coords=coords) + + try: + for axis in range(len(bin_axes)): + xarray[bin_names[axis]].attrs["unit"] = h5_file["axes"][f"ax{axis}"].attrs["unit"] + xarray.attrs["units"] = h5_file["binned"]["BinnedData"].attrs["units"] + xarray.attrs["long_name"] = h5_file["binned"]["BinnedData"].attrs["long_name"] + except (KeyError, TypeError): + pass + + if metadata is not None: + xarray.attrs["metadata"] = metadata + + return xarray
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/io/nexus.html b/sed/v0.1.9/_modules/sed/io/nexus.html new file mode 100644 index 0000000..3c641e6 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/io/nexus.html @@ -0,0 +1,570 @@ + + + + + + + + + + sed.io.nexus — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.io.nexus

    +"""This module contains NuXus file input/output functions for the sed.io module.
    +The conversion is based on the nexusutils from the FAIRmat NFDI consortium.
    +For details, see https://github.com/nomad-coe/nomad-parser-nexus
    +
    +"""
    +from typing import Sequence
    +from typing import Union
    +
    +import xarray as xr
    +from pynxtools.dataconverter.convert import convert
    +
    +
    +
    +[docs] +def to_nexus( + data: xr.DataArray, + faddr: str, + reader: str, + definition: str, + input_files: Union[str, Sequence[str]], + **kwds, +): + """Saves the x-array provided to a NeXus file at faddr, using the provided reader, + NeXus definition and configuration file. + + Args: + data (xr.DataArray): The data to save, containing metadata definitions in + data._attrs["metadata"]. + faddr (str): The file path to save to. + reader (str): The name of the NeXus reader to use. + definition (str): The NeXus definiton to use. + config_file (str): The file path to the configuration file to use. + **kwds: Keyword arguments for ``nexusutils.dataconverter.convert``. + """ + + if isinstance(input_files, str): + input_files = tuple([input_files]) + else: + input_files = tuple(input_files) + + convert( + input_file=input_files, + objects=(data), + reader=reader, + nxdl=definition, + output=faddr, + **kwds, + )
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/io/tiff.html b/sed/v0.1.9/_modules/sed/io/tiff.html new file mode 100644 index 0000000..cfb3e80 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/io/tiff.html @@ -0,0 +1,747 @@ + + + + + + + + + + sed.io.tiff — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.io.tiff

    +"""This module contains tiff file input/output functions for the sed.io module
    +
    +"""
    +from pathlib import Path
    +from typing import Sequence
    +from typing import Union
    +
    +import numpy as np
    +import tifffile
    +import xarray as xr
    +
    +
    +_IMAGEJ_DIMS_ORDER = "TZCYXS"
    +_IMAGEJ_DIMS_ALIAS = {
    +    "T": [
    +        "delayStage",
    +        "pumpProbeTime",
    +        "time",
    +        "delay",
    +        "T",
    +    ],
    +    "Z": [
    +        "dldTime",
    +        "t",
    +        "energy",
    +        "e",
    +        "E",
    +        "binding_energy",
    +        "energies",
    +        "binding_energies",
    +    ],
    +    "C": ["C"],
    +    "Y": ["dldPosY", "ky", "y", "ypos", "Y"],
    +    "X": ["dldPosX", "kx", "x", "xpos", "X"],
    +    "S": ["S"],
    +}
    +
    +
    +
    +[docs] +def to_tiff( + data: Union[xr.DataArray, np.ndarray], + faddr: Union[Path, str], + alias_dict: dict = None, +): + """Save an array as a .tiff stack compatible with ImageJ + + Args: + data (Union[xr.DataArray, np.ndarray]): data to be saved. If a np.ndarray, + the order is retained. If it is an xarray.DataArray, the order is inferred + from axis_dict instead. ImageJ likes tiff files with axis order as + TZCYXS. Therefore, best axis order in input should be: Time, Energy, + posY, posX. The channels 'C' and 'S' are automatically added and can + be ignored. + faddr (Union[Path, str]): full path and name of file to save. + alias_dict (dict, optional): name pairs for correct axis ordering. Keys should + be any of T,Z,C,Y,X,S. The Corresponding value should be a dimension of the + xarray or the dimension number if a numpy array. This is used to sort the + data in the correct order for imagej standards. If None it tries to guess + the order from the name of the axes or assumes T,Z,C,Y,X,S order for numpy + arrays. Defaults to None. + + Raises: + AttributeError: if more than one axis corresponds to a single dimension + NotImplementedError: if data is not 2,3 or 4 dimensional + TypeError: if data is not a np.ndarray or an xarray.DataArray + """ + out: Union[np.ndarray, xr.DataArray] = None + if isinstance(data, np.ndarray): + # TODO: add sorting by dictionary keys + dim_expansions = {2: [0, 1, 2, 5], 3: [0, 2, 5], 4: [2, 5]} + dims = { + 2: ["x", "y"], + 3: ["x", "y", "energy"], + 4: ["x", "y", "energy", "delay"], + } + try: + out = np.expand_dims(data, dim_expansions[data.ndim]) + except KeyError as exc: + raise NotImplementedError( + f"Only 2-3-4D arrays supported when data is a {type(data)}", + ) from exc + + dims_order = dims[data.ndim] + + elif isinstance(data, xr.DataArray): + dims_order = _fill_missing_dims(list(data.dims), alias_dict=alias_dict) + out = data.expand_dims( + {dim: 1 for dim in dims_order if dim not in data.dims}, + ) + out = out.transpose(*dims_order) + else: + raise TypeError(f"Cannot handle data of type {data.type}") + + faddr = Path(faddr).with_suffix(".tiff") + + tifffile.imwrite(faddr, out.astype(np.float32), imagej=True) + + print(f"Successfully saved {faddr}\n Axes order: {dims_order}")
    + + + +def _sort_dims_for_imagej(dims: Sequence, alias_dict: dict = None) -> list: + """Guess the order of the dimensions from the alias dictionary. + + Args: + dims (Sequence): the list of dimensions to sort + alias_dict (dict, optional): name pairs for correct axis ordering. Keys should + be any of T,Z,C,Y,X,S. The Corresponding value should be a dimension of the + xarray or the dimension number if a numpy array. This is used to sort the + data in the correct order for imagej standards. If None it tries to guess + the order from the name of the axes or assumes T,Z,C,Y,X,S order for numpy + arrays. Defaults to None. + + Raises: + ValueError: for duplicate entries for a single imagej dimension + NameError: when a dimension cannot be found in the alias dictionary + + Returns: + list: List of sorted dimension names. + """ + order = _fill_missing_dims(dims=dims, alias_dict=alias_dict) + return [d for d in order if d in dims] + + +def _fill_missing_dims(dims: Sequence, alias_dict: dict = None) -> list: + """Fill in the missing dimensions from the alias dictionary. + + Args: + dims (Sequence): the list of dimensions that are provided + alias_dict (dict, optional): name pairs for correct axis ordering. Keys should + be any of T,Z,C,Y,X,S. The Corresponding value should be a dimension of the + xarray or the dimension number if a numpy array. This is used to sort the + data in the correct order for imagej standards. If None it tries to guess + the order from the name of the axes or assumes T,Z,C,Y,X,S order for numpy + arrays. Defaults to None. + + Raises: + ValueError: for duplicate entries for a single imagej dimension + NameError: when a dimension cannot be found in the alias dictionary + + Returns: + list: augmented list of TIFF dimensions. + """ + order: list = [] + # overwrite the default values with the provided dict + if alias_dict is None: + alias_dict = {} + else: + for k, v in alias_dict.items(): + assert k in _IMAGEJ_DIMS_ORDER, f"keys must all be one of {_IMAGEJ_DIMS_ALIAS}" + if not isinstance(v, (list, tuple)): + alias_dict[k] = [v] + + alias_dict = {**_IMAGEJ_DIMS_ALIAS, **alias_dict} + added_dims = 0 + for imgj_dim in _IMAGEJ_DIMS_ORDER: + found_one = False + for dim in dims: + if dim in alias_dict[imgj_dim]: + if found_one: + raise ValueError( + f"Duplicate entries for {imgj_dim}: {dim} and {order[-1]} ", + ) + order.append(dim) + found_one = True + if not found_one: + order.append(imgj_dim) + added_dims += 1 + if len(order) != len(dims) + added_dims: + raise NameError( + f"Could not interpret dimensions {[d for d in dims if d not in order]}", + ) + return order + + +
    +[docs] +def load_tiff( + faddr: Union[str, Path], + coords: dict = None, + dims: Sequence = None, + attrs: dict = None, +) -> xr.DataArray: + """Loads a tiff stack to an xarray. + + The .tiff format does not retain information on the axes, so these need to + be manually added with the axes argument. Otherwise, this returns the data + only as np.ndarray. + + Args: + faddr (Union[str, Path]): Path to file to load. + coords (dict, optional): The axes describing the data, following the tiff + stack order. Defaults to None. + dims (Sequence, optional): the order of the coordinates provided, considering + the data is ordered as TZCYXS. If None (default) it infers the order from + the order of the coords dictionary. + attrs (dict, optional): dictionary to add as attributes to the + xarray.DataArray. Defaults to None. + + Returns: + xr.DataArray: an xarray representing the data loaded from the .tiff file + """ + data = tifffile.imread(faddr) + + if coords is None: + coords = { + k.replace("_", ""): np.linspace(0, n, n) + for k, n in zip( + _IMAGEJ_DIMS_ORDER, + data.shape, + ) + if n > 1 + } + + data = data.squeeze() + + if dims is None: + dims = list(coords.keys()) + + assert data.ndim == len(dims), ( + f"Data dimension {data.ndim} must coincide number of coordinates " + f"{len(coords)} and dimensions {len(dims)} provided," + ) + return xr.DataArray(data=data, coords=coords, dims=dims, attrs=attrs)
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/base/loader.html b/sed/v0.1.9/_modules/sed/loader/base/loader.html new file mode 100644 index 0000000..6054193 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/base/loader.html @@ -0,0 +1,720 @@ + + + + + + + + + + sed.loader.base.loader — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.base.loader

    +"""The abstract class off of which to implement loaders."""
    +import os
    +from abc import ABC
    +from abc import abstractmethod
    +from copy import deepcopy
    +from typing import Any
    +from typing import Dict
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import dask.dataframe as ddf
    +import numpy as np
    +
    +from sed.loader.utils import gather_files
    +
    +
    +
    +[docs] +class BaseLoader(ABC): + """ + The abstract class off of which to implement loaders. + + The reader's folder name is the identifier. + For this BaseLoader with filename base/loader.py the ID becomes 'base' + + Args: + config (dict, optional): Config dictionary. Defaults to None. + meta_handler (MetaHandler, optional): MetaHandler object. Defaults to None. + """ + + # pylint: disable=too-few-public-methods + + __name__ = "BaseLoader" + + supported_file_types: List[str] = [] + + def __init__( + self, + config: dict = None, + ): + self._config = config if config is not None else {} + + self.files: List[str] = [] + self.runs: List[str] = [] + self.metadata: Dict[Any, Any] = {} + +
    +[docs] + @abstractmethod + def read_dataframe( + self, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, + ftype: str = None, + metadata: dict = None, + collect_metadata: bool = False, + **kwds, + ) -> Tuple[ddf.DataFrame, ddf.DataFrame, dict]: + """Reads data from given files, folder, or runs and returns a dask dataframe + and corresponding metadata. + + Args: + files (Union[str, Sequence[str]], optional): File path(s) to process. + Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files + are stored. Path has priority such that if it's specified, the specified + files will be ignored. Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding + files will be located in the location provided by ``folders``. Takes + precendence over ``files`` and ``folders``. Defaults to None. + ftype (str, optional): File type to read ('parquet', 'json', 'csv', etc). + If a folder path is given, all files with the specified extension are + read into the dataframe in the reading order. Defaults to None. + metadata (dict, optional): Manual metadata dictionary. Auto-generated + metadata will be added to it. Defaults to None. + collect_metadata (bool): Option to collect metadata from files. Requires + a valid config dict. Defaults to False. + **kwds: keyword arguments. See description in respective loader. + + Returns: + Tuple[ddf.DataFrame, dict]: Dask dataframe, timed dataframe and metadata + read from specified files. + """ + + if metadata is None: + metadata = {} + + if runs is not None: + if isinstance(runs, (str, int)): + runs = [runs] + self.runs = list(runs) + files = [] + for run in runs: + files.extend(self.get_files_from_run_id(run, folders, **kwds)) + + elif folders is not None: + if isinstance(folders, str): + folders = [folders] + files = [] + for folder in folders: + folder = os.path.realpath(folder) + files.extend( + gather_files( + folder=folder, + extension=ftype, + file_sorting=True, + **kwds, + ), + ) + + elif files is None: + raise ValueError( + "Either folder, file paths, or runs should be provided!", + ) + + if files is not None: + if isinstance(files, str): + files = [files] + files = [os.path.realpath(file) for file in files] + self.files = files + + self.metadata = deepcopy(metadata) + + if not files: + raise FileNotFoundError("No valid files or runs found!") + + return None, None, None
    + + +
    +[docs] + @abstractmethod + def get_files_from_run_id( + self, + run_id: str, + folders: Union[str, Sequence[str]] = None, + extension: str = None, + **kwds, + ) -> List[str]: + """Locate the files for a given run identifier. + + Args: + run_id (str): The run identifier to locate. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to None. + extension (str, optional): The file extension. Defaults to None. + kwds: Keyword arguments + + Return: + List[str]: List of files for the given run. + """ + raise NotImplementedError
    + + +
    +[docs] + @abstractmethod + def get_count_rate( + self, + fids: Sequence[int] = None, + **kwds, + ) -> Tuple[np.ndarray, np.ndarray]: + """Create count rate data for the files specified in ``fids``. + + Args: + fids (Sequence[int], optional): fids (Sequence[int]): the file ids to + include. Defaults to list of all file ids. + kwds: Keyword arguments + + Return: + Tuple[np.ndarray, np.ndarray]: Arrays containing countrate and seconds + into the scan. + """ + return None, None
    + + +
    +[docs] + @abstractmethod + def get_elapsed_time(self, fids: Sequence[int] = None, **kwds) -> float: + """Return the elapsed time in the specified in ``fids``. + + Args: + fids (Sequence[int], optional): fids (Sequence[int]): the file ids to + include. Defaults to list of all file ids. + kwds: Keyword arguments + + Return: + float: The elapsed time in the files in seconds. + """ + return None
    +
    + + + +LOADER = BaseLoader +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/flash/loader.html b/sed/v0.1.9/_modules/sed/loader/flash/loader.html new file mode 100644 index 0000000..d27557a --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/flash/loader.html @@ -0,0 +1,1518 @@ + + + + + + + + + + sed.loader.flash.loader — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.flash.loader

    +"""
    +This module implements the flash data loader.
    +This loader currently supports hextof, wespe and instruments with similar structure.
    +The raw hdf5 data is combined and saved into buffer files and loaded as a dask dataframe.
    +The dataframe is a amalgamation of all h5 files for a combination of runs, where the NaNs are
    +automatically forward filled across different files.
    +This can then be saved as a parquet for out-of-sed processing and reread back to access other
    +sed funtionality.
    +"""
    +import time
    +from functools import reduce
    +from pathlib import Path
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import dask.dataframe as dd
    +import h5py
    +import numpy as np
    +import pyarrow.parquet as pq
    +from joblib import delayed
    +from joblib import Parallel
    +from natsort import natsorted
    +from pandas import DataFrame
    +from pandas import MultiIndex
    +from pandas import Series
    +
    +from sed.core import dfops
    +from sed.loader.base.loader import BaseLoader
    +from sed.loader.flash.metadata import MetadataRetriever
    +from sed.loader.utils import parse_h5_keys
    +from sed.loader.utils import split_dld_time_from_sector_id
    +
    +
    +
    +[docs] +class FlashLoader(BaseLoader): + """ + The class generates multiindexed multidimensional pandas dataframes from the new FLASH + dataformat resolved by both macro and microbunches alongside electrons. + Only the read_dataframe (inherited and implemented) method is accessed by other modules. + """ + + __name__ = "flash" + + supported_file_types = ["h5"] + + def __init__(self, config: dict) -> None: + super().__init__(config=config) + self.multi_index = ["trainId", "pulseId", "electronId"] + self.index_per_electron: MultiIndex = None + self.index_per_pulse: MultiIndex = None + self.failed_files_error: List[str] = [] + +
    +[docs] + def initialize_paths(self) -> Tuple[List[Path], Path]: + """ + Initializes the paths based on the configuration. + + Returns: + Tuple[List[Path], Path]: A tuple containing a list of raw data directories + paths and the parquet data directory path. + + Raises: + ValueError: If required values are missing from the configuration. + FileNotFoundError: If the raw data directories are not found. + """ + # Parses to locate the raw beamtime directory from config file + if "paths" in self._config["core"]: + data_raw_dir = [ + Path(self._config["core"]["paths"].get("data_raw_dir", "")), + ] + data_parquet_dir = Path( + self._config["core"]["paths"].get("data_parquet_dir", ""), + ) + + else: + try: + beamtime_id = self._config["core"]["beamtime_id"] + year = self._config["core"]["year"] + daq = self._config["dataframe"]["daq"] + except KeyError as exc: + raise ValueError( + "The beamtime_id, year and daq are required.", + ) from exc + + beamtime_dir = Path( + self._config["dataframe"]["beamtime_dir"][self._config["core"]["beamline"]], + ) + beamtime_dir = beamtime_dir.joinpath(f"{year}/data/{beamtime_id}/") + + # Use pathlib walk to reach the raw data directory + data_raw_dir = [] + raw_path = beamtime_dir.joinpath("raw") + + for path in raw_path.glob("**/*"): + if path.is_dir(): + dir_name = path.name + if dir_name.startswith("express-") or dir_name.startswith( + "online-", + ): + data_raw_dir.append(path.joinpath(daq)) + elif dir_name == daq.upper(): + data_raw_dir.append(path) + + if not data_raw_dir: + raise FileNotFoundError("Raw data directories not found.") + + parquet_path = "processed/parquet" + data_parquet_dir = beamtime_dir.joinpath(parquet_path) + + data_parquet_dir.mkdir(parents=True, exist_ok=True) + + return data_raw_dir, data_parquet_dir
    + + +
    +[docs] + def get_files_from_run_id( + self, + run_id: str, + folders: Union[str, Sequence[str]] = None, + extension: str = "h5", + **kwds, + ) -> List[str]: + """Returns a list of filenames for a given run located in the specified directory + for the specified data acquisition (daq). + + Args: + run_id (str): The run identifier to locate. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to config["core"]["base_folder"]. + extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments: + - daq (str): The data acquisition identifier. + + Returns: + List[str]: A list of path strings representing the collected file names. + + Raises: + FileNotFoundError: If no files are found for the given run in the directory. + """ + # Define the stream name prefixes based on the data acquisition identifier + stream_name_prefixes = self._config["dataframe"]["stream_name_prefixes"] + + if folders is None: + folders = self._config["core"]["base_folder"] + + if isinstance(folders, str): + folders = [folders] + + daq = kwds.pop("daq", self._config.get("dataframe", {}).get("daq")) + + # Generate the file patterns to search for in the directory + file_pattern = f"{stream_name_prefixes[daq]}_run{run_id}_*." + extension + + files: List[Path] = [] + # Use pathlib to search for matching files in each directory + for folder in folders: + files.extend( + natsorted( + Path(folder).glob(file_pattern), + key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], + ), + ) + + # Check if any files are found + if not files: + raise FileNotFoundError( + f"No files found for run {run_id} in directory {str(folders)}", + ) + + # Return the list of found files + return [str(file.resolve()) for file in files]
    + + + @property + def available_channels(self) -> List: + """Returns the channel names that are available for use, + excluding pulseId, defined by the json file""" + available_channels = list(self._config["dataframe"]["channels"].keys()) + available_channels.remove("pulseId") + return available_channels + +
    +[docs] + def get_channels(self, formats: Union[str, List[str]] = "", index: bool = False) -> List[str]: + """ + Returns a list of channels associated with the specified format(s). + + Args: + formats (Union[str, List[str]]): The desired format(s) + ('per_pulse', 'per_electron', 'per_train', 'all'). + index (bool): If True, includes channels from the multi_index. + + Returns: + List[str]: A list of channels with the specified format(s). + """ + # If 'formats' is a single string, convert it to a list for uniform processing. + if isinstance(formats, str): + formats = [formats] + + # If 'formats' is a string "all", gather all possible formats. + if formats == ["all"]: + channels = self.get_channels(["per_pulse", "per_train", "per_electron"], index) + return channels + + channels = [] + for format_ in formats: + # Gather channels based on the specified format(s). + channels.extend( + key + for key in self.available_channels + if self._config["dataframe"]["channels"][key]["format"] == format_ + and key != "dldAux" + ) + # Include 'dldAuxChannels' if the format is 'per_pulse'. + if format_ == "per_pulse": + channels.extend( + self._config["dataframe"]["channels"]["dldAux"]["dldAuxChannels"].keys(), + ) + + # Include channels from multi_index if 'index' is True. + if index: + channels.extend(self.multi_index) + + return channels
    + + +
    +[docs] + def reset_multi_index(self) -> None: + """Resets the index per pulse and electron""" + self.index_per_electron = None + self.index_per_pulse = None
    + + +
    +[docs] + def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: + """ + Creates an index per electron using pulseId for usage with the electron + resolved pandas DataFrame. + + Args: + h5_file (h5py.File): The HDF5 file object. + + Notes: + - This method relies on the 'pulseId' channel to determine + the macrobunch IDs. + - It creates a MultiIndex with trainId, pulseId, and electronId + as the index levels. + """ + + # Macrobunch IDs obtained from the pulseId channel + [train_id, np_array] = self.create_numpy_array_per_channel( + h5_file, + "pulseId", + ) + + # Create a series with the macrobunches as index and + # microbunches as values + macrobunches = ( + Series( + (np_array[i] for i in train_id.index), + name="pulseId", + index=train_id, + ) + - self._config["dataframe"]["ubid_offset"] + ) + + # Explode dataframe to get all microbunch vales per macrobunch, + # remove NaN values and convert to type int + microbunches = macrobunches.explode().dropna().astype(int) + + # Create temporary index values + index_temp = MultiIndex.from_arrays( + (microbunches.index, microbunches.values), + names=["trainId", "pulseId"], + ) + + # Calculate the electron counts per pulseId unique preserves the order of appearance + electron_counts = index_temp.value_counts()[index_temp.unique()].values + + # Series object for indexing with electrons + electrons = ( + Series( + [np.arange(electron_counts[i]) for i in range(electron_counts.size)], + ) + .explode() + .astype(int) + ) + + # Create a pandas MultiIndex using the exploded datasets + self.index_per_electron = MultiIndex.from_arrays( + (microbunches.index, microbunches.values, electrons), + names=self.multi_index, + )
    + + +
    +[docs] + def create_multi_index_per_pulse( + self, + train_id: Series, + np_array: np.ndarray, + ) -> None: + """ + Creates an index per pulse using a pulse resolved channel's macrobunch ID, for usage with + the pulse resolved pandas DataFrame. + + Args: + train_id (Series): The train ID Series. + np_array (np.ndarray): The numpy array containing the pulse resolved data. + + Notes: + - This method creates a MultiIndex with trainId and pulseId as the index levels. + """ + + # Create a pandas MultiIndex, useful for comparing electron and + # pulse resolved dataframes + self.index_per_pulse = MultiIndex.from_product( + (train_id, np.arange(0, np_array.shape[1])), + names=["trainId", "pulseId"], + )
    + + +
    +[docs] + def create_numpy_array_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Tuple[Series, np.ndarray]: + """ + Returns a numpy array for a given channel name for a given file. + + Args: + h5_file (h5py.File): The h5py file object. + channel (str): The name of the channel. + + Returns: + Tuple[Series, np.ndarray]: A tuple containing the train ID Series and the numpy array + for the channel's data. + + """ + # Get the data from the necessary h5 file and channel + group = h5_file[self._config["dataframe"]["channels"][channel]["group_name"]] + + channel_dict = self._config["dataframe"]["channels"][channel] # channel parameters + + train_id = Series(group["index"], name="trainId") # macrobunch + + # unpacks the timeStamp or value + if channel == "timeStamp": + np_array = group["time"][()] + else: + np_array = group["value"][()] + + # Use predefined axis and slice from the json file + # to choose correct dimension for necessary channel + if "slice" in channel_dict: + np_array = np.take( + np_array, + channel_dict["slice"], + axis=1, + ) + return train_id, np_array
    + + +
    +[docs] + def create_dataframe_per_electron( + self, + np_array: np.ndarray, + train_id: Series, + channel: str, + ) -> DataFrame: + """ + Returns a pandas DataFrame for a given channel name of type [per electron]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + + Notes: + The microbunch resolved data is exploded and converted to a DataFrame. The MultiIndex + is set, and the NaN values are dropped, alongside the pulseId = 0 (meaningless). + + """ + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .explode() + .dropna() + .to_frame() + .set_index(self.index_per_electron) + .drop( + index=np.arange(-self._config["dataframe"]["ubid_offset"], 0), + level=1, + errors="ignore", + ) + )
    + + +
    +[docs] + def create_dataframe_per_pulse( + self, + np_array: np.ndarray, + train_id: Series, + channel: str, + channel_dict: dict, + ) -> DataFrame: + """ + Returns a pandas DataFrame for a given channel name of type [per pulse]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + channel_dict (dict): The dictionary containing channel parameters. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + + Notes: + - For auxillary channels, the macrobunch resolved data is repeated 499 times to be + compared to electron resolved data for each auxillary channel. The data is then + converted to a multicolumn DataFrame. + - For all other pulse resolved channels, the macrobunch resolved data is exploded + to a DataFrame and the MultiIndex is set. + + """ + + # Special case for auxillary channels + if channel == "dldAux": + # Checks the channel dictionary for correct slices and creates a multicolumn DataFrame + data_frames = ( + Series( + (np_array[i, value] for i in train_id.index), + name=key, + index=train_id, + ).to_frame() + for key, value in channel_dict["dldAuxChannels"].items() + ) + + # Multiindex set and combined dataframe returned + data = reduce(DataFrame.combine_first, data_frames) + + # For all other pulse resolved channels + else: + # Macrobunch resolved data is exploded to a DataFrame and the MultiIndex is set + + # Creates the index_per_pulse for the given channel + self.create_multi_index_per_pulse(train_id, np_array) + data = ( + Series((np_array[i] for i in train_id.index), name=channel) + .explode() + .to_frame() + .set_index(self.index_per_pulse) + ) + + return data
    + + +
    +[docs] + def create_dataframe_per_train( + self, + np_array: np.ndarray, + train_id: Series, + channel: str, + ) -> DataFrame: + """ + Returns a pandas DataFrame for a given channel name of type [per train]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + """ + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .to_frame() + .set_index(train_id) + )
    + + +
    +[docs] + def create_dataframe_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Union[Series, DataFrame]: + """ + Returns a pandas DataFrame for a given channel name from a given file. + + This method takes an h5py.File object `h5_file` and a channel name `channel`, and returns + a pandas DataFrame containing the data for that channel from the file. The format of the + DataFrame depends on the channel's format specified in the configuration. + + Args: + h5_file (h5py.File): The h5py.File object representing the HDF5 file. + channel (str): The name of the channel. + + Returns: + Union[Series, DataFrame]: A pandas Series or DataFrame representing the channel's data. + + Raises: + ValueError: If the channel has an undefined format. + + """ + [train_id, np_array] = self.create_numpy_array_per_channel( + h5_file, + channel, + ) # numpy Array created + channel_dict = self._config["dataframe"]["channels"][channel] # channel parameters + + # If np_array is size zero, fill with NaNs + if np_array.size == 0: + # Fill the np_array with NaN values of the same shape as train_id + np_array = np.full_like(train_id, np.nan, dtype=np.double) + # Create a Series using np_array, with train_id as the index + data = Series( + (np_array[i] for i in train_id.index), + name=channel, + index=train_id, + ) + + # Electron resolved data is treated here + if channel_dict["format"] == "per_electron": + # If index_per_electron is None, create it for the given file + if self.index_per_electron is None: + self.create_multi_index_per_electron(h5_file) + + # Create a DataFrame for electron-resolved data + data = self.create_dataframe_per_electron( + np_array, + train_id, + channel, + ) + + # Pulse resolved data is treated here + elif channel_dict["format"] == "per_pulse": + # Create a DataFrame for pulse-resolved data + data = self.create_dataframe_per_pulse( + np_array, + train_id, + channel, + channel_dict, + ) + + # Train resolved data is treated here + elif channel_dict["format"] == "per_train": + # Create a DataFrame for train-resolved data + data = self.create_dataframe_per_train(np_array, train_id, channel) + + else: + raise ValueError( + channel + + "has an undefined format. Available formats are \ + per_pulse, per_electron and per_train", + ) + + return data
    + + +
    +[docs] + def concatenate_channels( + self, + h5_file: h5py.File, + ) -> DataFrame: + """ + Concatenates the channels from the provided h5py.File into a pandas DataFrame. + + This method takes an h5py.File object `h5_file` and concatenates the channels present in + the file into a single pandas DataFrame. The concatenation is performed based on the + available channels specified in the configuration. + + Args: + h5_file (h5py.File): The h5py.File object representing the HDF5 file. + + Returns: + DataFrame: A concatenated pandas DataFrame containing the channels. + + Raises: + ValueError: If the group_name for any channel does not exist in the file. + + """ + all_keys = parse_h5_keys(h5_file) # Parses all channels present + + # Check for if the provided group_name actually exists in the file + for channel in self._config["dataframe"]["channels"]: + if channel == "timeStamp": + group_name = self._config["dataframe"]["channels"][channel]["group_name"] + "time" + else: + group_name = self._config["dataframe"]["channels"][channel]["group_name"] + "value" + + if group_name not in all_keys: + raise ValueError( + f"The group_name for channel {channel} does not exist.", + ) + + # Create a generator expression to generate data frames for each channel + data_frames = ( + self.create_dataframe_per_channel(h5_file, each) for each in self.available_channels + ) + + # Use the reduce function to join the data frames into a single DataFrame + return reduce( + lambda left, right: left.join(right, how="outer"), + data_frames, + )
    + + +
    +[docs] + def create_dataframe_per_file( + self, + file_path: Path, + ) -> DataFrame: + """ + Create pandas DataFrames for the given file. + + This method loads an HDF5 file specified by `file_path` and constructs a pandas DataFrame + from the datasets within the file. The order of datasets in the DataFrames is the opposite + of the order specified by channel names. + + Args: + file_path (Path): Path to the input HDF5 file. + + Returns: + DataFrame: pandas DataFrame + + """ + # Loads h5 file and creates a dataframe + with h5py.File(file_path, "r") as h5_file: + self.reset_multi_index() # Reset MultiIndexes for next file + df = self.concatenate_channels(h5_file) + df = df.dropna(subset=self._config["dataframe"].get("tof_column", "dldTimeSteps")) + # correct the 3 bit shift which encodes the detector ID in the 8s time + if self._config["dataframe"].get("split_sector_id_from_dld_time", False): + df = split_dld_time_from_sector_id(df, config=self._config) + return df
    + + +
    +[docs] + def create_buffer_file(self, h5_path: Path, parquet_path: Path) -> Union[bool, Exception]: + """ + Converts an HDF5 file to Parquet format to create a buffer file. + + This method uses `create_dataframe_per_file` method to create dataframes from individual + files within an HDF5 file. The resulting dataframe is then saved to a Parquet file. + + Args: + h5_path (Path): Path to the input HDF5 file. + parquet_path (Path): Path to the output Parquet file. + + Raises: + ValueError: If an error occurs during the conversion process. + + """ + try: + ( + self.create_dataframe_per_file(h5_path) + .reset_index(level=self.multi_index) + .to_parquet(parquet_path, index=False) + ) + except Exception as exc: # pylint: disable=broad-except + self.failed_files_error.append(f"{parquet_path}: {type(exc)} {exc}") + return exc + return None
    + + +
    +[docs] + def buffer_file_handler( + self, + data_parquet_dir: Path, + detector: str, + force_recreate: bool, + ) -> Tuple[List[Path], List, List]: + """ + Handles the conversion of buffer files (h5 to parquet) and returns the filenames. + + Args: + data_parquet_dir (Path): Directory where the parquet files will be stored. + detector (str): Detector name. + force_recreate (bool): Forces recreation of buffer files + + Returns: + Tuple[List[Path], List, List]: Three lists, one for + parquet file paths, one for metadata and one for schema. + + Raises: + FileNotFoundError: If the conversion fails for any files or no data is available. + """ + + # Create the directory for buffer parquet files + buffer_file_dir = data_parquet_dir.joinpath("buffer") + buffer_file_dir.mkdir(parents=True, exist_ok=True) + + # Create two separate lists for h5 and parquet file paths + h5_filenames = [Path(file) for file in self.files] + parquet_filenames = [ + buffer_file_dir.joinpath(Path(file).stem + detector) for file in self.files + ] + existing_parquet_filenames = [file for file in parquet_filenames if file.exists()] + + # Raise a value error if no data is available after the conversion + if len(h5_filenames) == 0: + raise ValueError("No data available. Probably failed reading all h5 files") + + if not force_recreate: + # Check if the available channels match the schema of the existing parquet files + parquet_schemas = [pq.read_schema(file) for file in existing_parquet_filenames] + config_schema = set(self.get_channels(formats="all", index=True)) + if self._config["dataframe"].get("split_sector_id_from_dld_time", False): + config_schema.add(self._config["dataframe"].get("sector_id_column", False)) + + for i, schema in enumerate(parquet_schemas): + schema_set = set(schema.names) + if schema_set != config_schema: + missing_in_parquet = config_schema - schema_set + missing_in_config = schema_set - config_schema + + missing_in_parquet_str = ( + f"Missing in parquet: {missing_in_parquet}" if missing_in_parquet else "" + ) + missing_in_config_str = ( + f"Missing in config: {missing_in_config}" if missing_in_config else "" + ) + + raise ValueError( + "The available channels do not match the schema of file", + f"{existing_parquet_filenames[i]}", + f"{missing_in_parquet_str}", + f"{missing_in_config_str}", + "Please check the configuration file or set force_recreate to True.", + ) + + # Choose files to read + files_to_read = [ + (h5_path, parquet_path) + for h5_path, parquet_path in zip(h5_filenames, parquet_filenames) + if force_recreate or not parquet_path.exists() + ] + + print(f"Reading files: {len(files_to_read)} new files of {len(h5_filenames)} total.") + + # Initialize the indices for create_buffer_file conversion + self.reset_multi_index() + + # Convert the remaining h5 files to parquet in parallel if there are any + if len(files_to_read) > 0: + error = Parallel(n_jobs=len(files_to_read), verbose=10)( + delayed(self.create_buffer_file)(h5_path, parquet_path) + for h5_path, parquet_path in files_to_read + ) + if any(error): + raise RuntimeError(f"Conversion failed for some files. {error}") + + # Raise an error if the conversion failed for any files + # TODO: merge this and the previous error trackings + if self.failed_files_error: + raise FileNotFoundError( + "Conversion failed for the following files:\n" + "\n".join(self.failed_files_error), + ) + + print("All files converted successfully!") + + # read all parquet metadata and schema + metadata = [pq.read_metadata(file) for file in parquet_filenames] + schema = [pq.read_schema(file) for file in parquet_filenames] + + return parquet_filenames, metadata, schema
    + + +
    +[docs] + def parquet_handler( + self, + data_parquet_dir: Path, + detector: str = "", + parquet_path: Path = None, + converted: bool = False, + load_parquet: bool = False, + save_parquet: bool = False, + force_recreate: bool = False, + ) -> Tuple[dd.DataFrame, dd.DataFrame]: + """ + Handles loading and saving of parquet files based on the provided parameters. + + Args: + data_parquet_dir (Path): Directory where the parquet files are located. + detector (str, optional): Adds a identifier for parquets to distinguish multidetector + systems. + parquet_path (str, optional): Path to the combined parquet file. + converted (bool, optional): True if data is augmented by adding additional columns + externally and saved into converted folder. + load_parquet (bool, optional): Loads the entire parquet into the dd dataframe. + save_parquet (bool, optional): Saves the entire dataframe into a parquet. + force_recreate (bool, optional): Forces recreation of buffer file. + Returns: + tuple: A tuple containing two dataframes: + - dataframe_electron: Dataframe containing the loaded/augmented electron data. + - dataframe_pulse: Dataframe containing the loaded/augmented timed data. + + Raises: + FileNotFoundError: If the requested parquet file is not found. + + """ + + # Construct the parquet path if not provided + if parquet_path is None: + parquet_name = "_".join(str(run) for run in self.runs) + parquet_dir = data_parquet_dir.joinpath("converted") if converted else data_parquet_dir + + parquet_path = parquet_dir.joinpath( + "run_" + parquet_name + detector, + ).with_suffix(".parquet") + + # Check if load_parquet is flagged and then load the file if it exists + if load_parquet: + try: + dataframe = dd.read_parquet(parquet_path) + except Exception as exc: + raise FileNotFoundError( + "The final parquet for this run(s) does not exist yet. " + "If it is in another location, please provide the path as parquet_path.", + ) from exc + + else: + # Obtain the parquet filenames, metadata and schema from the method + # which handles buffer file creation/reading + filenames, metadata, _ = self.buffer_file_handler( + data_parquet_dir, + detector, + force_recreate, + ) + + # Read all parquet files into one dataframe using dask + dataframe = dd.read_parquet(filenames, calculate_divisions=True) + + # Channels to fill NaN values + channels: List[str] = self.get_channels(["per_pulse", "per_train"]) + + overlap = min(file.num_rows for file in metadata) + + print("Filling nan values...") + dataframe = dfops.forward_fill_lazy( + df=dataframe, + columns=channels, + before=overlap, + iterations=self._config["dataframe"].get("forward_fill_iterations", 2), + ) + # Remove the NaNs from per_electron channels + dataframe_electron = dataframe.dropna( + subset=self.get_channels(["per_electron"]), + ) + dataframe_pulse = dataframe[ + self.multi_index + self.get_channels(["per_pulse", "per_train"]) + ] + dataframe_pulse = dataframe_pulse[ + (dataframe_pulse["electronId"] == 0) | (np.isnan(dataframe_pulse["electronId"])) + ] + + # Save the dataframe as parquet if requested + if save_parquet: + dataframe_electron.compute().reset_index(drop=True).to_parquet(parquet_path) + print("Combined parquet file saved.") + + return dataframe_electron, dataframe_pulse
    + + +
    +[docs] + def parse_metadata(self, scicat_token: str = None) -> dict: + """Uses the MetadataRetriever class to fetch metadata from scicat for each run. + + Returns: + dict: Metadata dictionary + scicat_token (str, optional):: The scicat token to use for fetching metadata + """ + metadata_retriever = MetadataRetriever(self._config["metadata"], scicat_token) + metadata = metadata_retriever.get_metadata( + beamtime_id=self._config["core"]["beamtime_id"], + runs=self.runs, + metadata=self.metadata, + ) + + return metadata
    + + +
    +[docs] + def get_count_rate( + self, + fids: Sequence[int] = None, # noqa: ARG002 + **kwds, # noqa: ARG002 + ): + return None, None
    + + +
    +[docs] + def get_elapsed_time(self, fids=None, **kwds): # noqa: ARG002 + return None
    + + +
    +[docs] + def read_dataframe( + self, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, + ftype: str = "h5", + metadata: dict = None, + collect_metadata: bool = False, + **kwds, + ) -> Tuple[dd.DataFrame, dd.DataFrame, dict]: + """ + Read express data from the DAQ, generating a parquet in between. + + Args: + files (Union[str, Sequence[str]], optional): File path(s) to process. Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files are stored + Path has priority such that if it's specified, the specified files will be ignored. + Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding files will + be located in the location provided by ``folders``. Takes precendence over + ``files`` and ``folders``. Defaults to None. + ftype (str, optional): The file extension type. Defaults to "h5". + metadata (dict, optional): Additional metadata. Defaults to None. + collect_metadata (bool, optional): Whether to collect metadata. Defaults to False. + + Returns: + Tuple[dd.DataFrame, dict]: A tuple containing the concatenated DataFrame and metadata. + + Raises: + ValueError: If neither 'runs' nor 'files'/'data_raw_dir' is provided. + FileNotFoundError: If the conversion fails for some files or no data is available. + """ + t0 = time.time() + + data_raw_dir, data_parquet_dir = self.initialize_paths() + + # Prepare a list of names for the runs to read and parquets to write + if runs is not None: + files = [] + if isinstance(runs, (str, int)): + runs = [runs] + for run in runs: + run_files = self.get_files_from_run_id( + run_id=run, + folders=[str(folder.resolve()) for folder in data_raw_dir], + extension=ftype, + daq=self._config["dataframe"]["daq"], + ) + files.extend(run_files) + self.runs = list(runs) + super().read_dataframe(files=files, ftype=ftype) + + else: + # This call takes care of files and folders. As we have converted runs into files + # already, they are just stored in the class by this call. + super().read_dataframe( + files=files, + folders=folders, + ftype=ftype, + metadata=metadata, + ) + + df, df_timed = self.parquet_handler(data_parquet_dir, **kwds) + + metadata = self.parse_metadata(**kwds) if collect_metadata else {} + print(f"loading complete in {time.time() - t0: .2f} s") + + return df, df_timed, metadata
    +
    + + + +LOADER = FlashLoader +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/flash/metadata.html b/sed/v0.1.9/_modules/sed/loader/flash/metadata.html new file mode 100644 index 0000000..8eb5a72 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/flash/metadata.html @@ -0,0 +1,653 @@ + + + + + + + + + + sed.loader.flash.metadata — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.flash.metadata

    +"""
    +The module provides a MetadataRetriever class for retrieving metadata
    +from a Scicat Instance based on beamtime and run IDs.
    +"""
    +
    +import warnings
    +from typing import Dict
    +from typing import Optional
    +
    +import requests
    +
    +
    +
    +[docs] +class MetadataRetriever: + """ + A class for retrieving metadata from a Scicat instance based + on beamtime and run IDs. + """ + + def __init__(self, metadata_config: Dict, scicat_token: str = None) -> None: + """ + Initializes the MetadataRetriever class. + + Args: + metadata_config (dict): Takes a dict containing + at least url, and optionally token for the scicat instance. + scicat_token (str, optional): The token to use for fetching metadata. + """ + self.token = metadata_config.get("scicat_token", None) + if scicat_token: + self.token = scicat_token + self.url = metadata_config.get("scicat_url", None) + + if not self.token or not self.url: + raise ValueError("No URL or token provided for fetching metadata from scicat.") + + self.headers = { + "Content-Type": "application/json", + "Accept": "application/json", + } + self.token = metadata_config["scicat_token"] + +
    +[docs] + def get_metadata( + self, + beamtime_id: str, + runs: list, + metadata: Optional[Dict] = None, + ) -> Dict: + """ + Retrieves metadata for a given beamtime ID and list of runs. + + Args: + beamtime_id (str): The ID of the beamtime. + runs (list): A list of run IDs. + metadata (Dict, optional): The existing metadata dictionary. + Defaults to None. + + Returns: + Dict: The updated metadata dictionary. + + Raises: + Exception: If the request to retrieve metadata fails. + """ + # If metadata is not provided, initialize it as an empty dictionary + if metadata is None: + metadata = {} + + # Iterate over the list of runs + for run in runs: + pid = f"{beamtime_id}/{run}" + # Retrieve metadata for each run and update the overall metadata dictionary + metadata_run = self._get_metadata_per_run(pid) + metadata.update( + metadata_run, + ) # TODO: Not correct for multiple runs + + return metadata
    + + + def _get_metadata_per_run(self, pid: str) -> Dict: + """ + Retrieves metadata for a specific run based on the PID. + + Args: + pid (str): The PID of the run. + + Returns: + Dict: The retrieved metadata. + + Raises: + Exception: If the request to retrieve metadata fails. + """ + headers2 = dict(self.headers) + headers2["Authorization"] = "Bearer {}".format(self.token) + + try: + dataset_response = requests.get( + self._create_new_dataset_url(pid), + headers=headers2, + timeout=10, + ) + dataset_response.raise_for_status() + # Check if response is an empty object because wrong url for older implementation + if not dataset_response.content: + dataset_response = requests.get( + self._create_old_dataset_url(pid), headers=headers2, timeout=10 + ) + # If the dataset request is successful, return the retrieved metadata + # as a JSON object + return dataset_response.json() + except requests.exceptions.RequestException as exception: + # If the request fails, raise warning + print(warnings.warn(f"Failed to retrieve metadata for PID {pid}: {str(exception)}")) + return {} # Return an empty dictionary for this run + + def _create_old_dataset_url(self, pid: str) -> str: + return "{burl}/{url}/%2F{npid}".format( + burl=self.url, url="Datasets", npid=self._reformat_pid(pid) + ) + + def _create_new_dataset_url(self, pid: str) -> str: + return "{burl}/{url}/{npid}".format( + burl=self.url, url="Datasets", npid=self._reformat_pid(pid) + ) + + def _reformat_pid(self, pid: str) -> str: + """SciCat adds a pid-prefix + "/" but at DESY prefix = "" """ + return (pid).replace("/", "%2F")
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/generic/loader.html b/sed/v0.1.9/_modules/sed/loader/generic/loader.html new file mode 100644 index 0000000..7b5030c --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/generic/loader.html @@ -0,0 +1,696 @@ + + + + + + + + + + sed.loader.generic.loader — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.generic.loader

    +"""
    +module sed.loader.mpes, code for loading hdf5 files delayed into a dask dataframe.
    +Mostly ported from https://github.com/mpes-kit/mpes.
    +@author: L. Rettig
    +"""
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import dask.dataframe as ddf
    +import numpy as np
    +
    +from sed.loader.base.loader import BaseLoader
    +
    +
    +
    +[docs] +class GenericLoader(BaseLoader): + """Dask implementation of the Loader. Reads from various file types using the + utilities of Dask. + + Args: + config (dict, optional): Config dictionary. Defaults to None. + meta_handler (MetaHandler, optional): MetaHandler object. Defaults to None. + """ + + __name__ = "generic" + + supported_file_types = ["parquet", "csv", "json"] + +
    +[docs] + def read_dataframe( + self, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, + ftype: str = "parquet", + metadata: dict = None, + collect_metadata: bool = False, + **kwds, + ) -> Tuple[ddf.DataFrame, ddf.DataFrame, dict]: + """Read stored files from a folder into a dataframe. + + Args: + files (Union[str, Sequence[str]], optional): File path(s) to process. + Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files + are stored. Path has priority such that if it's specified, the specified + files will be ignored. Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding + files will be located in the location provided by ``folders``. Takes + precendence over ``files`` and ``folders``. Defaults to None. + ftype (str, optional): File type to read ('parquet', 'json', 'csv', etc). + If a folder path is given, all files with the specified extension are + read into the dataframe in the reading order. Defaults to "parquet". + metadata (dict, optional): Manual meta data dictionary. Auto-generated + meta data are added to it. Defaults to None. + collect_metadata (bool): Option to collect metadata from files. Requires + a valid config dict. Defaults to False. + **kwds: keyword arguments. See the keyword arguments for the specific file + parser in``dask.dataframe`` module. + + Raises: + ValueError: Raised if neither files nor folder provided. + FileNotFoundError: Raised if the fileds or folder cannot be found. + ValueError: Raised if the file type is not supported. + + Returns: + Tuple[ddf.DataFrame, dict]: Dask dataframe, timed dataframe and metadata + read from specified files. + """ + # pylint: disable=duplicate-code + super().read_dataframe( + files=files, + folders=folders, + runs=runs, + ftype=ftype, + metadata=metadata, + ) + + if not self.files: + raise FileNotFoundError("No valid files found!") + + if collect_metadata: + # TODO implementation + self.metadata = self.metadata + + if ftype == "parquet": + return (ddf.read_parquet(self.files, **kwds), None, self.metadata) + + if ftype == "json": + return (ddf.read_json(self.files, **kwds), None, self.metadata) + + if ftype == "csv": + return (ddf.read_csv(self.files, **kwds), None, self.metadata) + + try: + return (ddf.read_table(self.files, **kwds), None, self.metadata) + except (TypeError, ValueError, NotImplementedError) as exc: + raise ValueError( + "The file format cannot be understood!", + ) from exc
    + + +
    +[docs] + def get_files_from_run_id( + self, + run_id: str, # noqa: ARG002 + folders: Union[str, Sequence[str]] = None, # noqa: ARG002 + extension: str = None, # noqa: ARG002 + **kwds, # noqa: ARG002 + ) -> List[str]: + """Locate the files for a given run identifier. + + Args: + run_id (str): The run identifier to locate. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to None. + extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments + + Return: + str: Path to the location of run data. + """ + raise NotImplementedError
    + + +
    +[docs] + def get_count_rate( + self, + fids: Sequence[int] = None, # noqa: ARG002 + **kwds, # noqa: ARG002 + ) -> Tuple[np.ndarray, np.ndarray]: + """Create count rate data for the files specified in ``fids``. + + Args: + fids (Sequence[int], optional): fids (Sequence[int]): the file ids to + include. Defaults to list of all file ids. + kwds: Keyword arguments + + Return: + Tuple[np.ndarray, np.ndarray]: Arrays containing countrate and seconds + into the scan. + """ + # TODO + return None, None
    + + +
    +[docs] + def get_elapsed_time( + self, + fids: Sequence[int] = None, # noqa: ARG002 + **kwds, # noqa: ARG002 + ) -> float: + """Return the elapsed time in the files specified in ``fids``. + + Args: + fids (Sequence[int], optional): fids (Sequence[int]): the file ids to + include. Defaults to list of all file ids. + kwds: Keyword arguments + + Returns: + float: The elapsed time in the files in seconds. + """ + return None
    +
    + + + +LOADER = GenericLoader +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/loader_interface.html b/sed/v0.1.9/_modules/sed/loader/loader_interface.html new file mode 100644 index 0000000..c6fd452 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/loader_interface.html @@ -0,0 +1,591 @@ + + + + + + + + + + sed.loader.loader_interface — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.loader_interface

    +"""Interface to select a specified loader
    +"""
    +import glob
    +import importlib.util
    +import os
    +from typing import List
    +
    +from sed.loader.base.loader import BaseLoader
    +
    +
    +
    +[docs] +def get_loader( + loader_name: str, + config: dict = None, +) -> BaseLoader: + """Helper function to get the loader object from it's given name. + + Args: + loader_name (str): Name of the loader + config (dict, optional): Configuration dictionary. Defaults to None. + + Raises: + ValueError: Raised if the loader cannot be found. + + Returns: + BaseLoader: The loader object. + """ + + if config is None: + config = {} + + path_prefix = f"{os.path.dirname(__file__)}{os.sep}" if os.path.dirname(__file__) else "" + path = os.path.join(path_prefix, loader_name, "loader.py") + if not os.path.exists(path): + error_str = f"Invalid loader {loader_name}. Available loaders are: [" + for loader in get_names_of_all_loaders(): + error_str += f"{loader}, " + error_str += "]." + raise ValueError(error_str) + + spec = importlib.util.spec_from_file_location("loader.py", path) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module.LOADER(config=config)
    + + + +
    +[docs] +def get_names_of_all_loaders() -> List[str]: + """Helper function to populate a list of all available loaders. + + Returns: + List[str]: List of all detected loader names. + """ + path_prefix = f"{os.path.dirname(__file__)}{os.sep}" if os.path.dirname(__file__) else "" + files = glob.glob(os.path.join(path_prefix, "*", "loader.py")) + all_loaders = [] + for file in files: + if f"{os.sep}base{os.sep}" not in file: + index_of_loaders_folder_name = file.rindex( + f"loader{os.sep}", + ) + len(f"loader{os.sep}") + index_of_last_path_sep = file.rindex(os.sep) + all_loaders.append( + file[index_of_loaders_folder_name:index_of_last_path_sep], + ) + return all_loaders
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/mirrorutil.html b/sed/v0.1.9/_modules/sed/loader/mirrorutil.html new file mode 100644 index 0000000..46589e0 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/mirrorutil.html @@ -0,0 +1,903 @@ + + + + + + + + + + sed.loader.mirrorutil — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.mirrorutil

    +"""
    +module sed.loader.mirrorutil, code for transparently mirroring file system trees to a
    +second (local) location. This is speeds up binning of data stored on network drives
    +tremendiously.
    +Mostly ported from https://github.com/mpes-kit/mpes.
    +@author: L. Rettig
    +"""
    +import errno
    +import os
    +import shutil
    +from datetime import datetime
    +from typing import List
    +
    +import dask as d
    +from dask.diagnostics import ProgressBar
    +
    +
    +
    +[docs] +class CopyTool: + """File collecting and sorting class. + + Args: + source (str): Dource path for the copy tool. + dest (str): Destination path for the copy tool. + """ + + def __init__( + self, + source: str, + dest: str, + **kwds, + ): + self.source = source + self.dest = dest + self.safety_margin = kwds.pop( + "safetyMargin", + 1 * 2**30, + ) # Default 500 GB safety margin + self.gid = kwds.pop("gid", 5050) + self.scheduler = kwds.pop("scheduler", "threads") + + # Default to 25 concurrent copy tasks + self.ntasks = int(kwds.pop("ntasks", 25)) + +
    +[docs] + def copy( + self, + source: str, + force_copy: bool = False, + **compute_kwds, + ) -> str: + """Local file copying method. + + Args: + source (str): source path + force_copy (bool, optional): re-copy all files. Defaults to False. + + Raises: + FileNotFoundError: Raised if the source path is not found or empty. + OSError: Raised if the target disk is full. + + Returns: + str: Path of the copied source directory mapped into the target tree + """ + + if not os.path.exists(source): + raise FileNotFoundError("Source not found!") + + filenames = [] + dirnames = [] + + if os.path.isfile(source): + # Single file + sdir = os.path.dirname(os.path.realpath(source)) + ddir = get_target_dir( + sdir, + self.source, + self.dest, + gid=self.gid, + mode=0o775, + create=True, + ) + filenames.append(os.path.realpath(source)) + + elif os.path.isdir(source): + sdir = os.path.realpath(source) + ddir = get_target_dir( + sdir, + self.source, + self.dest, + gid=self.gid, + mode=0o775, + create=True, + ) + # dirs.append(sdir) + for path, dirs, files in os.walk(sdir): + for file in files: + filenames.append(os.path.join(path, file)) + for directory in dirs: + dirnames.append(os.path.join(path, directory)) + + if not filenames: + raise FileNotFoundError("No files found at path!") + + # actual copy loop + # Check space left + size_src = 0 + size_dst = 0 + for sfile in filenames: + size_src += os.path.getsize(sfile) + if os.path.exists(sfile.replace(sdir, ddir)): + size_dst += os.path.getsize(sfile.replace(sdir, ddir)) + if size_src == 0 and not force_copy: + # nothing to copy, just return directory + return ddir + free = shutil.disk_usage(ddir).free + if size_src - size_dst > free - self.safety_margin: + raise OSError( + errno.ENOSPC, + f"Target disk full, only {free / 2**30} GB free, " + + f"but {(size_src - size_dst) / 2**30} GB needed!", + ) + + # make directories + for directory in dirnames: + dest_dir = directory.replace(sdir, ddir) + mymakedirs(dest_dir, gid=self.gid, mode=0o775) + + copy_tasks = [] # Core-level jobs + for src_file in filenames: + dest_file = src_file.replace(sdir, ddir) + size_src = os.path.getsize(src_file) + if os.path.exists(dest_file): + size_dst = os.path.getsize(dest_file) + else: + size_dst = 0 + if not os.path.exists(dest_file) or size_dst != size_src or force_copy: + if os.path.exists(dest_file): + # delete existing file, to fix permission issue + copy_tasks.append( + d.delayed(mycopy)( + src_file, + dest_file, + gid=self.gid, + mode=0o664, + replace=True, + ), + ) + else: + copy_tasks.append( + d.delayed(mycopy)( + src_file, + dest_file, + gid=self.gid, + mode=0o664, + ), + ) + + # run the copy tasks + if len(copy_tasks) > 0: + print("Copy Files...") + with ProgressBar(): + d.compute( + *copy_tasks, + scheduler=self.scheduler, + num_workers=self.ntasks, + **compute_kwds, + ) + print("Copy finished!") + + if os.path.isdir(source): + return ddir + + return dest_file
    + + +
    +[docs] + def size(self, sdir: str) -> int: + """Calculate file size. + + Args: + sdir (str): Path to source directory + + Returns: + int: Size of files in source path + """ + + size = 0 + for path, dirs, filenames in os.walk( # pylint: disable=W0612 + sdir, + ): + # Check space left + for sfile in filenames: + size += os.path.getsize(os.path.join(sdir, sfile)) + + return size
    + + +
    +[docs] + def cleanup_oldest_scan( + self, + force: bool = False, + report: bool = False, + ): + """Remove scans in old directories. Looks for the directory with the oldest + ctime and queries the user to confirm for its deletion. + + Args: + force (bool, optional): Forces to automatically remove the oldest scan. + Defaults to False. + report (bool, optional): Print a report with all directories in dest, + sorted by age. Defaults to False. + + Raises: + FileNotFoundError: Raised if no scans to remove are found. + """ + + # get list of all Scan directories (leaf directories) + scan_dirs = [] + for root, dirs, files in os.walk( # pylint: disable=W0612 + self.dest, + ): + if not dirs: + scan_dirs.append(root) + + scan_dirs = sorted(scan_dirs, key=os.path.getctime) + if report: + print( + "Last accessed Size Path", + ) + total_size = 0 + for scan in scan_dirs: + size = 0 + for path, dirs, filenames in os.walk( # pylint: disable=W0612 + scan, + ): + for sfile in filenames: + size += os.path.getsize(os.path.join(scan, sfile)) + total_size += size + if size > 0: + print( + f"{datetime.fromtimestamp(os.path.getctime(scan))}, ", + f"{(size/2**30):.2f} GB, {scan}", + ) + print(f"Total size: {(total_size/2**30):.2f} GB.") + oldest_scan = None + for scan in scan_dirs: + size = 0 + for path, dirs, filenames in os.walk( # pylint: disable=W0612 + scan, + ): + for sfile in filenames: + size += os.path.getsize(os.path.join(scan, sfile)) + if size > 0: + oldest_scan = scan + break + if oldest_scan is None: + raise FileNotFoundError("No scan with data found to remove!") + + print( + f'Oldest scan is "{oldest_scan}", removing it will free ', + f"{(size/2**30):.2f} GB space.", + ) + if force: + proceed = "y" + else: + print("Proceed (y/n)?") + proceed = input() + if proceed == "y": + shutil.rmtree(oldest_scan) + print("Removed sucessfully!") + else: + print("Aborted.")
    +
    + + + +# private Functions +
    +[docs] +def get_target_dir( + sdir: str, + source: str, + dest: str, + gid: int, + mode: int, + create: bool = False, +) -> str: + """Retrieve target directory. + + Args: + sdir (str): Source directory to copy + source (str): source root path + dest (str): destination root path + gid (int): Group id + mode (int): Unix mode + create (bool, optional): Wether to create directories. Defaults to False. + + Raises: + NotADirectoryError: Raised if sdir is not a directory + ValueError: Raised if sdir not inside of source + + Returns: + str: The mapped targed directory inside dest + """ + + if not os.path.isdir(sdir): + raise NotADirectoryError("Only works for directories!") + + dirs = [] + head, tail = os.path.split(sdir) + dirs.append(tail) + while not os.path.samefile(head, source): + if os.path.samefile(head, "/"): + raise ValueError("sdir needs to be inside of source!") + + head, tail = os.path.split(head) + dirs.append(tail) + + dirs.reverse() + ddir = dest + for directory in dirs: + ddir = os.path.join(ddir, directory) + if create and not os.path.exists(ddir): + mymakedirs(ddir, mode, gid) + return ddir
    + + + +# replacement for os.makedirs, which is independent of umask +
    +[docs] +def mymakedirs(path: str, mode: int, gid: int) -> List[str]: + """Creates a directory path iteratively from its root + + Args: + path (str): Path of the directory to create + mode (int): Unix access mode of created directories + gid (int): Group id of created directories + + Returns: + str: Path of created directories + """ + + if not path or os.path.exists(path): + return [] + head, tail = os.path.split(path) # pylint: disable=W0612 + res = mymakedirs(head, mode, gid) + os.mkdir(path) + os.chmod(path, mode) + os.chown(path, -1, gid) + res.append(path) + return res
    + + + +
    +[docs] +def mycopy(source: str, dest: str, gid: int, mode: int, replace: bool = False): + """Copy function with option to delete the target file firs (to take ownership). + + Args: + source (str): Path to the source file + dest (str): Path to the destination file + gid (int): Group id to be set for the destination file + mode (int): Unix access mode to be set for the destination file + replace (bool, optional): Option to replace an existing file. + Defaults to False. + """ + + if replace: + if os.path.exists(dest): + os.remove(dest) + shutil.copy2(source, dest) + # fix permissions and group ownership: + os.chown(dest, -1, gid) + os.chmod(dest, mode)
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/mpes/loader.html b/sed/v0.1.9/_modules/sed/loader/mpes/loader.html new file mode 100644 index 0000000..9addd11 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/mpes/loader.html @@ -0,0 +1,1534 @@ + + + + + + + + + + sed.loader.mpes.loader — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.mpes.loader

    +"""
    +module sed.loader.mpes, code for loading hdf5 files delayed into a dask dataframe.
    +Mostly ported from https://github.com/mpes-kit/mpes.
    +@author: L. Rettig
    +"""
    +import datetime
    +import glob
    +import json
    +import os
    +from typing import Dict
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +from urllib.error import HTTPError
    +from urllib.error import URLError
    +from urllib.request import urlopen
    +
    +import dask
    +import dask.array as da
    +import dask.dataframe as ddf
    +import h5py
    +import numpy as np
    +import scipy.interpolate as sint
    +from natsort import natsorted
    +
    +from sed.loader.base.loader import BaseLoader
    +
    +
    +
    +[docs] +def hdf5_to_dataframe( + files: Sequence[str], + group_names: Sequence[str] = None, + alias_dict: Dict[str, str] = None, + time_stamps: bool = False, + time_stamp_alias: str = "timeStamps", + ms_markers_group: str = "msMarkers", + first_event_time_stamp_key: str = "FirstEventTimeStamp", + **kwds, +) -> ddf.DataFrame: + """Function to read a selection of hdf5-files, and generate a delayed dask + dataframe from provided groups in the files. Optionally, aliases can be defined. + + Args: + files (List[str]): A list of the file paths to load. + group_names (List[str], optional): hdf5 group names to load. Defaults to load + all groups containing "Stream" + alias_dict (Dict[str, str], optional): Dictionary of aliases for the dataframe + columns. Keys are the hdf5 groupnames, and values the aliases. If an alias + is not found, its group name is used. Defaults to read the attribute + "Name" from each group. + time_stamps (bool, optional): Option to calculate time stamps. Defaults to + False. + time_stamp_alias (str): Alias name for the timestamp column. + Defaults to "timeStamps". + ms_markers_group (str): h5 column containing timestamp information. + Defaults to "msMarkers". + first_event_time_stamp_key (str): h5 attribute containing the start + timestamp of a file. Defaults to "FirstEventTimeStamp". + + Returns: + ddf.DataFrame: The delayed Dask DataFrame + """ + if group_names is None: + group_names = [] + if alias_dict is None: + alias_dict = {} + + # Read a file to parse the file structure + test_fid = kwds.pop("test_fid", 0) + test_proc = h5py.File(files[test_fid]) + if group_names == []: + group_names, alias_dict = get_groups_and_aliases( + h5file=test_proc, + seach_pattern="Stream", + ) + + column_names = [alias_dict.get(group, group) for group in group_names] + + if time_stamps: + column_names.append(time_stamp_alias) + + test_array = hdf5_to_array( + h5file=test_proc, + group_names=group_names, + time_stamps=time_stamps, + ms_markers_group=ms_markers_group, + first_event_time_stamp_key=first_event_time_stamp_key, + ) + + # Delay-read all files + arrays = [ + da.from_delayed( + dask.delayed(hdf5_to_array)( + h5file=h5py.File(f), + group_names=group_names, + time_stamps=time_stamps, + ms_markers_group=ms_markers_group, + first_event_time_stamp_key=first_event_time_stamp_key, + ), + dtype=test_array.dtype, + shape=(test_array.shape[0], np.nan), + ) + for f in files + ] + array_stack = da.concatenate(arrays, axis=1).T + + return ddf.from_dask_array(array_stack, columns=column_names)
    + + + +
    +[docs] +def hdf5_to_timed_dataframe( + files: Sequence[str], + group_names: Sequence[str] = None, + alias_dict: Dict[str, str] = None, + time_stamps: bool = False, + time_stamp_alias: str = "timeStamps", + ms_markers_group: str = "msMarkers", + first_event_time_stamp_key: str = "FirstEventTimeStamp", + **kwds, +) -> ddf.DataFrame: + """Function to read a selection of hdf5-files, and generate a delayed dask + dataframe from provided groups in the files. Optionally, aliases can be defined. + Returns a dataframe for evenly spaced time intervals. + + Args: + files (List[str]): A list of the file paths to load. + group_names (List[str], optional): hdf5 group names to load. Defaults to load + all groups containing "Stream" + alias_dict (Dict[str, str], optional): Dictionary of aliases for the dataframe + columns. Keys are the hdf5 groupnames, and values the aliases. If an alias + is not found, its group name is used. Defaults to read the attribute + "Name" from each group. + time_stamps (bool, optional): Option to calculate time stamps. Defaults to + False. + time_stamp_alias (str): Alias name for the timestamp column. + Defaults to "timeStamps". + ms_markers_group (str): h5 column containing timestamp information. + Defaults to "msMarkers". + first_event_time_stamp_key (str): h5 attribute containing the start + timestamp of a file. Defaults to "FirstEventTimeStamp". + + Returns: + ddf.DataFrame: The delayed Dask DataFrame + """ + if group_names is None: + group_names = [] + if alias_dict is None: + alias_dict = {} + + # Read a file to parse the file structure + test_fid = kwds.pop("test_fid", 0) + test_proc = h5py.File(files[test_fid]) + if group_names == []: + group_names, alias_dict = get_groups_and_aliases( + h5file=test_proc, + seach_pattern="Stream", + ) + + column_names = [alias_dict.get(group, group) for group in group_names] + + if time_stamps: + column_names.append(time_stamp_alias) + + test_array = hdf5_to_timed_array( + h5file=test_proc, + group_names=group_names, + time_stamps=time_stamps, + ms_markers_group=ms_markers_group, + first_event_time_stamp_key=first_event_time_stamp_key, + ) + + # Delay-read all files + arrays = [ + da.from_delayed( + dask.delayed(hdf5_to_timed_array)( + h5file=h5py.File(f), + group_names=group_names, + time_stamps=time_stamps, + ms_markers_group=ms_markers_group, + first_event_time_stamp_key=first_event_time_stamp_key, + ), + dtype=test_array.dtype, + shape=(test_array.shape[0], np.nan), + ) + for f in files + ] + array_stack = da.concatenate(arrays, axis=1).T + + return ddf.from_dask_array(array_stack, columns=column_names)
    + + + +
    +[docs] +def get_groups_and_aliases( + h5file: h5py.File, + seach_pattern: str = None, + alias_key: str = "Name", +) -> Tuple[List[str], Dict[str, str]]: + """Read groups and aliases from a provided hdf5 file handle + + Args: + h5file (h5py.File): + The hdf5 file handle + seach_pattern (str, optional): + Search pattern to select groups. Defaults to include all groups. + alias_key (str, optional): + Attribute key where aliases are stored. Defaults to "Name". + + Returns: + Tuple[List[str], Dict[str, str]]: + The list of groupnames and the alias dictionary parsed from the file + """ + # get group names: + group_names = list(h5file) + + # Filter the group names + if seach_pattern is None: + filtered_group_names = group_names + else: + filtered_group_names = [name for name in group_names if seach_pattern in name] + + alias_dict = {} + for name in filtered_group_names: + alias_dict[name] = get_attribute(h5file[name], alias_key) + + return filtered_group_names, alias_dict
    + + + +
    +[docs] +def hdf5_to_array( + h5file: h5py.File, + group_names: Sequence[str], + data_type: str = "float32", + time_stamps=False, + ms_markers_group: str = "msMarkers", + first_event_time_stamp_key: str = "FirstEventTimeStamp", +) -> np.ndarray: + """Reads the content of the given groups in an hdf5 file, and returns a + 2-dimensional array with the corresponding values. + + Args: + h5file (h5py.File): + hdf5 file handle to read from + group_names (str): + group names to read + data_type (str, optional): + Data type of the output data. Defaults to "float32". + time_stamps (bool, optional): + Option to calculate time stamps. Defaults to False. + ms_markers_group (str): h5 column containing timestamp information. + Defaults to "msMarkers". + first_event_time_stamp_key (str): h5 attribute containing the start + timestamp of a file. Defaults to "FirstEventTimeStamp". + + Returns: + np.ndarray: The 2-dimensional data array containing the values of the groups. + """ + + # Delayed array for loading an HDF5 file of reasonable size (e.g. < 1GB) + + # Read out groups: + data_list = [] + for group in group_names: + g_dataset = np.asarray(h5file[group]) + if bool(data_type): + g_dataset = g_dataset.astype(data_type) + data_list.append(g_dataset) + + # calculate time stamps + if time_stamps: + # create target array for time stamps + time_stamp_data = np.zeros(len(data_list[0])) + # the ms marker contains a list of events that occurred at full ms intervals. + # It's monotonically increasing, and can contain duplicates + ms_marker = np.asarray(h5file[ms_markers_group]) + + # try to get start timestamp from "FirstEventTimeStamp" attribute + try: + start_time_str = get_attribute(h5file, first_event_time_stamp_key) + start_time = datetime.datetime.strptime( + start_time_str, + "%Y-%m-%dT%H:%M:%S.%f%z", + ).timestamp() + except KeyError: + # get the start time of the file from its modification date if the key + # does not exist (old files) + start_time = os.path.getmtime(h5file.filename) # convert to ms + # the modification time points to the time when the file was finished, so we + # need to correct for the time it took to write the file + start_time -= len(ms_marker) / 1000 + + # fill in range before 1st marker + time_stamp_data[0 : ms_marker[0]] = start_time + for i in range(len(ms_marker) - 1): + # linear interpolation between ms: Disabled, because it takes a lot of + # time, and external signals are anyway not better synchronized than 1 ms + # time_stamp_data[ms_marker[n] : ms_marker[n + 1]] = np.linspace( + # start_time + n, + # start_time + n + 1, + # ms_marker[n + 1] - ms_marker[n], + # ) + time_stamp_data[ms_marker[i] : ms_marker[i + 1]] = start_time + (i + 1) / 1000 + # fill any remaining points + time_stamp_data[ms_marker[len(ms_marker) - 1] : len(time_stamp_data)] = ( + start_time + len(ms_marker) / 1000 + ) + + data_list.append(time_stamp_data) + + return np.asarray(data_list)
    + + + +
    +[docs] +def hdf5_to_timed_array( + h5file: h5py.File, + group_names: Sequence[str], + data_type: str = "float32", + time_stamps=False, + ms_markers_group: str = "msMarkers", + first_event_time_stamp_key: str = "FirstEventTimeStamp", +) -> np.ndarray: + """Reads the content of the given groups in an hdf5 file, and returns a + timed version of a 2-dimensional array with the corresponding values. + + Args: + h5file (h5py.File): + hdf5 file handle to read from + group_names (str): + group names to read + data_type (str, optional): + Data type of the output data. Defaults to "float32". + time_stamps (bool, optional): + Option to calculate time stamps. Defaults to False. + ms_markers_group (str): h5 column containing timestamp information. + Defaults to "msMarkers". + first_event_time_stamp_key (str): h5 attribute containing the start + timestamp of a file. Defaults to "FirstEventTimeStamp". + + Returns: + np.ndarray: the array of the values at evently spaced timing obtained from + the ms_markers. + """ + + # Delayed array for loading an HDF5 file of reasonable size (e.g. < 1GB) + + # Read out groups: + data_list = [] + ms_marker = np.asarray(h5file[ms_markers_group]) + for group in group_names: + g_dataset = np.asarray(h5file[group]) + if bool(data_type): + g_dataset = g_dataset.astype(data_type) + + timed_dataset = np.zeros_like(ms_marker) + for i, point in enumerate(ms_marker): + timed_dataset[i] = g_dataset[int(point) - 1] + + data_list.append(timed_dataset) + + # calculate time stamps + if time_stamps: + # try to get start timestamp from "FirstEventTimeStamp" attribute + try: + start_time_str = get_attribute(h5file, first_event_time_stamp_key) + start_time = datetime.datetime.strptime( + start_time_str, + "%Y-%m-%dT%H:%M:%S.%f%z", + ).timestamp() + except KeyError: + # get the start time of the file from its modification date if the key + # does not exist (old files) + start_time = os.path.getmtime(h5file.filename) # convert to ms + # the modification time points to the time when the file was finished, so we + # need to correct for the time it took to write the file + start_time -= len(ms_marker) / 1000 + + time_stamp_data = start_time + np.arange(len(ms_marker)) / 1000 + + data_list.append(time_stamp_data) + + return np.asarray(data_list)
    + + + +
    +[docs] +def get_attribute(h5group: h5py.Group, attribute: str) -> str: + """Reads, decodes and returns an attrubute from an hdf5 group + + Args: + h5group (h5py.Group): + The hdf5 group to read from + attribute (str): + The name of the attribute + + Returns: + str: The parsed attribute data + """ + try: + content = h5group.attrs[attribute].decode("utf-8") + except AttributeError: # No need to decode + content = h5group.attrs[attribute] + except KeyError as exc: # No such attribute + raise KeyError(f"Attribute '{attribute}' not found!") from exc + + return content
    + + + +
    +[docs] +def get_count_rate( + h5file: h5py.File, + ms_markers_group: str = "msMarkers", +) -> Tuple[np.ndarray, np.ndarray]: + """Create count rate in the file from the msMarker column. + + Args: + h5file (h5py.File): The h5file from which to get the count rate. + ms_markers_group (str, optional): The hdf5 group where the millisecond markers + are stored. Defaults to "msMarkers". + + Returns: + Tuple[np.ndarray, np.ndarray]: The count rate in Hz and the seconds into the + scan. + """ + ms_markers = np.asarray(h5file[ms_markers_group]) + secs = np.arange(0, len(ms_markers)) / 1000 + msmarker_spline = sint.InterpolatedUnivariateSpline(secs, ms_markers, k=1) + rate_spline = msmarker_spline.derivative() + count_rate = rate_spline(secs) + + return (count_rate, secs)
    + + + +
    +[docs] +def get_elapsed_time( + h5file: h5py.File, + ms_markers_group: str = "msMarkers", +) -> float: + """Return the elapsed time in the file from the msMarkers wave + + Args: + h5file (h5py.File): The h5file from which to get the count rate. + ms_markers_group (str, optional): The hdf5 group where the millisecond markers + are stored. Defaults to "msMarkers". + + Return: + float: The acquision time of the file in seconds. + """ + secs = h5file[ms_markers_group].len() / 1000 + + return secs
    + + + +
    +[docs] +def get_archiver_data( + archiver_url: str, + archiver_channel: str, + ts_from: float, + ts_to: float, +) -> Tuple[np.ndarray, np.ndarray]: + """Extract time stamps and corresponding data from and EPICS archiver instance + + Args: + archiver_url (str): URL of the archiver data extraction interface + archiver_channel (str): EPICS channel to extract data for + ts_from (float): starting time stamp of the range of interest + ts_to (float): ending time stamp of the range of interest + + Returns: + Tuple[List, List]: The extracted time stamps and corresponding data + """ + iso_from = datetime.datetime.utcfromtimestamp(ts_from).isoformat() + iso_to = datetime.datetime.utcfromtimestamp(ts_to).isoformat() + req_str = archiver_url + archiver_channel + "&from=" + iso_from + "Z&to=" + iso_to + "Z" + with urlopen(req_str) as req: + data = json.load(req) + secs = [x["secs"] + x["nanos"] * 1e-9 for x in data[0]["data"]] + vals = [x["val"] for x in data[0]["data"]] + + return (np.asarray(secs), np.asarray(vals))
    + + + +
    +[docs] +class MpesLoader(BaseLoader): + """Mpes implementation of the Loader. Reads from h5 files or folders of the + SPECS Metis 1000 (FHI Berlin) + + Args: + config (dict, optional): Config dictionary. Defaults to None. + meta_handler (MetaHandler, optional): MetaHandler object. Defaults to None. + """ + + __name__ = "mpes" + + supported_file_types = ["h5"] + + def __init__( + self, + config: dict = None, + ): + super().__init__(config=config) + + self.read_timestamps = self._config.get("dataframe", {}).get( + "read_timestamps", + False, + ) + +
    +[docs] + def read_dataframe( + self, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, + ftype: str = "h5", + metadata: dict = None, + collect_metadata: bool = False, + time_stamps: bool = False, + **kwds, + ) -> Tuple[ddf.DataFrame, ddf.DataFrame, dict]: + """Read stored hdf5 files from a list or from folder and returns a dask + dataframe and corresponding metadata. + + Args: + files (Union[str, Sequence[str]], optional): File path(s) to process. + Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files + are stored. Path has priority such that if it's specified, the specified + files will be ignored. Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding + files will be located in the location provided by ``folders``. Takes + precendence over ``files`` and ``folders``. Defaults to None. + ftype (str, optional): File extension to use. If a folder path is given, + all files with the specified extension are read into the dataframe + in the reading order. Defaults to "h5". + metadata (dict, optional): Manual meta data dictionary. Auto-generated + meta data are added to it. Defaults to None. + collect_metadata (bool): Option to collect metadata from files. Requires + a valid config dict. Defaults to False. + time_stamps (bool, optional): Option to create a time_stamp column in + the dataframe from ms-Markers in the files. Defaults to False. + **kwds: Keyword parameters. + + - **hdf5_groupnames** : List of groupnames to look for in the file. + - **hdf5_aliases**: Dictionary of aliases for the groupnames. + - **time_stamp_alias**: Alias for the timestamp column + - **ms_markers_group**: Group name of the millisecond marker column. + - **first_event_time_stamp_key**: Attribute name containing the start + timestamp of the file. + + Additional keywords are passed to ``hdf5_to_dataframe``. + + Raises: + ValueError: raised if neither files or folder provided. + FileNotFoundError: Raised if a file or folder is not found. + + Returns: + Tuple[ddf.DataFrame, ddf.DataFrame, dict]: Dask dataframe, timed Dask + dataframe and metadata read from specified files. + """ + # if runs is provided, try to locate the respective files relative to the provided folder. + if runs is not None: # pylint: disable=duplicate-code + files = [] + if isinstance(runs, (str, int)): + runs = [runs] + for run in runs: + files.extend( + self.get_files_from_run_id(run_id=run, folders=folders, extension=ftype), + ) + self.runs = list(runs) + super().read_dataframe( + files=files, + ftype=ftype, + metadata=metadata, + ) + else: + # pylint: disable=duplicate-code + super().read_dataframe( + files=files, + folders=folders, + runs=runs, + ftype=ftype, + metadata=metadata, + ) + + hdf5_groupnames = kwds.pop( + "hdf5_groupnames", + self._config.get("dataframe", {}).get("hdf5_groupnames", []), + ) + hdf5_aliases = kwds.pop( + "hdf5_aliases", + self._config.get("dataframe", {}).get("hdf5_aliases", {}), + ) + time_stamp_alias = kwds.pop( + "time_stamp_alias", + self._config.get("dataframe", {}).get( + "time_stamp_alias", + "timeStamps", + ), + ) + ms_markers_group = kwds.pop( + "ms_markers_group", + self._config.get("dataframe", {}).get( + "ms_markers_group", + "msMarkers", + ), + ) + first_event_time_stamp_key = kwds.pop( + "first_event_time_stamp_key", + self._config.get("dataframe", {}).get( + "first_event_time_stamp_key", + "FirstEventTimeStamp", + ), + ) + df = hdf5_to_dataframe( + files=self.files, + group_names=hdf5_groupnames, + alias_dict=hdf5_aliases, + time_stamps=time_stamps, + time_stamp_alias=time_stamp_alias, + ms_markers_group=ms_markers_group, + first_event_time_stamp_key=first_event_time_stamp_key, + **kwds, + ) + timed_df = hdf5_to_timed_dataframe( + files=self.files, + group_names=hdf5_groupnames, + alias_dict=hdf5_aliases, + time_stamps=time_stamps, + time_stamp_alias=time_stamp_alias, + ms_markers_group=ms_markers_group, + first_event_time_stamp_key=first_event_time_stamp_key, + **kwds, + ) + + if collect_metadata: + metadata = self.gather_metadata( + files=self.files, + metadata=self.metadata, + ) + else: + metadata = self.metadata + + return df, timed_df, metadata
    + + +
    +[docs] + def get_files_from_run_id( + self, + run_id: str, + folders: Union[str, Sequence[str]] = None, + extension: str = "h5", + **kwds, # noqa: ARG002 + ) -> List[str]: + """Locate the files for a given run identifier. + + Args: + run_id (str): The run identifier to locate. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to config["core"]["base_folder"] + extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments + + Return: + List[str]: List of file path strings to the location of run data. + """ + if folders is None: + folders = self._config["core"]["paths"]["data_raw_dir"] + + if isinstance(folders, str): + folders = [folders] + + files: List[str] = [] + for folder in folders: + run_files = natsorted( + glob.glob( + folder + "/**/Scan" + str(run_id).zfill(4) + "_*." + extension, + recursive=True, + ), + ) + files.extend(run_files) + + # Check if any files are found + if not files: + raise FileNotFoundError( + f"No files found for run {run_id} in directory {str(folders)}", + ) + + # Return the list of found files + return files
    + + +
    +[docs] + def get_start_and_end_time(self) -> Tuple[float, float]: + """Extract the start and end time stamps from the loaded files + + Returns: + Tuple[float, float]: A tuple containing the start and end time stamps + """ + h5file = h5py.File(self.files[0]) + timestamps = hdf5_to_array( + h5file, + group_names=self._config["dataframe"]["hdf5_groupnames"], + time_stamps=True, + ) + ts_from = timestamps[-1][1] + h5file = h5py.File(self.files[-1]) + timestamps = hdf5_to_array( + h5file, + group_names=self._config["dataframe"]["hdf5_groupnames"], + time_stamps=True, + ) + ts_to = timestamps[-1][-1] + return (ts_from, ts_to)
    + + +
    +[docs] + def gather_metadata( + self, + files: Sequence[str], + metadata: dict = None, + ) -> dict: + """Collect meta data from files + + Args: + files (Sequence[str]): List of files loaded + metadata (dict, optional): Manual meta data dictionary. Auto-generated + meta data are added to it. Defaults to None. + + Returns: + dict: The completed metadata dictionary. + """ + + if metadata is None: + metadata = {} + print("Gathering metadata from different locations") + # Read events in with ms time stamps + print("Collecting time stamps...") + (ts_from, ts_to) = self.get_start_and_end_time() + + metadata["timing"] = { + "acquisition_start": datetime.datetime.utcfromtimestamp(ts_from) + .replace(tzinfo=datetime.timezone.utc) + .isoformat(), + "acquisition_stop": datetime.datetime.utcfromtimestamp(ts_to) + .replace(tzinfo=datetime.timezone.utc) + .isoformat(), + "acquisition_duration": int(ts_to - ts_from), + "collection_time": float(ts_to - ts_from), + } + + # import meta data from data file + if "file" not in metadata: # If already present, the value is assumed to be a dictionary + metadata["file"] = {} + + print("Collecting file metadata...") + with h5py.File(files[0], "r") as h5file: + for key, value in h5file.attrs.items(): + key = key.replace("VSet", "V") + metadata["file"][key] = value + + metadata["entry_identifier"] = os.path.dirname( + os.path.realpath(files[0]), + ) + + print("Collecting data from the EPICS archive...") + # Get metadata from Epics archive if not present already + epics_channels = self._config["metadata"]["epics_pvs"] + + start = datetime.datetime.utcfromtimestamp(ts_from).isoformat() + + channels_missing = set(epics_channels) - set( + metadata["file"].keys(), + ) + for channel in channels_missing: + try: + _, vals = get_archiver_data( + archiver_url=self._config["metadata"].get("archiver_url"), + archiver_channel=channel, + ts_from=ts_from, + ts_to=ts_to, + ) + metadata["file"][f"{channel}"] = np.mean(vals) + + except IndexError: + metadata["file"][f"{channel}"] = np.nan + print( + f"Data for channel {channel} doesn't exist for time {start}", + ) + except HTTPError as exc: + print( + f"Incorrect URL for the archive channel {channel}. " + "Make sure that the channel name and file start and end times are " + "correct.", + ) + print("Error code: ", exc) + except URLError as exc: + print( + f"Cannot access the archive URL for channel {channel}. " + f"Make sure that you are within the FHI network." + f"Skipping over channels {channels_missing}.", + ) + print("Error code: ", exc) + break + + # Determine the correct aperture_config + stamps = sorted( + list(self._config["metadata"]["aperture_config"]) + [start], + ) + current_index = stamps.index(start) + timestamp = stamps[current_index - 1] # pick last configuration before file date + + # Aperture metadata + if "instrument" not in metadata.keys(): + metadata["instrument"] = {"analyzer": {}} + metadata["instrument"]["analyzer"]["fa_shape"] = "circle" + metadata["instrument"]["analyzer"]["ca_shape"] = "circle" + metadata["instrument"]["analyzer"]["fa_size"] = np.nan + metadata["instrument"]["analyzer"]["ca_size"] = np.nan + # get field aperture shape and size + if { + self._config["metadata"]["fa_in_channel"], + self._config["metadata"]["fa_hor_channel"], + }.issubset(set(metadata["file"].keys())): + fa_in = metadata["file"][self._config["metadata"]["fa_in_channel"]] + fa_hor = metadata["file"][self._config["metadata"]["fa_hor_channel"]] + for key, value in self._config["metadata"]["aperture_config"][timestamp][ + "fa_size" + ].items(): + if value[0][0] < fa_in < value[0][1] and value[1][0] < fa_hor < value[1][1]: + try: + k_float = float(key) + metadata["instrument"]["analyzer"]["fa_size"] = k_float + except ValueError: # store string if numeric interpretation fails + metadata["instrument"]["analyzer"]["fa_shape"] = key + break + else: + print("Field aperture size not found.") + + # get contrast aperture shape and size + if self._config["metadata"]["ca_in_channel"] in metadata["file"]: + ca_in = metadata["file"][self._config["metadata"]["ca_in_channel"]] + for key, value in self._config["metadata"]["aperture_config"][timestamp][ + "ca_size" + ].items(): + if value[0] < ca_in < value[1]: + try: + k_float = float(key) + metadata["instrument"]["analyzer"]["ca_size"] = k_float + except ValueError: # store string if numeric interpretation fails + metadata["instrument"]["analyzer"]["ca_shape"] = key + break + else: + print("Contrast aperture size not found.") + + # Storing the lens modes corresponding to lens voltages. + # Use lens volages present in first lens_mode entry. + lens_list = self._config["metadata"]["lens_mode_config"][ + next(iter(self._config["metadata"]["lens_mode_config"])) + ].keys() + + lens_volts = np.array( + [metadata["file"].get(f"KTOF:Lens:{lens}:V", np.NaN) for lens in lens_list], + ) + for mode, value in self._config["metadata"]["lens_mode_config"].items(): + lens_volts_config = np.array([value[k] for k in lens_list]) + if np.allclose( + lens_volts, + lens_volts_config, + rtol=0.005, + ): # Equal upto 0.5% tolerance + metadata["instrument"]["analyzer"]["lens_mode"] = mode + break + else: + print( + "Lens mode for given lens voltages not found. " + "Storing lens mode from the user, if provided.", + ) + + # Determining projection from the lens mode + try: + lens_mode = metadata["instrument"]["analyzer"]["lens_mode"] + if "spatial" in lens_mode.split("_")[1]: + metadata["instrument"]["analyzer"]["projection"] = "real" + metadata["instrument"]["analyzer"]["scheme"] = "momentum dispersive" + else: + metadata["instrument"]["analyzer"]["projection"] = "reciprocal" + metadata["instrument"]["analyzer"]["scheme"] = "spatial dispersive" + except IndexError: + print( + "Lens mode must have the form, '6kV_kmodem4.0_20VTOF_v3.sav'. " + "Can't determine projection. " + "Storing projection from the user, if provided.", + ) + except KeyError: + print( + "Lens mode not found. Can't determine projection. " + "Storing projection from the user, if provided.", + ) + + return metadata
    + + +
    +[docs] + def get_count_rate( + self, + fids: Sequence[int] = None, + **kwds, + ) -> Tuple[np.ndarray, np.ndarray]: + """Create count rate from the msMarker column for the files specified in + ``fids``. + + Args: + fids (Sequence[int], optional): fids (Sequence[int]): the file ids to + include. Defaults to list of all file ids. + kwds: Keyword arguments: + + - **ms_markers_group**: Name of the hdf5 group containing the ms-markers + + Returns: + Tuple[np.ndarray, np.ndarray]: Arrays containing countrate and seconds + into the scan. + """ + if fids is None: + fids = range(0, len(self.files)) + + ms_markers_group = kwds.pop( + "ms_markers_group", + self._config.get("dataframe", {}).get( + "ms_markers_group", + "msMarkers", + ), + ) + + secs_list = [] + count_rate_list = [] + accumulated_time = 0 + for fid in fids: + count_rate_, secs_ = get_count_rate( + h5py.File(self.files[fid]), + ms_markers_group=ms_markers_group, + ) + secs_list.append((accumulated_time + secs_).T) + count_rate_list.append(count_rate_.T) + accumulated_time += secs_[-1] + + count_rate = np.concatenate(count_rate_list) + secs = np.concatenate(secs_list) + + return count_rate, secs
    + + +
    +[docs] + def get_elapsed_time(self, fids: Sequence[int] = None, **kwds) -> float: + """Return the elapsed time in the files specified in ``fids`` from + the msMarkers column. + + Args: + fids (Sequence[int], optional): fids (Sequence[int]): the file ids to + include. Defaults to list of all file ids. + kwds: Keyword arguments: + + - **ms_markers_group**: Name of the hdf5 group containing the ms-markers + + Return: + float: The elapsed time in the files in seconds. + """ + if fids is None: + fids = range(0, len(self.files)) + + ms_markers_group = kwds.pop( + "ms_markers_group", + self._config.get("dataframe", {}).get( + "ms_markers_group", + "msMarkers", + ), + ) + + secs = 0.0 + for fid in fids: + secs += get_elapsed_time( + h5py.File(self.files[fid]), + ms_markers_group=ms_markers_group, + ) + + return secs
    +
    + + + +LOADER = MpesLoader +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/sxp/loader.html b/sed/v0.1.9/_modules/sed/loader/sxp/loader.html new file mode 100644 index 0000000..d31a490 --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/sxp/loader.html @@ -0,0 +1,1568 @@ + + + + + + + + + + sed.loader.sxp.loader — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.sxp.loader

    +# pylint: disable=duplicate-code
    +"""
    +This module implements the SXP data loader.
    +This loader currently supports the SXP momentum microscope instrument.
    +The raw hdf5 data is combined and saved into buffer files and loaded as a dask dataframe.
    +The dataframe is a amalgamation of all h5 files for a combination of runs, where the NaNs are
    +automatically forward filled across different files.
    +This can then be saved as a parquet for out-of-sed processing and reread back to access other
    +sed funtionality.
    +Most of the structure is identical to the FLASH loader.
    +"""
    +import time
    +from functools import reduce
    +from pathlib import Path
    +from typing import List
    +from typing import Sequence
    +from typing import Tuple
    +from typing import Union
    +
    +import dask.dataframe as dd
    +import h5py
    +import numpy as np
    +import pyarrow.parquet as pq
    +from joblib import delayed
    +from joblib import Parallel
    +from natsort import natsorted
    +from pandas import DataFrame
    +from pandas import MultiIndex
    +from pandas import Series
    +
    +from sed.core import dfops
    +from sed.loader.base.loader import BaseLoader
    +from sed.loader.utils import parse_h5_keys
    +from sed.loader.utils import split_dld_time_from_sector_id
    +
    +
    +
    +[docs] +class SXPLoader(BaseLoader): + """ + The class generates multiindexed multidimensional pandas dataframes from the new SXP + dataformat resolved by both macro and microbunches alongside electrons. + Only the read_dataframe (inherited and implemented) method is accessed by other modules. + """ + + __name__ = "sxp" + + supported_file_types = ["h5"] + + def __init__(self, config: dict) -> None: + super().__init__(config=config) + self.multi_index = ["trainId", "pulseId", "electronId"] + self.index_per_electron: MultiIndex = None + self.index_per_pulse: MultiIndex = None + self.failed_files_error: List[str] = [] + self.array_indices: List[List[slice]] = None + +
    +[docs] + def initialize_paths(self) -> Tuple[List[Path], Path]: + """ + Initializes the paths based on the configuration. + + Returns: + Tuple[List[Path], Path]: A tuple containing a list of raw data directories + paths and the parquet data directory path. + + Raises: + ValueError: If required values are missing from the configuration. + FileNotFoundError: If the raw data directories are not found. + """ + # Parses to locate the raw beamtime directory from config file + if ( + "paths" in self._config["core"] + and self._config["core"]["paths"].get("data_raw_dir", "") + and self._config["core"]["paths"].get("data_parquet_dir", "") + ): + data_raw_dir = [ + Path(self._config["core"]["paths"].get("data_raw_dir", "")), + ] + data_parquet_dir = Path( + self._config["core"]["paths"].get("data_parquet_dir", ""), + ) + + else: + try: + beamtime_id = self._config["core"]["beamtime_id"] + year = self._config["core"]["year"] + except KeyError as exc: + raise ValueError( + "The beamtime_id and year are required.", + ) from exc + + beamtime_dir = Path( + self._config["dataframe"]["beamtime_dir"][self._config["core"]["beamline"]], + ) + beamtime_dir = beamtime_dir.joinpath(f"{year}/{beamtime_id}/") + + if not beamtime_dir.joinpath("raw").is_dir(): + raise FileNotFoundError("Raw data directory not found.") + + data_raw_dir = [beamtime_dir.joinpath("raw")] + + parquet_path = "processed/parquet" + data_parquet_dir = beamtime_dir.joinpath(parquet_path) + + data_parquet_dir.mkdir(parents=True, exist_ok=True) + + return data_raw_dir, data_parquet_dir
    + + +
    +[docs] + def get_files_from_run_id( + self, + run_id: str, + folders: Union[str, Sequence[str]] = None, + extension: str = "h5", + **kwds, + ) -> List[str]: + """Returns a list of filenames for a given run located in the specified directory + for the specified data acquisition (daq). + + Args: + run_id (str): The run identifier to locate. + folders (Union[str, Sequence[str]], optional): The directory(ies) where the raw + data is located. Defaults to config["core"]["base_folder"]. + extension (str, optional): The file extension. Defaults to "h5". + kwds: Keyword arguments: + - daq (str): The data acquisition identifier. + + Returns: + List[str]: A list of path strings representing the collected file names. + + Raises: + FileNotFoundError: If no files are found for the given run in the directory. + """ + # Define the stream name prefixes based on the data acquisition identifier + stream_name_prefixes = self._config["dataframe"]["stream_name_prefixes"] + stream_name_postfixes = self._config["dataframe"].get("stream_name_postfixes", {}) + + if isinstance(run_id, (int, np.integer)): + run_id = str(run_id).zfill(4) + + if folders is None: + folders = self._config["core"]["base_folder"] + + if isinstance(folders, str): + folders = [folders] + + daq = kwds.pop("daq", self._config.get("dataframe", {}).get("daq")) + + stream_name_postfix = stream_name_postfixes.get(daq, "") + # Generate the file patterns to search for in the directory + file_pattern = f"**/{stream_name_prefixes[daq]}{run_id}{stream_name_postfix}*." + extension + + files: List[Path] = [] + # Use pathlib to search for matching files in each directory + for folder in folders: + files.extend( + natsorted( + Path(folder).glob(file_pattern), + key=lambda filename: str(filename).rsplit("_", maxsplit=1)[-1], + ), + ) + + # Check if any files are found + if not files: + raise FileNotFoundError( + f"No files found for run {run_id} in directory {str(folders)}", + ) + + # Return the list of found files + return [str(file.resolve()) for file in files]
    + + + @property + def available_channels(self) -> List: + """Returns the channel names that are available for use, + excluding pulseId, defined by the json file""" + available_channels = list(self._config["dataframe"]["channels"].keys()) + available_channels.remove("pulseId") + available_channels.remove("trainId") + return available_channels + +
    +[docs] + def get_channels(self, formats: Union[str, List[str]] = "", index: bool = False) -> List[str]: + """ + Returns a list of channels associated with the specified format(s). + + Args: + formats (Union[str, List[str]]): The desired format(s) + ('per_pulse', 'per_electron', 'per_train', 'all'). + index (bool): If True, includes channels from the multi_index. + + Returns: + List[str]: A list of channels with the specified format(s). + """ + # If 'formats' is a single string, convert it to a list for uniform processing. + if isinstance(formats, str): + formats = [formats] + + # If 'formats' is a string "all", gather all possible formats. + if formats == ["all"]: + channels = self.get_channels(["per_pulse", "per_train", "per_electron"], index) + return channels + + channels = [] + for format_ in formats: + # Gather channels based on the specified format(s). + channels.extend( + key + for key in self.available_channels + if self._config["dataframe"]["channels"][key]["format"] == format_ + and key != "dldAux" + ) + # Include 'dldAuxChannels' if the format is 'per_pulse'. + if format_ == "per_pulse" and "dldAux" in self._config["dataframe"]["channels"]: + channels.extend( + self._config["dataframe"]["channels"]["dldAux"]["dldAuxChannels"].keys(), + ) + + # Include channels from multi_index if 'index' is True. + if index: + channels.extend(self.multi_index) + + return channels
    + + +
    +[docs] + def reset_multi_index(self) -> None: + """Resets the index per pulse and electron""" + self.index_per_electron = None + self.index_per_pulse = None + self.array_indices = None
    + + +
    +[docs] + def create_multi_index_per_electron(self, h5_file: h5py.File) -> None: + """ + Creates an index per electron using pulseId for usage with the electron + resolved pandas DataFrame. + + Args: + h5_file (h5py.File): The HDF5 file object. + + Notes: + - This method relies on the 'pulseId' channel to determine + the macrobunch IDs. + - It creates a MultiIndex with trainId, pulseId, and electronId + as the index levels. + """ + + # relative macrobunch IDs obtained from the trainId channel + train_id, mab_array = self.create_numpy_array_per_channel( + h5_file, + "trainId", + ) + # Internal microbunch IDs obtained from the pulseId channel + train_id, mib_array = self.create_numpy_array_per_channel( + h5_file, + "pulseId", + ) + + # Chopping data into trains + macrobunch_index = [] + microbunch_ids = [] + macrobunch_indices = [] + for i in train_id.index: + # removing broken trailing hit copies + num_trains = self._config["dataframe"].get("num_trains", 0) + if num_trains: + try: + num_valid_hits = np.where(np.diff(mib_array[i].astype(np.int32)) < 0)[0][ + num_trains - 1 + ] + mab_array[i, num_valid_hits:] = 0 + mib_array[i, num_valid_hits:] = 0 + except IndexError: + pass + train_ends = np.where(np.diff(mib_array[i].astype(np.int32)) < -1)[0] + indices = [] + index = 0 + for train, train_end in enumerate(train_ends): + macrobunch_index.append(train_id[i] + np.uint(train)) + microbunch_ids.append(mib_array[i, index:train_end]) + indices.append(slice(index, train_end)) + index = train_end + 1 + macrobunch_indices.append(indices) + self.array_indices = macrobunch_indices + # Create a series with the macrobunches as index and + # microbunches as values + macrobunches = ( + Series( + (microbunch_ids[i] for i in range(len(macrobunch_index))), + name="pulseId", + index=macrobunch_index, + ) + - self._config["dataframe"]["ubid_offset"] + ) + + # Explode dataframe to get all microbunch vales per macrobunch, + # remove NaN values and convert to type int + microbunches = macrobunches.explode().dropna().astype(int) + + # Create temporary index values + index_temp = MultiIndex.from_arrays( + (microbunches.index, microbunches.values), + names=["trainId", "pulseId"], + ) + + # Calculate the electron counts per pulseId unique preserves the order of appearance + electron_counts = index_temp.value_counts()[index_temp.unique()].values + + # Series object for indexing with electrons + electrons = ( + Series( + [np.arange(electron_counts[i]) for i in range(electron_counts.size)], + ) + .explode() + .astype(int) + ) + + # Create a pandas MultiIndex using the exploded datasets + self.index_per_electron = MultiIndex.from_arrays( + (microbunches.index, microbunches.values, electrons), + names=self.multi_index, + )
    + + +
    +[docs] + def create_multi_index_per_pulse( + self, + train_id: Series, + np_array: np.ndarray, + ) -> None: + """ + Creates an index per pulse using a pulse resolved channel's macrobunch ID, for usage with + the pulse resolved pandas DataFrame. + + Args: + train_id (Series): The train ID Series. + np_array (np.ndarray): The numpy array containing the pulse resolved data. + + Notes: + - This method creates a MultiIndex with trainId and pulseId as the index levels. + """ + + # Create a pandas MultiIndex, useful for comparing electron and + # pulse resolved dataframes + self.index_per_pulse = MultiIndex.from_product( + (train_id, np.arange(0, np_array.shape[1])), + names=["trainId", "pulseId"], + )
    + + +
    +[docs] + def create_numpy_array_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Tuple[Series, np.ndarray]: + """ + Returns a numpy array for a given channel name for a given file. + + Args: + h5_file (h5py.File): The h5py file object. + channel (str): The name of the channel. + + Returns: + Tuple[Series, np.ndarray]: A tuple containing the train ID Series and the numpy array + for the channel's data. + + """ + # Get the data from the necessary h5 file and channel + dataset = h5_file[self._config["dataframe"]["channels"][channel]["dataset_key"]] + index = h5_file[self._config["dataframe"]["channels"][channel]["index_key"]] + + channel_dict = self._config["dataframe"]["channels"][channel] # channel parameters + + train_id = Series(index, name="trainId") # macrobunch + + # unpacks the data into np.ndarray + np_array = dataset[()] + if len(np_array.shape) == 2 and self._config["dataframe"]["channels"][channel].get( + "max_hits", + 0, + ): + np_array = np_array[:, : self._config["dataframe"]["channels"][channel]["max_hits"]] + + # Use predefined axis and slice from the json file + # to choose correct dimension for necessary channel + if "slice" in channel_dict: + np_array = np.take( + np_array, + channel_dict["slice"], + axis=1, + ) + + if "scale" in channel_dict: + np_array = np_array / float(channel_dict["scale"]) + + return train_id, np_array
    + + +
    +[docs] + def create_dataframe_per_electron( + self, + np_array: np.ndarray, + channel: str, + ) -> DataFrame: + """ + Returns a pandas DataFrame for a given channel name of type [per electron]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + channel (str): The name of the channel. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + + Notes: + The microbunch resolved data is exploded and converted to a DataFrame. The MultiIndex + is set, and the NaN values are dropped, alongside the pulseId = 0 (meaningless). + + """ + if self.array_indices is None or len(self.array_indices) != np_array.shape[0]: + raise RuntimeError( + "macrobunch_indices not set correctly, internal inconstency detected.", + ) + train_data = [] + for i, _ in enumerate(self.array_indices): + for indices in self.array_indices[i]: + train_data.append(np_array[i, indices]) + return ( + Series((train for train in train_data), name=channel) + .explode() + .dropna() + .to_frame() + .set_index(self.index_per_electron) + .drop( + index=np.arange(-self._config["dataframe"]["ubid_offset"], 0), + level=1, + errors="ignore", + ) + )
    + + +
    +[docs] + def create_dataframe_per_pulse( + self, + np_array: np.ndarray, + train_id: Series, + channel: str, + channel_dict: dict, + ) -> DataFrame: + """ + Returns a pandas DataFrame for a given channel name of type [per pulse]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + channel_dict (dict): The dictionary containing channel parameters. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + + Notes: + - For auxillary channels, the macrobunch resolved data is repeated 499 times to be + compared to electron resolved data for each auxillary channel. The data is then + converted to a multicolumn DataFrame. + - For all other pulse resolved channels, the macrobunch resolved data is exploded + to a DataFrame and the MultiIndex is set. + + """ + + # Special case for auxillary channels + if channel == "dldAux": + # Checks the channel dictionary for correct slices and creates a multicolumn DataFrame + data_frames = ( + Series( + (np_array[i, value] for i in train_id.index), + name=key, + index=train_id, + ).to_frame() + for key, value in channel_dict["dldAuxChannels"].items() + ) + + # Multiindex set and combined dataframe returned + data = reduce(DataFrame.combine_first, data_frames) + + # For all other pulse resolved channels + else: + # Macrobunch resolved data is exploded to a DataFrame and the MultiIndex is set + + # Creates the index_per_pulse for the given channel + self.create_multi_index_per_pulse(train_id, np_array) + data = ( + Series((np_array[i] for i in train_id.index), name=channel) + .explode() + .to_frame() + .set_index(self.index_per_pulse) + ) + + return data
    + + +
    +[docs] + def create_dataframe_per_train( + self, + np_array: np.ndarray, + train_id: Series, + channel: str, + ) -> DataFrame: + """ + Returns a pandas DataFrame for a given channel name of type [per train]. + + Args: + np_array (np.ndarray): The numpy array containing the channel data. + train_id (Series): The train ID Series. + channel (str): The name of the channel. + + Returns: + DataFrame: The pandas DataFrame for the channel's data. + """ + return ( + Series((np_array[i] for i in train_id.index), name=channel) + .to_frame() + .set_index(train_id) + )
    + + +
    +[docs] + def create_dataframe_per_channel( + self, + h5_file: h5py.File, + channel: str, + ) -> Union[Series, DataFrame]: + """ + Returns a pandas DataFrame for a given channel name from a given file. + + This method takes an h5py.File object `h5_file` and a channel name `channel`, and returns + a pandas DataFrame containing the data for that channel from the file. The format of the + DataFrame depends on the channel's format specified in the configuration. + + Args: + h5_file (h5py.File): The h5py.File object representing the HDF5 file. + channel (str): The name of the channel. + + Returns: + Union[Series, DataFrame]: A pandas Series or DataFrame representing the channel's data. + + Raises: + ValueError: If the channel has an undefined format. + + """ + [train_id, np_array] = self.create_numpy_array_per_channel( + h5_file, + channel, + ) # numpy Array created + channel_dict = self._config["dataframe"]["channels"][channel] # channel parameters + + # If np_array is size zero, fill with NaNs + if np_array.size == 0: + # Fill the np_array with NaN values of the same shape as train_id + np_array = np.full_like(train_id, np.nan, dtype=np.double) + # Create a Series using np_array, with train_id as the index + data = Series( + (np_array[i] for i in train_id.index), + name=channel, + index=train_id, + ) + + # Electron resolved data is treated here + if channel_dict["format"] == "per_electron": + # If index_per_electron is None, create it for the given file + if self.index_per_electron is None: + self.create_multi_index_per_electron(h5_file) + + # Create a DataFrame for electron-resolved data + data = self.create_dataframe_per_electron( + np_array, + channel, + ) + + # Pulse resolved data is treated here + elif channel_dict["format"] == "per_pulse": + # Create a DataFrame for pulse-resolved data + data = self.create_dataframe_per_pulse( + np_array, + train_id, + channel, + channel_dict, + ) + + # Train resolved data is treated here + elif channel_dict["format"] == "per_train": + # Create a DataFrame for train-resolved data + data = self.create_dataframe_per_train(np_array, train_id, channel) + + else: + raise ValueError( + channel + + "has an undefined format. Available formats are \ + per_pulse, per_electron and per_train", + ) + + return data
    + + +
    +[docs] + def concatenate_channels( + self, + h5_file: h5py.File, + ) -> DataFrame: + """ + Concatenates the channels from the provided h5py.File into a pandas DataFrame. + + This method takes an h5py.File object `h5_file` and concatenates the channels present in + the file into a single pandas DataFrame. The concatenation is performed based on the + available channels specified in the configuration. + + Args: + h5_file (h5py.File): The h5py.File object representing the HDF5 file. + + Returns: + DataFrame: A concatenated pandas DataFrame containing the channels. + + Raises: + ValueError: If the group_name for any channel does not exist in the file. + + """ + all_keys = parse_h5_keys(h5_file) # Parses all channels present + + # Check for if the provided dataset_keys and index_keys actually exists in the file + for channel in self._config["dataframe"]["channels"]: + dataset_key = self._config["dataframe"]["channels"][channel]["dataset_key"] + if dataset_key not in all_keys: + raise ValueError( + f"The dataset_key for channel {channel} does not exist.", + ) + index_key = self._config["dataframe"]["channels"][channel]["index_key"] + if index_key not in all_keys: + raise ValueError( + f"The index_key for channel {channel} does not exist.", + ) + + # Create a generator expression to generate data frames for each channel + data_frames = ( + self.create_dataframe_per_channel(h5_file, each) for each in self.available_channels + ) + + # Use the reduce function to join the data frames into a single DataFrame + return reduce( + lambda left, right: left.join(right, how="outer"), + data_frames, + )
    + + +
    +[docs] + def create_dataframe_per_file( + self, + file_path: Path, + ) -> DataFrame: + """ + Create pandas DataFrames for the given file. + + This method loads an HDF5 file specified by `file_path` and constructs a pandas DataFrame + from the datasets within the file. The order of datasets in the DataFrames is the opposite + of the order specified by channel names. + + Args: + file_path (Path): Path to the input HDF5 file. + + Returns: + DataFrame: pandas DataFrame + + """ + # Loads h5 file and creates a dataframe + with h5py.File(file_path, "r") as h5_file: + self.reset_multi_index() # Reset MultiIndexes for next file + df = self.concatenate_channels(h5_file) + df = df.dropna(subset=self._config["dataframe"].get("tof_column", "dldTimeSteps")) + # correct the 3 bit shift which encodes the detector ID in the 8s time + if self._config["dataframe"].get("split_sector_id_from_dld_time", False): + df = split_dld_time_from_sector_id(df, config=self._config) + return df
    + + +
    +[docs] + def create_buffer_file(self, h5_path: Path, parquet_path: Path) -> Union[bool, Exception]: + """ + Converts an HDF5 file to Parquet format to create a buffer file. + + This method uses `create_dataframe_per_file` method to create dataframes from individual + files within an HDF5 file. The resulting dataframe is then saved to a Parquet file. + + Args: + h5_path (Path): Path to the input HDF5 file. + parquet_path (Path): Path to the output Parquet file. + + Raises: + ValueError: If an error occurs during the conversion process. + + """ + try: + ( + self.create_dataframe_per_file(h5_path) + .reset_index(level=self.multi_index) + .to_parquet(parquet_path, index=False) + ) + except Exception as exc: # pylint: disable=broad-except + self.failed_files_error.append(f"{parquet_path}: {type(exc)} {exc}") + return exc + return None
    + + +
    +[docs] + def buffer_file_handler( + self, + data_parquet_dir: Path, + detector: str, + force_recreate: bool, + ) -> Tuple[List[Path], List, List]: + """ + Handles the conversion of buffer files (h5 to parquet) and returns the filenames. + + Args: + data_parquet_dir (Path): Directory where the parquet files will be stored. + detector (str): Detector name. + force_recreate (bool): Forces recreation of buffer files + + Returns: + Tuple[List[Path], List, List]: Three lists, one for + parquet file paths, one for metadata and one for schema. + + Raises: + FileNotFoundError: If the conversion fails for any files or no data is available. + """ + + # Create the directory for buffer parquet files + buffer_file_dir = data_parquet_dir.joinpath("buffer") + buffer_file_dir.mkdir(parents=True, exist_ok=True) + + # Create two separate lists for h5 and parquet file paths + h5_filenames = [Path(file) for file in self.files] + parquet_filenames = [ + buffer_file_dir.joinpath(Path(file).stem + detector) for file in self.files + ] + existing_parquet_filenames = [file for file in parquet_filenames if file.exists()] + + # Raise a value error if no data is available after the conversion + if len(h5_filenames) == 0: + raise ValueError("No data available. Probably failed reading all h5 files") + + if not force_recreate: + # Check if the available channels match the schema of the existing parquet files + parquet_schemas = [pq.read_schema(file) for file in existing_parquet_filenames] + config_schema = set(self.get_channels(formats="all", index=True)) + if self._config["dataframe"].get("split_sector_id_from_dld_time", False): + config_schema.add(self._config["dataframe"].get("sector_id_column", False)) + + for i, schema in enumerate(parquet_schemas): + schema_set = set(schema.names) + if schema_set != config_schema: + missing_in_parquet = config_schema - schema_set + missing_in_config = schema_set - config_schema + + missing_in_parquet_str = ( + f"Missing in parquet: {missing_in_parquet}" if missing_in_parquet else "" + ) + missing_in_config_str = ( + f"Missing in config: {missing_in_config}" if missing_in_config else "" + ) + + raise ValueError( + "The available channels do not match the schema of file", + f"{existing_parquet_filenames[i]}", + f"{missing_in_parquet_str}", + f"{missing_in_config_str}", + "Please check the configuration file or set force_recreate to True.", + ) + + # Choose files to read + files_to_read = [ + (h5_path, parquet_path) + for h5_path, parquet_path in zip(h5_filenames, parquet_filenames) + if force_recreate or not parquet_path.exists() + ] + + print(f"Reading files: {len(files_to_read)} new files of {len(h5_filenames)} total.") + + # Initialize the indices for create_buffer_file conversion + self.reset_multi_index() + + # Convert the remaining h5 files to parquet in parallel if there are any + if len(files_to_read) > 0: + error = Parallel(n_jobs=len(files_to_read), verbose=10)( + delayed(self.create_buffer_file)(h5_path, parquet_path) + for h5_path, parquet_path in files_to_read + ) + if any(error): + raise RuntimeError(f"Conversion failed for some files. {error}") + # for h5_path, parquet_path in files_to_read: + # self.create_buffer_file(h5_path, parquet_path) + + # Raise an error if the conversion failed for any files + # TODO: merge this and the previous error trackings + if self.failed_files_error: + raise FileNotFoundError( + "Conversion failed for the following files:\n" + "\n".join(self.failed_files_error), + ) + + print("All files converted successfully!") + + # read all parquet metadata and schema + metadata = [pq.read_metadata(file) for file in parquet_filenames] + schema = [pq.read_schema(file) for file in parquet_filenames] + + return parquet_filenames, metadata, schema
    + + +
    +[docs] + def parquet_handler( + self, + data_parquet_dir: Path, + detector: str = "", + parquet_path: Path = None, + converted: bool = False, + load_parquet: bool = False, + save_parquet: bool = False, + force_recreate: bool = False, + ) -> Tuple[dd.DataFrame, dd.DataFrame]: + """ + Handles loading and saving of parquet files based on the provided parameters. + + Args: + data_parquet_dir (Path): Directory where the parquet files are located. + detector (str, optional): Adds a identifier for parquets to distinguish multidetector + systems. + parquet_path (str, optional): Path to the combined parquet file. + converted (bool, optional): True if data is augmented by adding additional columns + externally and saved into converted folder. + load_parquet (bool, optional): Loads the entire parquet into the dd dataframe. + save_parquet (bool, optional): Saves the entire dataframe into a parquet. + force_recreate (bool, optional): Forces recreation of buffer file. + Returns: + tuple: A tuple containing two dataframes: + - dataframe_electron: Dataframe containing the loaded/augmented electron data. + - dataframe_pulse: Dataframe containing the loaded/augmented timed data. + + Raises: + FileNotFoundError: If the requested parquet file is not found. + + """ + + # Construct the parquet path if not provided + if parquet_path is None: + parquet_name = "_".join(str(run) for run in self.runs) + parquet_dir = data_parquet_dir.joinpath("converted") if converted else data_parquet_dir + + parquet_path = parquet_dir.joinpath( + "run_" + parquet_name + detector, + ).with_suffix(".parquet") + + # Check if load_parquet is flagged and then load the file if it exists + if load_parquet: + try: + dataframe = dd.read_parquet(parquet_path) + except Exception as exc: + raise FileNotFoundError( + "The final parquet for this run(s) does not exist yet. " + "If it is in another location, please provide the path as parquet_path.", + ) from exc + + else: + # Obtain the parquet filenames, metadata and schema from the method + # which handles buffer file creation/reading + filenames, metadata, _ = self.buffer_file_handler( + data_parquet_dir, + detector, + force_recreate, + ) + + # Read all parquet files into one dataframe using dask + dataframe = dd.read_parquet(filenames, calculate_divisions=True) + + # Channels to fill NaN values + channels: List[str] = self.get_channels(["per_pulse", "per_train"]) + + overlap = min(file.num_rows for file in metadata) + + print("Filling nan values...") + dataframe = dfops.forward_fill_lazy( + df=dataframe, + columns=channels, + before=overlap, + iterations=self._config["dataframe"].get("forward_fill_iterations", 2), + ) + # Remove the NaNs from per_electron channels + dataframe_electron = dataframe.dropna( + subset=self.get_channels(["per_electron"]), + ) + dataframe_pulse = dataframe[ + self.multi_index + self.get_channels(["per_pulse", "per_train"]) + ] + dataframe_pulse = dataframe_pulse[ + (dataframe_pulse["electronId"] == 0) | (np.isnan(dataframe_pulse["electronId"])) + ] + + # Save the dataframe as parquet if requested + if save_parquet: + dataframe_electron.compute().reset_index(drop=True).to_parquet(parquet_path) + print("Combined parquet file saved.") + + return dataframe_electron, dataframe_pulse
    + + +
    +[docs] + def gather_metadata(self, metadata: dict = None) -> dict: + """Dummy function returning empty metadata dictionary for now. + + Args: + metadata (dict, optional): Manual meta data dictionary. Auto-generated + meta data are added to it. Defaults to None. + + Returns: + dict: Metadata dictionary + """ + if metadata is None: + metadata = {} + + return metadata
    + + +
    +[docs] + def get_count_rate( + self, + fids: Sequence[int] = None, # noqa: ARG002 + **kwds, # noqa: ARG002 + ): + return None, None
    + + +
    +[docs] + def get_elapsed_time(self, fids=None, **kwds): # noqa: ARG002 + return None
    + + +
    +[docs] + def read_dataframe( + self, + files: Union[str, Sequence[str]] = None, + folders: Union[str, Sequence[str]] = None, + runs: Union[str, Sequence[str]] = None, + ftype: str = "h5", + metadata: dict = None, + collect_metadata: bool = False, + **kwds, + ) -> Tuple[dd.DataFrame, dd.DataFrame, dict]: + """ + Read express data from the DAQ, generating a parquet in between. + + Args: + files (Union[str, Sequence[str]], optional): File path(s) to process. Defaults to None. + folders (Union[str, Sequence[str]], optional): Path to folder(s) where files are stored + Path has priority such that if it's specified, the specified files will be ignored. + Defaults to None. + runs (Union[str, Sequence[str]], optional): Run identifier(s). Corresponding files will + be located in the location provided by ``folders``. Takes precendence over + ``files`` and ``folders``. Defaults to None. + ftype (str, optional): The file extension type. Defaults to "h5". + metadata (dict, optional): Additional metadata. Defaults to None. + collect_metadata (bool, optional): Whether to collect metadata. Defaults to False. + + Returns: + Tuple[dd.DataFrame, dict]: A tuple containing the concatenated DataFrame and metadata. + + Raises: + ValueError: If neither 'runs' nor 'files'/'data_raw_dir' is provided. + FileNotFoundError: If the conversion fails for some files or no data is available. + """ + t0 = time.time() + + data_raw_dir, data_parquet_dir = self.initialize_paths() + + # Prepare a list of names for the runs to read and parquets to write + if runs is not None: + files = [] + if isinstance(runs, (str, int)): + runs = [runs] + for run in runs: + run_files = self.get_files_from_run_id( + run_id=run, + folders=[str(folder.resolve()) for folder in data_raw_dir], + extension=ftype, + daq=self._config["dataframe"]["daq"], + ) + files.extend(run_files) + self.runs = list(runs) + super().read_dataframe(files=files, ftype=ftype) + + else: + # This call takes care of files and folders. As we have converted runs into files + # already, they are just stored in the class by this call. + super().read_dataframe( + files=files, + folders=folders, + ftype=ftype, + metadata=metadata, + ) + + df, df_timed = self.parquet_handler(data_parquet_dir, **kwds) + + if collect_metadata: + metadata = self.gather_metadata( + metadata=self.metadata, + ) + else: + metadata = self.metadata + print(f"loading complete in {time.time() - t0: .2f} s") + + return df, df_timed, metadata
    +
    + + + +LOADER = SXPLoader +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_modules/sed/loader/utils.html b/sed/v0.1.9/_modules/sed/loader/utils.html new file mode 100644 index 0000000..dba537a --- /dev/null +++ b/sed/v0.1.9/_modules/sed/loader/utils.html @@ -0,0 +1,730 @@ + + + + + + + + + + sed.loader.utils — SED 0.1.9 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for sed.loader.utils

    +"""Utilities for loaders
    +"""
    +from glob import glob
    +from typing import cast
    +from typing import List
    +from typing import Sequence
    +from typing import Union
    +
    +import dask.dataframe
    +import numpy as np
    +import pandas as pd
    +from h5py import File
    +from h5py import Group
    +from natsort import natsorted
    +
    +
    +
    +[docs] +def gather_files( + folder: str, + extension: str, + f_start: int = None, + f_end: int = None, + f_step: int = 1, + file_sorting: bool = True, +) -> List[str]: + """Collects and sorts files with specified extension from a given folder. + + Args: + folder (str): The folder to search + extension (str): File extension used for glob.glob(). + f_start (int, optional): Start file id used to construct a file selector. + Defaults to None. + f_end (int, optional): End file id used to construct a file selector. + Defaults to None. + f_step (int, optional): Step of file id incrementation, used to construct + a file selector. Defaults to 1. + file_sorting (bool, optional): Option to sort the files by their names. + Defaults to True. + + Returns: + List[str]: List of collected file names. + """ + try: + files = glob(folder + "/*." + extension) + + if file_sorting: + files = cast(List[str], natsorted(files)) + + if f_start is not None and f_end is not None: + files = files[slice(f_start, f_end, f_step)] + + except FileNotFoundError: + print("No legitimate folder address is specified for file retrieval!") + raise + + return files
    + + + +
    +[docs] +def parse_h5_keys(h5_file: File, prefix: str = "") -> List[str]: + """Helper method which parses the channels present in the h5 file + Args: + h5_file (h5py.File): The H5 file object. + prefix (str, optional): The prefix for the channel names. + Defaults to an empty string. + + Returns: + List[str]: A list of channel names in the H5 file. + + Raises: + Exception: If an error occurs while parsing the keys. + """ + + # Initialize an empty list to store the channels + file_channel_list = [] + + # Iterate over the keys in the H5 file + for key in h5_file.keys(): + try: + # Check if the object corresponding to the key is a group + if isinstance(h5_file[key], Group): + # If it's a group, recursively call the function on the group object + # and append the returned channels to the file_channel_list + file_channel_list.extend( + parse_h5_keys(h5_file[key], prefix=prefix + "/" + key), + ) + else: + # If it's not a group (i.e., it's a dataset), append the key + # to the file_channel_list + file_channel_list.append(prefix + "/" + key) + except KeyError as exception: + # If an exception occurs, raise a new exception with an error message + raise KeyError( + f"Error parsing key: {prefix}/{key}", + ) from exception + + # Return the list of channels + return file_channel_list
    + + + +
    +[docs] +def split_channel_bitwise( + df: dask.dataframe.DataFrame, + input_column: str, + output_columns: Sequence[str], + bit_mask: int, + overwrite: bool = False, + types: Sequence[type] = None, +) -> dask.dataframe.DataFrame: + """Splits a channel into two channels bitwise. + + This function splits a channel into two channels by separating the first n bits from + the remaining bits. The first n bits are stored in the first output column, the + remaining bits are stored in the second output column. + + Args: + df (dask.dataframe.DataFrame): Dataframe to use. + input_column (str): Name of the column to split. + output_columns (Sequence[str]): Names of the columns to create. + bit_mask (int): Bit mask to use for splitting. + overwrite (bool, optional): Whether to overwrite existing columns. + Defaults to False. + types (Sequence[type], optional): Types of the new columns. + + Returns: + dask.dataframe.DataFrame: Dataframe with the new columns. + """ + if len(output_columns) != 2: + raise ValueError("Exactly two output columns must be given.") + if input_column not in df.columns: + raise KeyError(f"Column {input_column} not in dataframe.") + if output_columns[0] in df.columns and not overwrite: + raise KeyError(f"Column {output_columns[0]} already in dataframe.") + if output_columns[1] in df.columns and not overwrite: + raise KeyError(f"Column {output_columns[1]} already in dataframe.") + if bit_mask < 0 or not isinstance(bit_mask, int): + raise ValueError("bit_mask must be a positive. integer") + if types is None: + types = [np.int8 if bit_mask < 8 else np.int16, np.int32] + elif len(types) != 2: + raise ValueError("Exactly two types must be given.") + elif not all(isinstance(t, type) for t in types): + raise ValueError("types must be a sequence of types.") + df[output_columns[0]] = (df[input_column] % 2**bit_mask).astype(types[0]) + df[output_columns[1]] = (df[input_column] // 2**bit_mask).astype(types[1]) + return df
    + + + +
    +[docs] +def split_dld_time_from_sector_id( + df: Union[pd.DataFrame, dask.dataframe.DataFrame], + tof_column: str = None, + sector_id_column: str = None, + sector_id_reserved_bits: int = None, + config: dict = None, +) -> Union[pd.DataFrame, dask.dataframe.DataFrame]: + """Converts the 8s time in steps to time in steps and sectorID. + + The 8s detector encodes the dldSectorID in the 3 least significant bits of the + dldTimeSteps channel. + + Args: + df (Union[pd.DataFrame, dask.dataframe.DataFrame]): Dataframe to use. + tof_column (str, optional): Name of the column containing the + time-of-flight steps. Defaults to config["dataframe"]["tof_column"]. + sector_id_column (str, optional): Name of the column containing the + sectorID. Defaults to config["dataframe"]["sector_id_column"]. + sector_id_reserved_bits (int, optional): Number of bits reserved for the + config (dict, optional): Configuration dictionary. Defaults to None. + + Returns: + Union[pd.DataFrame, dask.dataframe.DataFrame]: Dataframe with the new columns. + """ + if tof_column is None: + if config is None: + raise ValueError("Either tof_column or config must be given.") + tof_column = config["dataframe"]["tof_column"] + if sector_id_column is None: + if config is None: + raise ValueError("Either sector_id_column or config must be given.") + sector_id_column = config["dataframe"]["sector_id_column"] + if sector_id_reserved_bits is None: + if config is None: + raise ValueError("Either sector_id_reserved_bits or config must be given.") + sector_id_reserved_bits = config["dataframe"].get("sector_id_reserved_bits", None) + if sector_id_reserved_bits is None: + raise ValueError('No value for "sector_id_reserved_bits" found in config.') + + if sector_id_column in df.columns: + raise ValueError( + f"Column {sector_id_column} already in dataframe. This function is not idempotent.", + ) + df = split_channel_bitwise( + df=df, + input_column=tof_column, + output_columns=[sector_id_column, tof_column], + bit_mask=sector_id_reserved_bits, + overwrite=True, + types=[np.int8, np.int32], + ) + return df
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/sed/v0.1.9/_sources/index.md.txt b/sed/v0.1.9/_sources/index.md.txt new file mode 100644 index 0000000..3ac0f36 --- /dev/null +++ b/sed/v0.1.9/_sources/index.md.txt @@ -0,0 +1,49 @@ +--- +myst: + html_meta: + "description lang=en": | + Top-level documentation for sed, with links to the rest + of the site.. +html_theme.sidebar_secondary.remove: true +--- + +# SED documentation + +SED (Single Event Data Frame) is a collection of routines and utilities to handle photoelectron resolved datastreams. +It features lazy evaluation of dataframe processing using dask, numba-accelerated multi-dimensional binning, calibration and correction for trARPES (Time- and angle-resolved photoemission spectroscopy) datasets. +The package ensures provenance and FAIR data through metadata tracking, usage of the community defined NeXus format. + +```{toctree} +:maxdepth: 2 + +user_guide/index + +``` + +## Examples + +Several example notebooks to demonstrate the functionality of SED for end-to-end data analysis workflows. + +```{toctree} +:maxdepth: 2 + +workflows/index +``` + +## API + +```{toctree} +:maxdepth: 2 + +misc/contribution +``` + +## Community and contribution guide + +Information about the community behind this theme and how you can contribute. + +```{toctree} +:maxdepth: 2 + +sed/api +``` diff --git a/sed/v0.1.9/_sources/misc/contributing.rst.txt b/sed/v0.1.9/_sources/misc/contributing.rst.txt new file mode 100644 index 0000000..b1938a2 --- /dev/null +++ b/sed/v0.1.9/_sources/misc/contributing.rst.txt @@ -0,0 +1,132 @@ +============================== +Contributing to sed +============================== + +Welcome to the sed project, a collaboration of the Open Community of Multidimensional Photoemission Spectroscopy. + +Whether you are a beamline scientist hoping to create a loader for your data, or would like to add a new feature to the project, we welcome your contributions. + +This guide will walk you through the process of setting up your development environment, and the workflow for contributing to the project. + + +Getting Started +=============== + +1. **Clone the Repository:** + + - If you are a member of the repository, clone the repository to your local machine: + + .. code-block:: bash + + git clone https://github.com/OpenCOMPES/sed.git + + - If you are not a member of the repository, clone your fork of the repository to your local machine: + + .. code-block:: bash + + git clone https://github.com/yourusername/sed.git + + + +2. **Install Python and Poetry:** + - Ensure you have Python 3.8, 3.9, 3.10 or 3.11 and poetry installed. + + .. code-block:: bash + + pip install pipx + pipx install poetry + +3. **Clone Repository:** + + .. code-block:: bash + + git clone https://github.com/OpenCOMPES/sed.git + +4. **Install Dependencies:** + - Navigate to the project directory and install the project dependencies (including development ones) using Poetry: + + .. code-block:: bash + + poetry install --dev + + +Development Workflow +===================== + +.. note:: + This guide assumes that you have Python (version 3.8, 3.9, 3.10, 3.11) and poetry with dev dependencies installed on your machine. + +1. **Install pre-commit hooks:** To ensure your code is formatted correctly, install pre-commit hooks: + + .. code-block:: bash + + pip install pre-commit + + +2. **Create a Branch:** Create a new branch for your feature or bug fix and make changes: + + .. code-block:: bash + + git checkout -b feature-branch + + +3. **Write Tests:** If your contribution introduces new features or fixes a bug, add tests to cover your changes. + +4. **Run Tests:** To ensure no funtionality is broken, run the tests: + + .. code-block:: bash + + pytest tests + + +5. **Commit Changes:** Commit your changes with a clear and concise commit message: + + .. code-block:: bash + + git commit -a -m "Your commit message" + + +6. **Push Changes:** Push your changes to your fork: + + .. code-block:: bash + + git push origin feature-branch + + +7. **Open a Pull Request:** Open a pull request against the `main` branch of sed. + +Pull Request Guidelines +======================= + +Please give a brief description of the changes you have made in your pull request. +If your pull request fixes an issue, please reference the issue number in the pull request description. + +Before your pull request can be merged, it must pass the following checks: + +- **Linting Check** + +- **Tests Check** + +- **Code Review:** A maintainer will review your code and provide feedback if necessary. + +- **Rebase with Main:** Ensure your branch is up-to-date with the latest changes from the `main` branch. + +Once all checks are successful and your code is approved, it will be merged into the main branch. + +Developing a Loader +=================== +If you are developing a loader for your beamline, please follow the guidelines below. + +1. **Create a Loader:** + + - Create a new loader in the `sed/loaders` directory. + - The loader should be a subclass of `sed.loader.base.loader.BaseLoader` and implement a few methods. See :ref:`base_loader` for more information. + - Give your class a `__name__` attribute, which is used to select the loader in user config files (See the generic loader for example). + - At the end of your module, provide a `LOADER = YourNameLoader` variable, which is used to register that loader in the registry. See :ref:`loader_interface`. + +2. **Write Tests:** + + - Write tests for your loader in the `tests/loaders` directory. + - You can also include a small test data in the `tests/data` directory. + +3. **Add Loader to Documentation:** Add your loader to the documentation in `docs/sed/loaders.rst`. diff --git a/sed/v0.1.9/_sources/misc/contribution.md.txt b/sed/v0.1.9/_sources/misc/contribution.md.txt new file mode 100644 index 0000000..88d7b56 --- /dev/null +++ b/sed/v0.1.9/_sources/misc/contribution.md.txt @@ -0,0 +1,8 @@ +# Development + +```{toctree} +:maxdepth: 2 + +contributing +maintain +``` diff --git a/sed/v0.1.9/_sources/misc/maintain.rst.txt b/sed/v0.1.9/_sources/misc/maintain.rst.txt new file mode 100644 index 0000000..6e88750 --- /dev/null +++ b/sed/v0.1.9/_sources/misc/maintain.rst.txt @@ -0,0 +1,156 @@ +How to Maintain +=============== + +Documentation +------------- +**Build Locally:** + +Users can generate documentation locally using the following steps: + +1. **Install Dependencies:** + +.. code-block:: bash + + pip install pipx + pipx install poetry + +1. **Clone Repository:** + +.. code-block:: bash + + git clone https://github.com/OpenCOMPES/sed.git + +3. **Navigate to Repository:** + +.. code-block:: bash + + cd sed + +4. **Copy Tutorial Files:** + +Doing this step will slow down the build process significantly. It also requires two datasets so 20 GB of free space is required. + +.. code-block:: bash + + cp -r tutorial docs/ + cp -r sed/config docs/sed + +5. **Create a virtual environment:** + +.. code-block:: bash + + poetry shell + +6. **Install Dependencies:** + +.. code-block:: bash + + poetry install --with docs + +7. **Build Documentation:** + +.. code-block:: bash + + poetry run sphinx-build -b html docs _build + +8. **View Documentation:** + +Open the generated HTML documentation in the `_build` directory. + +**GitHub Workflow:** + +The documentation workflow is designed to automatically build and deploy documentation. Additionally, maintainers of sed repository can manually trigger the documentation workflow from the Actions tab. +Here's how the workflow works: + +1. **Workflow Configuration:** + - The documentation workflow is triggered on push events to the main branch for specific paths and files related to documentation. + - Manual execution is possible using the workflow_dispatch event from the Actions tab. + + .. code-block:: yaml + + on: + push: + branches: [ main ] + paths: + - sed/**/* + - pyproject.toml + - tutorial/** + - .github/workflows/documentation.yml + workflow_dispatch: + +2. **Permissions:** + - The workflow sets permissions for the GITHUB_TOKEN to allow deployment to GitHub Pages. + - Permissions include read access to contents and write access to pages. + + .. code-block:: yaml + + permissions: + contents: read + pages: write + id-token: write + +3. **Concurrent Deployment:** + - Only one concurrent deployment is allowed to prevent conflicts. + - Future idea would be to have different deployment for different versions. + - Runs queued between an in-progress run and the latest queued run are skipped. + + .. code-block:: yaml + + concurrency: + group: "pages" + cancel-in-progress: false + +4. **Workflow Steps:** + - The workflow is divided into two jobs: build and deploy. + + a. **Build Job:** + - Sets up the build environment, checks out the repository, and installs necessary dependencies using Poetry. + - Installs notebook dependencies and Pandoc. + - Copies tutorial files to the docs directory and removes unnecessary notebooks. + - Downloads RAW data for tutorials. + - Builds Sphinx documentation. + + b. **Deploy Job:** + - Deploys the built documentation to GitHub Pages. + +5. **Manual Execution:** + - To manually trigger the workflow, go to the Actions tab on GitHub. + - Click on "Run workflow" for the "documentation" workflow. + + +Release +------- + +**Creating a Release** + +To create a release, follow these steps: + + a. **Create a Git Release on Github:** + + - On the "tags" page, select "releases", and press "Draft a new release". + - At "choose a tag", type in the name of the new release tag. Make sure to have a **v** prefix in the tag name, e.g. **v0.1.10**. + - Confirm creation of the tag, and press "Generate release notes". Edit the notes as appropriate (e.g. remove auto-generated update PRs). + - Press "Publish release". This will create the new tag and release entry, and issue the build and upload to PyPI. + + b. **Check PyPI for the Published Package:** + + - Visit the PyPI page (https://pypi.org/project/sed-processor/). + - Confirm that the new version (e.g., 0.1.10) has been published. + + c. **If you don't see update on PyPI:** + + - Visit the GitHub Actions page and monitor the Release workflow (https://github.com/OpenCOMPES/sed/actions/workflows/release.yml). + - Check if errors occured. + + +**Understanding the Release Workflow** + +- *Release Job:* + - This workflow is responsible for versioning and releasing the package. + - A release job runs on every git tag push (e.g., `git tag v0.1.5`) and publishes the package to PyPI. + - If the publish is successful, the version in the `pyproject.toml` file is updated and pushed to the main branch. + +- *Prerelease Job:* + - This workflow is triggered automatically on every pull request (PR) to the main branch. + - It increments the version number for prerelease (e.g., from 0.1.5 to 0.1.6a0 to 0.1.6a1) and publishes the package to PyPI. + - If the publish is successful, the version in the `pyproject.toml` file is updated and pushed to the main branch. diff --git a/sed/v0.1.9/_sources/sed/api.rst.txt b/sed/v0.1.9/_sources/sed/api.rst.txt new file mode 100644 index 0000000..fffcc53 --- /dev/null +++ b/sed/v0.1.9/_sources/sed/api.rst.txt @@ -0,0 +1,17 @@ +====== +API +====== + +.. toctree:: + :maxdepth: 1 + + core + dfops + loader + binning + calibrator + dataset + diagnostic + io + metadata + config diff --git a/sed/v0.1.9/_sources/sed/binning.rst.txt b/sed/v0.1.9/_sources/sed/binning.rst.txt new file mode 100644 index 0000000..cda0a68 --- /dev/null +++ b/sed/v0.1.9/_sources/sed/binning.rst.txt @@ -0,0 +1,21 @@ +Binning +=================================================== +Main functions +################################################### + +.. automodule:: sed.binning + :members: + :undoc-members: + + + +Used helper functions +################################################## + +.. automodule:: sed.binning.numba_bin + :members: + :undoc-members: + +.. automodule:: sed.binning.utils + :members: + :undoc-members: diff --git a/sed/v0.1.9/_sources/sed/calibrator.rst.txt b/sed/v0.1.9/_sources/sed/calibrator.rst.txt new file mode 100644 index 0000000..5d74ab2 --- /dev/null +++ b/sed/v0.1.9/_sources/sed/calibrator.rst.txt @@ -0,0 +1,20 @@ +Calibrator +=================================================== + +Momentum calibration and correction +################################################### +.. automodule:: sed.calibrator.momentum + :members: + :undoc-members: + +Energy calibration and correction +################################################### +.. automodule:: sed.calibrator.energy + :members: + :undoc-members: + +Delay calibration and correction +################################################### +.. automodule:: sed.calibrator.delay + :members: + :undoc-members: diff --git a/sed/v0.1.9/_sources/sed/config.rst.txt b/sed/v0.1.9/_sources/sed/config.rst.txt new file mode 100644 index 0000000..485bd7e --- /dev/null +++ b/sed/v0.1.9/_sources/sed/config.rst.txt @@ -0,0 +1,8 @@ +Config +*************************************************** +.. automodule:: sed.core.config + :members: + :undoc-members: + + +.. _example_config: diff --git a/sed/v0.1.9/_sources/sed/core.rst.txt b/sed/v0.1.9/_sources/sed/core.rst.txt new file mode 100644 index 0000000..f590c55 --- /dev/null +++ b/sed/v0.1.9/_sources/sed/core.rst.txt @@ -0,0 +1,5 @@ +Core +=================================================== +.. automodule:: sed.core + :members: + :undoc-members: \ No newline at end of file diff --git a/sed/v0.1.9/_sources/sed/dataset.rst.txt b/sed/v0.1.9/_sources/sed/dataset.rst.txt new file mode 100644 index 0000000..6a8c57f --- /dev/null +++ b/sed/v0.1.9/_sources/sed/dataset.rst.txt @@ -0,0 +1,344 @@ +Dataset +=================================================== + +SED comes with the ability to download and extract any URL based +datasets. By default, user can the “WSe2”, “TaS2” and “Gd_W110” datasets +but easy to extend this list. + +Getting datasets +------------------------ + +.. code:: python + + import os + from sed.dataset import dataset + +Get +~~~ + +The “get” just needs the data name, but another root_dir can be provided. +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Try to interrupt the download process and restart to see that it continues the download from where it stopped +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.get("WSe2", remove_zip = False) + +.. parsed-literal:: + + Using default data path for "WSe2": "/datasets/WSe2" + + 3%|▎ | 152M/5.73G [00:02<01:24, 71.3MB/s] + + Using default data path for "WSe2": "/datasets/WSe2" + + 100%|██████████| 5.73G/5.73G [01:09<00:00, 54.3MB/s] + + Download complete. + +Not providing “remove_zip” at all will by default delete the zip file after extraction +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.get("WSe2") + +Setting the “use_existing” keyword to False allows to download the data in another location. Default is to use existing data +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.get("WSe2", root_dir = "new_datasets", use_existing=False) + +.. parsed-literal:: + + Using specified data path for "WSe2": "/new_datasets/datasets/WSe2" + Created new directory at /new_datasets/datasets/WSe2 + + + 3%|▎ | 152M/5.73G [00:02<01:24, 71.3MB/s] + + +Interrupting extraction has similar behavior to download and just continues from where it stopped. +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Or if user deletes the extracted documents, it reextracts from zip file +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.get("WSe2", remove_zip = False) + + ## Try to remove some files and rerun this command. + +.. parsed-literal:: + + Using default data path for "WSe2": "/datasets/WSe2" + WSe2 data is already fully downloaded. + + + 5.73GB [00:00, 12.6MB/s] + + Download complete. + Extracting WSe2 data... + + + + 100%|██████████| 113/113 [02:41<00:00, 1.43s/file] + + WSe2 data extracted successfully. + +“remove” allows removal of some or all instances of existing data +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This would remove only one of the two existing paths +'''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.remove("WSe2", instance = dataset.existing_data_paths[0]) + +.. parsed-literal:: + + Removed /datasets/WSe2 + +This removes all instances, if any present +'''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.remove("WSe2") + +.. parsed-literal:: + + WSe2 data is not present. + +Attributes useful for user +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All available datasets after looking at module, user and folder levels +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.available + +.. parsed-literal:: + + ['WSe2', 'TaS2', 'Gd_W110'] + +The dir and subdirs where data is located +''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.dir + +.. parsed-literal:: + + '/datasets/WSe2' + +.. code:: python + + dataset.subdirs + +.. parsed-literal:: + + ['/datasets/WSe2/Scan049_1', + '/datasets/WSe2/energycal_2019_01_08'] + +Existing locations where data is present +'''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.existing_data_paths + +.. parsed-literal:: + + ['/new_dataset/datasets/WSe2', + '/datasets/WSe2'] + +Example of adding custom datasets +--------------------------------- + +Allows to add or remove datasets in json file at any level (module, user, folder). +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Looks at all levels to give the available datasets +'''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + import os + from sed.dataset import DatasetsManager + +We add a new dataset to both folder and user levels +''''''''''''''''''''''''''''''''''''''''''''''''''' + +This dataset also has “rearrange_files” set to True, which takes all files in subfolders and puts them in the main dataset specific directory +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + example_dset_name = "Example" + example_dset_info = {} + + example_dset_info["url"] = "https://example-dataset.com/download" # not a real path + example_dset_info["subdirs"] = ["Example_subdir"] + example_dset_info["rearrange_files"] = True + + DatasetsManager.add(data_name=example_dset_name, info=example_dset_info, levels=["folder", "user"]) + +.. parsed-literal:: + + Added Example dataset to folder datasets.json + Added Example dataset to user datasets.json + +datasets.json should be available in execution folder after this +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + assert os.path.exists("./datasets.json") + dataset.available + +.. parsed-literal:: + + ['Example', 'WSe2', 'TaS2', 'Gd_W110'] + +This will remove the Example dataset from the user json file +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + DatasetsManager.remove(data_name=example_dset_name, levels=["user"]) + +.. parsed-literal:: + + Removed Example dataset from user datasets.json + +Adding dataset that already exists will give an error. Likewise, removing one that doesn’t exist +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + # This should give an error + DatasetsManager.add(data_name=example_dset_name, info=example_dset_info, levels=["folder"]) + +.. parsed-literal:: + + ValueError: Dataset Example already exists in folder datasets.json. + + +Now that dataset.json with Example exists in current dir, lets try to fetch it +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.get("Example") + +.. parsed-literal:: + + Using default data path for "Example": "/datasets/Example" + Created new directory at /datasets/Example + Download complete. + Extracting Example data... + + + 100%|██████████| 4/4 [00:00<00:00, 28.10file/s] + + Example data extracted successfully. + Removed Example.zip file. + Rearranging files in Example_subdir. + + + + 100%|██████████| 3/3 [00:00<00:00, 696.11file/s] + + File movement complete. + Rearranging complete. + +.. code:: python + + print(dataset.dir) + print(dataset.subdirs) + +.. parsed-literal:: + + /datasets/Example + [] + +lets download to another location +''''''''''''''''''''''''''''''''' + +.. code:: python + + dataset.get("Example", root_dir = "new_datasets", use_existing = False) + +.. parsed-literal.. parsed-literal:: + + Using specified data path for "Example": "/new_datasets/datasets/Example" + Created new directory at /new_datasets/datasets/Example + Download complete. + Extracting Example data... + + + 100%|██████████| 4/4 [00:00<00:00, 28.28file/s] + + Example data extracted successfully. + Removed Example.zip file. + Rearranging files in Example_subdir. + + + + 100%|██████████| 3/3 [00:00<00:00, 546.16file/s] + + File movement complete. + Rearranging complete. + +we can remove one instance +'''''''''''''''''''''''''' + +.. code:: python + + print(dataset.existing_data_paths) + path_to_remove = dataset.existing_data_paths[0] + +.. parsed-literal:: + + ['/new_datasets/datasets/Example', '/datasets/Example'] + +.. code:: python + + dataset.remove(data_name="Example", instance=path_to_remove) + +.. parsed-literal:: + + Removed /new_datasets/datasets/Example + +.. code:: python + + assert not os.path.exists(path_to_remove) + +.. code:: python + + print(dataset.existing_data_paths) + +.. parsed-literal:: + + ['/datasets/Example'] + +Default datasets.json +------------------------ + +.. literalinclude:: ../../sed/dataset/datasets.json + :language: json + +API +------------------------ +.. automodule:: sed.dataset.dataset + :members: + :undoc-members: diff --git a/sed/v0.1.9/_sources/sed/dfops.rst.txt b/sed/v0.1.9/_sources/sed/dfops.rst.txt new file mode 100644 index 0000000..63ff574 --- /dev/null +++ b/sed/v0.1.9/_sources/sed/dfops.rst.txt @@ -0,0 +1,5 @@ +Dataframe Operations +=================================================== +.. automodule:: sed.core.dfops + :members: + :undoc-members: diff --git a/sed/v0.1.9/_sources/sed/diagnostic.rst.txt b/sed/v0.1.9/_sources/sed/diagnostic.rst.txt new file mode 100644 index 0000000..b5abd74 --- /dev/null +++ b/sed/v0.1.9/_sources/sed/diagnostic.rst.txt @@ -0,0 +1,5 @@ +Diagnostics +=================================================== +.. automodule:: sed.diagnostics + :members: + :undoc-members: diff --git a/sed/v0.1.9/_sources/sed/io.rst.txt b/sed/v0.1.9/_sources/sed/io.rst.txt new file mode 100644 index 0000000..344df80 --- /dev/null +++ b/sed/v0.1.9/_sources/sed/io.rst.txt @@ -0,0 +1,5 @@ +IO +=================================================== +.. automodule:: sed.io + :members: + :undoc-members: \ No newline at end of file diff --git a/sed/v0.1.9/_sources/sed/loader.rst.txt b/sed/v0.1.9/_sources/sed/loader.rst.txt new file mode 100644 index 0000000..87fdebd --- /dev/null +++ b/sed/v0.1.9/_sources/sed/loader.rst.txt @@ -0,0 +1,55 @@ +Data loader +=================================================== + +.. _loader_interface: + +Loader Interface +################################################### +.. automodule:: sed.loader.loader_interface + :members: + :undoc-members: + +.. _base_loader: +Abstract BaseLoader +################################################### +.. automodule:: sed.loader.base.loader + :members: + :undoc-members: + +GenericLoader +################################################### +.. automodule:: sed.loader.generic.loader + :members: + :undoc-members: + +MpesLoader +################################################### +.. automodule:: sed.loader.mpes.loader + :members: + :undoc-members: + +FlashLoader +################################################### +.. automodule:: sed.loader.flash.loader + :members: + :undoc-members: + +.. automodule:: sed.loader.flash.metadata + :members: + :undoc-members: + +SXPLoader +################################################### +.. automodule:: sed.loader.sxp.loader + :members: + :undoc-members: + +Utilities +################################################### +.. automodule:: sed.loader.utils + :members: + :undoc-members: + +.. automodule:: sed.loader.mirrorutil + :members: + :undoc-members: diff --git a/sed/v0.1.9/_sources/sed/metadata.rst.txt b/sed/v0.1.9/_sources/sed/metadata.rst.txt new file mode 100644 index 0000000..dbb4bcb --- /dev/null +++ b/sed/v0.1.9/_sources/sed/metadata.rst.txt @@ -0,0 +1,5 @@ +Metadata +=================================================== +.. automodule:: sed.core.metadata + :members: + :undoc-members: diff --git a/sed/v0.1.9/_sources/user_guide/1_binning_fake_data.ipynb.txt b/sed/v0.1.9/_sources/user_guide/1_binning_fake_data.ipynb.txt new file mode 100644 index 0000000..2b8159c --- /dev/null +++ b/sed/v0.1.9/_sources/user_guide/1_binning_fake_data.ipynb.txt @@ -0,0 +1,206 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8ad4167a-e4e7-498d-909a-c04da9f177ed", + "metadata": { + "tags": [] + }, + "source": [ + "## Binning demonstration on locally generated fake data\n", + "In this example, we generate a table with random data simulating a single event dataset.\n", + "We showcase the binning method, first on a simple single table using the bin_partition method and then in the distributed mehthod bin_dataframe, using daks dataframes.\n", + "The first method is never really called directly, as it is simply the function called by the bin_dataframe on each partition of the dask dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fb045e17-fa89-4c11-9d51-7f06e80d96d5", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "import dask\n", + "import numpy as np\n", + "import pandas as pd\n", + "import dask.dataframe\n", + "\n", + "import matplotlib.pyplot as plt\n", + "\n", + "sys.path.append(\"../\")\n", + "from sed.binning import bin_partition, bin_dataframe" + ] + }, + { + "cell_type": "markdown", + "id": "42a6afaa-17dd-4637-ba75-a28c4ead1adf", + "metadata": {}, + "source": [ + "### Generate Fake Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2aa8df59-224a-46a2-bb77-0277ff504996", + "metadata": {}, + "outputs": [], + "source": [ + "n_pts = 100000\n", + "cols = [\"posx\", \"posy\", \"energy\"]\n", + "df = pd.DataFrame(np.random.randn(n_pts, len(cols)), columns=cols)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "6902fd56-1456-4da6-83a4-0f3f6b831eb6", + "metadata": {}, + "source": [ + "### Define the binning range" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7601cd7-cd51-40a9-8fc7-8b7d32ff15d0", + "metadata": {}, + "outputs": [], + "source": [ + "binAxes = [\"posx\", \"posy\", \"energy\"]\n", + "nBins = [120, 120, 120]\n", + "binRanges = [(-2, 2), (-2, 2), (-2, 2)]\n", + "coords = {ax: np.linspace(r[0], r[1], n) for ax, r, n in zip(binAxes, binRanges, nBins)}" + ] + }, + { + "cell_type": "markdown", + "id": "00054b5d-fc96-4959-b562-7cb8545a9535", + "metadata": {}, + "source": [ + "### Compute the binning along the pandas dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "758a0e95-7a03-4d44-9dae-e6bd2334554c", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "res = bin_partition(\n", + " part=df,\n", + " bins=nBins,\n", + " axes=binAxes,\n", + " ranges=binRanges,\n", + " hist_mode=\"numba\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4f2b55f-11b3-4456-abd6-b0865749df96", + "metadata": {}, + "outputs": [], + "source": [ + "fig, axs = plt.subplots(1, 3, figsize=(8, 2.5), constrained_layout=True)\n", + "for i in range(3):\n", + " axs[i].imshow(res.sum(i))" + ] + }, + { + "cell_type": "markdown", + "id": "e632dc1d-5eb5-4621-8bef-4438ce2c6a0c", + "metadata": {}, + "source": [ + "### Transform to dask dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ba0416b3-b4b6-4b18-8ed3-a76ab4889892", + "metadata": {}, + "outputs": [], + "source": [ + "ddf = dask.dataframe.from_pandas(df, npartitions=50)\n", + "ddf" + ] + }, + { + "cell_type": "markdown", + "id": "01066d40-010a-490b-9033-7339e5a21b26", + "metadata": {}, + "source": [ + "### Compute distributed binning on the partitioned dask dataframe\n", + "In this example, the small dataset does not give significant improvement over the pandas implementation, at least using this number of partitions.\n", + "A single partition would be faster (you can try...) but we use multiple for demonstration purpouses." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbed3261-187c-498d-8ee0-0c3a3c8a8c1e", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "res = bin_dataframe(\n", + " df=ddf,\n", + " bins=nBins,\n", + " axes=binAxes,\n", + " ranges=binRanges,\n", + " hist_mode=\"numba\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99d7d136-b677-4c16-bc8f-31ba8216579c", + "metadata": {}, + "outputs": [], + "source": [ + "fig, axs = plt.subplots(1, 3, figsize=(8, 2.5), constrained_layout=True)\n", + "for dim, ax in zip(binAxes, axs):\n", + " res.sum(dim).plot(ax=ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8adf386-669f-4b77-920f-6dfec7b637c9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "728003ee06929e5fa5ff815d1b96bf487266025e4b7440930c6bf4536d02d243" + }, + "kernelspec": { + "display_name": "python3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/sed/v0.1.9/_sources/user_guide/config.md.txt b/sed/v0.1.9/_sources/user_guide/config.md.txt new file mode 100644 index 0000000..581452d --- /dev/null +++ b/sed/v0.1.9/_sources/user_guide/config.md.txt @@ -0,0 +1,29 @@ +# Configuration + +The config module contains a mechanis to collect configuration parameters from various sources and configuration files, and to combine them in a hierachical manner into a single, consistent configuration dictionary. +It will load an (optional) provided config file, or alternatively use a passed python dictionary as initial config dictionary, and subsequently look for the following additional config files to load: + +* ``folder_config``: A config file of name :file:`sed_config.yaml` in the current working directory. This is mostly intended to pass calibration parameters of the workflow between different notebook instances. +* ``user_config``: A config file provided by the user, stored as :file:`.sed/config.yaml` in the current user's home directly. This is intended to give a user the option for individual configuration modifications of system settings. +* ``system_config``: A config file provided by the system administrator, stored as :file:`/etc/sed/config.yaml` on Linux-based systems, and :file:`%ALLUSERPROFILE%/sed/config.yaml` on Windows. This should provide all necessary default parameters for using the sed processor with a given setup. For an example for an mpes setup, see :ref:`example_config` +* ``default_config``: The default configuration shipped with the package. Typically, all parameters here should be overwritten by any of the other configuration files. + +The config mechanism returns the combined dictionary, and reports the loaded configuration files. In order to disable or overwrite any of the configuration files, they can be also given as optional parameters (path to a file, or python dictionary). + +## Default configuration settings + +```{literalinclude} ../../sed/config/default.yaml +:language: yaml +``` + +## Example configuration file for mpes (METIS momentum microscope at FHI-Berlin) + +```{literalinclude} ../../sed/config/mpes_example_config.yaml +:language: yaml +``` + +## Example configuration file for flash (HEXTOF momentum microscope at FLASH, Desy) + +```{literalinclude} ../../sed/config/flash_example_config.yaml +:language: yaml +``` diff --git a/sed/v0.1.9/_sources/user_guide/index.md.txt b/sed/v0.1.9/_sources/user_guide/index.md.txt new file mode 100644 index 0000000..9dfbe8d --- /dev/null +++ b/sed/v0.1.9/_sources/user_guide/index.md.txt @@ -0,0 +1,24 @@ +--- +myst: + html_meta: + "description lang=en": | + Documentation for beginner users. +--- +# User Guide + +```{toctree} +:caption: Installing SED +:maxdepth: 1 +installation +``` + +```{toctree} +:caption: Basic concepts +1_binning_fake_data +8_jittering_tutorial +``` + +```{toctree} +:caption: Advance +config +``` diff --git a/sed/v0.1.9/_sources/user_guide/installation.md.txt b/sed/v0.1.9/_sources/user_guide/installation.md.txt new file mode 100644 index 0000000..8c3f44d --- /dev/null +++ b/sed/v0.1.9/_sources/user_guide/installation.md.txt @@ -0,0 +1,74 @@ +# Installation + +```{attention} +Requires Python 3.9+ and pip installed. +``` + +- Create a new virtual environment using either venv, pyenv, conda, etc. See below for an example. + +```bash +python -m venv .sed-venv +``` + +- Activate your environment: + +```bash +# On macOS/Linux +source .sed-venv/bin/activate + +# On Windows +.sed-venv\Scripts\activate +``` + +- Install `sed`, distributed as `sed-processor` on PyPI: + +```bash +pip install sed-processor[all] +``` + +- If you do not use Jupyter Notebook or Jupyter Lab, you can skip the installing those dependencies: + +```bash +pip install sed-processor +``` + +```{note} +If you intend to work with Jupyter notebooks, it is helpful to install a Jupyter kernel for your environment. This can be done, once your environment is activated, by typing: +```bash +python -m ipykernel install --user --name=sed_kernel +``` + +# Development version + +```{attention} +Requires Git, Python 3.9+ and pip installed. +``` + +1. Clone the repository: + +```bash +git clone https://github.com/OpenCOMPES/sed.git +cd sed +``` + +2. Create and activate a virtual environment: + +```bash +# Create a virtual environment +python -m venv .sed-dev + +# Activate the virtual environment +# On macOS/Linux +source .sed-dev/bin/activate + +# On Windows +.sed-dev\Scripts\activate +``` + +3. Install the repository in editable mode with all dependencies: + +```bash +pip install -e .[all] +``` + +Now you have the development version of `sed` installed in your local environment. Feel free to make changes and submit pull requests. diff --git a/sed/v0.1.9/_sources/workflows/index.rst.txt b/sed/v0.1.9/_sources/workflows/index.rst.txt new file mode 100644 index 0000000..c0d630b --- /dev/null +++ b/sed/v0.1.9/_sources/workflows/index.rst.txt @@ -0,0 +1,8 @@ +====== +Workflows +====== + +.. toctree:: + :maxdepth: 1 + + 1_binning_fake_data diff --git a/sed/v0.1.9/_static/basic.css b/sed/v0.1.9/_static/basic.css new file mode 100644 index 0000000..2af6139 --- /dev/null +++ b/sed/v0.1.9/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 270px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/sed/v0.1.9/_static/doctools.js b/sed/v0.1.9/_static/doctools.js new file mode 100644 index 0000000..4d67807 --- /dev/null +++ b/sed/v0.1.9/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/sed/v0.1.9/_static/documentation_options.js b/sed/v0.1.9/_static/documentation_options.js new file mode 100644 index 0000000..ae55725 --- /dev/null +++ b/sed/v0.1.9/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.1.9', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/sed/v0.1.9/_static/file.png b/sed/v0.1.9/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/_static/language_data.js b/sed/v0.1.9/_static/language_data.js new file mode 100644 index 0000000..367b8ed --- /dev/null +++ b/sed/v0.1.9/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/sed/v0.1.9/_static/minus.png b/sed/v0.1.9/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/_static/nbsphinx-broken-thumbnail.svg b/sed/v0.1.9/_static/nbsphinx-broken-thumbnail.svg new file mode 100644 index 0000000..4919ca8 --- /dev/null +++ b/sed/v0.1.9/_static/nbsphinx-broken-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/sed/v0.1.9/_static/nbsphinx-code-cells.css b/sed/v0.1.9/_static/nbsphinx-code-cells.css new file mode 100644 index 0000000..a3fb27c --- /dev/null +++ b/sed/v0.1.9/_static/nbsphinx-code-cells.css @@ -0,0 +1,259 @@ +/* remove conflicting styling from Sphinx themes */ +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt *, +div.nbinput.container div.input_area pre, +div.nboutput.container div.output_area pre, +div.nbinput.container div.input_area .highlight, +div.nboutput.container div.output_area .highlight { + border: none; + padding: 0; + margin: 0; + box-shadow: none; +} + +div.nbinput.container > div[class*=highlight], +div.nboutput.container > div[class*=highlight] { + margin: 0; +} + +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt * { + background: none; +} + +div.nboutput.container div.output_area .highlight, +div.nboutput.container div.output_area pre { + background: unset; +} + +div.nboutput.container div.output_area div.highlight { + color: unset; /* override Pygments text color */ +} + +/* avoid gaps between output lines */ +div.nboutput.container div[class*=highlight] pre { + line-height: normal; +} + +/* input/output containers */ +div.nbinput.container, +div.nboutput.container { + display: -webkit-flex; + display: flex; + align-items: flex-start; + margin: 0; + width: 100%; +} +@media (max-width: 540px) { + div.nbinput.container, + div.nboutput.container { + flex-direction: column; + } +} + +/* input container */ +div.nbinput.container { + padding-top: 5px; +} + +/* last container */ +div.nblast.container { + padding-bottom: 5px; +} + +/* input prompt */ +div.nbinput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nbinput.container div.prompt pre > code { + color: #307FC1; +} + +/* output prompt */ +div.nboutput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nboutput.container div.prompt pre > code { + color: #BF5B3D; +} + +/* all prompts */ +div.nbinput.container div.prompt, +div.nboutput.container div.prompt { + width: 4.5ex; + padding-top: 5px; + position: relative; + user-select: none; +} + +div.nbinput.container div.prompt > div, +div.nboutput.container div.prompt > div { + position: absolute; + right: 0; + margin-right: 0.3ex; +} + +@media (max-width: 540px) { + div.nbinput.container div.prompt, + div.nboutput.container div.prompt { + width: unset; + text-align: left; + padding: 0.4em; + } + div.nboutput.container div.prompt.empty { + padding: 0; + } + + div.nbinput.container div.prompt > div, + div.nboutput.container div.prompt > div { + position: unset; + } +} + +/* disable scrollbars and line breaks on prompts */ +div.nbinput.container div.prompt pre, +div.nboutput.container div.prompt pre { + overflow: hidden; + white-space: pre; +} + +/* input/output area */ +div.nbinput.container div.input_area, +div.nboutput.container div.output_area { + -webkit-flex: 1; + flex: 1; + overflow: auto; +} +@media (max-width: 540px) { + div.nbinput.container div.input_area, + div.nboutput.container div.output_area { + width: 100%; + } +} + +/* input area */ +div.nbinput.container div.input_area { + border: 1px solid #e0e0e0; + border-radius: 2px; + /*background: #f5f5f5;*/ +} + +/* override MathJax center alignment in output cells */ +div.nboutput.container div[class*=MathJax] { + text-align: left !important; +} + +/* override sphinx.ext.imgmath center alignment in output cells */ +div.nboutput.container div.math p { + text-align: left; +} + +/* standard error */ +div.nboutput.container div.output_area.stderr { + background: #fdd; +} + +/* ANSI colors */ +.ansi-black-fg { color: #3E424D; } +.ansi-black-bg { background-color: #3E424D; } +.ansi-black-intense-fg { color: #282C36; } +.ansi-black-intense-bg { background-color: #282C36; } +.ansi-red-fg { color: #E75C58; } +.ansi-red-bg { background-color: #E75C58; } +.ansi-red-intense-fg { color: #B22B31; } +.ansi-red-intense-bg { background-color: #B22B31; } +.ansi-green-fg { color: #00A250; } +.ansi-green-bg { background-color: #00A250; } +.ansi-green-intense-fg { color: #007427; } +.ansi-green-intense-bg { background-color: #007427; } +.ansi-yellow-fg { color: #DDB62B; } +.ansi-yellow-bg { background-color: #DDB62B; } +.ansi-yellow-intense-fg { color: #B27D12; } +.ansi-yellow-intense-bg { background-color: #B27D12; } +.ansi-blue-fg { color: #208FFB; } +.ansi-blue-bg { background-color: #208FFB; } +.ansi-blue-intense-fg { color: #0065CA; } +.ansi-blue-intense-bg { background-color: #0065CA; } +.ansi-magenta-fg { color: #D160C4; } +.ansi-magenta-bg { background-color: #D160C4; } +.ansi-magenta-intense-fg { color: #A03196; } +.ansi-magenta-intense-bg { background-color: #A03196; } +.ansi-cyan-fg { color: #60C6C8; } +.ansi-cyan-bg { background-color: #60C6C8; } +.ansi-cyan-intense-fg { color: #258F8F; } +.ansi-cyan-intense-bg { background-color: #258F8F; } +.ansi-white-fg { color: #C5C1B4; } +.ansi-white-bg { background-color: #C5C1B4; } +.ansi-white-intense-fg { color: #A1A6B2; } +.ansi-white-intense-bg { background-color: #A1A6B2; } + +.ansi-default-inverse-fg { color: #FFFFFF; } +.ansi-default-inverse-bg { background-color: #000000; } + +.ansi-bold { font-weight: bold; } +.ansi-underline { text-decoration: underline; } + + +div.nbinput.container div.input_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight].math, +div.nboutput.container div.output_area.rendered_html, +div.nboutput.container div.output_area > div.output_javascript, +div.nboutput.container div.output_area:not(.rendered_html) > img{ + padding: 5px; + margin: 0; +} + +/* fix copybtn overflow problem in chromium (needed for 'sphinx_copybutton') */ +div.nbinput.container div.input_area > div[class^='highlight'], +div.nboutput.container div.output_area > div[class^='highlight']{ + overflow-y: hidden; +} + +/* hide copy button on prompts for 'sphinx_copybutton' extension ... */ +.prompt .copybtn, +/* ... and 'sphinx_immaterial' theme */ +.prompt .md-clipboard.md-icon { + display: none; +} + +/* Some additional styling taken form the Jupyter notebook CSS */ +.jp-RenderedHTMLCommon table, +div.rendered_html table { + border: none; + border-collapse: collapse; + border-spacing: 0; + color: black; + font-size: 12px; + table-layout: fixed; +} +.jp-RenderedHTMLCommon thead, +div.rendered_html thead { + border-bottom: 1px solid black; + vertical-align: bottom; +} +.jp-RenderedHTMLCommon tr, +.jp-RenderedHTMLCommon th, +.jp-RenderedHTMLCommon td, +div.rendered_html tr, +div.rendered_html th, +div.rendered_html td { + text-align: right; + vertical-align: middle; + padding: 0.5em 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; +} +.jp-RenderedHTMLCommon th, +div.rendered_html th { + font-weight: bold; +} +.jp-RenderedHTMLCommon tbody tr:nth-child(odd), +div.rendered_html tbody tr:nth-child(odd) { + background: #f5f5f5; +} +.jp-RenderedHTMLCommon tbody tr:hover, +div.rendered_html tbody tr:hover { + background: rgba(66, 165, 245, 0.2); +} + diff --git a/sed/v0.1.9/_static/nbsphinx-gallery.css b/sed/v0.1.9/_static/nbsphinx-gallery.css new file mode 100644 index 0000000..365c27a --- /dev/null +++ b/sed/v0.1.9/_static/nbsphinx-gallery.css @@ -0,0 +1,31 @@ +.nbsphinx-gallery { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); + gap: 5px; + margin-top: 1em; + margin-bottom: 1em; +} + +.nbsphinx-gallery > a { + padding: 5px; + border: 1px dotted currentColor; + border-radius: 2px; + text-align: center; +} + +.nbsphinx-gallery > a:hover { + border-style: solid; +} + +.nbsphinx-gallery img { + max-width: 100%; + max-height: 100%; +} + +.nbsphinx-gallery > a > div:first-child { + display: flex; + align-items: start; + justify-content: center; + height: 120px; + margin-bottom: 5px; +} diff --git a/sed/v0.1.9/_static/nbsphinx-no-thumbnail.svg b/sed/v0.1.9/_static/nbsphinx-no-thumbnail.svg new file mode 100644 index 0000000..9dca758 --- /dev/null +++ b/sed/v0.1.9/_static/nbsphinx-no-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/sed/v0.1.9/_static/plus.png b/sed/v0.1.9/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/sed/v0.1.9/_static/pygments.css b/sed/v0.1.9/_static/pygments.css new file mode 100644 index 0000000..012e6a0 --- /dev/null +++ b/sed/v0.1.9/_static/pygments.css @@ -0,0 +1,152 @@ +html[data-theme="light"] .highlight pre { line-height: 125%; } +html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight .hll { background-color: #fae4c2 } +html[data-theme="light"] .highlight { background: #fefefe; color: #080808 } +html[data-theme="light"] .highlight .c { color: #515151 } /* Comment */ +html[data-theme="light"] .highlight .err { color: #a12236 } /* Error */ +html[data-theme="light"] .highlight .k { color: #6730c5 } /* Keyword */ +html[data-theme="light"] .highlight .l { color: #7f4707 } /* Literal */ +html[data-theme="light"] .highlight .n { color: #080808 } /* Name */ +html[data-theme="light"] .highlight .o { color: #00622f } /* Operator */ +html[data-theme="light"] .highlight .p { color: #080808 } /* Punctuation */ +html[data-theme="light"] .highlight .ch { color: #515151 } /* Comment.Hashbang */ +html[data-theme="light"] .highlight .cm { color: #515151 } /* Comment.Multiline */ +html[data-theme="light"] .highlight .cp { color: #515151 } /* Comment.Preproc */ +html[data-theme="light"] .highlight .cpf { color: #515151 } /* Comment.PreprocFile */ +html[data-theme="light"] .highlight .c1 { color: #515151 } /* Comment.Single */ +html[data-theme="light"] .highlight .cs { color: #515151 } /* Comment.Special */ +html[data-theme="light"] .highlight .gd { color: #005b82 } /* Generic.Deleted */ +html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="light"] .highlight .gh { color: #005b82 } /* Generic.Heading */ +html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="light"] .highlight .gu { color: #005b82 } /* Generic.Subheading */ +html[data-theme="light"] .highlight .kc { color: #6730c5 } /* Keyword.Constant */ +html[data-theme="light"] .highlight .kd { color: #6730c5 } /* Keyword.Declaration */ +html[data-theme="light"] .highlight .kn { color: #6730c5 } /* Keyword.Namespace */ +html[data-theme="light"] .highlight .kp { color: #6730c5 } /* Keyword.Pseudo */ +html[data-theme="light"] .highlight .kr { color: #6730c5 } /* Keyword.Reserved */ +html[data-theme="light"] .highlight .kt { color: #7f4707 } /* Keyword.Type */ +html[data-theme="light"] .highlight .ld { color: #7f4707 } /* Literal.Date */ +html[data-theme="light"] .highlight .m { color: #7f4707 } /* Literal.Number */ +html[data-theme="light"] .highlight .s { color: #00622f } /* Literal.String */ +html[data-theme="light"] .highlight .na { color: #912583 } /* Name.Attribute */ +html[data-theme="light"] .highlight .nb { color: #7f4707 } /* Name.Builtin */ +html[data-theme="light"] .highlight .nc { color: #005b82 } /* Name.Class */ +html[data-theme="light"] .highlight .no { color: #005b82 } /* Name.Constant */ +html[data-theme="light"] .highlight .nd { color: #7f4707 } /* Name.Decorator */ +html[data-theme="light"] .highlight .ni { color: #00622f } /* Name.Entity */ +html[data-theme="light"] .highlight .ne { color: #6730c5 } /* Name.Exception */ +html[data-theme="light"] .highlight .nf { color: #005b82 } /* Name.Function */ +html[data-theme="light"] .highlight .nl { color: #7f4707 } /* Name.Label */ +html[data-theme="light"] .highlight .nn { color: #080808 } /* Name.Namespace */ +html[data-theme="light"] .highlight .nx { color: #080808 } /* Name.Other */ +html[data-theme="light"] .highlight .py { color: #005b82 } /* Name.Property */ +html[data-theme="light"] .highlight .nt { color: #005b82 } /* Name.Tag */ +html[data-theme="light"] .highlight .nv { color: #a12236 } /* Name.Variable */ +html[data-theme="light"] .highlight .ow { color: #6730c5 } /* Operator.Word */ +html[data-theme="light"] .highlight .pm { color: #080808 } /* Punctuation.Marker */ +html[data-theme="light"] .highlight .w { color: #080808 } /* Text.Whitespace */ +html[data-theme="light"] .highlight .mb { color: #7f4707 } /* Literal.Number.Bin */ +html[data-theme="light"] .highlight .mf { color: #7f4707 } /* Literal.Number.Float */ +html[data-theme="light"] .highlight .mh { color: #7f4707 } /* Literal.Number.Hex */ +html[data-theme="light"] .highlight .mi { color: #7f4707 } /* Literal.Number.Integer */ +html[data-theme="light"] .highlight .mo { color: #7f4707 } /* Literal.Number.Oct */ +html[data-theme="light"] .highlight .sa { color: #00622f } /* Literal.String.Affix */ +html[data-theme="light"] .highlight .sb { color: #00622f } /* Literal.String.Backtick */ +html[data-theme="light"] .highlight .sc { color: #00622f } /* Literal.String.Char */ +html[data-theme="light"] .highlight .dl { color: #00622f } /* Literal.String.Delimiter */ +html[data-theme="light"] .highlight .sd { color: #00622f } /* Literal.String.Doc */ +html[data-theme="light"] .highlight .s2 { color: #00622f } /* Literal.String.Double */ +html[data-theme="light"] .highlight .se { color: #00622f } /* Literal.String.Escape */ +html[data-theme="light"] .highlight .sh { color: #00622f } /* Literal.String.Heredoc */ +html[data-theme="light"] .highlight .si { color: #00622f } /* Literal.String.Interpol */ +html[data-theme="light"] .highlight .sx { color: #00622f } /* Literal.String.Other */ +html[data-theme="light"] .highlight .sr { color: #a12236 } /* Literal.String.Regex */ +html[data-theme="light"] .highlight .s1 { color: #00622f } /* Literal.String.Single */ +html[data-theme="light"] .highlight .ss { color: #005b82 } /* Literal.String.Symbol */ +html[data-theme="light"] .highlight .bp { color: #7f4707 } /* Name.Builtin.Pseudo */ +html[data-theme="light"] .highlight .fm { color: #005b82 } /* Name.Function.Magic */ +html[data-theme="light"] .highlight .vc { color: #a12236 } /* Name.Variable.Class */ +html[data-theme="light"] .highlight .vg { color: #a12236 } /* Name.Variable.Global */ +html[data-theme="light"] .highlight .vi { color: #a12236 } /* Name.Variable.Instance */ +html[data-theme="light"] .highlight .vm { color: #7f4707 } /* Name.Variable.Magic */ +html[data-theme="light"] .highlight .il { color: #7f4707 } /* Literal.Number.Integer.Long */ +html[data-theme="dark"] .highlight pre { line-height: 125%; } +html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e } +html[data-theme="dark"] .highlight { background: #2b2b2b; color: #f8f8f2 } +html[data-theme="dark"] .highlight .c { color: #ffd900 } /* Comment */ +html[data-theme="dark"] .highlight .err { color: #ffa07a } /* Error */ +html[data-theme="dark"] .highlight .k { color: #dcc6e0 } /* Keyword */ +html[data-theme="dark"] .highlight .l { color: #ffd900 } /* Literal */ +html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */ +html[data-theme="dark"] .highlight .o { color: #abe338 } /* Operator */ +html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */ +html[data-theme="dark"] .highlight .ch { color: #ffd900 } /* Comment.Hashbang */ +html[data-theme="dark"] .highlight .cm { color: #ffd900 } /* Comment.Multiline */ +html[data-theme="dark"] .highlight .cp { color: #ffd900 } /* Comment.Preproc */ +html[data-theme="dark"] .highlight .cpf { color: #ffd900 } /* Comment.PreprocFile */ +html[data-theme="dark"] .highlight .c1 { color: #ffd900 } /* Comment.Single */ +html[data-theme="dark"] .highlight .cs { color: #ffd900 } /* Comment.Special */ +html[data-theme="dark"] .highlight .gd { color: #00e0e0 } /* Generic.Deleted */ +html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="dark"] .highlight .gh { color: #00e0e0 } /* Generic.Heading */ +html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="dark"] .highlight .gu { color: #00e0e0 } /* Generic.Subheading */ +html[data-theme="dark"] .highlight .kc { color: #dcc6e0 } /* Keyword.Constant */ +html[data-theme="dark"] .highlight .kd { color: #dcc6e0 } /* Keyword.Declaration */ +html[data-theme="dark"] .highlight .kn { color: #dcc6e0 } /* Keyword.Namespace */ +html[data-theme="dark"] .highlight .kp { color: #dcc6e0 } /* Keyword.Pseudo */ +html[data-theme="dark"] .highlight .kr { color: #dcc6e0 } /* Keyword.Reserved */ +html[data-theme="dark"] .highlight .kt { color: #ffd900 } /* Keyword.Type */ +html[data-theme="dark"] .highlight .ld { color: #ffd900 } /* Literal.Date */ +html[data-theme="dark"] .highlight .m { color: #ffd900 } /* Literal.Number */ +html[data-theme="dark"] .highlight .s { color: #abe338 } /* Literal.String */ +html[data-theme="dark"] .highlight .na { color: #ffd900 } /* Name.Attribute */ +html[data-theme="dark"] .highlight .nb { color: #ffd900 } /* Name.Builtin */ +html[data-theme="dark"] .highlight .nc { color: #00e0e0 } /* Name.Class */ +html[data-theme="dark"] .highlight .no { color: #00e0e0 } /* Name.Constant */ +html[data-theme="dark"] .highlight .nd { color: #ffd900 } /* Name.Decorator */ +html[data-theme="dark"] .highlight .ni { color: #abe338 } /* Name.Entity */ +html[data-theme="dark"] .highlight .ne { color: #dcc6e0 } /* Name.Exception */ +html[data-theme="dark"] .highlight .nf { color: #00e0e0 } /* Name.Function */ +html[data-theme="dark"] .highlight .nl { color: #ffd900 } /* Name.Label */ +html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +html[data-theme="dark"] .highlight .nx { color: #f8f8f2 } /* Name.Other */ +html[data-theme="dark"] .highlight .py { color: #00e0e0 } /* Name.Property */ +html[data-theme="dark"] .highlight .nt { color: #00e0e0 } /* Name.Tag */ +html[data-theme="dark"] .highlight .nv { color: #ffa07a } /* Name.Variable */ +html[data-theme="dark"] .highlight .ow { color: #dcc6e0 } /* Operator.Word */ +html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */ +html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +html[data-theme="dark"] .highlight .mb { color: #ffd900 } /* Literal.Number.Bin */ +html[data-theme="dark"] .highlight .mf { color: #ffd900 } /* Literal.Number.Float */ +html[data-theme="dark"] .highlight .mh { color: #ffd900 } /* Literal.Number.Hex */ +html[data-theme="dark"] .highlight .mi { color: #ffd900 } /* Literal.Number.Integer */ +html[data-theme="dark"] .highlight .mo { color: #ffd900 } /* Literal.Number.Oct */ +html[data-theme="dark"] .highlight .sa { color: #abe338 } /* Literal.String.Affix */ +html[data-theme="dark"] .highlight .sb { color: #abe338 } /* Literal.String.Backtick */ +html[data-theme="dark"] .highlight .sc { color: #abe338 } /* Literal.String.Char */ +html[data-theme="dark"] .highlight .dl { color: #abe338 } /* Literal.String.Delimiter */ +html[data-theme="dark"] .highlight .sd { color: #abe338 } /* Literal.String.Doc */ +html[data-theme="dark"] .highlight .s2 { color: #abe338 } /* Literal.String.Double */ +html[data-theme="dark"] .highlight .se { color: #abe338 } /* Literal.String.Escape */ +html[data-theme="dark"] .highlight .sh { color: #abe338 } /* Literal.String.Heredoc */ +html[data-theme="dark"] .highlight .si { color: #abe338 } /* Literal.String.Interpol */ +html[data-theme="dark"] .highlight .sx { color: #abe338 } /* Literal.String.Other */ +html[data-theme="dark"] .highlight .sr { color: #ffa07a } /* Literal.String.Regex */ +html[data-theme="dark"] .highlight .s1 { color: #abe338 } /* Literal.String.Single */ +html[data-theme="dark"] .highlight .ss { color: #00e0e0 } /* Literal.String.Symbol */ +html[data-theme="dark"] .highlight .bp { color: #ffd900 } /* Name.Builtin.Pseudo */ +html[data-theme="dark"] .highlight .fm { color: #00e0e0 } /* Name.Function.Magic */ +html[data-theme="dark"] .highlight .vc { color: #ffa07a } /* Name.Variable.Class */ +html[data-theme="dark"] .highlight .vg { color: #ffa07a } /* Name.Variable.Global */ +html[data-theme="dark"] .highlight .vi { color: #ffa07a } /* Name.Variable.Instance */ +html[data-theme="dark"] .highlight .vm { color: #ffd900 } /* Name.Variable.Magic */ +html[data-theme="dark"] .highlight .il { color: #ffd900 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/sed/v0.1.9/_static/scripts/bootstrap.js b/sed/v0.1.9/_static/scripts/bootstrap.js new file mode 100644 index 0000000..c8178de --- /dev/null +++ b/sed/v0.1.9/_static/scripts/bootstrap.js @@ -0,0 +1,3 @@ +/*! For license information please see bootstrap.js.LICENSE.txt */ +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{afterMain:()=>E,afterRead:()=>v,afterWrite:()=>C,applyStyles:()=>$,arrow:()=>J,auto:()=>a,basePlacements:()=>l,beforeMain:()=>y,beforeRead:()=>_,beforeWrite:()=>A,bottom:()=>s,clippingParents:()=>d,computeStyles:()=>it,createPopper:()=>Dt,createPopperBase:()=>St,createPopperLite:()=>$t,detectOverflow:()=>_t,end:()=>h,eventListeners:()=>st,flip:()=>bt,hide:()=>wt,left:()=>r,main:()=>w,modifierPhases:()=>O,offset:()=>Et,placements:()=>g,popper:()=>f,popperGenerator:()=>Lt,popperOffsets:()=>At,preventOverflow:()=>Tt,read:()=>b,reference:()=>p,right:()=>o,start:()=>c,top:()=>n,variationPlacements:()=>m,viewport:()=>u,write:()=>T});var i={};t.r(i),t.d(i,{Alert:()=>Oe,Button:()=>ke,Carousel:()=>li,Collapse:()=>Ei,Dropdown:()=>Ki,Modal:()=>Ln,Offcanvas:()=>Kn,Popover:()=>bs,ScrollSpy:()=>Ls,Tab:()=>Js,Toast:()=>po,Tooltip:()=>fs});var n="top",s="bottom",o="right",r="left",a="auto",l=[n,s,o,r],c="start",h="end",d="clippingParents",u="viewport",f="popper",p="reference",m=l.reduce((function(t,e){return t.concat([e+"-"+c,e+"-"+h])}),[]),g=[].concat(l,[a]).reduce((function(t,e){return t.concat([e,e+"-"+c,e+"-"+h])}),[]),_="beforeRead",b="read",v="afterRead",y="beforeMain",w="main",E="afterMain",A="beforeWrite",T="write",C="afterWrite",O=[_,b,v,y,w,E,A,T,C];function x(t){return t?(t.nodeName||"").toLowerCase():null}function k(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function L(t){return t instanceof k(t).Element||t instanceof Element}function S(t){return t instanceof k(t).HTMLElement||t instanceof HTMLElement}function D(t){return"undefined"!=typeof ShadowRoot&&(t instanceof k(t).ShadowRoot||t instanceof ShadowRoot)}const $={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];S(s)&&x(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});S(n)&&x(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function I(t){return t.split("-")[0]}var N=Math.max,P=Math.min,M=Math.round;function j(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function F(){return!/^((?!chrome|android).)*safari/i.test(j())}function H(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&S(t)&&(s=t.offsetWidth>0&&M(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&M(n.height)/t.offsetHeight||1);var r=(L(t)?k(t):window).visualViewport,a=!F()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function B(t){var e=H(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function W(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&D(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function z(t){return k(t).getComputedStyle(t)}function R(t){return["table","td","th"].indexOf(x(t))>=0}function q(t){return((L(t)?t.ownerDocument:t.document)||window.document).documentElement}function V(t){return"html"===x(t)?t:t.assignedSlot||t.parentNode||(D(t)?t.host:null)||q(t)}function Y(t){return S(t)&&"fixed"!==z(t).position?t.offsetParent:null}function K(t){for(var e=k(t),i=Y(t);i&&R(i)&&"static"===z(i).position;)i=Y(i);return i&&("html"===x(i)||"body"===x(i)&&"static"===z(i).position)?e:i||function(t){var e=/firefox/i.test(j());if(/Trident/i.test(j())&&S(t)&&"fixed"===z(t).position)return null;var i=V(t);for(D(i)&&(i=i.host);S(i)&&["html","body"].indexOf(x(i))<0;){var n=z(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Q(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function X(t,e,i){return N(t,P(e,i))}function U(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function G(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const J={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,a=t.name,c=t.options,h=i.elements.arrow,d=i.modifiersData.popperOffsets,u=I(i.placement),f=Q(u),p=[r,o].indexOf(u)>=0?"height":"width";if(h&&d){var m=function(t,e){return U("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:G(t,l))}(c.padding,i),g=B(h),_="y"===f?n:r,b="y"===f?s:o,v=i.rects.reference[p]+i.rects.reference[f]-d[f]-i.rects.popper[p],y=d[f]-i.rects.reference[f],w=K(h),E=w?"y"===f?w.clientHeight||0:w.clientWidth||0:0,A=v/2-y/2,T=m[_],C=E-g[p]-m[b],O=E/2-g[p]/2+A,x=X(T,O,C),k=f;i.modifiersData[a]=((e={})[k]=x,e.centerOffset=x-O,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&W(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Z(t){return t.split("-")[1]}var tt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(t){var e,i=t.popper,a=t.popperRect,l=t.placement,c=t.variation,d=t.offsets,u=t.position,f=t.gpuAcceleration,p=t.adaptive,m=t.roundOffsets,g=t.isFixed,_=d.x,b=void 0===_?0:_,v=d.y,y=void 0===v?0:v,w="function"==typeof m?m({x:b,y}):{x:b,y};b=w.x,y=w.y;var E=d.hasOwnProperty("x"),A=d.hasOwnProperty("y"),T=r,C=n,O=window;if(p){var x=K(i),L="clientHeight",S="clientWidth";x===k(i)&&"static"!==z(x=q(i)).position&&"absolute"===u&&(L="scrollHeight",S="scrollWidth"),(l===n||(l===r||l===o)&&c===h)&&(C=s,y-=(g&&x===O&&O.visualViewport?O.visualViewport.height:x[L])-a.height,y*=f?1:-1),l!==r&&(l!==n&&l!==s||c!==h)||(T=o,b-=(g&&x===O&&O.visualViewport?O.visualViewport.width:x[S])-a.width,b*=f?1:-1)}var D,$=Object.assign({position:u},p&&tt),I=!0===m?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:M(i*s)/s||0,y:M(n*s)/s||0}}({x:b,y},k(i)):{x:b,y};return b=I.x,y=I.y,f?Object.assign({},$,((D={})[C]=A?"0":"",D[T]=E?"0":"",D.transform=(O.devicePixelRatio||1)<=1?"translate("+b+"px, "+y+"px)":"translate3d("+b+"px, "+y+"px, 0)",D)):Object.assign({},$,((e={})[C]=A?y+"px":"",e[T]=E?b+"px":"",e.transform="",e))}const it={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:I(e.placement),variation:Z(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,et(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,et(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var nt={passive:!0};const st={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=k(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,nt)})),a&&l.addEventListener("resize",i.update,nt),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,nt)})),a&&l.removeEventListener("resize",i.update,nt)}},data:{}};var ot={left:"right",right:"left",bottom:"top",top:"bottom"};function rt(t){return t.replace(/left|right|bottom|top/g,(function(t){return ot[t]}))}var at={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,(function(t){return at[t]}))}function ct(t){var e=k(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ht(t){return H(q(t)).left+ct(t).scrollLeft}function dt(t){var e=z(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ut(t){return["html","body","#document"].indexOf(x(t))>=0?t.ownerDocument.body:S(t)&&dt(t)?t:ut(V(t))}function ft(t,e){var i;void 0===e&&(e=[]);var n=ut(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=k(n),r=s?[o].concat(o.visualViewport||[],dt(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(ft(V(r)))}function pt(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function mt(t,e,i){return e===u?pt(function(t,e){var i=k(t),n=q(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=F();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+ht(t),y:l}}(t,i)):L(e)?function(t,e){var i=H(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):pt(function(t){var e,i=q(t),n=ct(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=N(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=N(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ht(t),l=-n.scrollTop;return"rtl"===z(s||i).direction&&(a+=N(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(q(t)))}function gt(t){var e,i=t.reference,a=t.element,l=t.placement,d=l?I(l):null,u=l?Z(l):null,f=i.x+i.width/2-a.width/2,p=i.y+i.height/2-a.height/2;switch(d){case n:e={x:f,y:i.y-a.height};break;case s:e={x:f,y:i.y+i.height};break;case o:e={x:i.x+i.width,y:p};break;case r:e={x:i.x-a.width,y:p};break;default:e={x:i.x,y:i.y}}var m=d?Q(d):null;if(null!=m){var g="y"===m?"height":"width";switch(u){case c:e[m]=e[m]-(i[g]/2-a[g]/2);break;case h:e[m]=e[m]+(i[g]/2-a[g]/2)}}return e}function _t(t,e){void 0===e&&(e={});var i=e,r=i.placement,a=void 0===r?t.placement:r,c=i.strategy,h=void 0===c?t.strategy:c,m=i.boundary,g=void 0===m?d:m,_=i.rootBoundary,b=void 0===_?u:_,v=i.elementContext,y=void 0===v?f:v,w=i.altBoundary,E=void 0!==w&&w,A=i.padding,T=void 0===A?0:A,C=U("number"!=typeof T?T:G(T,l)),O=y===f?p:f,k=t.rects.popper,D=t.elements[E?O:y],$=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=ft(V(t)),i=["absolute","fixed"].indexOf(z(t).position)>=0&&S(t)?K(t):t;return L(i)?e.filter((function(t){return L(t)&&W(t,i)&&"body"!==x(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=mt(t,i,n);return e.top=N(s.top,e.top),e.right=P(s.right,e.right),e.bottom=P(s.bottom,e.bottom),e.left=N(s.left,e.left),e}),mt(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(L(D)?D:D.contextElement||q(t.elements.popper),g,b,h),I=H(t.elements.reference),M=gt({reference:I,element:k,strategy:"absolute",placement:a}),j=pt(Object.assign({},k,M)),F=y===f?j:I,B={top:$.top-F.top+C.top,bottom:F.bottom-$.bottom+C.bottom,left:$.left-F.left+C.left,right:F.right-$.right+C.right},R=t.modifiersData.offset;if(y===f&&R){var Y=R[a];Object.keys(B).forEach((function(t){var e=[o,s].indexOf(t)>=0?1:-1,i=[n,s].indexOf(t)>=0?"y":"x";B[t]+=Y[i]*e}))}return B}const bt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,h=t.name;if(!e.modifiersData[h]._skip){for(var d=i.mainAxis,u=void 0===d||d,f=i.altAxis,p=void 0===f||f,_=i.fallbackPlacements,b=i.padding,v=i.boundary,y=i.rootBoundary,w=i.altBoundary,E=i.flipVariations,A=void 0===E||E,T=i.allowedAutoPlacements,C=e.options.placement,O=I(C),x=_||(O!==C&&A?function(t){if(I(t)===a)return[];var e=rt(t);return[lt(t),e,lt(e)]}(C):[rt(C)]),k=[C].concat(x).reduce((function(t,i){return t.concat(I(i)===a?function(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,c=i.allowedAutoPlacements,h=void 0===c?g:c,d=Z(n),u=d?a?m:m.filter((function(t){return Z(t)===d})):l,f=u.filter((function(t){return h.indexOf(t)>=0}));0===f.length&&(f=u);var p=f.reduce((function(e,i){return e[i]=_t(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[I(i)],e}),{});return Object.keys(p).sort((function(t,e){return p[t]-p[e]}))}(e,{placement:i,boundary:v,rootBoundary:y,padding:b,flipVariations:A,allowedAutoPlacements:T}):i)}),[]),L=e.rects.reference,S=e.rects.popper,D=new Map,$=!0,N=k[0],P=0;P=0,B=H?"width":"height",W=_t(e,{placement:M,boundary:v,rootBoundary:y,altBoundary:w,padding:b}),z=H?F?o:r:F?s:n;L[B]>S[B]&&(z=rt(z));var R=rt(z),q=[];if(u&&q.push(W[j]<=0),p&&q.push(W[z]<=0,W[R]<=0),q.every((function(t){return t}))){N=M,$=!1;break}D.set(M,q)}if($)for(var V=function(t){var e=k.find((function(e){var i=D.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return N=e,"break"},Y=A?3:1;Y>0&&"break"!==V(Y);Y--);e.placement!==N&&(e.modifiersData[h]._skip=!0,e.placement=N,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function vt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function yt(t){return[n,o,s,r].some((function(e){return t[e]>=0}))}const wt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=_t(e,{elementContext:"reference"}),a=_t(e,{altBoundary:!0}),l=vt(r,n),c=vt(a,s,o),h=yt(l),d=yt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Et={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,s=t.name,a=i.offset,l=void 0===a?[0,0]:a,c=g.reduce((function(t,i){return t[i]=function(t,e,i){var s=I(t),a=[r,n].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},e,{placement:t})):i,c=l[0],h=l[1];return c=c||0,h=(h||0)*a,[r,o].indexOf(s)>=0?{x:h,y:c}:{x:c,y:h}}(i,e.rects,l),t}),{}),h=c[e.placement],d=h.x,u=h.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=d,e.modifiersData.popperOffsets.y+=u),e.modifiersData[s]=c}},At={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=gt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Tt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,a=t.name,l=i.mainAxis,h=void 0===l||l,d=i.altAxis,u=void 0!==d&&d,f=i.boundary,p=i.rootBoundary,m=i.altBoundary,g=i.padding,_=i.tether,b=void 0===_||_,v=i.tetherOffset,y=void 0===v?0:v,w=_t(e,{boundary:f,rootBoundary:p,padding:g,altBoundary:m}),E=I(e.placement),A=Z(e.placement),T=!A,C=Q(E),O="x"===C?"y":"x",x=e.modifiersData.popperOffsets,k=e.rects.reference,L=e.rects.popper,S="function"==typeof y?y(Object.assign({},e.rects,{placement:e.placement})):y,D="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),$=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,M={x:0,y:0};if(x){if(h){var j,F="y"===C?n:r,H="y"===C?s:o,W="y"===C?"height":"width",z=x[C],R=z+w[F],q=z-w[H],V=b?-L[W]/2:0,Y=A===c?k[W]:L[W],U=A===c?-L[W]:-k[W],G=e.elements.arrow,J=b&&G?B(G):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[F],it=tt[H],nt=X(0,k[W],J[W]),st=T?k[W]/2-V-nt-et-D.mainAxis:Y-nt-et-D.mainAxis,ot=T?-k[W]/2+V+nt+it+D.mainAxis:U+nt+it+D.mainAxis,rt=e.elements.arrow&&K(e.elements.arrow),at=rt?"y"===C?rt.clientTop||0:rt.clientLeft||0:0,lt=null!=(j=null==$?void 0:$[C])?j:0,ct=z+ot-lt,ht=X(b?P(R,z+st-lt-at):R,z,b?N(q,ct):q);x[C]=ht,M[C]=ht-z}if(u){var dt,ut="x"===C?n:r,ft="x"===C?s:o,pt=x[O],mt="y"===O?"height":"width",gt=pt+w[ut],bt=pt-w[ft],vt=-1!==[n,r].indexOf(E),yt=null!=(dt=null==$?void 0:$[O])?dt:0,wt=vt?gt:pt-k[mt]-L[mt]-yt+D.altAxis,Et=vt?pt+k[mt]+L[mt]-yt-D.altAxis:bt,At=b&&vt?function(t,e,i){var n=X(t,e,i);return n>i?i:n}(wt,pt,Et):X(b?wt:gt,pt,b?Et:bt);x[O]=At,M[O]=At-pt}e.modifiersData[a]=M}},requiresIfExists:["offset"]};function Ct(t,e,i){void 0===i&&(i=!1);var n,s,o=S(e),r=S(e)&&function(t){var e=t.getBoundingClientRect(),i=M(e.width)/t.offsetWidth||1,n=M(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=q(e),l=H(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==x(e)||dt(a))&&(c=(n=e)!==k(n)&&S(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:ct(n)),S(e)?((h=H(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=ht(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function Ot(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var xt={placement:"bottom",modifiers:[],strategy:"absolute"};function kt(){for(var t=arguments.length,e=new Array(t),i=0;iIt.has(t)&&It.get(t).get(e)||null,remove(t,e){if(!It.has(t))return;const i=It.get(t);i.delete(e),0===i.size&&It.delete(t)}},Pt="transitionend",Mt=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),jt=t=>{t.dispatchEvent(new Event(Pt))},Ft=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Ft(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(Mt(t)):null,Bt=t=>{if(!Ft(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},Wt=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),zt=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?zt(t.parentNode):null},Rt=()=>{},qt=t=>{t.offsetHeight},Vt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Yt=[],Kt=()=>"rtl"===document.documentElement.dir,Qt=t=>{var e;e=()=>{const e=Vt();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(Yt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Yt)t()})),Yt.push(e)):e()},Xt=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,Ut=(t,e,i=!0)=>{if(!i)return void Xt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const o=({target:i})=>{i===e&&(s=!0,e.removeEventListener(Pt,o),Xt(t))};e.addEventListener(Pt,o),setTimeout((()=>{s||jt(e)}),n)},Gt=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},Jt=/[^.]*(?=\..*)\.|.*/,Zt=/\..*/,te=/::\d+$/,ee={};let ie=1;const ne={mouseenter:"mouseover",mouseleave:"mouseout"},se=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function oe(t,e){return e&&`${e}::${ie++}`||t.uidEvent||ie++}function re(t){const e=oe(t);return t.uidEvent=e,ee[e]=ee[e]||{},ee[e]}function ae(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function le(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=ue(t);return se.has(o)||(o=t),[n,s,o]}function ce(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=le(e,i,n);if(e in ne){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=re(t),c=l[a]||(l[a]={}),h=ae(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=oe(r,e.replace(Jt,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return pe(s,{delegateTarget:r}),n.oneOff&&fe.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return pe(n,{delegateTarget:t}),i.oneOff&&fe.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function he(t,e,i,n,s){const o=ae(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function de(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&he(t,e,i,r.callable,r.delegationSelector)}function ue(t){return t=t.replace(Zt,""),ne[t]||t}const fe={on(t,e,i,n){ce(t,e,i,n,!1)},one(t,e,i,n){ce(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=le(e,i,n),a=r!==e,l=re(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))de(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(te,"");a&&!e.includes(s)||he(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;he(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=Vt();let s=null,o=!0,r=!0,a=!1;e!==ue(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=pe(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function pe(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function me(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function ge(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const _e={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${ge(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${ge(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=me(t.dataset[n])}return e},getDataAttribute:(t,e)=>me(t.getAttribute(`data-bs-${ge(e)}`))};class be{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=Ft(e)?_e.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...Ft(e)?_e.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],o=Ft(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${o}" but expected type "${s}".`)}var i}}class ve extends be{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),Nt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Nt.remove(this._element,this.constructor.DATA_KEY),fe.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){Ut(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Nt.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>Mt(t))).join(","):null},we={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!Wt(t)&&Bt(t)))},getSelectorFromElement(t){const e=ye(t);return e&&we.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?we.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?we.find(e):[]}},Ee=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;fe.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),Wt(this))return;const s=we.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},Ae=".bs.alert",Te=`close${Ae}`,Ce=`closed${Ae}`;class Oe extends ve{static get NAME(){return"alert"}close(){if(fe.trigger(this._element,Te).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),fe.trigger(this._element,Ce),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Oe.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}Ee(Oe,"close"),Qt(Oe);const xe='[data-bs-toggle="button"]';class ke extends ve{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=ke.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}fe.on(document,"click.bs.button.data-api",xe,(t=>{t.preventDefault();const e=t.target.closest(xe);ke.getOrCreateInstance(e).toggle()})),Qt(ke);const Le=".bs.swipe",Se=`touchstart${Le}`,De=`touchmove${Le}`,$e=`touchend${Le}`,Ie=`pointerdown${Le}`,Ne=`pointerup${Le}`,Pe={endCallback:null,leftCallback:null,rightCallback:null},Me={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class je extends be{constructor(t,e){super(),this._element=t,t&&je.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Pe}static get DefaultType(){return Me}static get NAME(){return"swipe"}dispose(){fe.off(this._element,Le)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),Xt(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&Xt(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(fe.on(this._element,Ie,(t=>this._start(t))),fe.on(this._element,Ne,(t=>this._end(t))),this._element.classList.add("pointer-event")):(fe.on(this._element,Se,(t=>this._start(t))),fe.on(this._element,De,(t=>this._move(t))),fe.on(this._element,$e,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Fe=".bs.carousel",He=".data-api",Be="ArrowLeft",We="ArrowRight",ze="next",Re="prev",qe="left",Ve="right",Ye=`slide${Fe}`,Ke=`slid${Fe}`,Qe=`keydown${Fe}`,Xe=`mouseenter${Fe}`,Ue=`mouseleave${Fe}`,Ge=`dragstart${Fe}`,Je=`load${Fe}${He}`,Ze=`click${Fe}${He}`,ti="carousel",ei="active",ii=".active",ni=".carousel-item",si=ii+ni,oi={[Be]:Ve,[We]:qe},ri={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},ai={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class li extends ve{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=we.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===ti&&this.cycle()}static get Default(){return ri}static get DefaultType(){return ai}static get NAME(){return"carousel"}next(){this._slide(ze)}nextWhenVisible(){!document.hidden&&Bt(this._element)&&this.next()}prev(){this._slide(Re)}pause(){this._isSliding&&jt(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?fe.one(this._element,Ke,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void fe.one(this._element,Ke,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?ze:Re;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&fe.on(this._element,Qe,(t=>this._keydown(t))),"hover"===this._config.pause&&(fe.on(this._element,Xe,(()=>this.pause())),fe.on(this._element,Ue,(()=>this._maybeEnableCycle()))),this._config.touch&&je.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of we.find(".carousel-item img",this._element))fe.on(t,Ge,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(qe)),rightCallback:()=>this._slide(this._directionToOrder(Ve)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new je(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=oi[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=we.findOne(ii,this._indicatorsElement);e.classList.remove(ei),e.removeAttribute("aria-current");const i=we.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(ei),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===ze,s=e||Gt(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>fe.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(Ye).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),qt(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(ei),i.classList.remove(ei,c,l),this._isSliding=!1,r(Ke)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return we.findOne(si,this._element)}_getItems(){return we.find(ni,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return Kt()?t===qe?Re:ze:t===qe?ze:Re}_orderToDirection(t){return Kt()?t===Re?qe:Ve:t===Re?Ve:qe}static jQueryInterface(t){return this.each((function(){const e=li.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}fe.on(document,Ze,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=we.getElementFromSelector(this);if(!e||!e.classList.contains(ti))return;t.preventDefault();const i=li.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===_e.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),fe.on(window,Je,(()=>{const t=we.find('[data-bs-ride="carousel"]');for(const e of t)li.getOrCreateInstance(e)})),Qt(li);const ci=".bs.collapse",hi=`show${ci}`,di=`shown${ci}`,ui=`hide${ci}`,fi=`hidden${ci}`,pi=`click${ci}.data-api`,mi="show",gi="collapse",_i="collapsing",bi=`:scope .${gi} .${gi}`,vi='[data-bs-toggle="collapse"]',yi={parent:null,toggle:!0},wi={parent:"(null|element)",toggle:"boolean"};class Ei extends ve{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=we.find(vi);for(const t of i){const e=we.getSelectorFromElement(t),i=we.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return yi}static get DefaultType(){return wi}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Ei.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(fe.trigger(this._element,hi).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(gi),this._element.classList.add(_i),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_i),this._element.classList.add(gi,mi),this._element.style[e]="",fe.trigger(this._element,di)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(fe.trigger(this._element,ui).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,qt(this._element),this._element.classList.add(_i),this._element.classList.remove(gi,mi);for(const t of this._triggerArray){const e=we.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_i),this._element.classList.add(gi),fe.trigger(this._element,fi)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(mi)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(vi);for(const e of t){const t=we.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=we.find(bi,this._config.parent);return we.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Ei.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}fe.on(document,pi,vi,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of we.getMultipleElementsFromSelector(this))Ei.getOrCreateInstance(t,{toggle:!1}).toggle()})),Qt(Ei);const Ai="dropdown",Ti=".bs.dropdown",Ci=".data-api",Oi="ArrowUp",xi="ArrowDown",ki=`hide${Ti}`,Li=`hidden${Ti}`,Si=`show${Ti}`,Di=`shown${Ti}`,$i=`click${Ti}${Ci}`,Ii=`keydown${Ti}${Ci}`,Ni=`keyup${Ti}${Ci}`,Pi="show",Mi='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',ji=`${Mi}.${Pi}`,Fi=".dropdown-menu",Hi=Kt()?"top-end":"top-start",Bi=Kt()?"top-start":"top-end",Wi=Kt()?"bottom-end":"bottom-start",zi=Kt()?"bottom-start":"bottom-end",Ri=Kt()?"left-start":"right-start",qi=Kt()?"right-start":"left-start",Vi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Yi={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Ki extends ve{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=we.next(this._element,Fi)[0]||we.prev(this._element,Fi)[0]||we.findOne(Fi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Vi}static get DefaultType(){return Yi}static get NAME(){return Ai}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Wt(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!fe.trigger(this._element,Si,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Pi),this._element.classList.add(Pi),fe.trigger(this._element,Di,t)}}hide(){if(Wt(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!fe.trigger(this._element,ki,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._popper&&this._popper.destroy(),this._menu.classList.remove(Pi),this._element.classList.remove(Pi),this._element.setAttribute("aria-expanded","false"),_e.removeDataAttribute(this._menu,"popper"),fe.trigger(this._element,Li,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!Ft(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ai.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:Ft(this._config.reference)?t=Ht(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const i=this._getPopperConfig();this._popper=Dt(t,this._menu,i)}_isShown(){return this._menu.classList.contains(Pi)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Ri;if(t.classList.contains("dropstart"))return qi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Bi:Hi:e?zi:Wi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(_e.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...Xt(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=we.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>Bt(t)));i.length&&Gt(i,e,t===xi,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Ki.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=we.find(ji);for(const i of e){const e=Ki.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Oi,xi].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Mi)?this:we.prev(this,Mi)[0]||we.next(this,Mi)[0]||we.findOne(Mi,t.delegateTarget.parentNode),o=Ki.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}fe.on(document,Ii,Mi,Ki.dataApiKeydownHandler),fe.on(document,Ii,Fi,Ki.dataApiKeydownHandler),fe.on(document,$i,Ki.clearMenus),fe.on(document,Ni,Ki.clearMenus),fe.on(document,$i,Mi,(function(t){t.preventDefault(),Ki.getOrCreateInstance(this).toggle()})),Qt(Ki);const Qi="backdrop",Xi="show",Ui=`mousedown.bs.${Qi}`,Gi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ji={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Zi extends be{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Gi}static get DefaultType(){return Ji}static get NAME(){return Qi}show(t){if(!this._config.isVisible)return void Xt(t);this._append();const e=this._getElement();this._config.isAnimated&&qt(e),e.classList.add(Xi),this._emulateAnimation((()=>{Xt(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Xi),this._emulateAnimation((()=>{this.dispose(),Xt(t)}))):Xt(t)}dispose(){this._isAppended&&(fe.off(this._element,Ui),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=Ht(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),fe.on(t,Ui,(()=>{Xt(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){Ut(t,this._getElement(),this._config.isAnimated)}}const tn=".bs.focustrap",en=`focusin${tn}`,nn=`keydown.tab${tn}`,sn="backward",on={autofocus:!0,trapElement:null},rn={autofocus:"boolean",trapElement:"element"};class an extends be{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return on}static get DefaultType(){return rn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),fe.off(document,tn),fe.on(document,en,(t=>this._handleFocusin(t))),fe.on(document,nn,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,fe.off(document,tn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=we.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===sn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?sn:"forward")}}const ln=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",cn=".sticky-top",hn="padding-right",dn="margin-right";class un{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,hn,(e=>e+t)),this._setElementAttributes(ln,hn,(e=>e+t)),this._setElementAttributes(cn,dn,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,hn),this._resetElementAttributes(ln,hn),this._resetElementAttributes(cn,dn)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&_e.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=_e.getDataAttribute(t,e);null!==i?(_e.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(Ft(t))e(t);else for(const i of we.find(t,this._element))e(i)}}const fn=".bs.modal",pn=`hide${fn}`,mn=`hidePrevented${fn}`,gn=`hidden${fn}`,_n=`show${fn}`,bn=`shown${fn}`,vn=`resize${fn}`,yn=`click.dismiss${fn}`,wn=`mousedown.dismiss${fn}`,En=`keydown.dismiss${fn}`,An=`click${fn}.data-api`,Tn="modal-open",Cn="show",On="modal-static",xn={backdrop:!0,focus:!0,keyboard:!0},kn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ln extends ve{constructor(t,e){super(t,e),this._dialog=we.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new un,this._addEventListeners()}static get Default(){return xn}static get DefaultType(){return kn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||fe.trigger(this._element,_n,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Tn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(fe.trigger(this._element,pn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Cn),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){fe.off(window,fn),fe.off(this._dialog,fn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Zi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new an({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=we.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),qt(this._element),this._element.classList.add(Cn),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,fe.trigger(this._element,bn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){fe.on(this._element,En,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),fe.on(window,vn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),fe.on(this._element,wn,(t=>{fe.one(this._element,yn,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Tn),this._resetAdjustments(),this._scrollBar.reset(),fe.trigger(this._element,gn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(fe.trigger(this._element,mn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(On)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(On),this._queueCallback((()=>{this._element.classList.remove(On),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=Kt()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=Kt()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Ln.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}fe.on(document,An,'[data-bs-toggle="modal"]',(function(t){const e=we.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),fe.one(e,_n,(t=>{t.defaultPrevented||fe.one(e,gn,(()=>{Bt(this)&&this.focus()}))}));const i=we.findOne(".modal.show");i&&Ln.getInstance(i).hide(),Ln.getOrCreateInstance(e).toggle(this)})),Ee(Ln),Qt(Ln);const Sn=".bs.offcanvas",Dn=".data-api",$n=`load${Sn}${Dn}`,In="show",Nn="showing",Pn="hiding",Mn=".offcanvas.show",jn=`show${Sn}`,Fn=`shown${Sn}`,Hn=`hide${Sn}`,Bn=`hidePrevented${Sn}`,Wn=`hidden${Sn}`,zn=`resize${Sn}`,Rn=`click${Sn}${Dn}`,qn=`keydown.dismiss${Sn}`,Vn={backdrop:!0,keyboard:!0,scroll:!1},Yn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Kn extends ve{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Vn}static get DefaultType(){return Yn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||fe.trigger(this._element,jn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new un).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Nn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(In),this._element.classList.remove(Nn),fe.trigger(this._element,Fn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(fe.trigger(this._element,Hn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Pn),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(In,Pn),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new un).reset(),fe.trigger(this._element,Wn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Zi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():fe.trigger(this._element,Bn)}:null})}_initializeFocusTrap(){return new an({trapElement:this._element})}_addEventListeners(){fe.on(this._element,qn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():fe.trigger(this._element,Bn))}))}static jQueryInterface(t){return this.each((function(){const e=Kn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}fe.on(document,Rn,'[data-bs-toggle="offcanvas"]',(function(t){const e=we.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this))return;fe.one(e,Wn,(()=>{Bt(this)&&this.focus()}));const i=we.findOne(Mn);i&&i!==e&&Kn.getInstance(i).hide(),Kn.getOrCreateInstance(e).toggle(this)})),fe.on(window,$n,(()=>{for(const t of we.find(Mn))Kn.getOrCreateInstance(t).show()})),fe.on(window,zn,(()=>{for(const t of we.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Kn.getOrCreateInstance(t).hide()})),Ee(Kn),Qt(Kn);const Qn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Xn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Un=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Gn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Xn.has(i)||Boolean(Un.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Jn={allowList:Qn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
    "},Zn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},ts={entry:"(string|element|function|null)",selector:"(string|element)"};class es extends be{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Jn}static get DefaultType(){return Zn}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},ts)}_setContent(t,e,i){const n=we.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?Ft(e)?this._putElementInTemplate(Ht(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Gn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Xt(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const is=new Set(["sanitize","allowList","sanitizeFn"]),ns="fade",ss="show",os=".tooltip-inner",rs=".modal",as="hide.bs.modal",ls="hover",cs="focus",hs={AUTO:"auto",TOP:"top",RIGHT:Kt()?"left":"right",BOTTOM:"bottom",LEFT:Kt()?"right":"left"},ds={allowList:Qn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},us={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class fs extends ve{constructor(t,i){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,i),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return ds}static get DefaultType(){return us}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),fe.off(this._element.closest(rs),as,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=fe.trigger(this._element,this.constructor.eventName("show")),e=(zt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),fe.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._queueCallback((()=>{fe.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!fe.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._activeTrigger.click=!1,this._activeTrigger[cs]=!1,this._activeTrigger[ls]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),fe.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ns,ss),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ns),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new es({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[os]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ns)}_isShown(){return this.tip&&this.tip.classList.contains(ss)}_createPopper(t){const e=Xt(this._config.placement,[this,t,this._element]),i=hs[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Xt(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Xt(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)fe.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ls?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ls?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");fe.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?cs:ls]=!0,e._enter()})),fe.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?cs:ls]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},fe.on(this._element.closest(rs),as,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=_e.getDataAttributes(this._element);for(const t of Object.keys(e))is.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=fs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(fs);const ps=".popover-header",ms=".popover-body",gs={...fs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},_s={...fs.DefaultType,content:"(null|string|element|function)"};class bs extends fs{static get Default(){return gs}static get DefaultType(){return _s}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[ps]:this._getTitle(),[ms]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=bs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(bs);const vs=".bs.scrollspy",ys=`activate${vs}`,ws=`click${vs}`,Es=`load${vs}.data-api`,As="active",Ts="[href]",Cs=".nav-link",Os=`${Cs}, .nav-item > ${Cs}, .list-group-item`,xs={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},ks={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Ls extends ve{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return xs}static get DefaultType(){return ks}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=Ht(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(fe.off(this._config.target,ws),fe.on(this._config.target,ws,Ts,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=we.find(Ts,this._config.target);for(const e of t){if(!e.hash||Wt(e))continue;const t=we.findOne(decodeURI(e.hash),this._element);Bt(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(As),this._activateParents(t),fe.trigger(this._element,ys,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))we.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(As);else for(const e of we.parents(t,".nav, .list-group"))for(const t of we.prev(e,Os))t.classList.add(As)}_clearActiveClass(t){t.classList.remove(As);const e=we.find(`${Ts}.${As}`,t);for(const t of e)t.classList.remove(As)}static jQueryInterface(t){return this.each((function(){const e=Ls.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(window,Es,(()=>{for(const t of we.find('[data-bs-spy="scroll"]'))Ls.getOrCreateInstance(t)})),Qt(Ls);const Ss=".bs.tab",Ds=`hide${Ss}`,$s=`hidden${Ss}`,Is=`show${Ss}`,Ns=`shown${Ss}`,Ps=`click${Ss}`,Ms=`keydown${Ss}`,js=`load${Ss}`,Fs="ArrowLeft",Hs="ArrowRight",Bs="ArrowUp",Ws="ArrowDown",zs="Home",Rs="End",qs="active",Vs="fade",Ys="show",Ks=".dropdown-toggle",Qs=`:not(${Ks})`,Xs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Us=`.nav-link${Qs}, .list-group-item${Qs}, [role="tab"]${Qs}, ${Xs}`,Gs=`.${qs}[data-bs-toggle="tab"], .${qs}[data-bs-toggle="pill"], .${qs}[data-bs-toggle="list"]`;class Js extends ve{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),fe.on(this._element,Ms,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?fe.trigger(e,Ds,{relatedTarget:t}):null;fe.trigger(t,Is,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(qs),this._activate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),fe.trigger(t,Ns,{relatedTarget:e})):t.classList.add(Ys)}),t,t.classList.contains(Vs)))}_deactivate(t,e){t&&(t.classList.remove(qs),t.blur(),this._deactivate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),fe.trigger(t,$s,{relatedTarget:e})):t.classList.remove(Ys)}),t,t.classList.contains(Vs)))}_keydown(t){if(![Fs,Hs,Bs,Ws,zs,Rs].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!Wt(t)));let i;if([zs,Rs].includes(t.key))i=e[t.key===zs?0:e.length-1];else{const n=[Hs,Ws].includes(t.key);i=Gt(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Js.getOrCreateInstance(i).show())}_getChildren(){return we.find(Us,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=we.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=we.findOne(t,i);s&&s.classList.toggle(n,e)};n(Ks,qs),n(".dropdown-menu",Ys),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(qs)}_getInnerElement(t){return t.matches(Us)?t:we.findOne(Us,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Js.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(document,Ps,Xs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this)||Js.getOrCreateInstance(this).show()})),fe.on(window,js,(()=>{for(const t of we.find(Gs))Js.getOrCreateInstance(t)})),Qt(Js);const Zs=".bs.toast",to=`mouseover${Zs}`,eo=`mouseout${Zs}`,io=`focusin${Zs}`,no=`focusout${Zs}`,so=`hide${Zs}`,oo=`hidden${Zs}`,ro=`show${Zs}`,ao=`shown${Zs}`,lo="hide",co="show",ho="showing",uo={animation:"boolean",autohide:"boolean",delay:"number"},fo={animation:!0,autohide:!0,delay:5e3};class po extends ve{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return fo}static get DefaultType(){return uo}static get NAME(){return"toast"}show(){fe.trigger(this._element,ro).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(lo),qt(this._element),this._element.classList.add(co,ho),this._queueCallback((()=>{this._element.classList.remove(ho),fe.trigger(this._element,ao),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(fe.trigger(this._element,so).defaultPrevented||(this._element.classList.add(ho),this._queueCallback((()=>{this._element.classList.add(lo),this._element.classList.remove(ho,co),fe.trigger(this._element,oo)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(co),super.dispose()}isShown(){return this._element.classList.contains(co)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){fe.on(this._element,to,(t=>this._onInteraction(t,!0))),fe.on(this._element,eo,(t=>this._onInteraction(t,!1))),fe.on(this._element,io,(t=>this._onInteraction(t,!0))),fe.on(this._element,no,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=po.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}function mo(t){"loading"!=document.readyState?t():document.addEventListener("DOMContentLoaded",t)}Ee(po),Qt(po),mo((function(){[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new fs(t,{delay:{show:500,hide:100}})}))})),mo((function(){document.getElementById("pst-back-to-top").addEventListener("click",(function(){document.body.scrollTop=0,document.documentElement.scrollTop=0}))})),mo((function(){var t=document.getElementById("pst-back-to-top"),e=document.getElementsByClassName("bd-header")[0].getBoundingClientRect();window.addEventListener("scroll",(function(){this.oldScroll>this.scrollY&&this.scrollY>e.bottom?t.style.display="block":t.style.display="none",this.oldScroll=this.scrollY}))})),window.bootstrap=i})(); +//# sourceMappingURL=bootstrap.js.map \ No newline at end of file diff --git a/sed/v0.1.9/_static/scripts/bootstrap.js.LICENSE.txt b/sed/v0.1.9/_static/scripts/bootstrap.js.LICENSE.txt new file mode 100644 index 0000000..28755c2 --- /dev/null +++ b/sed/v0.1.9/_static/scripts/bootstrap.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ diff --git a/sed/v0.1.9/_static/scripts/bootstrap.js.map b/sed/v0.1.9/_static/scripts/bootstrap.js.map new file mode 100644 index 0000000..e9e8158 --- /dev/null +++ b/sed/v0.1.9/_static/scripts/bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/bootstrap.js","mappings":"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","sources":["webpack://pydata_sphinx_theme/webpack/bootstrap","webpack://pydata_sphinx_theme/webpack/runtime/define property getters","webpack://pydata_sphinx_theme/webpack/runtime/hasOwnProperty shorthand","webpack://pydata_sphinx_theme/webpack/runtime/make namespace object","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/enums.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pydata_sphinx_theme/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/bootstrap.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n const instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend';\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\n }\n return selector;\n};\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n};\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n};\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n};\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n};\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n};\nconst noop = () => {};\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n};\nconst DOMContentLoadedCallbacks = [];\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\nconst isRTL = () => document.documentElement.dir === 'rtl';\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n};\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n}\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n}\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n}\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n};\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\n }\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3';\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\n};\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target);\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n }\n\n // Private\n _destroyElement() {\n this._element.remove();\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close');\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._createPopper();\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\n }\n update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n const popperConfig = this._getPopperConfig();\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n };\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\n }\n }\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\n }\n event.preventDefault();\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n // Getters\n static get Default() {\n return Default$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n this._element.remove();\n this._isAppended = false;\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n this._element = backdrop;\n }\n return this._element;\n }\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n // Getters\n static get Default() {\n return Default$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n hide() {\n const width = this.getWidth();\n this._disableOverFlow();\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n this._element.style.overflow = 'hidden';\n }\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty);\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n this._resetAdjustments();\n this._scrollBar.reset();\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY;\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n this._element.focus();\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = this._scrollBar.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.add(CLASS_NAME_HIDING);\n this._backdrop.hide();\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\n }\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n this.hide();\n };\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n });\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n// js-docs-end allow-list\n\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
    '\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
    ' + '
    ' + '
    ' + '
    ',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
    ' + '
    ' + '

    ' + '
    ' + '
    ',\n trigger: 'click'\n};\nconst DefaultType$2 = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n }\n\n // Getters\n static get Default() {\n return Default$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n dispose() {\n this._observer.disconnect();\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body;\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\n }\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n this._process(targetElement(entry));\n };\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\n }\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry);\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return;\n }\n continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both