From be9e7fa8c1b6a7209b5723656028224dfeed891b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Klep=C3=A1rn=C3=ADk?= Date: Tue, 27 Feb 2024 12:11:56 +0100 Subject: [PATCH] feat: failed to initialize fix and extended measurement added - failed to initialize the network application - shutdown fix - prepared for new version 0.4.0 --- era_5g_client/BUILD | 2 +- era_5g_client/client.py | 26 +- era_5g_client/client_base.py | 13 +- era_5g_client/middleware_resource_checker.py | 2 +- python-default.lock | 351 +++++++++++-------- requirements.txt | 8 +- 6 files changed, 230 insertions(+), 172 deletions(-) diff --git a/era_5g_client/BUILD b/era_5g_client/BUILD index e77df5b..19172d5 100644 --- a/era_5g_client/BUILD +++ b/era_5g_client/BUILD @@ -9,7 +9,7 @@ python_distribution( sdist=True, provides=setup_py( name="era_5g_client", - version="0.10.1", + version="0.11.0", description="A client for 5G-ERA Network Applications", author="Michal Kapinus", author_email="ikapinus@fit.vutbr.cz", diff --git a/era_5g_client/client.py b/era_5g_client/client.py index d97669e..adfbde0 100644 --- a/era_5g_client/client.py +++ b/era_5g_client/client.py @@ -37,6 +37,7 @@ def __init__( logging_level: int = logging.INFO, socketio_debug: bool = False, stats: bool = False, + extended_measuring: bool = False, back_pressure_size: int = 5, recreate_coder_attempts_count: int = 5, reconnection_attempts: int = 3, @@ -54,6 +55,7 @@ def __init__( logging_level (int): Logging level. socketio_debug (bool): Socket.IO debug flag. stats (bool): Store output data sizes. + extended_measuring (bool): Enable logging of measuring. back_pressure_size (int): Back pressure size - max size of eio.queue.qsize(). recreate_coder_attempts_count (int): How many times try to recreate the frame encoder/decoder. reconnection_attempts (int): How many times to try to reconnect if the connection to the server is lost. @@ -61,16 +63,17 @@ def __init__( """ super().__init__( - callbacks_info, - command_result_callback, - command_error_callback, - logging_level, - socketio_debug, - stats, - back_pressure_size, - recreate_coder_attempts_count, - reconnection_attempts, - disconnect_on_unhandled, + callbacks_info=callbacks_info, + command_result_callback=command_result_callback, + command_error_callback=command_error_callback, + logging_level=logging_level, + socketio_debug=socketio_debug, + stats=stats, + extended_measuring=extended_measuring, + back_pressure_size=back_pressure_size, + recreate_coder_attempts_count=recreate_coder_attempts_count, + reconnection_attempts=reconnection_attempts, + disconnect_on_unhandled=disconnect_on_unhandled, ) self.host: Optional[str] = None @@ -312,8 +315,9 @@ def delete_all_resources(self) -> None: if response.ok: self.logger.debug("Resource deleted") + self.action_plan_id = None else: - self.logger.warning(f"Resource deletion response: {response}") + self.logger.warning(f"Resource deletion response: {response}, {response.text}") except HTTPError as e: if e.response: self.logger.debug(e.response.status_code) diff --git a/era_5g_client/client_base.py b/era_5g_client/client_base.py index ec94ef9..b8922e0 100644 --- a/era_5g_client/client_base.py +++ b/era_5g_client/client_base.py @@ -1,4 +1,5 @@ import logging +import os import statistics import time from collections.abc import Callable @@ -9,7 +10,7 @@ import ujson from socketio.exceptions import ConnectionError -from era_5g_client.exceptions import FailedToConnect, FailedToInitialize +from era_5g_client.exceptions import FailedToConnect from era_5g_interface.channels import ( COMMAND_ERROR_EVENT, COMMAND_EVENT, @@ -48,6 +49,7 @@ def __init__( logging_level: int = logging.INFO, socketio_debug: bool = False, stats: bool = False, + extended_measuring: bool = False, back_pressure_size: Optional[int] = 5, recreate_coder_attempts_count: int = 5, reconnection_attempts: int = 3, @@ -65,6 +67,7 @@ def __init__( logging_level (int): Logging level. socketio_debug (bool): Socket.IO debug flag. stats (bool): Store output data sizes. + extended_measuring (bool): Enable logging of measuring. back_pressure_size (int, optional): Back pressure size - max size of eio.queue.qsize(). recreate_coder_attempts_count (int): How many times try to recreate the frame encoder/decoder. reconnection_attempts (int): How many times to try to reconnect if the connection to the server is lost. @@ -99,6 +102,7 @@ def __init__( back_pressure_size=back_pressure_size, recreate_coder_attempts_count=recreate_coder_attempts_count, stats=stats, + extended_measuring=extended_measuring, ) # Save custom command callbacks. @@ -140,7 +144,6 @@ def register( Raises: FailedToConnect: Failed to connect to network application exception. - FailedToInitialize: Failed to initialize the network application. Returns: Response: response from the 5G-ERA Network Application. @@ -214,7 +217,11 @@ def control_connect_callback(self) -> None: self.logger.info(f"Initialize the network application using the init command {control_command}") initialized, message = self.send_control_command(control_command) if not initialized: - raise FailedToInitialize(f"Failed to initialize the network application: {message}") + self.disconnect() + self.logger.error(f"Failed to initialize the network application: {message}") + logging.shutdown() # should flush the logger + os._exit(1) + # raise FailedToInitialize(f"Failed to initialize the network application: {message}") def data_disconnect_callback(self) -> None: """The callback called once the connection to the 5G-ERA Network Application DATA_NAMESPACE is lost.""" diff --git a/era_5g_client/middleware_resource_checker.py b/era_5g_client/middleware_resource_checker.py index 77188de..ac2c347 100644 --- a/era_5g_client/middleware_resource_checker.py +++ b/era_5g_client/middleware_resource_checker.py @@ -59,7 +59,7 @@ def run(self) -> None: assert isinstance(self.resource_state, dict) self.status = self.resource_state.get("serviceStatus", None) self.url = self.resource_state.get("serviceUrl", None) - logging.debug(f"{self.status=}, {self.url=}") + logger.debug(f"{self.status=}, {self.url=}") if self.state_callback: self.state_callback(self.resource_state) time.sleep(0.5) # TODO: adjust or use something similar to rospy.rate.sleep() diff --git a/python-default.lock b/python-default.lock index 03d1a68..87ebaa5 100644 --- a/python-default.lock +++ b/python-default.lock @@ -9,12 +9,12 @@ // "CPython>=3.8" // ], // "generated_with_requirements": [ -// "era-5g-interface~=0.9.0", -// "flask>=3.0.0", +// "era-5g-interface~=0.10.0", +// "flask>=3.0.2", // "numpy>=1.24.4", // "opencv-python>=4.7", -// "pytest>=7.4.3", -// "python-socketio[client]>=5.10.0", +// "pytest>=8.0.2", +// "python-socketio[client]>=5.11.1", // "requests>=2.31.0", // "types-requests>=2.31.0.10", // "types-ujson>=5.8.0.1", @@ -238,32 +238,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "6ef212238eb884b664f28da76f33f1d28b260f665fc737b413b287d5487d1e7b", - "url": "https://files.pythonhosted.org/packages/b5/82/ce0b6380f35f49d3fe687979a324c342cfa3588380232f3801db9dd62f9e/bidict-0.22.1-py3-none-any.whl" + "hash": "5dae8d4d79b552a71cbabc7deb25dfe8ce710b17ff41711e13010ead2abfc3e5", + "url": "https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d", - "url": "https://files.pythonhosted.org/packages/f2/be/b31e6ea9c94096a323e7a0e2c61480db01f07610bb7e7ea72a06fd1a23a8/bidict-0.22.1.tar.gz" + "hash": "03069d763bc387bbd20e7d49914e75fc4132a41937fa3405417e1a5a2d006d71", + "url": "https://files.pythonhosted.org/packages/9a/6e/026678aa5a830e07cd9498a05d3e7e650a4f56a42f267a53d22bcda1bdc9/bidict-0.23.1.tar.gz" } ], "project_name": "bidict", - "requires_dists": [ - "furo; extra == \"docs\"", - "hypothesis; extra == \"test\"", - "pre-commit; extra == \"lint\"", - "pytest-benchmark[histogram]; extra == \"test\"", - "pytest-cov; extra == \"test\"", - "pytest-xdist; extra == \"test\"", - "pytest; extra == \"test\"", - "sortedcollections; extra == \"test\"", - "sortedcontainers; extra == \"test\"", - "sphinx-copybutton; extra == \"docs\"", - "sphinx; extra == \"docs\"", - "sphinx; extra == \"test\"" - ], - "requires_python": ">=3.7", - "version": "0.22.1" + "requires_dists": [], + "requires_python": ">=3.8", + "version": "0.23.1" }, { "artifacts": [ @@ -287,19 +274,19 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474", - "url": "https://files.pythonhosted.org/packages/64/62/428ef076be88fa93716b576e4a01f919d25968913e817077a386fcbe4f42/certifi-2023.11.17-py3-none-any.whl" + "hash": "dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1", + "url": "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1", - "url": "https://files.pythonhosted.org/packages/d4/91/c89518dd4fe1f3a4e3f6ab7ff23cb00ef2e8c9adf99dacc618ad5e068e28/certifi-2023.11.17.tar.gz" + "hash": "0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", + "url": "https://files.pythonhosted.org/packages/71/da/e94e26401b62acd6d91df2b52954aceb7f561743aa5ccc32152886c76c96/certifi-2024.2.2.tar.gz" } ], "project_name": "certifi", "requires_dists": [], "requires_python": ">=3.6", - "version": "2023.11.17" + "version": "2024.2.2" }, { "artifacts": [ @@ -669,13 +656,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "6a295f9e4be922e7283c3da6e0ff53b23b257511345bc8c36a5952413f178f63", - "url": "https://files.pythonhosted.org/packages/24/b4/f7b3c0c9a96623b6c448900a95d084faad3183c135e997c2539bd26da083/era_5g_interface-0.9.0-py3-none-any.whl" + "hash": "1611396a142655ae81ed34c19430a39cb64f845d3080bd89800e57516d1dbe16", + "url": "https://files.pythonhosted.org/packages/c7/17/ed7a57cea0b95105284e39fb27ad772bbe10ffb4492f5c0dcd0761f5bd89/era_5g_interface-0.10.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "d517210580c0e02667463c0ff13eb4e8c5891860c9ee765609f5ba541ed676b6", - "url": "https://files.pythonhosted.org/packages/e5/30/3c541975c0c00abcc2d297ff9ae0d3201002d50e28504f2b4ae2b3a912b3/era_5g_interface-0.9.0.tar.gz" + "hash": "e0ad24c40456fcc15166da311a078924d4f9582b1eb4234d1318b64f55e9342f", + "url": "https://files.pythonhosted.org/packages/89/fa/81c1fc72e8ea2ef1a78226be9878ffe2ba1766b2c21578381456e202f4a9/era_5g_interface-0.10.0.tar.gz" } ], "project_name": "era-5g-interface", @@ -684,13 +671,15 @@ "lz4>=4.3.2", "numpy>=1.24.4", "opencv-python>=4.7", + "psutil>=5.9.8", "python-socketio[client]>=5.10.0", + "types-psutil>=5.9.5", "types-requests>=2.31.0.10", "types-ujson>=5.8.0.1", "ujson>=5.8.0" ], "requires_python": ">=3.8", - "version": "0.9.0" + "version": "0.10.0" }, { "artifacts": [ @@ -716,13 +705,13 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "ca631a507f6dfe6c278ae20112cea3ff54ff2216390bf8880f6b035a5354af13", - "url": "https://files.pythonhosted.org/packages/bd/0e/63738e88e981ae57c23bad6c499898314a1110a4141f77d7bd929b552fb4/flask-3.0.1-py3-none-any.whl" + "hash": "3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e", + "url": "https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "6489f51bb3666def6f314e15f19d50a1869a19ae0e8c9a3641ffe66c77d42403", - "url": "https://files.pythonhosted.org/packages/b2/14/97b9137a02f57d2287f3a9731b3a339fda716d2d3a157d7d1d89c2bebf7b/flask-3.0.1.tar.gz" + "hash": "822c03f4b799204250a7ee84b1eddc40665395333973dfb9deebfe425fefcb7d", + "url": "https://files.pythonhosted.org/packages/3f/e0/a89e8120faea1edbfca1a9b171cff7f2bf62ec860bbafcb2c2387c0317be/flask-3.0.2.tar.gz" } ], "project_name": "flask", @@ -737,7 +726,7 @@ "python-dotenv; extra == \"dotenv\"" ], "requires_python": ">=3.8", - "version": "3.0.1" + "version": "3.0.2" }, { "artifacts": [ @@ -1024,214 +1013,214 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a", - "url": "https://files.pythonhosted.org/packages/ee/bb/4509e220327f2033f3cc658949d9ce1bc4be83079bf23339cde54b9744ef/MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_x86_64.whl" + "hash": "5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6", + "url": "https://files.pythonhosted.org/packages/02/8c/ab9a463301a50dab04d5472e998acbd4080597abc048166ded5c7aa768c8/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131", - "url": "https://files.pythonhosted.org/packages/0d/57/aa0a5a362ef161e6be4e8f574338bf531d136d1579cd6b3ee8d54f0c51f8/MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl" + "hash": "f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", + "url": "https://files.pythonhosted.org/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789", - "url": "https://files.pythonhosted.org/packages/16/3b/d9873f81fcbf85c817849c2cba76f80ab9237207c0f395636362d6e06477/MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_x86_64.whl" + "hash": "e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46", + "url": "https://files.pythonhosted.org/packages/0a/7b/85681ae3c33c385b10ac0f8dd025c30af83c78cec1c37a6aa3b55e67f5ec/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4", - "url": "https://files.pythonhosted.org/packages/1a/3c/ca3094664ce3126145cc28b61bb37253d9f1614c9d8bbfa358ac7fc472c0/MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e", + "url": "https://files.pythonhosted.org/packages/0b/cc/48206bd61c5b9d0129f4d75243b156929b04c94c09041321456fd06a876d/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411", - "url": "https://files.pythonhosted.org/packages/1e/89/74dc2b42028ae15c934fc17a8fb91ffcd77b31176dd870a6ad521f28d878/MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl" + "hash": "7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c", + "url": "https://files.pythonhosted.org/packages/0c/40/2e73e7d532d030b1e41180807a80d564eda53babaf04d65e15c1cf897e40/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474", - "url": "https://files.pythonhosted.org/packages/22/21/db757f4055d8a96500da48a409bed5235bf4bc6ffc3d516e0446329c7dc9/MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_aarch64.whl" + "hash": "8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3", + "url": "https://files.pythonhosted.org/packages/0e/7d/968284145ffd9d726183ed6237c77938c021abacde4e073020f920e060b2/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250", - "url": "https://files.pythonhosted.org/packages/2c/db/e20eb0899e6cfc0bc51c21d0b62fb138f5e014443c340cacbd250768b968/MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf", + "url": "https://files.pythonhosted.org/packages/0f/31/780bb297db036ba7b7bbede5e1d7f1e14d704ad4beb3ce53fb495d22bc62/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3", - "url": "https://files.pythonhosted.org/packages/35/21/45495e6d8fd4fedad477b9fb97905279433f58c141e1b4fa7c752f1bc5ca/MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f", + "url": "https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e", - "url": "https://files.pythonhosted.org/packages/36/2a/fab302636634e1f770a26aac212e44cff25522ed3c9189bd8afc9ae2effd/MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f", + "url": "https://files.pythonhosted.org/packages/18/46/5dca760547e8c59c5311b332f70605d24c99d1303dd9a6e1fc3ed0d73561/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6", - "url": "https://files.pythonhosted.org/packages/37/69/9cb8ac6b24aa470ec9cb7eb13b2be98f95fc5ac4a6dbe21d6d8825e852ed/MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_i686.whl" + "hash": "6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced", + "url": "https://files.pythonhosted.org/packages/1c/cf/35fe557e53709e93feb65575c93927942087e9b97213eabc3fe9d5b25a55/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954", - "url": "https://files.pythonhosted.org/packages/38/6b/afcfc2cc9dbec4125589bdfa766aa55d23dc81dd07a548a334b659ce81db/MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl" + "hash": "ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900", + "url": "https://files.pythonhosted.org/packages/29/fe/a36ba8c7ca55621620b2d7c585313efd10729e63ef81e4e61f52330da781/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7", - "url": "https://files.pythonhosted.org/packages/41/76/d710592bf23cecab5361a76acddbcd80386fb44a41bb680b8cde94ce753f/MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_aarch64.whl" + "hash": "ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", + "url": "https://files.pythonhosted.org/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858", - "url": "https://files.pythonhosted.org/packages/42/4c/c39027927d0321c7895d565df6348a9c9fececaf0802b7e8f65a2e7e020f/MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_aarch64.whl" + "hash": "fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd", + "url": "https://files.pythonhosted.org/packages/30/39/8d845dd7d0b0613d86e0ef89549bfb5f61ed781f59af45fc96496e897f3a/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc", - "url": "https://files.pythonhosted.org/packages/43/6c/cada926629accaaf8f4fc3eb01694fd0c3dfcb311104f62849395c08acee/MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", + "url": "https://files.pythonhosted.org/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26", - "url": "https://files.pythonhosted.org/packages/45/ff/c118b6acedd08e4bff8a765d2fe218dd44d95ba390a421e2594996980cce/MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl" + "hash": "ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68", + "url": "https://files.pythonhosted.org/packages/4c/6f/f2b0f675635b05f6afd5ea03c094557bdb8622fa8e673387444fe8d8e787/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949", - "url": "https://files.pythonhosted.org/packages/4e/ab/2edef0c341dd91af8148f50fd879780afa2d1ed6501d3c93bd8a693e1829/MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_i686.whl" + "hash": "97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46", + "url": "https://files.pythonhosted.org/packages/4f/14/6f294b9c4f969d0c801a4615e221c1e084722ea6114ab2114189c5b8cbe0/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5", - "url": "https://files.pythonhosted.org/packages/56/a8/e7b5cc3ccbd1b06d52271ca6e72510909f1334b06ba3289ca519d68af8ea/MarkupSafe-2.1.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", + "url": "https://files.pythonhosted.org/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc", - "url": "https://files.pythonhosted.org/packages/56/df/e873f115b6211bb92ec160651ff227989bd1a471a92ae32984db68ee5a8b/MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_x86_64.whl" + "hash": "5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0", + "url": "https://files.pythonhosted.org/packages/51/e0/393467cf899b34a9d3678e78961c2c8cdf49fb902a959ba54ece01273fb1/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d", - "url": "https://files.pythonhosted.org/packages/5a/92/c61e3cfeae1d60aec048333df70a1307f63404fcd21a9ec55b5b32117ac7/MarkupSafe-2.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", + "url": "https://files.pythonhosted.org/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e", - "url": "https://files.pythonhosted.org/packages/60/7b/bb262e8a217ebe77fb07a142d58248fea62d55ac44b23bd713c5d3dd5a3e/MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_i686.whl" + "hash": "17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", + "url": "https://files.pythonhosted.org/packages/5f/5a/360da85076688755ea0cceb92472923086993e86b5613bbae9fbc14136b0/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00", - "url": "https://files.pythonhosted.org/packages/67/b4/e6dee1f6668ebd8e21616339dc1ca28ee368e5334afa874cb196d06297b6/MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_aarch64.whl" + "hash": "075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff", + "url": "https://files.pythonhosted.org/packages/60/ae/9c60231cdfda003434e8bd27282b1f4e197ad5a710c14bee8bea8a9ca4f0/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8", - "url": "https://files.pythonhosted.org/packages/68/5c/21f0d77446c031ff8b096dab9e93e2ac29a6f31532cc17951fb656b64d1c/MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad", + "url": "https://files.pythonhosted.org/packages/65/dc/1510be4d179869f5dafe071aecb3f1f41b45d37c02329dfba01ff59e5ac5/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl" }, { "algorithm": "sha256", - "hash": "396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d", - "url": "https://files.pythonhosted.org/packages/71/f1/9d1e248f846c29fc91fe9ddd1c5845e0217b75756a3ef4403ae3243d4fec/MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_x86_64.whl" + "hash": "4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465", + "url": "https://files.pythonhosted.org/packages/6a/18/ae5a258e3401f9b8312f92b028c54d7026a97ec3ab20bfaddbdfa7d8cce8/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" }, { "algorithm": "sha256", - "hash": "bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2", - "url": "https://files.pythonhosted.org/packages/79/c3/7e515024117de7c53968f7c761cbd641c7fa4ff1da721c44f7433aae073b/MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_universal2.whl" + "hash": "72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5", + "url": "https://files.pythonhosted.org/packages/6a/4a/a4d49415e600bacae038c67f9fecc1d5433b9d3c71a4de6f33537b89654c/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb", - "url": "https://files.pythonhosted.org/packages/87/8a/04467357a6f40f013f9362d174e0cb2d9f91c77f56f4b73c3b0c8f620fff/MarkupSafe-2.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2", + "url": "https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f", - "url": "https://files.pythonhosted.org/packages/88/35/283c8557b5a7838774adfb20b90f2d257427fed4fafedb84be34af813fa8/MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_i686.whl" + "hash": "db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2", + "url": "https://files.pythonhosted.org/packages/6c/77/d77701bbef72892affe060cdacb7a2ed7fd68dae3b477a8642f15ad3b132/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl" }, { "algorithm": "sha256", - "hash": "55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc", - "url": "https://files.pythonhosted.org/packages/98/8f/2d3694997f3eb2d3775950985a83194de77d8c7836c8f899116cc83a46de/MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a", + "url": "https://files.pythonhosted.org/packages/6d/c5/27febe918ac36397919cd4a67d5579cbbfa8da027fa1238af6285bb368ea/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl" }, { "algorithm": "sha256", - "hash": "e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea", - "url": "https://files.pythonhosted.org/packages/9d/38/ba1ea63db85f87a5ceeccc157059652a6eb9c1b100483c6887ffbf993878/MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_i686.whl" + "hash": "2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", + "url": "https://files.pythonhosted.org/packages/7c/52/2b1b570f6b8b803cef5ac28fdf78c0da318916c7d2fe9402a84d591b394c/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b", - "url": "https://files.pythonhosted.org/packages/a9/14/f6111644d89fcd98bb6378eed02f3919fa797745c61a9b01e0cc1f57a737/MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl" + "hash": "1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532", + "url": "https://files.pythonhosted.org/packages/81/d4/fd74714ed30a1dedd0b82427c02fa4deec64f173831ec716da11c51a50aa/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84", - "url": "https://files.pythonhosted.org/packages/b9/25/ed4be94e9c147d6939a708b94c55dfb6dfc8d9865618cf6896e34d7990aa/MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_universal2.whl" + "hash": "d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", + "url": "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz" }, { "algorithm": "sha256", - "hash": "47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc", - "url": "https://files.pythonhosted.org/packages/c0/4c/ebeeaa4b4af50f499fe4c38bde662ac4667cdded173c79273f9a0f1bef0d/MarkupSafe-2.1.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", + "url": "https://files.pythonhosted.org/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e", - "url": "https://files.pythonhosted.org/packages/c0/f9/109899f57848c8c2b5a2ee2dedaa5dd89d0187c2bbb61cf1aaa9d249dc05/MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", + "url": "https://files.pythonhosted.org/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl" }, { "algorithm": "sha256", - "hash": "a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f", - "url": "https://files.pythonhosted.org/packages/cb/b0/d7b8c30d8b0b27aa7ba8fe40b42cc0f30171716d9bb8bc59d43f2c70dcaa/MarkupSafe-2.1.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + "hash": "b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5", + "url": "https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6", - "url": "https://files.pythonhosted.org/packages/d3/0a/c6dfffacc5a9a17c97019cb7cbec67e5abfb65c59a58ecba270fa224f88d/MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + "hash": "d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", + "url": "https://files.pythonhosted.org/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl" }, { "algorithm": "sha256", - "hash": "0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69", - "url": "https://files.pythonhosted.org/packages/de/9a/6d2e1b78fecf2a1318aa41b5962deb4f1168b9d2c095543fc465de82c0c7/MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl" + "hash": "fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab", + "url": "https://files.pythonhosted.org/packages/c7/bd/50319665ce81bb10e90d1cf76f9e1aa269ea6f7fa30ab4521f14d122a3df/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" }, { "algorithm": "sha256", - "hash": "765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb", - "url": "https://files.pythonhosted.org/packages/df/f2/22f860f2dfa7d8c862801f7d91b7da53d3187c7dbeb88c00d28a799788bf/MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_universal2.whl" + "hash": "bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea", + "url": "https://files.pythonhosted.org/packages/d1/06/a41c112ab9ffdeeb5f77bc3e331fdadf97fa65e52e44ba31880f4e7f983c/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl" }, { "algorithm": "sha256", - "hash": "b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d", - "url": "https://files.pythonhosted.org/packages/e2/a1/ae1826835cb773db2d720125482b2f0b99308d12c9e9b78b2358f5ef0c60/MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" + "hash": "3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8", + "url": "https://files.pythonhosted.org/packages/d9/a7/1e558b4f78454c8a3a0199292d96159eb4d091f983bc35ef258314fe7269/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" }, { "algorithm": "sha256", - "hash": "a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e", - "url": "https://files.pythonhosted.org/packages/e2/a7/601b3a69a88d7e65e7495fa61f351916002b03549ff2fd748d65d2877e8c/MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_universal2.whl" + "hash": "a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc", + "url": "https://files.pythonhosted.org/packages/e4/54/ad5eb37bf9d51800010a74e4665425831a9db4e7c4e0fde4352e391e808e/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl" }, { "algorithm": "sha256", - "hash": "9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863", - "url": "https://files.pythonhosted.org/packages/e9/58/e6de8fd932e62d7a43174e700290cba3da08a502955de22141fbfced4b42/MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_universal2.whl" + "hash": "30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4", + "url": "https://files.pythonhosted.org/packages/f6/02/5437e2ad33047290dafced9df741d9efc3e716b75583bbd73a9984f1b6f7/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl" }, { "algorithm": "sha256", - "hash": "f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74", - "url": "https://files.pythonhosted.org/packages/fa/c4/812b1a4144b37c08687b24a54cf61f8354dc8be2e5962ad1f14895f080d4/MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_aarch64.whl" + "hash": "3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", + "url": "https://files.pythonhosted.org/packages/f8/81/56e567126a2c2bc2684d6391332e357589a96a76cb9f8e5052d85cb0ead8/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl" }, { "algorithm": "sha256", - "hash": "3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f", - "url": "https://files.pythonhosted.org/packages/fb/5a/fb1326fe32913e663c8e2d6bdf7cde6f472e51f9c21f0768d9b9080fe7c5/MarkupSafe-2.1.4.tar.gz" + "hash": "656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a", + "url": "https://files.pythonhosted.org/packages/f8/ff/2c942a82c35a49df5de3a630ce0a8456ac2969691b230e530ac12314364c/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl" } ], "project_name": "markupsafe", "requires_dists": [], "requires_python": ">=3.7", - "version": "2.1.4" + "version": "2.1.5" }, { "artifacts": [ @@ -1424,13 +1413,52 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "50fb9cbe836c3f20f0dfa99c565201fb75dc54c8d76373cd1bde06b06657bdb6", - "url": "https://files.pythonhosted.org/packages/c7/10/727155d44c5e04bb08e880668e53079547282e4f950535234e5a80690564/pytest-8.0.0-py3-none-any.whl" + "hash": "d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8", + "url": "https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl" + }, + { + "algorithm": "sha256", + "hash": "6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", + "url": "https://files.pythonhosted.org/packages/90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8.tar.gz" }, { "algorithm": "sha256", - "hash": "249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c", - "url": "https://files.pythonhosted.org/packages/50/fd/af2d835eed57448960c4e7e9ab76ee42f24bcdd521e967191bc26fa2dece/pytest-8.0.0.tar.gz" + "hash": "8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421", + "url": "https://files.pythonhosted.org/packages/b3/bd/28c5f553667116b2598b9cc55908ec435cb7f77a34f2bff3e3ca765b0f78/psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl" + }, + { + "algorithm": "sha256", + "hash": "d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4", + "url": "https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" + }, + { + "algorithm": "sha256", + "hash": "aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81", + "url": "https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl" + } + ], + "project_name": "psutil", + "requires_dists": [ + "enum34; python_version <= \"3.4\" and extra == \"test\"", + "ipaddress; python_version < \"3.0\" and extra == \"test\"", + "mock; python_version < \"3.0\" and extra == \"test\"", + "pywin32; sys_platform == \"win32\" and extra == \"test\"", + "wmi; sys_platform == \"win32\" and extra == \"test\"" + ], + "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7", + "version": "5.9.8" + }, + { + "artifacts": [ + { + "algorithm": "sha256", + "hash": "edfaaef32ce5172d5466b5127b42e0d6d35ebbe4453f0e3505d96afd93f6b096", + "url": "https://files.pythonhosted.org/packages/a7/ea/d0ab9595a0d4b2320483e634123171deaf50885e29d442180efcbf2ed0b2/pytest-8.0.2-py3-none-any.whl" + }, + { + "algorithm": "sha256", + "hash": "d4051d623a2e0b7e51960ba963193b09ce6daeb9759a451844a21e4ddedfc1bd", + "url": "https://files.pythonhosted.org/packages/3f/c0/238f25cb27495fdbaa5c48cef9886162e9df1f3d0e957fc8326d9c24fa2f/pytest-8.0.2.tar.gz" } ], "project_name": "pytest", @@ -1452,19 +1480,19 @@ "xmlschema; extra == \"testing\"" ], "requires_python": ">=3.8", - "version": "8.0.0" + "version": "8.0.2" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "a357f0aba275c311b66f22181472ed5b174bbc541742eea1d16feae2fa1afabd", - "url": "https://files.pythonhosted.org/packages/4f/ca/b14136484c9a10230abbf44a89041ccd2c696d0cb425e53f48ca0de0d1e7/python_engineio-4.8.2-py3-none-any.whl" + "hash": "979859bff770725b75e60353d7ae53b397e8b517d05ba76733b404a3dcca3e4c", + "url": "https://files.pythonhosted.org/packages/fe/e5/03fa8e76c718e1dd7fb5b74e9ce816ae0e08734080b1e98dbafbcf2fc8ba/python_engineio-4.9.0-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "f8609e3afdda318fdc336b4ba2de8dd397bb8f9b8a1b43e56c27330e32c2e34c", - "url": "https://files.pythonhosted.org/packages/e2/24/4a69dd119d10e31c4439f910a2a0f71b540b9f835ab60efa1f0f7bcae0c7/python-engineio-4.8.2.tar.gz" + "hash": "e87459c15638e567711fd156e6f9c4a402668871bed79523f0ecfec744729ec7", + "url": "https://files.pythonhosted.org/packages/be/1b/13caab8337dc0cec96c65226a0fbaa2d1c6ec4ad0fb4faf02b1f2fdc150a/python-engineio-4.9.0.tar.gz" } ], "project_name": "python-engineio", @@ -1476,19 +1504,19 @@ "websocket-client>=0.54.0; extra == \"client\"" ], "requires_python": ">=3.6", - "version": "4.8.2" + "version": "4.9.0" }, { "artifacts": [ { "algorithm": "sha256", - "hash": "cfcb0163d77c8d23b98285754e79016786740dd901268654a52823da0bc73382", - "url": "https://files.pythonhosted.org/packages/5c/6d/dd2447d27979c4ca84738bb4d5a9245aa8e1f736b4054d894f7fd2030c84/python_socketio-5.11.0-py3-none-any.whl" + "hash": "f1a0228b8b1fbdbd93fbbedd821ebce0ef54b2b5bf6e98fcf710deaa7c574259", + "url": "https://files.pythonhosted.org/packages/06/50/1dc8262920f10e2f94376295fe4c6c7237d5dfadbf34365f403e24727345/python_socketio-5.11.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "b03186e04b942088781f6286c13604a853e5e35ed59158c51ff7af22fa032e6f", - "url": "https://files.pythonhosted.org/packages/7a/e1/2817819a5635a099fda9fc758c51dc2f07996d6928d744639afcf5c5ddbb/python-socketio-5.11.0.tar.gz" + "hash": "bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2", + "url": "https://files.pythonhosted.org/packages/89/d9/ceffa05f1cd72717c1677707debcb04654ad99844d87375ed14301536f27/python-socketio-5.11.1.tar.gz" } ], "project_name": "python-socketio", @@ -1500,8 +1528,8 @@ "sphinx; extra == \"docs\"", "websocket-client>=0.54.0; extra == \"client\"" ], - "requires_python": ">=3.6", - "version": "5.11.0" + "requires_python": ">=3.8", + "version": "5.11.1" }, { "artifacts": [ @@ -1571,13 +1599,31 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "9592a9a4cb92d6d75d9b491a41477272b710e021011a2a3061157e2fb1f1a5d1", - "url": "https://files.pythonhosted.org/packages/ae/29/3290a0d17865b9ec3d54fbb17faa265d9de7e856b6a3b52dfdf3507efd7c/types_requests-2.31.0.20240125-py3-none-any.whl" + "hash": "3ec9bd8b95a64fe1269241d3ffb74b94a45df2d0391da1402423cd33f29745ca", + "url": "https://files.pythonhosted.org/packages/25/88/e11e63f2819705b0ab95d7e232141e0f2cb050ba98ef7b7208c2daf31bbe/types_psutil-5.9.5.20240205-py3-none-any.whl" + }, + { + "algorithm": "sha256", + "hash": "51df36a361aa597bf483dcc5b58f2ab7aa87452a36d2da97c90994d6a81ef743", + "url": "https://files.pythonhosted.org/packages/14/e7/6a068374c6fbbf3bc098cb5d0ac0b7b51f038bf51eb46f5b6bb198483648/types-psutil-5.9.5.20240205.tar.gz" + } + ], + "project_name": "types-psutil", + "requires_dists": [], + "requires_python": ">=3.8", + "version": "5.9.5.20240205" + }, + { + "artifacts": [ + { + "algorithm": "sha256", + "hash": "a82807ec6ddce8f00fe0e949da6d6bc1fbf1715420218a9640d695f70a9e5a9b", + "url": "https://files.pythonhosted.org/packages/ce/ca/82c7f75616c524856488cece6b37e459de626cad49b2a24a0b571c20be06/types_requests-2.31.0.20240218-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "03a28ce1d7cd54199148e043b2079cdded22d6795d19a2c2a6791a4b2b5e2eb5", - "url": "https://files.pythonhosted.org/packages/d9/7f/fb937e67e242dc191716860f6f16c6b57d2b20896e98a15ca5c298bd18b4/types-requests-2.31.0.20240125.tar.gz" + "hash": "f1721dba8385958f504a5386240b92de4734e047a08a40751c1654d1ac3349c5", + "url": "https://files.pythonhosted.org/packages/e7/54/06c044fbcfb73f36c07c3caac5c6b2dd700acd338e788f9f8e13e6609ebc/types-requests-2.31.0.20240218.tar.gz" } ], "project_name": "types-requests", @@ -1585,7 +1631,7 @@ "urllib3>=2" ], "requires_python": ">=3.8", - "version": "2.31.0.20240125" + "version": "2.31.0.20240218" }, { "artifacts": [ @@ -1877,24 +1923,25 @@ "artifacts": [ { "algorithm": "sha256", - "hash": "55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3", - "url": "https://files.pythonhosted.org/packages/96/94/c31f58c7a7f470d5665935262ebd7455c7e4c7782eb525658d3dbf4b9403/urllib3-2.1.0-py3-none-any.whl" + "hash": "450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", + "url": "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl" }, { "algorithm": "sha256", - "hash": "df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54", - "url": "https://files.pythonhosted.org/packages/36/dd/a6b232f449e1bc71802a5b7950dc3675d32c6dbc2a1bd6d71f065551adb6/urllib3-2.1.0.tar.gz" + "hash": "d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19", + "url": "https://files.pythonhosted.org/packages/7a/50/7fd50a27caa0652cd4caf224aa87741ea41d3265ad13f010886167cfcc79/urllib3-2.2.1.tar.gz" } ], "project_name": "urllib3", "requires_dists": [ "brotli>=1.0.9; platform_python_implementation == \"CPython\" and extra == \"brotli\"", "brotlicffi>=0.8.0; platform_python_implementation != \"CPython\" and extra == \"brotli\"", + "h2<5,>=4; extra == \"h2\"", "pysocks!=1.5.7,<2.0,>=1.5.6; extra == \"socks\"", "zstandard>=0.18.0; extra == \"zstd\"" ], "requires_python": ">=3.8", - "version": "2.1.0" + "version": "2.2.1" }, { "artifacts": [ @@ -2008,12 +2055,12 @@ "pip_version": "23.1.2", "prefer_older_binary": false, "requirements": [ - "era-5g-interface~=0.9.0", - "flask>=3.0.0", + "era-5g-interface~=0.10.0", + "flask>=3.0.2", "numpy>=1.24.4", "opencv-python>=4.7", - "pytest>=7.4.3", - "python-socketio[client]>=5.10.0", + "pytest>=8.0.2", + "python-socketio[client]>=5.11.1", "requests>=2.31.0", "types-requests>=2.31.0.10", "types-ujson>=5.8.0.1", diff --git a/requirements.txt b/requirements.txt index 31ef814..2d78295 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ -era-5g-interface~=0.9.0 -flask>=3.0.0 +era-5g-interface~=0.10.0 +flask>=3.0.2 numpy>=1.24.4 opencv-python>=4.7 -python-socketio[client]>=5.10.0 +python-socketio[client]>=5.11.1 requests>=2.31.0 ujson>=5.8.0 -pytest>=7.4.3 +pytest>=8.0.2 # these could go to mypy.txt but it does not work for some reason types-requests>=2.31.0.10