diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8e7f555b383725c982421b302a6782e3b69203f0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,51 @@ +FROM python:3.9-slim as base + +ENV PYTHONFAULTHANDLER=1 \ + PYTHONHASHSEED=random \ + PYTHONUNBUFFERED=1 + +WORKDIR /app + +FROM base as builder + +ENV PIP_DEFAULT_TIMEOUT=100 \ + PIP_DISABLE_PIP_VERSION_CHECK=1 \ + PIP_NO_CACHE_DIR=1 \ + POETRY_VERSION=1.4 + +RUN pip install "poetry==$POETRY_VERSION" + +RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ + software-properties-common \ + git \ + python3-dev \ + libblas-dev \ + liblapack-dev \ + && rm -rf /var/lib/apt/lists/* + +# RUN git clone https://git-ce.rwth-aachen.de/leah.tgu/mdata_app.git . +COPY logic/ logic/ +COPY pages/ pages/ +COPY resources/ resources/ +COPY poetry.lock pyproject.toml streamlit_app.py ./ + +RUN poetry config virtualenvs.in-project true && \ + poetry install --only=main --no-root && \ + poetry build + +FROM base as final + +COPY --from=builder /app/.venv ./.venv +COPY --from=builder /app/dist . +COPY docker-entrypoint.sh . + +RUN ./.venv/bin/pip install *.whl + +EXPOSE 8501 + +HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health + +# CMD ["./docker-entrypoint.sh"] +ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"] \ No newline at end of file diff --git a/logic/page_logic.py b/logic/page_logic.py index 1e8a569af3837cd6f9b57ccf3dd50ee3712c60cf..fa1359daa08a0e1446bedcfab2807d191d35833b 100644 --- a/logic/page_logic.py +++ b/logic/page_logic.py @@ -1,12 +1,17 @@ -import numpy as np +from enum import Enum + import pandas as pd import streamlit as st -from mdata.visualization import plotting -from plotly import graph_objects as go -from plotly.subplots import make_subplots +from mdata.visualization import plotting, matplot -available_widgets = ['Specifications', 'Raw Data', 'Overview', 'Inspector'] +class Widgets(Enum): + Specifications = 'Specifications' + RawData = 'Raw Data' + Overview = 'Overview' + Inspector = 'Inspector' + Dummy = 'Dummy' +available_widgets = list(Widgets) def generate_page(md, widget): c = st.columns(3) @@ -22,24 +27,24 @@ def generate_page(md, widget): cont.text(md.index_frame['time'].max()) cont.caption('Last Observation') - if widget not in available_widgets: + if widget not in Widgets: return - if widget == 'Specifications': + if widget == Widgets.Specifications: st.markdown('## Events') st.table(make_spec_df(md.event_series_types)) st.markdown('## Measurements') st.table(make_spec_df(md.measurement_series_types)) - if widget == 'Raw Data': + if widget == Widgets.RawData: st.markdown('## Index') st.write(md.index_frame) - if widget == 'Overview': + if widget == Widgets.Overview: f = plotting.create_overview_plot(md, downsample_to=5_000) st.plotly_chart(f, use_container_width=True) - if widget == 'Inspector': + if widget == Widgets.Inspector: c1, c2, c3 = st.columns(3) object_list = list(md.get_unique_objects()) event_type_list = list(md.event_series_types.keys()) @@ -49,16 +54,22 @@ def generate_page(md, widget): measurement_feature_selection = c1.multiselect('Feature Selection', fs) event_selection = c2.multiselect('Event Type Selection', event_type_list) + plot_separately = c2.checkbox('plot separately', False) object_selection = c3.selectbox('Object Selection', object_list) - selection = plotting.Selection(measurement=selected_measurement_type, events=event_selection, - object=object_selection, features=measurement_feature_selection) - - f = plotting.create_timeseries_plot(md, selection, split_into_subplots=False) + f = plotting.create_timeseries_plot(md, measurement_type=selected_measurement_type, object=object_selection, + events=event_selection, features=measurement_feature_selection, + split_into_subplots=plot_separately) st.plotly_chart(f, use_container_width=True) + if widget == Widgets.Dummy: + measurement_type_list = list(md.measurement_series_types.keys()) + selected_measurement_type = st.selectbox('Measurement Type', measurement_type_list) + f = matplot.create_basic_stacked_subplots(md, measurement_type=selected_measurement_type) + st.write(f) + def make_spec_df(spec_types): df = pd.DataFrame.from_dict({l: list(t.features) for l, t in spec_types.items()}, diff --git a/poetry.lock b/poetry.lock index 1379c39a6efc561fd419798e58baeffce7e7461d..a8107802e67899ff0154e5b4b9211fec67d10bb7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -335,14 +335,14 @@ files = [ [[package]] name = "certifi" -version = "2022.12.7" +version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, + {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, + {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, ] [[package]] @@ -631,24 +631,32 @@ test-no-images = ["pytest"] [[package]] name = "cvxopt" -version = "1.3.0.1" +version = "1.3.1" description = "Convex optimization package" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ - {file = "cvxopt-1.3.0.1-cp310-cp310-win32.whl", hash = "sha256:429895c9cdd33b97ba1354b1d7a9d73c7179934d8649920a64d1d114062695dc"}, - {file = "cvxopt-1.3.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:eddb2c1ee863c7dd7edd3401cdb036c9c8d7779e2b1fe434b34b8d2b04bcebfc"}, - {file = "cvxopt-1.3.0.1-cp311-cp311-win32.whl", hash = "sha256:3be9cca4538346abc2d3534a8667b3e03e047067cbc8d7cf2ae3fa81b4da619b"}, - {file = "cvxopt-1.3.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:a43aee498e47f2acb4eaffd2405da2a54915019bf09951d412f0deb0906383e9"}, - {file = "cvxopt-1.3.0.1-cp36-cp36m-win32.whl", hash = "sha256:34c5d6fe2af6a5b1aa2bbaebb3880152923717eca699b8689052d1439c15dd71"}, - {file = "cvxopt-1.3.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:122e805decffbdd104d9096b8b21f0ce35ba7b5e8b961f3f23eb9b7fe1cdbec5"}, - {file = "cvxopt-1.3.0.1-cp37-cp37m-win32.whl", hash = "sha256:77ac45a262c767cb1d614e51672821edf260af6798370b05a07e0181c80a52e2"}, - {file = "cvxopt-1.3.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9e9219e8fb0af22013c150dfbd6e38167b38f61bc2e0d269d19b6137772055a9"}, - {file = "cvxopt-1.3.0.1-cp38-cp38-win32.whl", hash = "sha256:615e947e2c9ff74dc4b0dbede6414e1f6106590bc3caa52c690cdc2bcd6e4569"}, - {file = "cvxopt-1.3.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:517554aa443a4818d9fe01e73f8bd420b6acad0086019d0b03469d2a8810f21e"}, - {file = "cvxopt-1.3.0.1-cp39-cp39-win32.whl", hash = "sha256:d1bbc011d5d83c913972e1bd30358f4fa56defa0be13fea956612ff2168f2b91"}, - {file = "cvxopt-1.3.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:f5acf720235014d69e4ee68a7682f2fef7ef30c705933d9b758c2edffd2a5bcf"}, + {file = "cvxopt-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e569f070a00b1d8817d8891c11692fd75cd26efc625bf17bed0b11ace809c8b3"}, + {file = "cvxopt-1.3.1-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:0ffbc8536a4ce0ecab18bf634ee0432e4cc8a60ce113d2e47d8e9734b9898a44"}, + {file = "cvxopt-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:424ba591b6d837f88b15a5623ceb9563782f64ed7840e65d50acd5af12bfb074"}, + {file = "cvxopt-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:8beec8a0225276fdfa767af9417599a8f1d7e5b56e312160af04477f4415e9d7"}, + {file = "cvxopt-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98674d4ddcd5b447d4e860862d371a9e9ccacd65a73ce2ccbc961842ad076ce9"}, + {file = "cvxopt-1.3.1-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:058abca57083379efceb71e0b155f5ea9f925cf49dfc185f6561dc8c9dde63fc"}, + {file = "cvxopt-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:569b9000a692e55d74eb48b68c7b7325f97049b9f22957b599fb89055f88ca7b"}, + {file = "cvxopt-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:fe2806cb762de1d04ad6c2d262e4e97d7db3bfec099d5ee3e7feb5d1ada67058"}, + {file = "cvxopt-1.3.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b9f9de25f71c6e0cc53ab7192af1469ce3fcb8b5979b3abc10841ac1bf0201ce"}, + {file = "cvxopt-1.3.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba2151f2da6207e72eb92db722bdfa3060cade4fa982363d1d0721d656e1f36b"}, + {file = "cvxopt-1.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b431d78fc6bf446ce917e3d9db5396abf9f3d21afbf6ecec818d4b119f880cd6"}, + {file = "cvxopt-1.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357e94a1cb062d89585d52e00d500964594b5a14f6dcfdd2066abf24ee1db06b"}, + {file = "cvxopt-1.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6a5e8058366017a35eda83fe44eb2e69b17333974795eae5115539e2eae19e23"}, + {file = "cvxopt-1.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801965426d4bd57e53214706072794fe9a604ec3ffa47ad03fd4e8f130cd90a1"}, + {file = "cvxopt-1.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:0b6a8ab4f155e291eebd9e8e0ad878e5dfc2f71c3be84c776192bdf92737b95c"}, + {file = "cvxopt-1.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e449744375bfde702a392e87ea282666e0ae593d568808f63aa486f9862d399a"}, + {file = "cvxopt-1.3.1-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:80a42e57e9345df1c686da15694cf9c7b127d1a33c04e6aedc53ac65909e4176"}, + {file = "cvxopt-1.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dba110ed6c9d8af293500b9c5baef664b2dc376fe0661c1b2f39833a14eac606"}, + {file = "cvxopt-1.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:f096377218fa3cddc7bd1f433d2f91a182ab159be463a545b4bd5b439a6baa01"}, + {file = "cvxopt-1.3.1.tar.gz", hash = "sha256:8d567981cbfa2a4ba1667b3e6f73cb941cf1c6992bf1438911035963294aa498"}, ] [[package]] @@ -824,14 +832,14 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "fonttools" -version = "4.39.3" +version = "4.39.4" description = "Tools to manipulate font files" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.39.3-py3-none-any.whl", hash = "sha256:64c0c05c337f826183637570ac5ab49ee220eec66cf50248e8df527edfa95aeb"}, - {file = "fonttools-4.39.3.zip", hash = "sha256:9234b9f57b74e31b192c3fc32ef1a40750a8fbc1cd9837a7b7bfc4ca4a5c51d7"}, + {file = "fonttools-4.39.4-py3-none-any.whl", hash = "sha256:106caf6167c4597556b31a8d9175a3fdc0356fdcd70ab19973c3b0d4c893c461"}, + {file = "fonttools-4.39.4.zip", hash = "sha256:dba8d7cdb8e2bac1b3da28c5ed5960de09e59a2fe7e63bb73f5a59e57b0430d2"}, ] [package.extras] @@ -974,14 +982,14 @@ sortedcontainers = ">=2.0,<3.0" [[package]] name = "ipykernel" -version = "6.22.0" +version = "6.23.1" description = "IPython Kernel for Jupyter" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.22.0-py3-none-any.whl", hash = "sha256:1ae6047c1277508933078163721bbb479c3e7292778a04b4bacf0874550977d6"}, - {file = "ipykernel-6.22.0.tar.gz", hash = "sha256:302558b81f1bc22dc259fb2a0c5c7cf2f4c0bdb21b50484348f7bafe7fb71421"}, + {file = "ipykernel-6.23.1-py3-none-any.whl", hash = "sha256:77aeffab056c21d16f1edccdc9e5ccbf7d96eb401bd6703610a21be8b068aadc"}, + {file = "ipykernel-6.23.1.tar.gz", hash = "sha256:1aba0ae8453e15e9bc6b24e497ef6840114afcdb832ae597f32137fa19d42a6f"}, ] [package.dependencies] @@ -1755,7 +1763,8 @@ numba = "*" numexpr = "*" pandas = {version = "^1.5", extras = ["all"]} plotly = "^5.14.1" -pm4py = "^2.7.3" +pm4py = "^2.7.4" +seaborn = "*" tables = "^3.8.0" tsdownsample = "^0.1.2" @@ -1921,14 +1930,14 @@ test = ["flaky", "ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "p [[package]] name = "nbconvert" -version = "7.3.1" +version = "7.4.0" description = "Converting Jupyter Notebooks" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "nbconvert-7.3.1-py3-none-any.whl", hash = "sha256:d2e95904666f1ff77d36105b9de4e0801726f93b862d5b28f69e93d99ad3b19c"}, - {file = "nbconvert-7.3.1.tar.gz", hash = "sha256:78685362b11d2e8058e70196fe83b09abed8df22d3e599cf271f4d39fdc48b9e"}, + {file = "nbconvert-7.4.0-py3-none-any.whl", hash = "sha256:af5064a9db524f9f12f4e8be7f0799524bd5b14c1adea37e34e83c95127cc818"}, + {file = "nbconvert-7.4.0.tar.gz", hash = "sha256:51b6c77b507b177b73f6729dba15676e42c4e92bcb00edc8cc982ee72e7d89d7"}, ] [package.dependencies] @@ -2381,18 +2390,18 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa [[package]] name = "platformdirs" -version = "3.5.0" +version = "3.5.1" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.5.0-py3-none-any.whl", hash = "sha256:47692bc24c1958e8b0f13dd727307cff1db103fca36399f457da8e05f222fdc4"}, - {file = "platformdirs-3.5.0.tar.gz", hash = "sha256:7954a68d0ba23558d753f73437c55f89027cf8f5108c19844d4b82e5af396335"}, + {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, + {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, ] [package.extras] -docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] [[package]] @@ -2413,14 +2422,14 @@ tenacity = ">=6.2.0" [[package]] name = "pm4py" -version = "2.7.3" +version = "2.7.4" description = "Process mining for Python" category = "main" optional = false python-versions = "*" files = [ - {file = "pm4py-2.7.3-py3-none-any.whl", hash = "sha256:6535ee6a561b6a0170edafbdf681d4f2bce85347a7f8d83aef12d1d50c93fd91"}, - {file = "pm4py-2.7.3.tar.gz", hash = "sha256:600455a44f7d1835a42e966dc7ca79b17a7b98dc15057dff10e8be3b6e573c96"}, + {file = "pm4py-2.7.4-py3-none-any.whl", hash = "sha256:626eefcf7a7c4ea8726f6e5091030ec7f6e6313470118547d46e58ae2fa56733"}, + {file = "pm4py-2.7.4.tar.gz", hash = "sha256:20ce8c9d740e4fe4c5d59278c970f8665428da98ef09073ff1c5c4cd29dfe1d8"}, ] [package.dependencies] @@ -2769,21 +2778,6 @@ files = [ {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, ] -[[package]] -name = "pytz-deprecation-shim" -version = "0.1.0.post0" -description = "Shims to make deprecation of pytz easier" -category = "main" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl", hash = "sha256:8314c9692a636c8eb3bda879b9f119e350e93223ae83e70e80c31675a0fdc1a6"}, - {file = "pytz_deprecation_shim-0.1.0.post0.tar.gz", hash = "sha256:af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d"}, -] - -[package.dependencies] -tzdata = {version = "*", markers = "python_version >= \"3.6\""} - [[package]] name = "pywin32" version = "306" @@ -2966,14 +2960,14 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.4.2" +version = "5.4.3" description = "Jupyter Qt console" category = "main" optional = false python-versions = ">= 3.7" files = [ - {file = "qtconsole-5.4.2-py3-none-any.whl", hash = "sha256:30975c6a7d7941dd646d00a23e5982db49beaa60c3920bb243727d43da805f12"}, - {file = "qtconsole-5.4.2.tar.gz", hash = "sha256:dc935780da276a2ab31a7a08a8cf327a2ea47fa27e21d485073251a7eeb16167"}, + {file = "qtconsole-5.4.3-py3-none-any.whl", hash = "sha256:35fd6e87b1f6d1fd41801b07e69339f8982e76afd4fa8ef35595bc6036717189"}, + {file = "qtconsole-5.4.3.tar.gz", hash = "sha256:5e4082a86a201796b2a5cfd4298352d22b158b51b57736531824715fc2a979dd"}, ] [package.dependencies] @@ -3011,21 +3005,21 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] [[package]] name = "requests" -version = "2.29.0" +version = "2.30.0" description = "Python HTTP for Humans." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "requests-2.29.0-py3-none-any.whl", hash = "sha256:e8f3c9be120d3333921d213eef078af392fba3933ab7ed2d1cba3b56f2568c3b"}, - {file = "requests-2.29.0.tar.gz", hash = "sha256:f2e34a75f4749019bb0e3effb66683630e4ffeaf75819fb51bebef1bf5aef059"}, + {file = "requests-2.30.0-py3-none-any.whl", hash = "sha256:10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"}, + {file = "requests-2.30.0.tar.gz", hash = "sha256:239d7d4458afcb28a692cdd298d87542235f4ca8d36d03a15bfc128a6559a2f4"}, ] [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] @@ -3406,23 +3400,23 @@ files = [ [[package]] name = "tornado" -version = "6.3.1" +version = "6.3.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." category = "main" optional = false python-versions = ">= 3.8" files = [ - {file = "tornado-6.3.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:db181eb3df8738613ff0a26f49e1b394aade05034b01200a63e9662f347d4415"}, - {file = "tornado-6.3.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b4e7b956f9b5e6f9feb643ea04f07e7c6b49301e03e0023eedb01fa8cf52f579"}, - {file = "tornado-6.3.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9661aa8bc0e9d83d757cd95b6f6d1ece8ca9fd1ccdd34db2de381e25bf818233"}, - {file = "tornado-6.3.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81c17e0cc396908a5e25dc8e9c5e4936e6dfd544c9290be48bd054c79bcad51e"}, - {file = "tornado-6.3.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a27a1cfa9997923f80bdd962b3aab048ac486ad8cfb2f237964f8ab7f7eb824b"}, - {file = "tornado-6.3.1-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d7117f3c7ba5d05813b17a1f04efc8e108a1b811ccfddd9134cc68553c414864"}, - {file = "tornado-6.3.1-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:ffdce65a281fd708da5a9def3bfb8f364766847fa7ed806821a69094c9629e8a"}, - {file = "tornado-6.3.1-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:90f569a35a8ec19bde53aa596952071f445da678ec8596af763b9b9ce07605e6"}, - {file = "tornado-6.3.1-cp38-abi3-win32.whl", hash = "sha256:3455133b9ff262fd0a75630af0a8ee13564f25fb4fd3d9ce239b8a7d3d027bf8"}, - {file = "tornado-6.3.1-cp38-abi3-win_amd64.whl", hash = "sha256:1285f0691143f7ab97150831455d4db17a267b59649f7bd9700282cba3d5e771"}, - {file = "tornado-6.3.1.tar.gz", hash = "sha256:5e2f49ad371595957c50e42dd7e5c14d64a6843a3cf27352b69c706d1b5918af"}, + {file = "tornado-6.3.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:c367ab6c0393d71171123ca5515c61ff62fe09024fa6bf299cd1339dc9456829"}, + {file = "tornado-6.3.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b46a6ab20f5c7c1cb949c72c1994a4585d2eaa0be4853f50a03b5031e964fc7c"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2de14066c4a38b4ecbbcd55c5cc4b5340eb04f1c5e81da7451ef555859c833f"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05615096845cf50a895026f749195bf0b10b8909f9be672f50b0fe69cba368e4"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b17b1cf5f8354efa3d37c6e28fdfd9c1c1e5122f2cb56dac121ac61baa47cbe"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:29e71c847a35f6e10ca3b5c2990a52ce38b233019d8e858b755ea6ce4dcdd19d"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:834ae7540ad3a83199a8da8f9f2d383e3c3d5130a328889e4cc991acc81e87a0"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6a0848f1aea0d196a7c4f6772197cbe2abc4266f836b0aac76947872cd29b411"}, + {file = "tornado-6.3.2-cp38-abi3-win32.whl", hash = "sha256:7efcbcc30b7c654eb6a8c9c9da787a851c18f8ccd4a5a3a95b05c7accfa068d2"}, + {file = "tornado-6.3.2-cp38-abi3-win_amd64.whl", hash = "sha256:0c325e66c8123c606eea33084976c832aa4e766b7dff8aedd7587ea44a604cdf"}, + {file = "tornado-6.3.2.tar.gz", hash = "sha256:4b927c4f19b71e627b13f3db2324e4ae660527143f9e1f2e2fb404f3a187e2ba"}, ] [[package]] @@ -3562,18 +3556,17 @@ files = [ [[package]] name = "tzlocal" -version = "4.3" +version = "5.0.1" description = "tzinfo object for the local timezone" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "tzlocal-4.3-py3-none-any.whl", hash = "sha256:b44c4388f3d34f25862cfbb387578a4d70fec417649da694a132f628a23367e2"}, - {file = "tzlocal-4.3.tar.gz", hash = "sha256:3f21d09e1b2aa9f2dacca12da240ca37de3ba5237a93addfd6d593afe9073355"}, + {file = "tzlocal-5.0.1-py3-none-any.whl", hash = "sha256:f3596e180296aaf2dbd97d124fe76ae3a0e3d32b258447de7b939b3fd4be992f"}, + {file = "tzlocal-5.0.1.tar.gz", hash = "sha256:46eb99ad4bdb71f3f72b7d24f4267753e240944ecfc16f25d2719ba89827a803"}, ] [package.dependencies] -pytz-deprecation-shim = "*" tzdata = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] @@ -3596,20 +3589,21 @@ dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas [[package]] name = "urllib3" -version = "1.26.15" +version = "2.0.2" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7" files = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, + {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, + {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "validators" @@ -3756,4 +3750,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.9,!=3.9.7" -content-hash = "ac96a4ac5737561fdeee2f5476848ef21b65a267c2d918bce83f8b01eb81f740" +content-hash = "7183ff12de211ef90d9ef9eed0fca1061571884aeffe565ad02bf328e7a17e11" diff --git a/pyproject.toml b/pyproject.toml index bcb9183ca2a20a9fb80b2e8509a5c5700335c070..02777e8aa7b622090dc6134e456931c3d36bce90 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,11 +10,11 @@ license = "MIT" [tool.poetry.dependencies] python = "^3.9,!=3.9.7" -# flask = "^2.2.3" +cvxopt = "^1.3" streamlit = "^1.21" # mdata = "^0.1.0" mdata = { path = "C:/Users/Leah/PycharmProjects/mdata", develop = true } -# mdata = { git = "git@git-ce.rwth-aachen.de:leah.tgu/mdata.git", branch = "master" } +#mdata = { git = "https://git-ce.rwth-aachen.de/leah.tgu/mdata.git", branch = "master" } seaborn = "^0.12.2" plotly = "^5.14.1" tsdownsample = "^0.1.2"