From 900ef45aeb97909b76f22ead0878c17b634efaab Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 6 Feb 2023 16:33:17 -0500 Subject: [PATCH 01/28] Voila mode wip --- mock_connect.py | 1 + rsconnect_jupyter/__init__.py | 21 ++++++++++++++++++++- rsconnect_jupyter/static/connect.js | 18 ++++++++++++++---- rsconnect_jupyter/static/rsconnect.js | 4 ++-- 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/mock_connect.py b/mock_connect.py index d95b2f1c..585d958e 100644 --- a/mock_connect.py +++ b/mock_connect.py @@ -258,6 +258,7 @@ def read_html(tarball): app_modes = { "static": 4, "jupyter-static": 7, + "jupyter-voila": 16, } diff --git a/rsconnect_jupyter/__init__.py b/rsconnect_jupyter/__init__.py index e0bde7c4..0165b9cc 100644 --- a/rsconnect_jupyter/__init__.py +++ b/rsconnect_jupyter/__init__.py @@ -4,7 +4,7 @@ import sys from six.moves.urllib.parse import unquote_plus -from os.path import dirname +from os.path import basename, dirname from notebook.base.handlers import APIHandler from notebook.utils import url_path_join @@ -22,6 +22,7 @@ from rsconnect.bundle import ( make_notebook_html_bundle, make_notebook_source_bundle, + make_voila_bundle, write_manifest, ) from rsconnect.environment import Environment @@ -193,6 +194,24 @@ def post(self, action): except Exception as exc: self.log.exception("Bundle creation failed") raise web.HTTPError(500, "Bundle creation failed: %s" % exc) + elif app_mode == "jupyter-voila": + # workaround current dir issue with rsconnect-python's voila deployments + os.chdir(dirname(os_path)) + if not environment_dict: + raise web.HTTPError(400, "environment is required for jupyter-voila app_mode") + + try: + bundle = make_voila_bundle( + dirname(os_path), + basename(os_path), + extra_files, + [], # excludes + False, # force_generate + Environment(**environment_dict), + ) + except Exception as exc: + self.log.exception("Bundle creation failed") + raise web.HTTPError(500, "Bundle creation failed: %s" % exc) else: raise web.HTTPError( 400, diff --git a/rsconnect_jupyter/static/connect.js b/rsconnect_jupyter/static/connect.js index 7a871f3a..6238e01a 100644 --- a/rsconnect_jupyter/static/connect.js +++ b/rsconnect_jupyter/static/connect.js @@ -818,7 +818,7 @@ define([ * @param userEditedTitle {String} title as edited by user * @param selectedDeployLocation {DeploymentLocation.Canceled|DeploymentLocation.New|String} whether this is a new * deployment, a canceled deployment, or has an app id - * @param selectedAppMode {'jupyter-static'|'static'|null} App mode + * @param selectedAppMode {'jupyter-static'|'static'|'jupyter-voila'|null} App mode * @param environmentOptions {null|"use-existing-conda"|"use-existing-pip"|"generate-new-pip"|"generate-new-conda"} * Selected environment option */ @@ -1014,7 +1014,7 @@ define([ } function updateCheckboxStates() { - var publishingWithSource = (appMode === 'jupyter-static'); + var publishingWithSource = (appMode === 'jupyter-static' || appMode === 'jupyter-voila'); var serverSelected = !!selectedEntryId; var $filesBox = $('#include-files'); var includingFiles = $filesBox.prop('checked'); @@ -1064,6 +1064,13 @@ define([ ' Publish document with source code
', ' Choose this option if you want to create a scheduled report or rebuild your document on the server', ' ', + ' ', + ' ', + ' Publish interactive Voila document with source code
', + ' Choose this option if you want to publish an interactive notebook with widgets', + '
', ' ', ' ' + '
' ); var divider = $('

Or update:

'); diff --git a/rsconnect_jupyter/static/rsconnect.js b/rsconnect_jupyter/static/rsconnect.js index e8f149f4..3b3f8054 100644 --- a/rsconnect_jupyter/static/rsconnect.js +++ b/rsconnect_jupyter/static/rsconnect.js @@ -347,7 +347,7 @@ define([ * @param serverId {string} the server identifier * @param appId {number} the numeric app ID * @param notebookTitle {string} Title of the notebook to be passed as name/title - * @param appMode {'static'|'jupyter-static'} App mode to deploy. 'static' is not rendered. + * @param appMode {'static'|'jupyter-static'|'jupyter-voila'} App mode to deploy. 'static' is not rendered. * @param files {Array} paths to files to deploy. * @param condaMode {boolean} whether or not to use conda to build an `environment.yml`. * @param forceGenerate {boolean} whether to force `requirements.txt` to be generated even if one exists. @@ -477,7 +477,7 @@ define([ return xhr; } - if (appMode === 'jupyter-static') { + if (appMode === 'jupyter-static' || appMode === 'jupyter-voila') { return this.inspectEnvironment(condaMode, forceGenerate).then(deploy); } else { return deploy(null); From 46f27df21ab09f338956c76de9a48167dbe36a1b Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 6 Feb 2023 16:34:14 -0500 Subject: [PATCH 02/28] Voila icons --- .../static/images/publishDocVoila.png | Bin 0 -> 2896 bytes .../static/images/publishDocVoila_2x.png | Bin 0 -> 8473 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 rsconnect_jupyter/static/images/publishDocVoila.png create mode 100644 rsconnect_jupyter/static/images/publishDocVoila_2x.png diff --git a/rsconnect_jupyter/static/images/publishDocVoila.png b/rsconnect_jupyter/static/images/publishDocVoila.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee87ad0095b1862b482d726b352a9ba9934dc99 GIT binary patch literal 2896 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 Date: Mon, 6 Feb 2023 16:46:54 -0500 Subject: [PATCH 03/28] temporarily use branch of rsconnect-python --- Makefile | 1 - Pipfile | 2 +- Pipfile.lock | 1775 +++++++++++++++++++++++++++----------------------- 3 files changed, 977 insertions(+), 801 deletions(-) diff --git a/Makefile b/Makefile index c0fcc67c..9f6fb07f 100644 --- a/Makefile +++ b/Makefile @@ -89,7 +89,6 @@ run-local: run .PHONY: install install: yarn pipenv install --dev - $(MAKE) install-latest-rsconnect-python $(MAKE) version-frontend pipenv run jupyter nbextension install --symlink --user --py rsconnect_jupyter pipenv run jupyter nbextension enable --py rsconnect_jupyter diff --git a/Pipfile b/Pipfile index 4e006dd2..c975d4cf 100644 --- a/Pipfile +++ b/Pipfile @@ -22,7 +22,7 @@ traitlets = ">=5.1.1" nbconvert = ">=5.0" nbformat = "*" notebook = ">=6.1.5, <7.0.0" -rsconnect-python = ">=1.7.1" +rsconnect-python = {editable = true, git = "https://github.com/rstudio/rsconnect-python.git", ref = "bcwu-voila" } six = "*" # Dependabot fixes py = ">=1.10.0" diff --git a/Pipfile.lock b/Pipfile.lock index fcdd05a9..7119ebef 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "2c02d8de66ca693b68453941de77c57abeaae88a222b73c9650f3e608e96b6d9" + "sha256": "e219b149258a67dbfcf240f84b3f9beee3f4c55b8088933f9526438716be4d7a" }, "pipfile-spec": 6, "requires": {}, @@ -14,6 +14,22 @@ ] }, "default": { + "anyio": { + "hashes": [ + "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421", + "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3" + ], + "markers": "python_full_version >= '3.6.2'", + "version": "==3.6.2" + }, + "appnope": { + "hashes": [ + "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24", + "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e" + ], + "markers": "platform_system == 'Darwin'", + "version": "==0.1.3" + }, "argon2-cffi": { "hashes": [ "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80", @@ -49,20 +65,28 @@ "markers": "python_version >= '3.6'", "version": "==21.2.0" }, + "arrow": { + "hashes": [ + "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1", + "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2" + ], + "markers": "python_version >= '3.6'", + "version": "==1.2.3" + }, "asttokens": { "hashes": [ - "sha256:0844691e88552595a6f4a4281a9f7f79b8dd45ca4ccea82e5e05b4bbdb76705c", - "sha256:9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5" + "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3", + "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c" ], - "version": "==2.0.5" + "version": "==2.2.1" }, "attrs": { "hashes": [ - "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", - "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836", + "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==21.4.0" + "markers": "python_version >= '3.6'", + "version": "==22.2.0" }, "backcall": { "hashes": [ @@ -71,158 +95,158 @@ ], "version": "==0.2.0" }, - "black": { + "beautifulsoup4": { "hashes": [ - "sha256:07e5c049442d7ca1a2fc273c79d1aecbbf1bc858f62e8184abe1ad175c4f7cc2", - "sha256:0e21e1f1efa65a50e3960edd068b6ae6d64ad6235bd8bfea116a03b21836af71", - "sha256:1297c63b9e1b96a3d0da2d85d11cd9bf8664251fd69ddac068b98dc4f34f73b6", - "sha256:228b5ae2c8e3d6227e4bde5920d2fc66cc3400fde7bcc74f480cb07ef0b570d5", - "sha256:2d6f331c02f0f40aa51a22e479c8209d37fcd520c77721c034517d44eecf5912", - "sha256:2ff96450d3ad9ea499fc4c60e425a1439c2120cbbc1ab959ff20f7c76ec7e866", - "sha256:3524739d76b6b3ed1132422bf9d82123cd1705086723bc3e235ca39fd21c667d", - "sha256:35944b7100af4a985abfcaa860b06af15590deb1f392f06c8683b4381e8eeaf0", - "sha256:373922fc66676133ddc3e754e4509196a8c392fec3f5ca4486673e685a421321", - "sha256:5fa1db02410b1924b6749c245ab38d30621564e658297484952f3d8a39fce7e8", - "sha256:6f2f01381f91c1efb1451998bd65a129b3ed6f64f79663a55fe0e9b74a5f81fd", - "sha256:742ce9af3086e5bd07e58c8feb09dbb2b047b7f566eb5f5bc63fd455814979f3", - "sha256:7835fee5238fc0a0baf6c9268fb816b5f5cd9b8793423a75e8cd663c48d073ba", - "sha256:8871fcb4b447206904932b54b567923e5be802b9b19b744fdff092bd2f3118d0", - "sha256:a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5", - "sha256:b1a5ed73ab4c482208d20434f700d514f66ffe2840f63a6252ecc43a9bc77e8a", - "sha256:c8226f50b8c34a14608b848dc23a46e5d08397d009446353dad45e04af0c8e28", - "sha256:ccad888050f5393f0d6029deea2a33e5ae371fd182a697313bdbd835d3edaf9c", - "sha256:dae63f2dbf82882fa3b2a3c49c32bffe144970a573cd68d247af6560fc493ae1", - "sha256:e2f69158a7d120fd641d1fa9a921d898e20d52e44a74a6fbbcc570a62a6bc8ab", - "sha256:efbadd9b52c060a8fc3b9658744091cb33c31f830b3f074422ed27bad2b18e8f", - "sha256:f5660feab44c2e3cb24b2419b998846cbb01c23c7fe645fee45087efa3da2d61", - "sha256:fdb8754b453fb15fad3f72cd9cad3e16776f0964d67cf30ebcbf10327a3777a3" + "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39", + "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106" ], - "markers": "python_full_version >= '3.6.2'", - "version": "==22.1.0" + "markers": "python_full_version >= '3.6.0'", + "version": "==4.11.2" }, "bleach": { "hashes": [ - "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da", - "sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994" + "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414", + "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4" ], "index": "pypi", - "version": "==4.1.0" + "version": "==6.0.0" }, "cffi": { "hashes": [ - "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3", - "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2", - "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636", - "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20", - "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728", - "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27", - "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66", - "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443", - "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0", - "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7", - "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39", - "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605", - "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a", - "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37", - "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029", - "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139", - "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc", - "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df", - "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14", - "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880", - "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2", - "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a", - "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e", - "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474", - "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024", - "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8", - "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0", - "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e", - "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a", - "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e", - "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032", - "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6", - "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e", - "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b", - "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e", - "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954", - "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962", - "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c", - "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4", - "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55", - "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962", - "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023", - "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c", - "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6", - "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8", - "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382", - "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7", - "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc", - "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997", - "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796" - ], - "version": "==1.15.0" + "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", + "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", + "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", + "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", + "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", + "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", + "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", + "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", + "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", + "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", + "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", + "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", + "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", + "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", + "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", + "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", + "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", + "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", + "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", + "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", + "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", + "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", + "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", + "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", + "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", + "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", + "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", + "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", + "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", + "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", + "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", + "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", + "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", + "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", + "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", + "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", + "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", + "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", + "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", + "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", + "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", + "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", + "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", + "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", + "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", + "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", + "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", + "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", + "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", + "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", + "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", + "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", + "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", + "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", + "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", + "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", + "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", + "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", + "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", + "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", + "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", + "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", + "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", + "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" + ], + "version": "==1.15.1" }, "click": { "hashes": [ - "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3", - "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b" + "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", + "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" + ], + "markers": "python_version >= '3.7'", + "version": "==8.1.3" + }, + "comm": { + "hashes": [ + "sha256:3e2f5826578e683999b93716285b3b1f344f157bf75fa9ce0a797564e742f062", + "sha256:9f3abf3515112fa7c55a42a6a5ab358735c9dccc8b5910a9d8e3ef5998130666" ], "markers": "python_version >= '3.6'", - "version": "==8.0.3" + "version": "==0.1.2" }, "cryptography": { "hashes": [ - "sha256:0a817b961b46894c5ca8a66b599c745b9a3d9f822725221f0e0fe49dc043a3a3", - "sha256:2d87cdcb378d3cfed944dac30596da1968f88fb96d7fc34fdae30a99054b2e31", - "sha256:30ee1eb3ebe1644d1c3f183d115a8c04e4e603ed6ce8e394ed39eea4a98469ac", - "sha256:391432971a66cfaf94b21c24ab465a4cc3e8bf4a939c1ca5c3e3a6e0abebdbcf", - "sha256:39bdf8e70eee6b1c7b289ec6e5d84d49a6bfa11f8b8646b5b3dfe41219153316", - "sha256:4caa4b893d8fad33cf1964d3e51842cd78ba87401ab1d2e44556826df849a8ca", - "sha256:53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638", - "sha256:596f3cd67e1b950bc372c33f1a28a0692080625592ea6392987dba7f09f17a94", - "sha256:5d59a9d55027a8b88fd9fd2826c4392bd487d74bf628bb9d39beecc62a644c12", - "sha256:6c0c021f35b421ebf5976abf2daacc47e235f8b6082d3396a2fe3ccd537ab173", - "sha256:73bc2d3f2444bcfeac67dd130ff2ea598ea5f20b40e36d19821b4df8c9c5037b", - "sha256:74d6c7e80609c0f4c2434b97b80c7f8fdfaa072ca4baab7e239a15d6d70ed73a", - "sha256:7be0eec337359c155df191d6ae00a5e8bbb63933883f4f5dffc439dac5348c3f", - "sha256:94ae132f0e40fe48f310bba63f477f14a43116f05ddb69d6fa31e93f05848ae2", - "sha256:bb5829d027ff82aa872d76158919045a7c1e91fbf241aec32cb07956e9ebd3c9", - "sha256:ca238ceb7ba0bdf6ce88c1b74a87bffcee5afbfa1e41e173b1ceb095b39add46", - "sha256:ca28641954f767f9822c24e927ad894d45d5a1e501767599647259cbf030b903", - "sha256:e0344c14c9cb89e76eb6a060e67980c9e35b3f36691e15e1b7a9e58a0a6c6dc3", - "sha256:ebc15b1c22e55c4d5566e3ca4db8689470a0ca2babef8e3a9ee057a8b82ce4b1", - "sha256:ec63da4e7e4a5f924b90af42eddf20b698a70e58d86a72d943857c4c6045b3ee" + "sha256:1a6915075c6d3a5e1215eab5d99bcec0da26036ff2102a1038401d6ef5bef25b", + "sha256:1ee1fd0de9851ff32dbbb9362a4d833b579b4a6cc96883e8e6d2ff2a6bc7104f", + "sha256:407cec680e811b4fc829de966f88a7c62a596faa250fc1a4b520a0355b9bc190", + "sha256:50386acb40fbabbceeb2986332f0287f50f29ccf1497bae31cf5c3e7b4f4b34f", + "sha256:6f97109336df5c178ee7c9c711b264c502b905c2d2a29ace99ed761533a3460f", + "sha256:754978da4d0457e7ca176f58c57b1f9de6556591c19b25b8bcce3c77d314f5eb", + "sha256:76c24dd4fd196a80f9f2f5405a778a8ca132f16b10af113474005635fe7e066c", + "sha256:7dacfdeee048814563eaaec7c4743c8aea529fe3dd53127313a792f0dadc1773", + "sha256:80ee674c08aaef194bc4627b7f2956e5ba7ef29c3cc3ca488cf15854838a8f72", + "sha256:844ad4d7c3850081dffba91cdd91950038ee4ac525c575509a42d3fc806b83c8", + "sha256:875aea1039d78557c7c6b4db2fe0e9d2413439f4676310a5f269dd342ca7a717", + "sha256:887cbc1ea60786e534b00ba8b04d1095f4272d380ebd5f7a7eb4cc274710fad9", + "sha256:ad04f413436b0781f20c52a661660f1e23bcd89a0e9bb1d6d20822d048cf2856", + "sha256:bae6c7f4a36a25291b619ad064a30a07110a805d08dc89984f4f441f6c1f3f96", + "sha256:c52a1a6f81e738d07f43dab57831c29e57d21c81a942f4602fac7ee21b27f288", + "sha256:e0a05aee6a82d944f9b4edd6a001178787d1546ec7c6223ee9a848a7ade92e39", + "sha256:e324de6972b151f99dc078defe8fb1b0a82c6498e37bff335f5bc6b1e3ab5a1e", + "sha256:e5d71c5d5bd5b5c3eebcf7c5c2bb332d62ec68921a8c593bea8c394911a005ce", + "sha256:f3ed2d864a2fa1666e749fe52fb8e23d8e06b8012e8bd8147c73797c506e86f1", + "sha256:f671c1bb0d6088e94d61d80c606d65baacc0d374e67bf895148883461cd848de", + "sha256:f6c0db08d81ead9576c4d94bbb27aed8d7a430fa27890f39084c2d0e2ec6b0df", + "sha256:f964c7dcf7802d133e8dbd1565914fa0194f9d683d82411989889ecd701e8adf", + "sha256:fec8b932f51ae245121c4671b4bbc030880f363354b2f0e0bd1366017d891458" ], "index": "pypi", - "version": "==36.0.1" + "version": "==39.0.0" }, "debugpy": { "hashes": [ - "sha256:01e98c594b3e66d529e40edf314f849cd1a21f7a013298df58cd8e263bf8e184", - "sha256:16db27b4b91991442f91d73604d32080b30de655aca9ba821b1972ea8171021b", - "sha256:17a25ce9d7714f92fc97ef00cc06269d7c2b163094990ada30156ed31d9a5030", - "sha256:194f95dd3e84568b5489aab5689a3a2c044e8fdc06f1890b8b4f70b6b89f2778", - "sha256:1ec3a086e14bba6c472632025b8fe5bdfbaef2afa1ebd5c6615ce6ed8d89bc67", - "sha256:23df67fc56d59e386c342428a7953c2c06cc226d8525b11319153e96afb65b0c", - "sha256:26fbe53cca45a608679094791ce587b6e2798acd1d4777a8b303b07622e85182", - "sha256:2b073ad5e8d8c488fbb6a116986858bab0c9c4558f28deb8832c7a5a27405bd6", - "sha256:318f81f37341e4e054b4267d39896b73cddb3612ca13b39d7eea45af65165e1d", - "sha256:3a457ad9c0059a21a6c7d563c1f18e924f5cf90278c722bd50ede6f56b77c7fe", - "sha256:4404a62fb5332ea5c8c9132290eef50b3a0ba38cecacad5529e969a783bcbdd7", - "sha256:5d76a4fd028d8009c3faf1185b4b78ceb2273dd2499447664b03939e0368bb90", - "sha256:70b422c63a833630c33e3f9cdbd9b6971f8c5afd452697e464339a21bbe862ba", - "sha256:82f5f9ce93af6861a0713f804e62ab390bb12a17f113153e47fea8bbb1dfbe36", - "sha256:a2aa64f6d2ca7ded8a7e8a4e7cae3bc71866b09876b7b05cecad231779cb9156", - "sha256:b2df2c373e85871086bd55271c929670cd4e1dba63e94a08d442db830646203b", - "sha256:b5b3157372e0e0a1297a8b6b5280bcf1d35a40f436c7973771c972726d1e32d5", - "sha256:d2b09e91fbd1efa4f4fda121d49af89501beda50c18ed7499712c71a4bf3452e", - "sha256:d876db8c312eeb02d85611e0f696abe66a2c1515e6405943609e725d5ff36f2a", - "sha256:f3a3dca9104aa14fd4210edcce6d9ce2b65bd9618c0b222135a40b9d6e2a9eeb", - "sha256:f73988422b17f071ad3c4383551ace1ba5ed810cbab5f9c362783d22d40a08dc" + "sha256:0ea1011e94416e90fb3598cc3ef5e08b0a4dd6ce6b9b33ccd436c1dffc8cd664", + "sha256:23363e6d2a04d726bbc1400bd4e9898d54419b36b2cdf7020e3e215e1dcd0f8e", + "sha256:23c29e40e39ad7d869d408ded414f6d46d82f8a93b5857ac3ac1e915893139ca", + "sha256:549ae0cb2d34fc09d1675f9b01942499751d174381b6082279cf19cdb3c47cbe", + "sha256:70ab53918fd907a3ade01909b3ed783287ede362c80c75f41e79596d5ccacd32", + "sha256:72687b62a54d9d9e3fb85e7a37ea67f0e803aaa31be700e61d2f3742a5683917", + "sha256:78739f77c58048ec006e2b3eb2e0cd5a06d5f48c915e2fc7911a337354508110", + "sha256:7aa7e103610e5867d19a7d069e02e72eb2b3045b124d051cfd1538f1d8832d1b", + "sha256:87755e173fcf2ec45f584bb9d61aa7686bb665d861b81faa366d59808bbd3494", + "sha256:9b5d1b13d7c7bf5d7cf700e33c0b8ddb7baf030fcf502f76fc061ddd9405d16c", + "sha256:a771739902b1ae22a120dbbb6bd91b2cae6696c0e318b5007c5348519a4211c6", + "sha256:b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67", + "sha256:be596b44448aac14eb3614248c91586e2bc1728e020e82ef3197189aae556115", + "sha256:c05349890804d846eca32ce0623ab66c06f8800db881af7a876dc073ac1c2225", + "sha256:de4a045fbf388e120bb6ec66501458d3134f4729faed26ff95de52a754abddb1", + "sha256:dff595686178b0e75580c24d316aa45a8f4d56e2418063865c114eef651a982e", + "sha256:f6383c29e796203a0bba74a250615ad262c4279d398e89d895a69d3069498305" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==1.5.1" + "markers": "python_version >= '3.7'", + "version": "==1.6.6" }, "decorator": { "hashes": [ @@ -240,44 +264,50 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==0.7.1" }, - "entrypoints": { + "executing": { "hashes": [ - "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4", - "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f" + "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc", + "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107" ], - "markers": "python_version >= '3.6'", - "version": "==0.4" + "version": "==1.2.0" }, - "executing": { + "fastjsonschema": { "hashes": [ - "sha256:32fc6077b103bd19e6494a72682d66d5763cf20a106d5aa7c5ccbea4e47b0df7", - "sha256:c23bf42e9a7b9b212f185b1b2c3c91feb895963378887bb10e64a2e612ec0023" + "sha256:01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18", + "sha256:21f918e8d9a1a4ba9c22e09574ba72267a6762d47822db9add95f6454e51cc1c" ], - "version": "==0.8.2" + "version": "==2.16.2" }, - "importlib-resources": { + "fqdn": { "hashes": [ - "sha256:33a95faed5fc19b4bc16b29a6eeae248a3fe69dd55d4d229d2b480e23eeaad45", - "sha256:d756e2f85dd4de2ba89be0b21dba2a3bbec2e871a42a3a16719258a11f87506b" + "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", + "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014" ], - "markers": "python_version < '3.9'", - "version": "==5.4.0" + "version": "==1.5.1" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "markers": "python_version >= '3.5'", + "version": "==3.4" }, "ipykernel": { "hashes": [ - "sha256:4fae9df6e192837552b2406a6052d707046dd2e153860be73c68484bacba18ed", - "sha256:f95070a2dfd3147f8ab19f18ee46733310813758593745e07ec18fb08b409f1d" + "sha256:1a04bb359212e23e46adc0116ec82ea128c1e5bd532fde4fbe679787ff36f0cf", + "sha256:a0f8eece39cab1ee352c9b59ec67bbe44d8299f8238e4c16ff7f4cf0052d3378" ], - "markers": "python_version >= '3.7'", - "version": "==6.9.1" + "markers": "python_version >= '3.8'", + "version": "==6.21.1" }, "ipython": { "hashes": [ - "sha256:ab564d4521ea8ceaac26c3a2c6e5ddbca15c8848fd5a5cc325f960da88d42974", - "sha256:c503a0dd6ccac9c8c260b211f2dd4479c042b49636b097cc9a0d55fe62dff64c" + "sha256:71618e82e6d59487bea059626e7c79fb4a5b760d1510d02fab1160db6fdfa1f7", + "sha256:9c207b0ef2d276d1bfcfeb9a62804336abbe4b170574ea061500952319b1d78c" ], "markers": "python_version >= '3.8'", - "version": "==8.0.1" + "version": "==8.9.0" }, "ipython-genutils": { "hashes": [ @@ -286,197 +316,226 @@ ], "version": "==0.2.0" }, + "isoduration": { + "hashes": [ + "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", + "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042" + ], + "version": "==20.11.0" + }, "jedi": { "hashes": [ - "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d", - "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab" + "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e", + "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612" ], "markers": "python_version >= '3.6'", - "version": "==0.18.1" + "version": "==0.18.2" }, "jinja2": { "hashes": [ - "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8", - "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7" + "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", + "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" ], "index": "pypi", - "version": "==3.0.3" + "version": "==3.1.2" + }, + "jsonpointer": { + "hashes": [ + "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9", + "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a" + ], + "version": "==2.3" }, "jsonschema": { "hashes": [ - "sha256:636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83", - "sha256:77281a1f71684953ee8b3d488371b162419767973789272434bbc3f29d9c8823" + "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d", + "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6" ], "markers": "python_version >= '3.7'", - "version": "==4.4.0" + "version": "==4.17.3" }, "jupyter-client": { "hashes": [ - "sha256:4ea61033726c8e579edb55626d8ee2e6bf0a83158ddf3751b8dd46b2c5cd1e96", - "sha256:d56f1c57bef42ff31e61b1185d3348a5b2bcde7c9a05523ae4dbe5ee0871797c" + "sha256:47ac9f586dbcff4d79387ec264faf0fdeb5f14845fa7345fd7d1e378f8096011", + "sha256:c53731eb590b68839b0ce04bf46ff8c4f03278f5d9fe5c3b0f268a57cc2bd97e" ], - "markers": "python_full_version >= '3.6.1'", - "version": "==7.1.2" + "markers": "python_version >= '3.8'", + "version": "==8.0.2" }, "jupyter-core": { "hashes": [ - "sha256:d69baeb9ffb128b8cd2657fcf2703f89c769d1673c851812119e3a2a0e93ad9a", - "sha256:f875e4d27e202590311d468fa55f90c575f201490bd0c18acabe4e318db4a46d" + "sha256:1407cdb4c79ee467696c04b76633fc1884015fa109323365a6372c8e890cc83f", + "sha256:4bdc2928c37f6917130c667d8b8708f20aee539d8283c6be72aabd2a4b4c83b0" ], - "markers": "python_version >= '3.6'", - "version": "==4.9.2" + "markers": "python_version >= '3.8'", + "version": "==5.2.0" + }, + "jupyter-events": { + "hashes": [ + "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17", + "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3" + ], + "markers": "python_version >= '3.7'", + "version": "==0.6.3" + }, + "jupyter-server": { + "hashes": [ + "sha256:5afb8a0cdfee37d02d69bdf470ae9cbb1dee5d4788f9bc6cc8e54bd8c83fb096", + "sha256:854fb7d49f6b7f545d4f8354172b004dcda887ba0699def7112daf785ba3c9ce" + ], + "markers": "python_version >= '3.8'", + "version": "==2.2.1" + }, + "jupyter-server-terminals": { + "hashes": [ + "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d", + "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36" + ], + "markers": "python_version >= '3.8'", + "version": "==0.4.4" }, "jupyterlab-pygments": { "hashes": [ - "sha256:abfb880fd1561987efaefcb2d2ac75145d2a5d0139b1876d5be806e32f630008", - "sha256:cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146" + "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f", + "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d" ], - "version": "==0.1.2" + "markers": "python_version >= '3.7'", + "version": "==0.2.2" }, "markupsafe": { "hashes": [ - "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298", - "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64", - "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b", - "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194", - "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567", - "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff", - "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724", - "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74", - "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646", - "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35", - "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6", - "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a", - "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6", - "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad", - "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26", - "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38", - "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac", - "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7", - "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6", - "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047", - "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75", - "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f", - "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b", - "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135", - "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8", - "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a", - "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a", - "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1", - "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9", - "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864", - "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914", - "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee", - "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f", - "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18", - "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8", - "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2", - "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d", - "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b", - "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b", - "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86", - "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6", - "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f", - "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb", - "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833", - "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28", - "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e", - "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415", - "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902", - "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f", - "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d", - "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9", - "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d", - "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145", - "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066", - "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c", - "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1", - "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a", - "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207", - "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f", - "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53", - "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd", - "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134", - "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85", - "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9", - "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5", - "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94", - "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509", - "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51", - "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872" + "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed", + "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc", + "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2", + "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460", + "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7", + "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0", + "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1", + "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa", + "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03", + "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323", + "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65", + "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013", + "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036", + "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f", + "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4", + "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419", + "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2", + "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619", + "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a", + "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a", + "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd", + "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7", + "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666", + "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65", + "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859", + "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625", + "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff", + "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156", + "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd", + "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba", + "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f", + "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1", + "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094", + "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a", + "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513", + "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed", + "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d", + "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3", + "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147", + "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c", + "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603", + "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601", + "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a", + "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1", + "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d", + "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3", + "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54", + "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2", + "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6", + "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58" ], - "markers": "python_version >= '3.6'", - "version": "==2.0.1" + "markers": "python_version >= '3.7'", + "version": "==2.1.2" }, "matplotlib-inline": { "hashes": [ - "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee", - "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c" + "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", + "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" ], "markers": "python_version >= '3.5'", - "version": "==0.1.3" + "version": "==0.1.6" }, "mistune": { "hashes": [ - "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e", - "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4" + "sha256:182cc5ee6f8ed1b807de6b7bb50155df7b66495412836b9a74c8fbdfc75fe36d", + "sha256:9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808" ], - "version": "==0.8.4" + "version": "==2.0.4" }, - "mypy-extensions": { + "nbclassic": { "hashes": [ - "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", - "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + "sha256:32c235e1f22f4048f3b877d354c198202898797cf9c2085856827598cead001b", + "sha256:8e8ffce7582bb7a4baf11fa86a3d88b184e8e7df78eed4ead69f15aa4fc0e323" ], - "version": "==0.4.3" + "markers": "python_version >= '3.7'", + "version": "==0.5.1" }, "nbclient": { "hashes": [ - "sha256:03e857bea3012377289daa1e1c1651f4fc0295bcd109ccd36a337efcdbebaed7", - "sha256:751516992f34b58172bad54eef1e4bf7e4f4460d58e255ca1a4e5c9649476007" + "sha256:884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547", + "sha256:d97ac6257de2794f5397609df754fcbca1a603e94e924eb9b99787c031ae2e7c" ], - "markers": "python_version >= '3.7'", - "version": "==0.5.11" + "markers": "python_full_version >= '3.7.0'", + "version": "==0.7.2" }, "nbconvert": { "hashes": [ - "sha256:7b006ae9979af56200e7fa3db39d9d12c99e811e8843b05dbe518e5b754bcb2e", - "sha256:eb2803db18f6facce6bf3b01b684fe47907994bd156d15eaccdf011e3d7f8164" + "sha256:495638c5e06005f4a5ce828d8a81d28e34f95c20f4384d5d7a22254b443836e7", + "sha256:a42c3ac137c64f70cbe4d763111bf358641ea53b37a01a5c202ed86374af5234" ], "index": "pypi", - "version": "==6.4.2" + "version": "==7.2.9" }, "nbformat": { "hashes": [ - "sha256:b516788ad70771c6250977c1374fcca6edebe6126fd2adb5a69aa5c2356fd1c8", - "sha256:eb8447edd7127d043361bc17f2f5a807626bc8e878c7709a1c647abda28a9171" + "sha256:22a98a6516ca216002b0a34591af5bcb8072ca6c63910baffc901cfa07fefbf0", + "sha256:4b021fca24d3a747bf4e626694033d792d594705829e5e35b14ee3369f9f6477" ], "index": "pypi", - "version": "==5.1.3" + "version": "==5.7.3" }, "nest-asyncio": { "hashes": [ - "sha256:3fdd0d6061a2bb16f21fe8a9c6a7945be83521d81a0d15cff52e9edee50101d6", - "sha256:f969f6013a16fadb4adcf09d11a68a4f617c6049d7af7ac2c676110169a63abd" + "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8", + "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290" ], "markers": "python_version >= '3.5'", - "version": "==1.5.4" + "version": "==1.5.6" }, "notebook": { "hashes": [ - "sha256:1e985c9dc6f678bdfffb9dc657306b5469bfa62d73e03f74e8defbf76d284312", - "sha256:3e702fcc54b8ae597533c3864793b7a1e971dec9e112f67235828d8a798fd654" + "sha256:c1897e5317e225fc78b45549a6ab4b668e4c996fd03a04e938fe5e7af2bfffd0", + "sha256:e04f9018ceb86e4fa841e92ea8fb214f8d23c1cedfde530cc96f92446924f0e4" ], "index": "pypi", - "version": "==6.4.8" + "version": "==6.5.2" + }, + "notebook-shim": { + "hashes": [ + "sha256:090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f", + "sha256:9c6c30f74c4fbea6fce55c1be58e7fd0409b1c681b075dcedceb005db5026949" + ], + "markers": "python_version >= '3.7'", + "version": "==0.2.2" }, "packaging": { "hashes": [ - "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", - "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2", + "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97" ], - "markers": "python_version >= '3.6'", - "version": "==21.3" + "markers": "python_version >= '3.7'", + "version": "==23.0" }, "pandocfilters": { "hashes": [ @@ -494,13 +553,6 @@ "markers": "python_version >= '3.6'", "version": "==0.8.3" }, - "pathspec": { - "hashes": [ - "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", - "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" - ], - "version": "==0.9.0" - }, "pexpect": { "hashes": [ "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", @@ -518,35 +570,55 @@ }, "pip": { "hashes": [ - "sha256:c146f331f0805c77017c6bb9740cec4a49a0d4582d0c3cc8244b057f83eca359", - "sha256:f29d589df8c8ab99c060e68ad294c4a9ed896624f6368c5349d70aa581b333d0" + "sha256:aee438284e82c8def684b0bcc50b1f6ed5e941af97fa940e83e2e8ef1a59da9b", + "sha256:b5f88adff801f5ef052bcdef3daa31b55eb67b0fccd6d0106c206fa248e0463c" ], "markers": "python_version >= '3.7'", - "version": "==22.0.3" + "version": "==23.0" }, "platformdirs": { "hashes": [ - "sha256:30671902352e97b1eafd74ade8e4a694782bd3471685e78c32d0fdfd3aa7e7bb", - "sha256:8ec11dfba28ecc0715eb5fb0147a87b1bf325f349f3da9aab2cd6b50b96b692b" + "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9", + "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567" ], "markers": "python_version >= '3.7'", - "version": "==2.5.0" + "version": "==3.0.0" }, "prometheus-client": { "hashes": [ - "sha256:357a447fd2359b0a1d2e9b311a0c5778c330cfbe186d880ad5a6b39884652316", - "sha256:ada41b891b79fca5638bd5cfe149efa86512eaa55987893becd2c6d8d0a5dfc5" + "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab", + "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48" ], "markers": "python_version >= '3.6'", - "version": "==0.13.1" + "version": "==0.16.0" }, "prompt-toolkit": { "hashes": [ - "sha256:30129d870dcb0b3b6a53efdc9d0a83ea96162ffd28ffe077e94215b233dc670c", - "sha256:9f1cd16b1e86c2968f2519d7fb31dd9d669916f515612c269d14e9ed52b51650" + "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", + "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305" ], "markers": "python_full_version >= '3.6.2'", - "version": "==3.0.28" + "version": "==3.0.36" + }, + "psutil": { + "hashes": [ + "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff", + "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1", + "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62", + "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549", + "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08", + "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7", + "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e", + "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe", + "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24", + "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad", + "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94", + "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8", + "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7", + "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==5.9.4" }, "ptyprocess": { "hashes": [ @@ -581,46 +653,52 @@ }, "pygments": { "hashes": [ - "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65", - "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a" + "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297", + "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717" ], "index": "pypi", - "version": "==2.11.2" + "version": "==2.14.0" }, - "pyparsing": { + "pyjwt": { "hashes": [ - "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea", - "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484" + "sha256:69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd", + "sha256:d83c3d892a77bbb74d3e1a2cfa90afaadb60945205d1095d9221f04466f64c14" ], - "markers": "python_version >= '3.6'", - "version": "==3.0.7" + "markers": "python_version >= '3.7'", + "version": "==2.6.0" }, "pyrsistent": { "hashes": [ - "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c", - "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc", - "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e", - "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26", - "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec", - "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286", - "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045", - "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec", - "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8", - "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c", - "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca", - "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22", - "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a", - "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96", - "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc", - "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1", - "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07", - "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6", - "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b", - "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5", - "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6" + "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8", + "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440", + "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a", + "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c", + "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3", + "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393", + "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9", + "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da", + "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf", + "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64", + "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a", + "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3", + "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98", + "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2", + "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8", + "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf", + "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc", + "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7", + "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28", + "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2", + "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b", + "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a", + "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64", + "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19", + "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1", + "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9", + "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c" ], "markers": "python_version >= '3.7'", - "version": "==0.18.1" + "version": "==0.19.3" }, "python-dateutil": { "hashes": [ @@ -630,65 +708,163 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.8.2" }, + "python-json-logger": { + "hashes": [ + "sha256:3b03487b14eb9e4f77e4fc2a023358b5394b82fd89cecf5586259baed57d8c6f", + "sha256:764d762175f99fcc4630bd4853b09632acb60a6224acb27ce08cd70f0b1b81bd" + ], + "markers": "python_version >= '3.5'", + "version": "==2.0.4" + }, + "pyyaml": { + "hashes": [ + "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", + "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", + "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", + "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", + "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", + "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", + "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", + "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", + "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", + "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", + "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", + "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", + "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", + "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", + "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", + "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", + "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", + "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", + "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", + "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", + "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", + "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", + "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", + "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", + "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", + "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", + "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", + "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", + "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", + "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", + "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", + "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", + "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", + "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", + "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", + "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", + "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", + "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", + "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", + "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0" + }, "pyzmq": { "hashes": [ - "sha256:08c4e315a76ef26eb833511ebf3fa87d182152adf43dedee8d79f998a2162a0b", - "sha256:0ca6cd58f62a2751728016d40082008d3b3412a7f28ddfb4a2f0d3c130f69e74", - "sha256:1621e7a2af72cced1f6ec8ca8ca91d0f76ac236ab2e8828ac8fe909512d566cb", - "sha256:18cd854b423fce44951c3a4d3e686bac8f1243d954f579e120a1714096637cc0", - "sha256:2841997a0d85b998cbafecb4183caf51fd19c4357075dfd33eb7efea57e4c149", - "sha256:2b97502c16a5ec611cd52410bdfaab264997c627a46b0f98d3f666227fd1ea2d", - "sha256:3a4c9886d61d386b2b493377d980f502186cd71d501fffdba52bd2a0880cef4f", - "sha256:3c1895c95be92600233e476fe283f042e71cf8f0b938aabf21b7aafa62a8dac9", - "sha256:42abddebe2c6a35180ca549fadc7228d23c1e1f76167c5ebc8a936b5804ea2df", - "sha256:468bd59a588e276961a918a3060948ae68f6ff5a7fa10bb2f9160c18fe341067", - "sha256:480b9931bfb08bf8b094edd4836271d4d6b44150da051547d8c7113bf947a8b0", - "sha256:53f4fd13976789ffafedd4d46f954c7bb01146121812b72b4ddca286034df966", - "sha256:62bcade20813796c426409a3e7423862d50ff0639f5a2a95be4b85b09a618666", - "sha256:67db33bea0a29d03e6eeec55a8190e033318cee3cbc732ba8fd939617cbf762d", - "sha256:6b217b8f9dfb6628f74b94bdaf9f7408708cb02167d644edca33f38746ca12dd", - "sha256:7661fc1d5cb73481cf710a1418a4e1e301ed7d5d924f91c67ba84b2a1b89defd", - "sha256:76c532fd68b93998aab92356be280deec5de8f8fe59cd28763d2cc8a58747b7f", - "sha256:79244b9e97948eaf38695f4b8e6fc63b14b78cc37f403c6642ba555517ac1268", - "sha256:7c58f598d9fcc52772b89a92d72bf8829c12d09746a6d2c724c5b30076c1f11d", - "sha256:7dc09198e4073e6015d9a8ea093fc348d4e59de49382476940c3dd9ae156fba8", - "sha256:80e043a89c6cadefd3a0712f8a1322038e819ebe9dbac7eca3bce1721bcb63bf", - "sha256:851977788b9caa8ed011f5f643d3ee8653af02c5fc723fa350db5125abf2be7b", - "sha256:8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c", - "sha256:902319cfe23366595d3fa769b5b751e6ee6750a0a64c5d9f757d624b2ac3519e", - "sha256:954e73c9cd4d6ae319f1c936ad159072b6d356a92dcbbabfd6e6204b9a79d356", - "sha256:ab888624ed68930442a3f3b0b921ad7439c51ba122dbc8c386e6487a658e4a4e", - "sha256:acebba1a23fb9d72b42471c3771b6f2f18dcd46df77482612054bd45c07dfa36", - "sha256:b4ebed0977f92320f6686c96e9e8dd29eed199eb8d066936bac991afc37cbb70", - "sha256:badb868fff14cfd0e200eaa845887b1011146a7d26d579aaa7f966c203736b92", - "sha256:be4e0f229cf3a71f9ecd633566bd6f80d9fa6afaaff5489492be63fe459ef98c", - "sha256:c0f84360dcca3481e8674393bdf931f9f10470988f87311b19d23cda869bb6b7", - "sha256:c1e41b32d6f7f9c26bc731a8b529ff592f31fc8b6ef2be9fa74abd05c8a342d7", - "sha256:c88fa7410e9fc471e0858638f403739ee869924dd8e4ae26748496466e27ac59", - "sha256:cf98fd7a6c8aaa08dbc699ffae33fd71175696d78028281bc7b832b26f00ca57", - "sha256:d072f7dfbdb184f0786d63bda26e8a0882041b1e393fbe98940395f7fab4c5e2", - "sha256:d1b5d457acbadcf8b27561deeaa386b0217f47626b29672fa7bd31deb6e91e1b", - "sha256:d3dcb5548ead4f1123851a5ced467791f6986d68c656bc63bfff1bf9e36671e2", - "sha256:d6157793719de168b199194f6b6173f0ccd3bf3499e6870fac17086072e39115", - "sha256:d728b08448e5ac3e4d886b165385a262883c34b84a7fe1166277fe675e1c197a", - "sha256:de8df0684398bd74ad160afdc2a118ca28384ac6f5e234eb0508858d8d2d9364", - "sha256:e6a02cf7271ee94674a44f4e62aa061d2d049001c844657740e156596298b70b", - "sha256:ea12133df25e3a6918718fbb9a510c6ee5d3fdd5a346320421aac3882f4feeea", - "sha256:ea5a79e808baef98c48c884effce05c31a0698c1057de8fc1c688891043c1ce1", - "sha256:f43b4a2e6218371dd4f41e547bd919ceeb6ebf4abf31a7a0669cd11cd91ea973", - "sha256:f762442bab706fd874064ca218b33a1d8e40d4938e96c24dafd9b12e28017f45", - "sha256:f89468059ebc519a7acde1ee50b779019535db8dcf9b8c162ef669257fef7a93", - "sha256:f907c7359ce8bf7f7e63c82f75ad0223384105f5126f313400b7e8004d9b33c3" + "sha256:00c94fd4c9dd3c95aace0c629a7fa713627a5c80c1819326b642adf6c4b8e2a2", + "sha256:01d53958c787cfea34091fcb8ef36003dbb7913b8e9f8f62a0715234ebc98b70", + "sha256:0282bba9aee6e0346aa27d6c69b5f7df72b5a964c91958fc9e0c62dcae5fdcdc", + "sha256:02f5cb60a7da1edd5591a15efa654ffe2303297a41e1b40c3c8942f8f11fc17c", + "sha256:0645b5a2d2a06fd8eb738018490c514907f7488bf9359c6ee9d92f62e844b76f", + "sha256:0a154ef810d44f9d28868be04641f837374a64e7449df98d9208e76c260c7ef1", + "sha256:0a90b2480a26aef7c13cff18703ba8d68e181facb40f78873df79e6d42c1facc", + "sha256:0e8d00228db627ddd1b418c7afd81820b38575f237128c9650365f2dd6ac3443", + "sha256:17e1cb97d573ea84d7cd97188b42ca6f611ab3ee600f6a75041294ede58e3d20", + "sha256:183e18742be3621acf8908903f689ec520aee3f08449bfd29f583010ca33022b", + "sha256:1f6116991568aac48b94d6d8aaed6157d407942ea385335a6ed313692777fb9d", + "sha256:20638121b0bdc80777ce0ec8c1f14f1ffec0697a1f88f0b564fa4a23078791c4", + "sha256:2754fa68da08a854f4816e05160137fa938a2347276471103d31e04bcee5365c", + "sha256:28bcb2e66224a7ac2843eb632e4109d6b161479e7a2baf24e37210461485b4f1", + "sha256:293a7c2128690f496057f1f1eb6074f8746058d13588389981089ec45d8fdc77", + "sha256:2a73af6504e0d2805e926abf136ebf536735a13c22f709be7113c2ec65b4bec3", + "sha256:2d05d904f03ddf1e0d83d97341354dfe52244a619b5a1440a5f47a5b3451e84e", + "sha256:2e7b87638ee30ab13230e37ce5331b3e730b1e0dda30120b9eeec3540ed292c8", + "sha256:3100dddcada66ec5940ed6391ebf9d003cc3ede3d320748b2737553019f58230", + "sha256:31e523d067ce44a04e876bed3ff9ea1ff8d1b6636d16e5fcace9d22f8c564369", + "sha256:3594c0ff604e685d7e907860b61d0e10e46c74a9ffca168f6e9e50ea934ee440", + "sha256:3670e8c5644768f214a3b598fe46378a4a6f096d5fb82a67dfd3440028460565", + "sha256:4046d03100aca266e70d54a35694cb35d6654cfbef633e848b3c4a8d64b9d187", + "sha256:4725412e27612f0d7d7c2f794d89807ad0227c2fc01dd6146b39ada49c748ef9", + "sha256:484c2c4ee02c1edc07039f42130bd16e804b1fe81c4f428e0042e03967f40c20", + "sha256:487305c2a011fdcf3db1f24e8814bb76d23bc4d2f46e145bc80316a59a9aa07d", + "sha256:4a1bc30f0c18444d51e9b0d0dd39e3a4e7c53ee74190bebef238cd58de577ea9", + "sha256:4c25c95416133942280faaf068d0fddfd642b927fb28aaf4ab201a738e597c1e", + "sha256:4cbb885f347eba7ab7681c450dee5b14aed9f153eec224ec0c3f299273d9241f", + "sha256:4d3d604fe0a67afd1aff906e54da557a5203368a99dcc50a70eef374f1d2abef", + "sha256:4e295f7928a31ae0f657e848c5045ba6d693fe8921205f408ca3804b1b236968", + "sha256:5049e75cc99db65754a3da5f079230fb8889230cf09462ec972d884d1704a3ed", + "sha256:5050f5c50b58a6e38ccaf9263a356f74ef1040f5ca4030225d1cb1a858c5b7b6", + "sha256:526f884a27e8bba62fe1f4e07c62be2cfe492b6d432a8fdc4210397f8cf15331", + "sha256:531866c491aee5a1e967c286cfa470dffac1e2a203b1afda52d62b58782651e9", + "sha256:5605621f2181f20b71f13f698944deb26a0a71af4aaf435b34dd90146092d530", + "sha256:58fc3ad5e1cfd2e6d24741fbb1e216b388115d31b0ca6670f894187f280b6ba6", + "sha256:60ecbfe7669d3808ffa8a7dd1487d6eb8a4015b07235e3b723d4b2a2d4de7203", + "sha256:610d2d112acd4e5501fac31010064a6c6efd716ceb968e443cae0059eb7b86de", + "sha256:6136bfb0e5a9cf8c60c6ac763eb21f82940a77e6758ea53516c8c7074f4ff948", + "sha256:62b9e80890c0d2408eb42d5d7e1fc62a5ce71be3288684788f74cf3e59ffd6e2", + "sha256:656281d496aaf9ca4fd4cea84e6d893e3361057c4707bd38618f7e811759103c", + "sha256:66509c48f7446b640eeae24b60c9c1461799a27b1b0754e438582e36b5af3315", + "sha256:6bf3842af37af43fa953e96074ebbb5315f6a297198f805d019d788a1021dbc8", + "sha256:731b208bc9412deeb553c9519dca47136b5a01ca66667cafd8733211941b17e4", + "sha256:75243e422e85a62f0ab7953dc315452a56b2c6a7e7d1a3c3109ac3cc57ed6b47", + "sha256:7877264aa851c19404b1bb9dbe6eed21ea0c13698be1eda3784aab3036d1c861", + "sha256:81f99fb1224d36eb91557afec8cdc2264e856f3464500b55749020ce4c848ef2", + "sha256:8539216173135e9e89f6b1cc392e74e6b935b91e8c76106cf50e7a02ab02efe5", + "sha256:85456f0d8f3268eecd63dede3b99d5bd8d3b306310c37d4c15141111d22baeaf", + "sha256:866eabf7c1315ef2e93e34230db7cbf672e0d7c626b37c11f7e870c8612c3dcc", + "sha256:926236ca003aec70574754f39703528947211a406f5c6c8b3e50eca04a9e87fc", + "sha256:930e6ad4f2eaac31a3d0c2130619d25db754b267487ebc186c6ad18af2a74018", + "sha256:94f0a7289d0f5c80807c37ebb404205e7deb737e8763eb176f4770839ee2a287", + "sha256:9a2d5e419bd39a1edb6cdd326d831f0120ddb9b1ff397e7d73541bf393294973", + "sha256:9ca6db34b26c4d3e9b0728841ec9aa39484eee272caa97972ec8c8e231b20c7e", + "sha256:9f72ea279b2941a5203e935a4588b9ba8a48aeb9a926d9dfa1986278bd362cb8", + "sha256:a0e7ef9ac807db50b4eb6f534c5dcc22f998f5dae920cc28873d2c1d080a4fc9", + "sha256:a1cd4a95f176cdc0ee0a82d49d5830f13ae6015d89decbf834c273bc33eeb3d3", + "sha256:a9c464cc508177c09a5a6122b67f978f20e2954a21362bf095a0da4647e3e908", + "sha256:ac97e7d647d5519bcef48dd8d3d331f72975afa5c4496c95f6e854686f45e2d9", + "sha256:af1fbfb7ad6ac0009ccee33c90a1d303431c7fb594335eb97760988727a37577", + "sha256:b055a1cddf8035966ad13aa51edae5dc8f1bba0b5d5e06f7a843d8b83dc9b66b", + "sha256:b6f75b4b8574f3a8a0d6b4b52606fc75b82cb4391471be48ab0b8677c82f9ed4", + "sha256:b90bb8dfbbd138558f1f284fecfe328f7653616ff9a972433a00711d9475d1a9", + "sha256:be05504af0619d1cffa500af1e0ede69fb683f301003851f5993b5247cc2c576", + "sha256:c21a5f4e54a807df5afdef52b6d24ec1580153a6bcf0607f70a6e1d9fa74c5c3", + "sha256:c48f257da280b3be6c94e05bd575eddb1373419dbb1a72c3ce64e88f29d1cd6d", + "sha256:cac602e02341eaaf4edfd3e29bd3fdef672e61d4e6dfe5c1d065172aee00acee", + "sha256:ccb3e1a863222afdbda42b7ca8ac8569959593d7abd44f5a709177d6fa27d266", + "sha256:e1081d7030a1229c8ff90120346fb7599b54f552e98fcea5170544e7c6725aab", + "sha256:e14df47c1265356715d3d66e90282a645ebc077b70b3806cf47efcb7d1d630cb", + "sha256:e4bba04ea779a3d7ef25a821bb63fd0939142c88e7813e5bd9c6265a20c523a2", + "sha256:e99629a976809fe102ef73e856cf4b2660acd82a412a51e80ba2215e523dfd0a", + "sha256:f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2", + "sha256:f3f96d452e9580cb961ece2e5a788e64abaecb1232a80e61deffb28e105ff84a", + "sha256:fc7c1421c5b1c916acf3128bf3cc7ea7f5018b58c69a6866d70c14190e600ce9" ], "markers": "python_version >= '3.6'", - "version": "==22.3.0" + "version": "==25.0.0" }, - "rsconnect-python": { + "rfc3339-validator": { "hashes": [ - "sha256:3fe3c7b7fc73fc243ae257192901764bcdef4e8b0205350069701c28c4bc8d71" + "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", + "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa" ], - "index": "pypi", - "version": "==1.7.1" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.1.4" + }, + "rfc3986-validator": { + "hashes": [ + "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", + "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.1.1" + }, + "rsconnect-python": { + "editable": true, + "git": "https://github.com/rstudio/rsconnect-python.git", + "ref": "1b6a3a86d75f0cfbd18da0ae928a97d418b7fbd8" }, "semver": { "hashes": [ @@ -706,14 +882,6 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==1.8.1b0" }, - "setuptools": { - "hashes": [ - "sha256:80743e57120665fa65665286369a0734bce0e7a629ad36507fb7a4b65e7d2e3b", - "sha256:93b1a3037230bf9aa07327b9fc58f527d5f4e22d36705b55d55ba3ece8606ca6" - ], - "markers": "python_version >= '3.7'", - "version": "==60.9.2" - }, "six": { "hashes": [ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", @@ -722,106 +890,90 @@ "index": "pypi", "version": "==1.16.0" }, - "stack-data": { + "sniffio": { "hashes": [ - "sha256:45692d41bd633a9503a5195552df22b583caf16f0b27c4e58c98d88c8b648e12", - "sha256:999762f9c3132308789affa03e9271bbbe947bf78311851f4d485d8402ed858e" + "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101", + "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384" ], - "version": "==0.2.0" + "markers": "python_version >= '3.7'", + "version": "==1.3.0" }, - "terminado": { + "soupsieve": { "hashes": [ - "sha256:5b82b5c6e991f0705a76f961f43262a7fb1e55b093c16dca83f16384a7f39b7b", - "sha256:f446b522b50a7aa68b5def0a02893978fb48cb82298b0ebdae13003c6ee6f198" + "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", + "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" ], - "markers": "python_version >= '3.7'", - "version": "==0.13.1" + "markers": "python_version >= '3.6'", + "version": "==2.3.2.post1" }, - "testpath": { + "stack-data": { "hashes": [ - "sha256:1acf7a0bcd3004ae8357409fc33751e16d37ccc650921da1094a86581ad1e417", - "sha256:8044f9a0bab6567fc644a3593164e872543bb44225b0e24846e2c89237937589" + "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815", + "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8" ], - "markers": "python_version >= '3.5'", - "version": "==0.5.0" + "version": "==0.6.2" }, - "tomli": { + "terminado": { "hashes": [ - "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", - "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333", + "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae" ], "markers": "python_version >= '3.7'", - "version": "==2.0.1" + "version": "==0.17.1" + }, + "tinycss2": { + "hashes": [ + "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847", + "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627" + ], + "markers": "python_version >= '3.7'", + "version": "==1.2.1" }, "tornado": { "hashes": [ - "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb", - "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c", - "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288", - "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95", - "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558", - "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe", - "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791", - "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d", - "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326", - "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b", - "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4", - "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c", - "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910", - "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5", - "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c", - "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0", - "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675", - "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd", - "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f", - "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c", - "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea", - "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6", - "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05", - "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd", - "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575", - "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a", - "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37", - "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795", - "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f", - "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32", - "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c", - "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01", - "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4", - "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2", - "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921", - "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085", - "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df", - "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102", - "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5", - "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68", - "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5" + "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", + "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", + "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", + "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", + "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", + "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", + "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", + "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", + "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", + "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", + "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" ], - "markers": "python_version >= '3.5'", - "version": "==6.1" + "markers": "python_version >= '3.7'", + "version": "==6.2" }, "traitlets": { "hashes": [ - "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7", - "sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033" + "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8", + "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9" ], "markers": "python_version >= '3.7'", - "version": "==5.1.1" + "version": "==5.9.0" }, - "typing-extensions": { + "uri-template": { "hashes": [ - "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42", - "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2" + "sha256:934e4d09d108b70eb8a24410af8615294d09d279ce0e7cbcdaef1bd21f932b06", + "sha256:f1699c77b73b925cf4937eae31ab282a86dc885c333f2e942513f08f691fc7db" ], - "markers": "python_version < '3.10'", - "version": "==4.1.1" + "version": "==1.2.0" }, "wcwidth": { "hashes": [ - "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", - "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" + "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e", + "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0" + ], + "version": "==0.2.6" + }, + "webcolors": { + "hashes": [ + "sha256:16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9", + "sha256:d98743d81d498a2d3eaf165196e65481f0d2ea85281463d856b1e51b09f62dce" ], - "version": "==0.2.5" + "version": "==1.12" }, "webencodings": { "hashes": [ @@ -830,30 +982,38 @@ ], "version": "==0.5.1" }, - "zipp": { + "websocket-client": { "hashes": [ - "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d", - "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375" + "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40", + "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e" ], - "markers": "python_version < '3.10'", - "version": "==3.7.0" + "markers": "python_version >= '3.7'", + "version": "==1.5.1" } }, "develop": { + "appnope": { + "hashes": [ + "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24", + "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e" + ], + "markers": "platform_system == 'Darwin'", + "version": "==0.1.3" + }, "asttokens": { "hashes": [ - "sha256:0844691e88552595a6f4a4281a9f7f79b8dd45ca4ccea82e5e05b4bbdb76705c", - "sha256:9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5" + "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3", + "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c" ], - "version": "==2.0.5" + "version": "==2.2.1" }, "attrs": { "hashes": [ - "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", - "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836", + "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==21.4.0" + "markers": "python_version >= '3.6'", + "version": "==22.2.0" }, "backcall": { "hashes": [ @@ -864,199 +1024,210 @@ }, "black": { "hashes": [ - "sha256:07e5c049442d7ca1a2fc273c79d1aecbbf1bc858f62e8184abe1ad175c4f7cc2", - "sha256:0e21e1f1efa65a50e3960edd068b6ae6d64ad6235bd8bfea116a03b21836af71", - "sha256:1297c63b9e1b96a3d0da2d85d11cd9bf8664251fd69ddac068b98dc4f34f73b6", - "sha256:228b5ae2c8e3d6227e4bde5920d2fc66cc3400fde7bcc74f480cb07ef0b570d5", - "sha256:2d6f331c02f0f40aa51a22e479c8209d37fcd520c77721c034517d44eecf5912", - "sha256:2ff96450d3ad9ea499fc4c60e425a1439c2120cbbc1ab959ff20f7c76ec7e866", - "sha256:3524739d76b6b3ed1132422bf9d82123cd1705086723bc3e235ca39fd21c667d", - "sha256:35944b7100af4a985abfcaa860b06af15590deb1f392f06c8683b4381e8eeaf0", - "sha256:373922fc66676133ddc3e754e4509196a8c392fec3f5ca4486673e685a421321", - "sha256:5fa1db02410b1924b6749c245ab38d30621564e658297484952f3d8a39fce7e8", - "sha256:6f2f01381f91c1efb1451998bd65a129b3ed6f64f79663a55fe0e9b74a5f81fd", - "sha256:742ce9af3086e5bd07e58c8feb09dbb2b047b7f566eb5f5bc63fd455814979f3", - "sha256:7835fee5238fc0a0baf6c9268fb816b5f5cd9b8793423a75e8cd663c48d073ba", - "sha256:8871fcb4b447206904932b54b567923e5be802b9b19b744fdff092bd2f3118d0", - "sha256:a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5", - "sha256:b1a5ed73ab4c482208d20434f700d514f66ffe2840f63a6252ecc43a9bc77e8a", - "sha256:c8226f50b8c34a14608b848dc23a46e5d08397d009446353dad45e04af0c8e28", - "sha256:ccad888050f5393f0d6029deea2a33e5ae371fd182a697313bdbd835d3edaf9c", - "sha256:dae63f2dbf82882fa3b2a3c49c32bffe144970a573cd68d247af6560fc493ae1", - "sha256:e2f69158a7d120fd641d1fa9a921d898e20d52e44a74a6fbbcc570a62a6bc8ab", - "sha256:efbadd9b52c060a8fc3b9658744091cb33c31f830b3f074422ed27bad2b18e8f", - "sha256:f5660feab44c2e3cb24b2419b998846cbb01c23c7fe645fee45087efa3da2d61", - "sha256:fdb8754b453fb15fad3f72cd9cad3e16776f0964d67cf30ebcbf10327a3777a3" + "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd", + "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555", + "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481", + "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468", + "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9", + "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a", + "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958", + "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580", + "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26", + "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32", + "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8", + "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753", + "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b", + "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074", + "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651", + "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24", + "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6", + "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad", + "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac", + "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221", + "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06", + "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27", + "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648", + "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739", + "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104" ], - "markers": "python_full_version >= '3.6.2'", - "version": "==22.1.0" + "index": "pypi", + "markers": "python_version >= '3.6'", + "version": "==23.1.0" }, "bleach": { "hashes": [ - "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da", - "sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994" + "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414", + "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4" ], "index": "pypi", - "version": "==4.1.0" + "version": "==6.0.0" }, "certifi": { "hashes": [ - "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", - "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "version": "==2021.10.8" - }, - "cffi": { - "hashes": [ - "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3", - "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2", - "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636", - "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20", - "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728", - "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27", - "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66", - "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443", - "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0", - "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7", - "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39", - "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605", - "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a", - "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37", - "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029", - "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139", - "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc", - "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df", - "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14", - "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880", - "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2", - "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a", - "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e", - "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474", - "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024", - "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8", - "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0", - "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e", - "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a", - "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e", - "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032", - "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6", - "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e", - "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b", - "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e", - "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954", - "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962", - "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c", - "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4", - "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55", - "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962", - "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023", - "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c", - "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6", - "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8", - "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382", - "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7", - "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc", - "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997", - "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796" - ], - "version": "==1.15.0" + "markers": "python_version >= '3.6'", + "version": "==2022.12.7" }, "charset-normalizer": { "hashes": [ - "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", - "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" + "sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b", + "sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42", + "sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d", + "sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b", + "sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a", + "sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59", + "sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154", + "sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1", + "sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c", + "sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a", + "sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d", + "sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6", + "sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b", + "sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b", + "sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783", + "sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5", + "sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918", + "sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555", + "sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639", + "sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786", + "sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e", + "sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed", + "sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820", + "sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8", + "sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3", + "sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541", + "sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14", + "sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be", + "sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e", + "sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76", + "sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b", + "sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c", + "sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b", + "sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3", + "sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc", + "sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6", + "sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59", + "sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4", + "sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d", + "sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d", + "sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3", + "sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a", + "sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea", + "sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6", + "sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e", + "sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603", + "sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24", + "sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a", + "sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58", + "sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678", + "sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a", + "sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c", + "sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6", + "sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18", + "sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174", + "sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317", + "sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f", + "sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc", + "sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837", + "sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41", + "sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c", + "sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579", + "sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753", + "sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8", + "sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291", + "sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087", + "sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866", + "sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3", + "sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d", + "sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1", + "sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca", + "sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e", + "sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db", + "sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72", + "sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d", + "sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc", + "sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539", + "sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d", + "sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af", + "sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b", + "sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602", + "sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f", + "sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478", + "sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c", + "sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e", + "sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479", + "sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7", + "sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8" ], "markers": "python_version >= '3'", - "version": "==2.0.12" + "version": "==3.0.1" }, "click": { "hashes": [ - "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3", - "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b" - ], - "markers": "python_version >= '3.6'", - "version": "==8.0.3" - }, - "colorama": { - "hashes": [ - "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b", - "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2" + "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", + "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.4.4" + "markers": "python_version >= '3.7'", + "version": "==8.1.3" }, "coverage": { "hashes": [ - "sha256:1245ab82e8554fa88c4b2ab1e098ae051faac5af829efdcf2ce6b34dccd5567c", - "sha256:1bc6d709939ff262fd1432f03f080c5042dc6508b6e0d3d20e61dd045456a1a0", - "sha256:25e73d4c81efa8ea3785274a2f7f3bfbbeccb6fcba2a0bdd3be9223371c37554", - "sha256:276b13cc085474e482566c477c25ed66a097b44c6e77132f3304ac0b039f83eb", - "sha256:2aed4761809640f02e44e16b8b32c1a5dee5e80ea30a0ff0912158bde9c501f2", - "sha256:2dd70a167843b4b4b2630c0c56f1b586fe965b4f8ac5da05b6690344fd065c6b", - "sha256:352c68e233409c31048a3725c446a9e48bbff36e39db92774d4f2380d630d8f8", - "sha256:3f2b05757c92ad96b33dbf8e8ec8d4ccb9af6ae3c9e9bd141c7cc44d20c6bcba", - "sha256:448d7bde7ceb6c69e08474c2ddbc5b4cd13c9e4aa4a717467f716b5fc938a734", - "sha256:463e52616ea687fd323888e86bf25e864a3cc6335a043fad6bbb037dbf49bbe2", - "sha256:482fb42eea6164894ff82abbcf33d526362de5d1a7ed25af7ecbdddd28fc124f", - "sha256:56c4a409381ddd7bbff134e9756077860d4e8a583d310a6f38a2315b9ce301d0", - "sha256:56d296cbc8254a7dffdd7bcc2eb70be5a233aae7c01856d2d936f5ac4e8ac1f1", - "sha256:5e15d424b8153756b7c903bde6d4610be0c3daca3986173c18dd5c1a1625e4cd", - "sha256:618eeba986cea7f621d8607ee378ecc8c2504b98b3fdc4952b30fe3578304687", - "sha256:61d47a897c1e91f33f177c21de897267b38fbb45f2cd8e22a710bcef1df09ac1", - "sha256:621f6ea7260ea2ffdaec64fe5cb521669984f567b66f62f81445221d4754df4c", - "sha256:6a5cdc3adb4f8bb8d8f5e64c2e9e282bc12980ef055ec6da59db562ee9bdfefa", - "sha256:6c3f6158b02ac403868eea390930ae64e9a9a2a5bbfafefbb920d29258d9f2f8", - "sha256:704f89b87c4f4737da2860695a18c852b78ec7279b24eedacab10b29067d3a38", - "sha256:72128176fea72012063200b7b395ed8a57849282b207321124d7ff14e26988e8", - "sha256:78fbb2be068a13a5d99dce9e1e7d168db880870f7bc73f876152130575bd6167", - "sha256:7bff3a98f63b47464480de1b5bdd80c8fade0ba2832c9381253c9b74c4153c27", - "sha256:84f2436d6742c01136dd940ee158bfc7cf5ced3da7e4c949662b8703b5cd8145", - "sha256:9976fb0a5709988778ac9bc44f3d50fccd989987876dfd7716dee28beed0a9fa", - "sha256:9ad0a117b8dc2061ce9461ea4c1b4799e55edceb236522c5b8f958ce9ed8fa9a", - "sha256:9e3dd806f34de38d4c01416344e98eab2437ac450b3ae39c62a0ede2f8b5e4ed", - "sha256:9eb494070aa060ceba6e4bbf44c1bc5fa97bfb883a0d9b0c9049415f9e944793", - "sha256:9fde6b90889522c220dd56a670102ceef24955d994ff7af2cb786b4ba8fe11e4", - "sha256:9fff3ff052922cb99f9e52f63f985d4f7a54f6b94287463bc66b7cdf3eb41217", - "sha256:a06c358f4aed05fa1099c39decc8022261bb07dfadc127c08cfbd1391b09689e", - "sha256:a4f923b9ab265136e57cc14794a15b9dcea07a9c578609cd5dbbfff28a0d15e6", - "sha256:c5b81fb37db76ebea79aa963b76d96ff854e7662921ce742293463635a87a78d", - "sha256:d5ed164af5c9078596cfc40b078c3b337911190d3faeac830c3f1274f26b8320", - "sha256:d651fde74a4d3122e5562705824507e2f5b2d3d57557f1916c4b27635f8fbe3f", - "sha256:de73fca6fb403dd72d4da517cfc49fcf791f74eee697d3219f6be29adf5af6ce", - "sha256:e647a0be741edbb529a72644e999acb09f2ad60465f80757da183528941ff975", - "sha256:e92c7a5f7d62edff50f60a045dc9542bf939758c95b2fcd686175dd10ce0ed10", - "sha256:eeffd96882d8c06d31b65dddcf51db7c612547babc1c4c5db6a011abe9798525", - "sha256:f5a4551dfd09c3bd12fca8144d47fe7745275adf3229b7223c2f9e29a975ebda", - "sha256:fac0bcc5b7e8169bffa87f0dcc24435446d329cbc2b5486d155c2e0f3b493ae1" + "sha256:04481245ef966fbd24ae9b9e537ce899ae584d521dfbe78f89cad003c38ca2ab", + "sha256:0c45948f613d5d18c9ec5eaa203ce06a653334cf1bd47c783a12d0dd4fd9c851", + "sha256:10188fe543560ec4874f974b5305cd1a8bdcfa885ee00ea3a03733464c4ca265", + "sha256:218fe982371ac7387304153ecd51205f14e9d731b34fb0568181abaf7b443ba0", + "sha256:29571503c37f2ef2138a306d23e7270687c0efb9cab4bd8038d609b5c2393a3a", + "sha256:2a60d6513781e87047c3e630b33b4d1e89f39836dac6e069ffee28c4786715f5", + "sha256:2bf1d5f2084c3932b56b962a683074a3692bce7cabd3aa023c987a2a8e7612f6", + "sha256:3164d31078fa9efe406e198aecd2a02d32a62fecbdef74f76dad6a46c7e48311", + "sha256:32df215215f3af2c1617a55dbdfb403b772d463d54d219985ac7cd3bf124cada", + "sha256:33d1ae9d4079e05ac4cc1ef9e20c648f5afabf1a92adfaf2ccf509c50b85717f", + "sha256:33ff26d0f6cc3ca8de13d14fde1ff8efe1456b53e3f0273e63cc8b3c84a063d8", + "sha256:38da2db80cc505a611938d8624801158e409928b136c8916cd2e203970dde4dc", + "sha256:3b155caf3760408d1cb903b21e6a97ad4e2bdad43cbc265e3ce0afb8e0057e73", + "sha256:3b946bbcd5a8231383450b195cfb58cb01cbe7f8949f5758566b881df4b33baf", + "sha256:3baf5f126f30781b5e93dbefcc8271cb2491647f8283f20ac54d12161dff080e", + "sha256:4b14d5e09c656de5038a3f9bfe5228f53439282abcab87317c9f7f1acb280352", + "sha256:51b236e764840a6df0661b67e50697aaa0e7d4124ca95e5058fa3d7cbc240b7c", + "sha256:63ffd21aa133ff48c4dff7adcc46b7ec8b565491bfc371212122dd999812ea1c", + "sha256:6a43c7823cd7427b4ed763aa7fb63901ca8288591323b58c9cd6ec31ad910f3c", + "sha256:755e89e32376c850f826c425ece2c35a4fc266c081490eb0a841e7c1cb0d3bda", + "sha256:7a726d742816cb3a8973c8c9a97539c734b3a309345236cd533c4883dda05b8d", + "sha256:7c7c0d0827e853315c9bbd43c1162c006dd808dbbe297db7ae66cd17b07830f0", + "sha256:7ed681b0f8e8bcbbffa58ba26fcf5dbc8f79e7997595bf071ed5430d8c08d6f3", + "sha256:7ee5c9bb51695f80878faaa5598040dd6c9e172ddcf490382e8aedb8ec3fec8d", + "sha256:8361be1c2c073919500b6601220a6f2f98ea0b6d2fec5014c1d9cfa23dd07038", + "sha256:8ae125d1134bf236acba8b83e74c603d1b30e207266121e76484562bc816344c", + "sha256:9817733f0d3ea91bea80de0f79ef971ae94f81ca52f9b66500c6a2fea8e4b4f8", + "sha256:98b85dd86514d889a2e3dd22ab3c18c9d0019e696478391d86708b805f4ea0fa", + "sha256:9ccb092c9ede70b2517a57382a601619d20981f56f440eae7e4d7eaafd1d1d09", + "sha256:9d58885215094ab4a86a6aef044e42994a2bd76a446dc59b352622655ba6621b", + "sha256:b643cb30821e7570c0aaf54feaf0bfb630b79059f85741843e9dc23f33aaca2c", + "sha256:bc7c85a150501286f8b56bd8ed3aa4093f4b88fb68c0843d21ff9656f0009d6a", + "sha256:beeb129cacea34490ffd4d6153af70509aa3cda20fdda2ea1a2be870dfec8d52", + "sha256:c31b75ae466c053a98bf26843563b3b3517b8f37da4d47b1c582fdc703112bc3", + "sha256:c4e4881fa9e9667afcc742f0c244d9364d197490fbc91d12ac3b5de0bf2df146", + "sha256:c5b15ed7644ae4bee0ecf74fee95808dcc34ba6ace87e8dfbf5cb0dc20eab45a", + "sha256:d12d076582507ea460ea2a89a8c85cb558f83406c8a41dd641d7be9a32e1274f", + "sha256:d248cd4a92065a4d4543b8331660121b31c4148dd00a691bfb7a5cdc7483cfa4", + "sha256:d47dd659a4ee952e90dc56c97d78132573dc5c7b09d61b416a9deef4ebe01a0c", + "sha256:d4a5a5879a939cb84959d86869132b00176197ca561c664fc21478c1eee60d75", + "sha256:da9b41d4539eefd408c46725fb76ecba3a50a3367cafb7dea5f250d0653c1040", + "sha256:db61a79c07331e88b9a9974815c075fbd812bc9dbc4dc44b366b5368a2936063", + "sha256:ddb726cb861c3117a553f940372a495fe1078249ff5f8a5478c0576c7be12050", + "sha256:ded59300d6330be27bc6cf0b74b89ada58069ced87c48eaf9344e5e84b0072f7", + "sha256:e2617759031dae1bf183c16cef8fcfb3de7617f394c813fa5e8e46e9b82d4222", + "sha256:e5cdbb5cafcedea04924568d990e20ce7f1945a1dd54b560f879ee2d57226912", + "sha256:ec8e767f13be637d056f7e07e61d089e555f719b387a7070154ad80a0ff31801", + "sha256:ef382417db92ba23dfb5864a3fc9be27ea4894e86620d342a116b243ade5d35d", + "sha256:f2cba5c6db29ce991029b5e4ac51eb36774458f0a3b8d3137241b32d1bb91f06", + "sha256:f5b4198d85a3755d27e64c52f8c95d6333119e49fd001ae5798dac872c95e0f8", + "sha256:ffeeb38ee4a80a30a6877c5c4c359e5498eec095878f1581453202bfacc8fbc2" ], "index": "pypi", - "version": "==6.3.1" - }, - "cryptography": { - "hashes": [ - "sha256:0a817b961b46894c5ca8a66b599c745b9a3d9f822725221f0e0fe49dc043a3a3", - "sha256:2d87cdcb378d3cfed944dac30596da1968f88fb96d7fc34fdae30a99054b2e31", - "sha256:30ee1eb3ebe1644d1c3f183d115a8c04e4e603ed6ce8e394ed39eea4a98469ac", - "sha256:391432971a66cfaf94b21c24ab465a4cc3e8bf4a939c1ca5c3e3a6e0abebdbcf", - "sha256:39bdf8e70eee6b1c7b289ec6e5d84d49a6bfa11f8b8646b5b3dfe41219153316", - "sha256:4caa4b893d8fad33cf1964d3e51842cd78ba87401ab1d2e44556826df849a8ca", - "sha256:53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638", - "sha256:596f3cd67e1b950bc372c33f1a28a0692080625592ea6392987dba7f09f17a94", - "sha256:5d59a9d55027a8b88fd9fd2826c4392bd487d74bf628bb9d39beecc62a644c12", - "sha256:6c0c021f35b421ebf5976abf2daacc47e235f8b6082d3396a2fe3ccd537ab173", - "sha256:73bc2d3f2444bcfeac67dd130ff2ea598ea5f20b40e36d19821b4df8c9c5037b", - "sha256:74d6c7e80609c0f4c2434b97b80c7f8fdfaa072ca4baab7e239a15d6d70ed73a", - "sha256:7be0eec337359c155df191d6ae00a5e8bbb63933883f4f5dffc439dac5348c3f", - "sha256:94ae132f0e40fe48f310bba63f477f14a43116f05ddb69d6fa31e93f05848ae2", - "sha256:bb5829d027ff82aa872d76158919045a7c1e91fbf241aec32cb07956e9ebd3c9", - "sha256:ca238ceb7ba0bdf6ce88c1b74a87bffcee5afbfa1e41e173b1ceb095b39add46", - "sha256:ca28641954f767f9822c24e927ad894d45d5a1e501767599647259cbf030b903", - "sha256:e0344c14c9cb89e76eb6a060e67980c9e35b3f36691e15e1b7a9e58a0a6c6dc3", - "sha256:ebc15b1c22e55c4d5566e3ca4db8689470a0ca2babef8e3a9ee057a8b82ce4b1", - "sha256:ec63da4e7e4a5f924b90af42eddf20b698a70e58d86a72d943857c4c6045b3ee" - ], - "index": "pypi", - "version": "==36.0.1" + "version": "==7.1.0" }, "decorator": { "hashes": [ @@ -1068,111 +1239,146 @@ }, "docutils": { "hashes": [ - "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c", - "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06" + "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6", + "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.18.1" + "markers": "python_version >= '3.7'", + "version": "==0.19" + }, + "exceptiongroup": { + "hashes": [ + "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e", + "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23" + ], + "markers": "python_version < '3.11'", + "version": "==1.1.0" }, "executing": { "hashes": [ - "sha256:32fc6077b103bd19e6494a72682d66d5763cf20a106d5aa7c5ccbea4e47b0df7", - "sha256:c23bf42e9a7b9b212f185b1b2c3c91feb895963378887bb10e64a2e612ec0023" + "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc", + "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107" ], - "version": "==0.8.2" + "version": "==1.2.0" }, "flake8": { "hashes": [ - "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d", - "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d" + "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7", + "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181" ], "index": "pypi", - "version": "==4.0.1" + "version": "==6.0.0" }, "idna": { "hashes": [ - "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", - "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" ], - "markers": "python_version >= '3'", - "version": "==3.3" + "markers": "python_version >= '3.5'", + "version": "==3.4" }, "importlib-metadata": { "hashes": [ - "sha256:175f4ee440a0317f6e8d81b7f8d4869f93316170a65ad2b007d2929186c8052c", - "sha256:e0bc84ff355328a4adfc5240c4f211e0ab386f80aa640d1b11f0618a1d282094" + "sha256:7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad", + "sha256:e354bedeb60efa6affdcc8ae121b73544a7aa74156d047311948f6d711cd378d" ], "index": "pypi", - "version": "==4.11.1" + "version": "==6.0.0" }, "iniconfig": { "hashes": [ - "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", - "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" + "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", + "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" ], - "version": "==1.1.1" + "markers": "python_version >= '3.7'", + "version": "==2.0.0" }, "ipython": { "hashes": [ - "sha256:ab564d4521ea8ceaac26c3a2c6e5ddbca15c8848fd5a5cc325f960da88d42974", - "sha256:c503a0dd6ccac9c8c260b211f2dd4479c042b49636b097cc9a0d55fe62dff64c" + "sha256:71618e82e6d59487bea059626e7c79fb4a5b760d1510d02fab1160db6fdfa1f7", + "sha256:9c207b0ef2d276d1bfcfeb9a62804336abbe4b170574ea061500952319b1d78c" ], "markers": "python_version >= '3.8'", - "version": "==8.0.1" + "version": "==8.9.0" + }, + "jaraco.classes": { + "hashes": [ + "sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158", + "sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a" + ], + "markers": "python_version >= '3.7'", + "version": "==3.2.3" }, "jedi": { "hashes": [ - "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d", - "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab" + "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e", + "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612" ], "markers": "python_version >= '3.6'", - "version": "==0.18.1" + "version": "==0.18.2" }, - "jeepney": { + "keyring": { "hashes": [ - "sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac", - "sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f" + "sha256:771ed2a91909389ed6148631de678f82ddc73737d85a927f382a8a1b157898cd", + "sha256:ba2e15a9b35e21908d0aaf4e0a47acc52d6ae33444df0da2b49d41a46ef6d678" ], - "markers": "sys_platform == 'linux'", - "version": "==0.7.1" + "markers": "python_version >= '3.7'", + "version": "==23.13.1" }, - "keyring": { + "markdown-it-py": { "hashes": [ - "sha256:9012508e141a80bd1c0b6778d5c610dd9f8c464d75ac6774248500503f972fb9", - "sha256:b0d28928ac3ec8e42ef4cc227822647a19f1d544f21f96457965dc01cf555261" + "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27", + "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da" ], "markers": "python_version >= '3.7'", - "version": "==23.5.0" + "version": "==2.1.0" }, "matplotlib-inline": { "hashes": [ - "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee", - "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c" + "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", + "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" ], "markers": "python_version >= '3.5'", - "version": "==0.1.3" + "version": "==0.1.6" }, "mccabe": { "hashes": [ - "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", - "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", + "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" ], - "version": "==0.6.1" + "markers": "python_version >= '3.6'", + "version": "==0.7.0" + }, + "mdurl": { + "hashes": [ + "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" + ], + "markers": "python_version >= '3.7'", + "version": "==0.1.2" + }, + "more-itertools": { + "hashes": [ + "sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41", + "sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab" + ], + "markers": "python_version >= '3.7'", + "version": "==9.0.0" }, "mypy-extensions": { "hashes": [ - "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", - "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", + "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" ], - "version": "==0.4.3" + "markers": "python_version >= '3.5'", + "version": "==1.0.0" }, "packaging": { "hashes": [ - "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", - "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2", + "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97" ], - "markers": "python_version >= '3.6'", - "version": "==21.3" + "markers": "python_version >= '3.7'", + "version": "==23.0" }, "parso": { "hashes": [ @@ -1184,10 +1390,11 @@ }, "pathspec": { "hashes": [ - "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", - "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" + "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229", + "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc" ], - "version": "==0.9.0" + "markers": "python_version >= '3.7'", + "version": "==0.11.0" }, "pexpect": { "hashes": [ @@ -1206,18 +1413,19 @@ }, "pkginfo": { "hashes": [ - "sha256:542e0d0b6750e2e21c20179803e40ab50598d8066d51097a0e382cba9eb02bff", - "sha256:c24c487c6a7f72c66e816ab1796b96ac6c3d14d49338293d2141664330b55ffc" + "sha256:4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546", + "sha256:8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046" ], - "version": "==1.8.2" + "markers": "python_version >= '3.6'", + "version": "==1.9.6" }, "platformdirs": { "hashes": [ - "sha256:30671902352e97b1eafd74ade8e4a694782bd3471685e78c32d0fdfd3aa7e7bb", - "sha256:8ec11dfba28ecc0715eb5fb0147a87b1bf325f349f3da9aab2cd6b50b96b692b" + "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9", + "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567" ], "markers": "python_version >= '3.7'", - "version": "==2.5.0" + "version": "==3.0.0" }, "pluggy": { "hashes": [ @@ -1229,11 +1437,11 @@ }, "prompt-toolkit": { "hashes": [ - "sha256:30129d870dcb0b3b6a53efdc9d0a83ea96162ffd28ffe077e94215b233dc670c", - "sha256:9f1cd16b1e86c2968f2519d7fb31dd9d669916f515612c269d14e9ed52b51650" + "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", + "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305" ], "markers": "python_full_version >= '3.6.2'", - "version": "==3.0.28" + "version": "==3.0.36" }, "ptyprocess": { "hashes": [ @@ -1250,92 +1458,69 @@ ], "version": "==0.2.2" }, - "py": { - "hashes": [ - "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", - "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" - ], - "index": "pypi", - "version": "==1.11.0" - }, "pycodestyle": { "hashes": [ - "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20", - "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==2.8.0" - }, - "pycparser": { - "hashes": [ - "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", - "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053", + "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.21" + "markers": "python_version >= '3.6'", + "version": "==2.10.0" }, "pyflakes": { "hashes": [ - "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c", - "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e" + "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf", + "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.4.0" + "markers": "python_version >= '3.6'", + "version": "==3.0.1" }, "pygments": { "hashes": [ - "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65", - "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a" + "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297", + "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717" ], "index": "pypi", - "version": "==2.11.2" - }, - "pyparsing": { - "hashes": [ - "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea", - "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484" - ], - "markers": "python_version >= '3.6'", - "version": "==3.0.7" + "version": "==2.14.0" }, "pytest": { "hashes": [ - "sha256:9ce3ff477af913ecf6321fe337b93a2c0dcf2a0a1439c43f5452112c1e4280db", - "sha256:e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171" + "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5", + "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42" ], "index": "pypi", - "version": "==7.0.1" + "version": "==7.2.1" }, "pytest-cov": { "hashes": [ - "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6", - "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470" + "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b", + "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470" ], "index": "pypi", - "version": "==3.0.0" + "version": "==4.0.0" }, "readme-renderer": { "hashes": [ - "sha256:a50a0f2123a4c1145ac6f420e1a348aafefcc9211c846e3d51df05fe3d865b7d", - "sha256:b512beafa6798260c7d5af3e1b1f097e58bfcd9a575da7c4ddd5e037490a5b85" + "sha256:cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273", + "sha256:f67a16caedfa71eef48a31b39708637a6f4664c4394801a7b0d6432d13907343" ], - "markers": "python_version >= '3.6'", - "version": "==32.0" + "markers": "python_version >= '3.7'", + "version": "==37.3" }, "requests": { "hashes": [ - "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", - "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" + "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa", + "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==2.27.1" + "markers": "python_version >= '3.7' and python_version < '4'", + "version": "==2.28.2" }, "requests-toolbelt": { "hashes": [ - "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f", - "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0" + "sha256:18565aa58116d9951ac39baa288d3adb5b3ff975c4f25eee78555d89e8f247f7", + "sha256:62e09f7ff5ccbda92772a29f394a49c3ad6cb181d568b1337626b2abb628a63d" ], - "version": "==0.9.1" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.1" }, "rfc3986": { "hashes": [ @@ -1345,29 +1530,29 @@ "markers": "python_version >= '3.7'", "version": "==2.0.0" }, - "secretstorage": { + "rich": { "hashes": [ - "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f", - "sha256:fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195" + "sha256:125d96d20c92b946b983d0d392b84ff945461e5a06d3867e9f9e575f8697b67f", + "sha256:8aa57747f3fc3e977684f0176a88e789be314a99f99b43b75d1e9cb5dc6db9e9" ], - "markers": "sys_platform == 'linux'", - "version": "==3.3.1" + "markers": "python_full_version >= '3.7.0'", + "version": "==13.3.1" }, "setuptools": { "hashes": [ - "sha256:80743e57120665fa65665286369a0734bce0e7a629ad36507fb7a4b65e7d2e3b", - "sha256:93b1a3037230bf9aa07327b9fc58f527d5f4e22d36705b55d55ba3ece8606ca6" + "sha256:a7687c12b444eaac951ea87a9627c4f904ac757e7abdc5aac32833234af90378", + "sha256:e261cdf010c11a41cb5cb5f1bf3338a7433832029f559a6a7614bd42a967c300" ], "markers": "python_version >= '3.7'", - "version": "==60.9.2" + "version": "==67.1.0" }, "setuptools-scm": { "hashes": [ - "sha256:6833ac65c6ed9711a4d5d2266f8024cfa07c533a0e55f4c12f6eff280a5a9e30", - "sha256:acea13255093849de7ccb11af9e1fb8bde7067783450cee9ef7a93139bddf6d4" + "sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27", + "sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e" ], "index": "pypi", - "version": "==6.4.2" + "version": "==7.1.0" }, "six": { "hashes": [ @@ -1379,10 +1564,10 @@ }, "stack-data": { "hashes": [ - "sha256:45692d41bd633a9503a5195552df22b583caf16f0b27c4e58c98d88c8b648e12", - "sha256:999762f9c3132308789affa03e9271bbbe947bf78311851f4d485d8402ed858e" + "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815", + "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8" ], - "version": "==0.2.0" + "version": "==0.6.2" }, "toml": { "hashes": [ @@ -1397,55 +1582,47 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_version >= '3.7'", + "markers": "python_version < '3.11'", "version": "==2.0.1" }, - "tqdm": { - "hashes": [ - "sha256:8dd278a422499cd6b727e6ae4061c40b48fce8b76d1ccbf5d34fca9b7f925b0c", - "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==4.62.3" - }, "traitlets": { "hashes": [ - "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7", - "sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033" + "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8", + "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9" ], "markers": "python_version >= '3.7'", - "version": "==5.1.1" + "version": "==5.9.0" }, "twine": { "hashes": [ - "sha256:8efa52658e0ae770686a13b675569328f1fba9837e5de1867bfe5f46a9aefe19", - "sha256:d0550fca9dc19f3d5e8eadfce0c227294df0a2a951251a4385797c8a6198b7c8" + "sha256:929bc3c280033347a00f847236564d1c52a3e61b1ac2516c97c48f3ceab756d8", + "sha256:9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8" ], "index": "pypi", - "version": "==3.8.0" + "version": "==4.0.2" }, "typing-extensions": { "hashes": [ - "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42", - "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2" + "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", + "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" ], - "markers": "python_version < '3.10'", - "version": "==4.1.1" + "markers": "python_version >= '3.7'", + "version": "==4.4.0" }, "urllib3": { "hashes": [ - "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed", - "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c" + "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72", + "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", - "version": "==1.26.8" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.14" }, "wcwidth": { "hashes": [ - "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", - "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" + "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e", + "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0" ], - "version": "==0.2.5" + "version": "==0.2.6" }, "webencodings": { "hashes": [ @@ -1456,19 +1633,19 @@ }, "wheel": { "hashes": [ - "sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a", - "sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4" + "sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac", + "sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8" ], "index": "pypi", - "version": "==0.37.1" + "version": "==0.38.4" }, "zipp": { "hashes": [ - "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d", - "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375" + "sha256:6c4fe274b8f85ec73c37a8e4e3fa00df9fb9335da96fb789e3b96b318e5097b3", + "sha256:a3cac813d40993596b39ea9e93a18e8a2076d5c378b8bc88ec32ab264e04ad02" ], - "markers": "python_version < '3.10'", - "version": "==3.7.0" + "markers": "python_version >= '3.7'", + "version": "==3.12.1" } } } From e305bd750e1285faa379796dbd178d14cc032063 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Feb 2023 09:36:17 -0500 Subject: [PATCH 04/28] update Pipfile.lock for python 3.8 --- Pipfile.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 7119ebef..0c681dea 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -468,10 +468,10 @@ }, "mistune": { "hashes": [ - "sha256:182cc5ee6f8ed1b807de6b7bb50155df7b66495412836b9a74c8fbdfc75fe36d", - "sha256:9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808" + "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34", + "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8" ], - "version": "==2.0.4" + "version": "==2.0.5" }, "nbclassic": { "hashes": [ @@ -864,7 +864,7 @@ "rsconnect-python": { "editable": true, "git": "https://github.com/rstudio/rsconnect-python.git", - "ref": "1b6a3a86d75f0cfbd18da0ae928a97d418b7fbd8" + "ref": "5ee21897ee3e4bc8f47c06f7dc28fb098305e5dd" }, "semver": { "hashes": [ @@ -1540,11 +1540,11 @@ }, "setuptools": { "hashes": [ - "sha256:a7687c12b444eaac951ea87a9627c4f904ac757e7abdc5aac32833234af90378", - "sha256:e261cdf010c11a41cb5cb5f1bf3338a7433832029f559a6a7614bd42a967c300" + "sha256:16ccf598aab3b506593c17378473978908a2734d7336755a8769b480906bec1c", + "sha256:b440ee5f7e607bb8c9de15259dba2583dd41a38879a7abc1d43a71c59524da48" ], "markers": "python_version >= '3.7'", - "version": "==67.1.0" + "version": "==67.2.0" }, "setuptools-scm": { "hashes": [ From 5dc7e94f88f0ad249e1dcdcf5c55b10cee36f4a0 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Feb 2023 09:50:19 -0500 Subject: [PATCH 05/28] more patient waiting for Jupyter to start --- selenium/tools/systemstat/sutstat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selenium/tools/systemstat/sutstat.py b/selenium/tools/systemstat/sutstat.py index db325bce..3ae6fd1b 100644 --- a/selenium/tools/systemstat/sutstat.py +++ b/selenium/tools/systemstat/sutstat.py @@ -4,7 +4,7 @@ class SutStat(systemstat.SystemStat): - def __init__(self, url="http://localhost:6969", sleep=5.0, wait=60, **kwargs): + def __init__(self, url="http://localhost:6969", sleep=5.0, wait=120, **kwargs): super(SutStat, self).__init__(sleep=sleep, wait=wait, **kwargs) self._url = url From 89146b13995d3c60dd5428fc74deb34380df24bb Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Feb 2023 09:50:33 -0500 Subject: [PATCH 06/28] pass through Jupyter logs --- selenium/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selenium/Makefile b/selenium/Makefile index 4fe47dc4..08917dfd 100644 --- a/selenium/Makefile +++ b/selenium/Makefile @@ -197,7 +197,7 @@ jupyter-up: $(NOTEBOOKS_DIR) $(JUPYTER_IMAGE) \ make -C ${RSCONNECT_DIR} run JUPYTER_LOG_LEVEL=$(JUPYTER_LOG_LEVEL) \ 1>/dev/null - @docker logs -f ${JUPYTER_HOST} > ${JUPYTER_LOG} & + @docker logs -f ${JUPYTER_HOST} & @echo " done" jupyter-down: From 8839a3b47afe30e6bf16dbcc3511ad8314198ff8 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Feb 2023 10:19:41 -0500 Subject: [PATCH 07/28] Revert "pass through Jupyter logs" This reverts commit 89146b13995d3c60dd5428fc74deb34380df24bb. --- selenium/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selenium/Makefile b/selenium/Makefile index 08917dfd..4fe47dc4 100644 --- a/selenium/Makefile +++ b/selenium/Makefile @@ -197,7 +197,7 @@ jupyter-up: $(NOTEBOOKS_DIR) $(JUPYTER_IMAGE) \ make -C ${RSCONNECT_DIR} run JUPYTER_LOG_LEVEL=$(JUPYTER_LOG_LEVEL) \ 1>/dev/null - @docker logs -f ${JUPYTER_HOST} & + @docker logs -f ${JUPYTER_HOST} > ${JUPYTER_LOG} & @echo " done" jupyter-down: From e315831339c41f511869c16a55ccbe88b7b92bcf Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Feb 2023 10:22:03 -0500 Subject: [PATCH 08/28] dump Jupyter log --- selenium/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/selenium/Makefile b/selenium/Makefile index 4fe47dc4..ac4d5d72 100644 --- a/selenium/Makefile +++ b/selenium/Makefile @@ -140,7 +140,8 @@ wait-for-systems-up: -n $$(( ${SCALE_FIREFOX} + ${SCALE_CHROME} )) \ -l ${LOGS_DIR} \ -j '${JUPYTER_SCHEME}://${JUPYTER_HOST}:${JUPYTER_PORT}' \ - -c '${CONNECT_SCHEME}://${CONNECT_HOST}:${CONNECT_PORT}' + -c '${CONNECT_SCHEME}://${CONNECT_HOST}:${CONNECT_PORT}' \ + || cat ${JUPYTER_LOG} grid-up: network-up NETWORK=${NETWORK} \ From 7678933910604df244ecc47cfb743305dec040c2 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Fri, 10 Feb 2023 09:37:48 -0500 Subject: [PATCH 09/28] re-lock Pipfile.lock --- Pipfile.lock | 68 ++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 0c681dea..26ad8168 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -198,32 +198,32 @@ }, "cryptography": { "hashes": [ - "sha256:1a6915075c6d3a5e1215eab5d99bcec0da26036ff2102a1038401d6ef5bef25b", - "sha256:1ee1fd0de9851ff32dbbb9362a4d833b579b4a6cc96883e8e6d2ff2a6bc7104f", - "sha256:407cec680e811b4fc829de966f88a7c62a596faa250fc1a4b520a0355b9bc190", - "sha256:50386acb40fbabbceeb2986332f0287f50f29ccf1497bae31cf5c3e7b4f4b34f", - "sha256:6f97109336df5c178ee7c9c711b264c502b905c2d2a29ace99ed761533a3460f", - "sha256:754978da4d0457e7ca176f58c57b1f9de6556591c19b25b8bcce3c77d314f5eb", - "sha256:76c24dd4fd196a80f9f2f5405a778a8ca132f16b10af113474005635fe7e066c", - "sha256:7dacfdeee048814563eaaec7c4743c8aea529fe3dd53127313a792f0dadc1773", - "sha256:80ee674c08aaef194bc4627b7f2956e5ba7ef29c3cc3ca488cf15854838a8f72", - "sha256:844ad4d7c3850081dffba91cdd91950038ee4ac525c575509a42d3fc806b83c8", - "sha256:875aea1039d78557c7c6b4db2fe0e9d2413439f4676310a5f269dd342ca7a717", - "sha256:887cbc1ea60786e534b00ba8b04d1095f4272d380ebd5f7a7eb4cc274710fad9", - "sha256:ad04f413436b0781f20c52a661660f1e23bcd89a0e9bb1d6d20822d048cf2856", - "sha256:bae6c7f4a36a25291b619ad064a30a07110a805d08dc89984f4f441f6c1f3f96", - "sha256:c52a1a6f81e738d07f43dab57831c29e57d21c81a942f4602fac7ee21b27f288", - "sha256:e0a05aee6a82d944f9b4edd6a001178787d1546ec7c6223ee9a848a7ade92e39", - "sha256:e324de6972b151f99dc078defe8fb1b0a82c6498e37bff335f5bc6b1e3ab5a1e", - "sha256:e5d71c5d5bd5b5c3eebcf7c5c2bb332d62ec68921a8c593bea8c394911a005ce", - "sha256:f3ed2d864a2fa1666e749fe52fb8e23d8e06b8012e8bd8147c73797c506e86f1", - "sha256:f671c1bb0d6088e94d61d80c606d65baacc0d374e67bf895148883461cd848de", - "sha256:f6c0db08d81ead9576c4d94bbb27aed8d7a430fa27890f39084c2d0e2ec6b0df", - "sha256:f964c7dcf7802d133e8dbd1565914fa0194f9d683d82411989889ecd701e8adf", - "sha256:fec8b932f51ae245121c4671b4bbc030880f363354b2f0e0bd1366017d891458" + "sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4", + "sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f", + "sha256:4789d1e3e257965e960232345002262ede4d094d1a19f4d3b52e48d4d8f3b885", + "sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502", + "sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41", + "sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965", + "sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e", + "sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc", + "sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad", + "sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505", + "sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388", + "sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6", + "sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2", + "sha256:c5caeb8188c24888c90b5108a441c106f7faa4c4c075a2bcae438c6e8ca73cef", + "sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac", + "sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695", + "sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6", + "sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336", + "sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0", + "sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c", + "sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106", + "sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a", + "sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8" ], "index": "pypi", - "version": "==39.0.0" + "version": "==39.0.1" }, "debugpy": { "hashes": [ @@ -303,11 +303,11 @@ }, "ipython": { "hashes": [ - "sha256:71618e82e6d59487bea059626e7c79fb4a5b760d1510d02fab1160db6fdfa1f7", - "sha256:9c207b0ef2d276d1bfcfeb9a62804336abbe4b170574ea061500952319b1d78c" + "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e", + "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345" ], "markers": "python_version >= '3.8'", - "version": "==8.9.0" + "version": "==8.10.0" }, "ipython-genutils": { "hashes": [ @@ -864,7 +864,7 @@ "rsconnect-python": { "editable": true, "git": "https://github.com/rstudio/rsconnect-python.git", - "ref": "5ee21897ee3e4bc8f47c06f7dc28fb098305e5dd" + "ref": "cad1ae62a07b2b6326b79066bdf7d92044246c8a" }, "semver": { "hashes": [ @@ -1294,11 +1294,11 @@ }, "ipython": { "hashes": [ - "sha256:71618e82e6d59487bea059626e7c79fb4a5b760d1510d02fab1160db6fdfa1f7", - "sha256:9c207b0ef2d276d1bfcfeb9a62804336abbe4b170574ea061500952319b1d78c" + "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e", + "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345" ], "markers": "python_version >= '3.8'", - "version": "==8.9.0" + "version": "==8.10.0" }, "jaraco.classes": { "hashes": [ @@ -1641,11 +1641,11 @@ }, "zipp": { "hashes": [ - "sha256:6c4fe274b8f85ec73c37a8e4e3fa00df9fb9335da96fb789e3b96b318e5097b3", - "sha256:a3cac813d40993596b39ea9e93a18e8a2076d5c378b8bc88ec32ab264e04ad02" + "sha256:23f70e964bc11a34cef175bc90ba2914e1e4545ea1e3e2f67c079671883f9cb6", + "sha256:e8b2a36ea17df80ffe9e2c4fda3f693c3dad6df1697d3cd3af232db680950b0b" ], "markers": "python_version >= '3.7'", - "version": "==3.12.1" + "version": "==3.13.0" } } } From 93849377cd8403cb991d5d1bac2a9411e16c1419 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Fri, 10 Feb 2023 11:15:06 -0500 Subject: [PATCH 10/28] remove echo suppression --- selenium/Makefile | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/selenium/Makefile b/selenium/Makefile index ac4d5d72..a3e0a45a 100644 --- a/selenium/Makefile +++ b/selenium/Makefile @@ -121,14 +121,14 @@ prepare-logging: tee ${PYTESTLOG} < ${TMP_PIPE} & run: $(NOTEBOOKS_DIR) - @${DOCKER_RUN_COMMAND} ${COMMAND} + ${DOCKER_RUN_COMMAND} ${COMMAND} test-env-up: grid-up connect-up test-env-down: network-down wait-for-systems-up: - @docker run --rm \ + docker run --rm \ --name=systemstat \ --network=$(NETWORK) \ --volume=${CURDIR}/..:${RSCONNECT_DIR} \ @@ -163,14 +163,14 @@ grid-restart: network-up: $(eval NETWORK_EXISTS=$(shell docker network inspect ${NETWORK} > /dev/null 2>&1 && echo 0 || echo 1)) - @if [ "${NETWORK_EXISTS}" = "1" ] ; then \ + if [ "${NETWORK_EXISTS}" = "1" ] ; then \ echo "Creating network: ${NETWORK}"; \ docker network create --driver bridge ${NETWORK} ; \ fi network-down: connect-down grid-down $(eval NETWORK_EXISTS=$(shell docker network inspect ${NETWORK} > /dev/null 2>&1 && echo 0 || echo 1)) - @if [ "${NETWORK_EXISTS}" = "0" ] ; then \ + if [ "${NETWORK_EXISTS}" = "0" ] ; then \ for i in `docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' ${NETWORK}`; do \ echo "Removing container \"$${i}\" from network \"${NETWORK}\""; \ docker network disconnect -f ${NETWORK} $${i}; \ @@ -180,8 +180,8 @@ network-down: connect-down grid-down fi jupyter-up: $(NOTEBOOKS_DIR) - @echo "Creating ${JUPYTER_HOST} ..." - @docker run --rm -d --init \ + echo "Creating ${JUPYTER_HOST} ..." + docker run --rm -d --init \ ${DOCKER_TTY_FLAGS} \ --name=${JUPYTER_HOST} \ --network=${NETWORK} \ @@ -198,20 +198,20 @@ jupyter-up: $(NOTEBOOKS_DIR) $(JUPYTER_IMAGE) \ make -C ${RSCONNECT_DIR} run JUPYTER_LOG_LEVEL=$(JUPYTER_LOG_LEVEL) \ 1>/dev/null - @docker logs -f ${JUPYTER_HOST} > ${JUPYTER_LOG} & - @echo " done" + docker logs -f ${JUPYTER_HOST} > ${JUPYTER_LOG} & + echo " done" jupyter-down: $(eval JUPYTER_EXISTS=$(shell docker container inspect ${JUPYTER_HOST} > /dev/null 2>&1 && echo 0 || echo 1)) - @if [ "${JUPYTER_EXISTS}" = "0" ] ; then \ + if [ "${JUPYTER_EXISTS}" = "0" ] ; then \ echo "Stopping ${JUPYTER_HOST} ..."; \ docker stop ${JUPYTER_HOST} 1>/dev/null; \ echo " done"; \ fi connect-up: - @echo "Creating ${CONNECT_HOST} ..." - @docker run --rm -d --init \ + echo "Creating ${CONNECT_HOST} ..." + docker run --rm -d --init \ ${DOCKER_TTY_FLAGS} \ --name=${CONNECT_HOST} \ --network=${NETWORK} \ @@ -223,12 +223,12 @@ connect-up: $(CONNECT_IMAGE) \ flask run --host=0.0.0.0 --port=${CONNECT_PORT} \ 1>/dev/null - @docker logs -f ${CONNECT_HOST} > ${CONNECT_LOG} & - @echo " done" + docker logs -f ${CONNECT_HOST} > ${CONNECT_LOG} & + echo " done" connect-down: $(eval CONNECT_EXISTS=$(shell docker container inspect ${CONNECT_HOST} > /dev/null 2>&1 && echo 0 || echo 1)) - @if [ "${CONNECT_EXISTS}" = "0" ] ; then \ + if [ "${CONNECT_EXISTS}" = "0" ] ; then \ echo "Stopping ${CONNECT_HOST} ..."; \ docker stop ${CONNECT_HOST} 1>/dev/null; \ echo " done"; \ From 2910d00504046418f2d3da566dfa8dc0a843769b Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Fri, 10 Feb 2023 11:15:44 -0500 Subject: [PATCH 11/28] label jupyter log --- selenium/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selenium/Makefile b/selenium/Makefile index a3e0a45a..fb38e73b 100644 --- a/selenium/Makefile +++ b/selenium/Makefile @@ -141,7 +141,7 @@ wait-for-systems-up: -l ${LOGS_DIR} \ -j '${JUPYTER_SCHEME}://${JUPYTER_HOST}:${JUPYTER_PORT}' \ -c '${CONNECT_SCHEME}://${CONNECT_HOST}:${CONNECT_PORT}' \ - || cat ${JUPYTER_LOG} + || (echo "Jupyter log: "; cat ${JUPYTER_LOG}) grid-up: network-up NETWORK=${NETWORK} \ From 9e226c3ea57b64db0275349cd5809a9b2a2157d1 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Fri, 10 Feb 2023 11:26:06 -0500 Subject: [PATCH 12/28] upload logs as artifacts --- .github/workflows/main.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7d6f594c..ef35da7e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -50,6 +50,18 @@ jobs: - run: make -C selenium test-env-up - run: make -C selenium jupyter-up - run: make -C selenium test + - uses: actions/upload-artifact@v3 + with: + name: selenium-logs + path: jupyter-py3.8.log + - uses: actions/upload-artifact@v3 + with: + name: selenium-logs + path: selenium_tests.log + - uses: actions/upload-artifact@v3 + with: + name: selenium-logs + path: ./selenium/*.log distributions: needs: test runs-on: ubuntu-latest From f3e73e734b27a85dcb81ae209b09bf2d09e9484f Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Fri, 10 Feb 2023 11:32:54 -0500 Subject: [PATCH 13/28] artifact on failure --- .github/workflows/main.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ef35da7e..2c71fa22 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,17 +51,10 @@ jobs: - run: make -C selenium jupyter-up - run: make -C selenium test - uses: actions/upload-artifact@v3 + if: failure() with: name: selenium-logs - path: jupyter-py3.8.log - - uses: actions/upload-artifact@v3 - with: - name: selenium-logs - path: selenium_tests.log - - uses: actions/upload-artifact@v3 - with: - name: selenium-logs - path: ./selenium/*.log + path: '**/*.log' distributions: needs: test runs-on: ubuntu-latest From 40e2d7ee2c766e973f16b35fb6740cb0801f82e7 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 13 Feb 2023 13:40:48 -0500 Subject: [PATCH 14/28] fix temporary rsconnect-python URL --- Pipfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pipfile b/Pipfile index c975d4cf..3c857f8d 100644 --- a/Pipfile +++ b/Pipfile @@ -22,7 +22,7 @@ traitlets = ">=5.1.1" nbconvert = ">=5.0" nbformat = "*" notebook = ">=6.1.5, <7.0.0" -rsconnect-python = {editable = true, git = "https://github.com/rstudio/rsconnect-python.git", ref = "bcwu-voila" } +rsconnect-python = "git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila" six = "*" # Dependabot fixes py = ">=1.10.0" From 723786a470815e9cc472508d451edfb405efb465 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 13 Feb 2023 13:54:48 -0500 Subject: [PATCH 15/28] fix git url again --- Pipfile | 3 ++- Pipfile.lock | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Pipfile b/Pipfile index 3c857f8d..1ccae720 100644 --- a/Pipfile +++ b/Pipfile @@ -22,7 +22,8 @@ traitlets = ">=5.1.1" nbconvert = ">=5.0" nbformat = "*" notebook = ">=6.1.5, <7.0.0" -rsconnect-python = "git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila" +# https://github.com/pypa/setuptools/issues/2568#issuecomment-821040991 +rsconnect-python = "rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila" six = "*" # Dependabot fixes py = ">=1.10.0" diff --git a/Pipfile.lock b/Pipfile.lock index 26ad8168..6fd356ab 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "e219b149258a67dbfcf240f84b3f9beee3f4c55b8088933f9526438716be4d7a" + "sha256": "6f6b9ee3dfd3c7e578eeac9ce2a92157a192535518964434595582023e0420aa" }, "pipfile-spec": 6, "requires": {}, @@ -295,11 +295,11 @@ }, "ipykernel": { "hashes": [ - "sha256:1a04bb359212e23e46adc0116ec82ea128c1e5bd532fde4fbe679787ff36f0cf", - "sha256:a0f8eece39cab1ee352c9b59ec67bbe44d8299f8238e4c16ff7f4cf0052d3378" + "sha256:430d00549b6aaf49bd0f5393150691edb1815afa62d457ee6b1a66b25cb17874", + "sha256:6e9213484e4ce1fb14267ee435e18f23cc3a0634e635b9fb4ed4677b84e0fdf8" ], "markers": "python_version >= '3.8'", - "version": "==6.21.1" + "version": "==6.21.2" }, "ipython": { "hashes": [ @@ -710,11 +710,11 @@ }, "python-json-logger": { "hashes": [ - "sha256:3b03487b14eb9e4f77e4fc2a023358b5394b82fd89cecf5586259baed57d8c6f", - "sha256:764d762175f99fcc4630bd4853b09632acb60a6224acb27ce08cd70f0b1b81bd" + "sha256:3853e0b73e6c1ba4b1f2543066b24950bf1c21ed104f297a7bff8c74532a6ab2", + "sha256:f389ccb0a8fd26f84c294dc627a999daf58f759b457ee022f698098f6547288d" ], - "markers": "python_version >= '3.5'", - "version": "==2.0.4" + "markers": "python_version >= '3.6'", + "version": "==2.0.5" }, "pyyaml": { "hashes": [ @@ -862,9 +862,11 @@ "version": "==0.1.1" }, "rsconnect-python": { - "editable": true, - "git": "https://github.com/rstudio/rsconnect-python.git", - "ref": "cad1ae62a07b2b6326b79066bdf7d92044246c8a" + "hashes": [ + "sha256:b583a276eeaa418e8f850c50d925e80ab774d2e8025eea570343031ffd708298" + ], + "index": "pypi", + "version": "==1.14.1" }, "semver": { "hashes": [ From 80ee016ab6c4315faf4e67fd7e7826d81fb9b753 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 13 Feb 2023 14:22:53 -0500 Subject: [PATCH 16/28] fix URL --- Pipfile | 3 +-- Pipfile.lock | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Pipfile b/Pipfile index 1ccae720..66f91d28 100644 --- a/Pipfile +++ b/Pipfile @@ -22,8 +22,6 @@ traitlets = ">=5.1.1" nbconvert = ">=5.0" nbformat = "*" notebook = ">=6.1.5, <7.0.0" -# https://github.com/pypa/setuptools/issues/2568#issuecomment-821040991 -rsconnect-python = "rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila" six = "*" # Dependabot fixes py = ">=1.10.0" @@ -31,6 +29,7 @@ Pygments = ">=2.7.4" jinja2 = ">=2.11.3" bleach = ">=3.3.0" cryptography = ">=3.2" +rsconnect-python = "rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila#egg=rsconnect-python" [pipenv] allow_prereleases = true diff --git a/Pipfile.lock b/Pipfile.lock index 6fd356ab..903ee694 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "6f6b9ee3dfd3c7e578eeac9ce2a92157a192535518964434595582023e0420aa" + "sha256": "5c70ee5c5f9c38db7a95ba72718e499252f7e809504d68fe23f70b540a1c83b8" }, "pipfile-spec": 6, "requires": {}, From 97694a1679507749643e8a17768bcd5107450fcb Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 13 Feb 2023 15:18:09 -0500 Subject: [PATCH 17/28] remove pipenv --- .dockerignore | 2 - .github/workflows/main.yml | 24 +- .github/workflows/snyk.yml | 9 +- Dockerfile | 13 +- Makefile | 43 +- Pipfile | 35 - Pipfile.lock | 1653 ------------------------------------ requirements-dev.txt | 15 + requirements.txt | 10 + setup.cfg | 2 +- 10 files changed, 63 insertions(+), 1743 deletions(-) delete mode 100644 .dockerignore delete mode 100644 Pipfile delete mode 100644 Pipfile.lock create mode 100644 requirements-dev.txt create mode 100644 requirements.txt diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index c7eca478..00000000 --- a/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!Pipfile* diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2c71fa22..7a82fe94 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,9 +32,21 @@ jobs: - run: echo "PYTHONPATH=${GITHUB_WORKSPACE}" >> $GITHUB_ENV - run: make prereqs - run: make version - - run: make install - - run: make lint - run: make test + lint: + runs-on: ubuntu-latest + name: Lint + steps: + - uses: actions/checkout@v2 + - run: git fetch --prune --unshallow + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - run: echo "PYTHONPATH=${GITHUB_WORKSPACE}" >> $GITHUB_ENV + - run: make prereqs + - run: make version + - run: make yarn + - run: make lint selenium: runs-on: ubuntu-latest steps: @@ -66,18 +78,14 @@ jobs: python-version: 3.8.x - run: echo "PYTHONPATH=${GITHUB_WORKSPACE}" >> $GITHUB_ENV - run: make prereqs - - run: pipenv clean - - run: pipenv install --skip-lock --dev - - run: pipenv run pip install -U 'SecretStorage>=3' - - run: git reset --hard HEAD - run: make dist id: create_dist - uses: actions/upload-artifact@v2 with: name: distributions path: dist/ - - run: pipenv run pip install -vvv ${{ steps.create_dist.outputs.whl }} - - run: pipenv run python -c 'import rsconnect_jupyter;print(rsconnect_jupyter.__version__)' + - run: pip install -vvv ${{ steps.create_dist.outputs.whl }} + - run: python -c 'import rsconnect_jupyter;print(rsconnect_jupyter.__version__)' - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') id: create_release uses: actions/create-release@v1 diff --git a/.github/workflows/snyk.yml b/.github/workflows/snyk.yml index 7858dd1a..8e178245 100644 --- a/.github/workflows/snyk.yml +++ b/.github/workflows/snyk.yml @@ -16,18 +16,11 @@ jobs: with: fetch-depth: 0 - - name: Install pipenv - run: | - python -m pip install --upgrade pipenv - - - name: Install Pipfile dependencies (as required by Snyk) - run: pipenv install - - name: Run Snyk uses: snyk/actions/python@master with: command: monitor - args: --file=Pipfile --project-name=python --org=${{ env.SNYK_ORG }} + args: --file=requirements-dev.txt --project-name=python --org=${{ env.SNYK_ORG }} ui: runs-on: ubuntu-latest steps: diff --git a/Dockerfile b/Dockerfile index 0cf96ffd..1d05ef9d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,14 +22,11 @@ RUN useradd --password password \ chown ${NB_UID}:${NB_GID} /rsconnect_jupyter USER ${NB_UID}:${NB_GID} -WORKDIR /rsconnect_jupyter ENV WORKON_HOME=/home/builder \ - PIPENV_DONT_LOAD_ENV=1 \ - PIPENV_SHELL=/bin/bash \ PATH=/home/builder/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ PYTHONPATH=/rsconnect_jupyter -COPY Pipfile Pipfile -COPY Pipfile.lock Pipfile.lock -RUN python -m pip install -I -U pip pipenv && \ - pipenv install --dev --python=/usr/local/bin/python && \ - rm -vf Pipfile* +COPY requirements.txt . +COPY requirements-dev.txt . +RUN /usr/local/bin/python -m pip install -I -U pip && \ + /usr/local/bin/python -m pip install -r requirements-dev.txt +WORKDIR /rsconnect_jupyter diff --git a/Makefile b/Makefile index 9f6fb07f..8c23392a 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ IMAGE := rstudio/rsconnect-jupyter-py NOTEBOOKS_DIR := /notebooks PORT := $(shell printenv PORT || echo 9999) S3_PREFIX := s3://rstudio-connect-downloads/connect/rsconnect-jupyter -VERSION := $(shell pipenv run python setup.py --version 2>/dev/null || echo 'NOTSET') +VERSION := $(shell python setup.py --version 2>/dev/null || echo 'NOTSET') BDIST_WHEEL := dist/rsconnect_jupyter-$(VERSION)-py2.py3-none-any.whl JUPYTER_LOG_LEVEL ?= INFO @@ -17,16 +17,14 @@ export SOURCE_DATE_EPOCH PYTHONPATH ?= $(CURDIR) export PYTHONPATH - .PHONY: prereqs prereqs: pip install -U pip - pip install -U pipenv - + pip install -r requirements-dev.txt .PHONY: install-latest-rsconnect-python install-latest-rsconnect-python: - pipenv run pip install -U https://cdn.rstudio.com/connect/rsconnect-python/latest/rsconnect_python-latest-py2.py3-none-any.whl + pip install -U https://cdn.rstudio.com/connect/rsconnect-python/latest/rsconnect_python-latest-py2.py3-none-any.whl .PHONY: clean clean: @@ -45,12 +43,8 @@ image%: --build-arg PY_VERSION=$* \ . -.PHONY: all-tests -all-tests: test3.7 test3.8 test3.9 test3.10 test3.11 - -.PHONY: test test: version-frontend - pipenv run pytest -vv --cov=rsconnect_jupyter tests/ + pytest -vv --cov=rsconnect_jupyter tests/ .PHONY: test-selenium test-selenium: @@ -64,16 +58,15 @@ test-selenium: # exported as a point of reference instead. .PHONY: dist dist: version-frontend - pipenv run python setup.py bdist_wheel - pipenv run twine check $(BDIST_WHEEL) + rm -vf dist/*.whl + python setup.py bdist_wheel + twine check $(BDIST_WHEEL) rm -vf dist/*.egg @echo "::set-output name=whl::$(BDIST_WHEEL)" @echo "::set-output name=whl_basename::$(notdir $(BDIST_WHEEL))" -.PHONY: run run: install - mkdir -p $(NOTEBOOKS_DIR) - pipenv run jupyter notebook \ + jupyter notebook \ -y \ --log-level=$(JUPYTER_LOG_LEVEL) \ --notebook-dir=$(NOTEBOOKS_DIR) \ @@ -82,17 +75,11 @@ run: install --no-browser \ --NotebookApp.token='' -.PHONY: run-local -run-local: NOTEBOOKS_DIR := $(CURDIR)/notebooks3.8 -run-local: run - .PHONY: install -install: yarn - pipenv install --dev - $(MAKE) version-frontend - pipenv run jupyter nbextension install --symlink --user --py rsconnect_jupyter - pipenv run jupyter nbextension enable --py rsconnect_jupyter - pipenv run jupyter serverextension enable --py rsconnect_jupyter +install: version-frontend + jupyter nbextension install --symlink --user --py rsconnect_jupyter + jupyter nbextension enable --py rsconnect_jupyter + jupyter serverextension enable --py rsconnect_jupyter build/mock-connect/bin/flask: bash -c '\ @@ -120,12 +107,12 @@ lint-js: .PHONY: lint-py lint-py: - pipenv run black --check --diff ./rsconnect_jupyter - pipenv run flake8 ./rsconnect_jupyter + black --check --diff ./rsconnect_jupyter + flake8 ./rsconnect_jupyter .PHONY: fmt fmt: - pipenv run black ./rsconnect_jupyter + black ./rsconnect_jupyter ## Specify that Docker runs with the calling user's uid/gid to avoid file ## permission issues on Linux dev hosts. diff --git a/Pipfile b/Pipfile deleted file mode 100644 index 66f91d28..00000000 --- a/Pipfile +++ /dev/null @@ -1,35 +0,0 @@ -[[source]] -name = "pypi" -url = "https://pypi.org/simple" -verify_ssl = true - -[dev-packages] -black = {version = "22.1.0", markers = "python_version >= '3.6'"} -coverage = "*" -flake8 = "*" -importlib-metadata = "*" -ipython = "*" -pytest = "*" -pytest-cov = "*" -setuptools_scm = "*" -toml = "*" -twine = "*" -wheel = "*" -# https://github.com/rstudio/rsconnect-jupyter/issues/316 -traitlets = ">=5.1.1" - -[packages] -nbconvert = ">=5.0" -nbformat = "*" -notebook = ">=6.1.5, <7.0.0" -six = "*" -# Dependabot fixes -py = ">=1.10.0" -Pygments = ">=2.7.4" -jinja2 = ">=2.11.3" -bleach = ">=3.3.0" -cryptography = ">=3.2" -rsconnect-python = "rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila#egg=rsconnect-python" - -[pipenv] -allow_prereleases = true diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index 903ee694..00000000 --- a/Pipfile.lock +++ /dev/null @@ -1,1653 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "5c70ee5c5f9c38db7a95ba72718e499252f7e809504d68fe23f70b540a1c83b8" - }, - "pipfile-spec": 6, - "requires": {}, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "anyio": { - "hashes": [ - "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421", - "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3" - ], - "markers": "python_full_version >= '3.6.2'", - "version": "==3.6.2" - }, - "appnope": { - "hashes": [ - "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24", - "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e" - ], - "markers": "platform_system == 'Darwin'", - "version": "==0.1.3" - }, - "argon2-cffi": { - "hashes": [ - "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80", - "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b" - ], - "markers": "python_version >= '3.6'", - "version": "==21.3.0" - }, - "argon2-cffi-bindings": { - "hashes": [ - "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670", - "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f", - "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583", - "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194", - "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c", - "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a", - "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082", - "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5", - "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f", - "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7", - "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d", - "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f", - "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae", - "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3", - "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86", - "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367", - "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d", - "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93", - "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb", - "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e", - "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351" - ], - "markers": "python_version >= '3.6'", - "version": "==21.2.0" - }, - "arrow": { - "hashes": [ - "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1", - "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2" - ], - "markers": "python_version >= '3.6'", - "version": "==1.2.3" - }, - "asttokens": { - "hashes": [ - "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3", - "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c" - ], - "version": "==2.2.1" - }, - "attrs": { - "hashes": [ - "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836", - "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99" - ], - "markers": "python_version >= '3.6'", - "version": "==22.2.0" - }, - "backcall": { - "hashes": [ - "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", - "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255" - ], - "version": "==0.2.0" - }, - "beautifulsoup4": { - "hashes": [ - "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39", - "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106" - ], - "markers": "python_full_version >= '3.6.0'", - "version": "==4.11.2" - }, - "bleach": { - "hashes": [ - "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414", - "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4" - ], - "index": "pypi", - "version": "==6.0.0" - }, - "cffi": { - "hashes": [ - "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", - "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", - "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", - "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", - "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", - "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", - "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", - "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", - "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", - "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", - "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", - "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", - "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", - "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", - "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", - "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", - "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", - "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", - "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", - "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", - "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", - "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", - "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", - "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", - "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", - "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", - "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", - "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", - "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", - "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", - "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", - "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", - "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", - "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", - "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", - "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", - "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", - "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", - "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", - "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", - "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", - "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", - "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", - "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", - "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", - "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", - "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", - "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", - "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", - "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", - "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", - "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", - "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", - "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", - "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", - "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", - "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", - "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", - "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", - "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", - "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", - "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", - "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", - "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" - ], - "version": "==1.15.1" - }, - "click": { - "hashes": [ - "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", - "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" - ], - "markers": "python_version >= '3.7'", - "version": "==8.1.3" - }, - "comm": { - "hashes": [ - "sha256:3e2f5826578e683999b93716285b3b1f344f157bf75fa9ce0a797564e742f062", - "sha256:9f3abf3515112fa7c55a42a6a5ab358735c9dccc8b5910a9d8e3ef5998130666" - ], - "markers": "python_version >= '3.6'", - "version": "==0.1.2" - }, - "cryptography": { - "hashes": [ - "sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4", - "sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f", - "sha256:4789d1e3e257965e960232345002262ede4d094d1a19f4d3b52e48d4d8f3b885", - "sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502", - "sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41", - "sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965", - "sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e", - "sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc", - "sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad", - "sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505", - "sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388", - "sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6", - "sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2", - "sha256:c5caeb8188c24888c90b5108a441c106f7faa4c4c075a2bcae438c6e8ca73cef", - "sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac", - "sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695", - "sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6", - "sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336", - "sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0", - "sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c", - "sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106", - "sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a", - "sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8" - ], - "index": "pypi", - "version": "==39.0.1" - }, - "debugpy": { - "hashes": [ - "sha256:0ea1011e94416e90fb3598cc3ef5e08b0a4dd6ce6b9b33ccd436c1dffc8cd664", - "sha256:23363e6d2a04d726bbc1400bd4e9898d54419b36b2cdf7020e3e215e1dcd0f8e", - "sha256:23c29e40e39ad7d869d408ded414f6d46d82f8a93b5857ac3ac1e915893139ca", - "sha256:549ae0cb2d34fc09d1675f9b01942499751d174381b6082279cf19cdb3c47cbe", - "sha256:70ab53918fd907a3ade01909b3ed783287ede362c80c75f41e79596d5ccacd32", - "sha256:72687b62a54d9d9e3fb85e7a37ea67f0e803aaa31be700e61d2f3742a5683917", - "sha256:78739f77c58048ec006e2b3eb2e0cd5a06d5f48c915e2fc7911a337354508110", - "sha256:7aa7e103610e5867d19a7d069e02e72eb2b3045b124d051cfd1538f1d8832d1b", - "sha256:87755e173fcf2ec45f584bb9d61aa7686bb665d861b81faa366d59808bbd3494", - "sha256:9b5d1b13d7c7bf5d7cf700e33c0b8ddb7baf030fcf502f76fc061ddd9405d16c", - "sha256:a771739902b1ae22a120dbbb6bd91b2cae6696c0e318b5007c5348519a4211c6", - "sha256:b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67", - "sha256:be596b44448aac14eb3614248c91586e2bc1728e020e82ef3197189aae556115", - "sha256:c05349890804d846eca32ce0623ab66c06f8800db881af7a876dc073ac1c2225", - "sha256:de4a045fbf388e120bb6ec66501458d3134f4729faed26ff95de52a754abddb1", - "sha256:dff595686178b0e75580c24d316aa45a8f4d56e2418063865c114eef651a982e", - "sha256:f6383c29e796203a0bba74a250615ad262c4279d398e89d895a69d3069498305" - ], - "markers": "python_version >= '3.7'", - "version": "==1.6.6" - }, - "decorator": { - "hashes": [ - "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", - "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" - ], - "markers": "python_version >= '3.5'", - "version": "==5.1.1" - }, - "defusedxml": { - "hashes": [ - "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", - "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.7.1" - }, - "executing": { - "hashes": [ - "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc", - "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107" - ], - "version": "==1.2.0" - }, - "fastjsonschema": { - "hashes": [ - "sha256:01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18", - "sha256:21f918e8d9a1a4ba9c22e09574ba72267a6762d47822db9add95f6454e51cc1c" - ], - "version": "==2.16.2" - }, - "fqdn": { - "hashes": [ - "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", - "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014" - ], - "version": "==1.5.1" - }, - "idna": { - "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" - ], - "markers": "python_version >= '3.5'", - "version": "==3.4" - }, - "ipykernel": { - "hashes": [ - "sha256:430d00549b6aaf49bd0f5393150691edb1815afa62d457ee6b1a66b25cb17874", - "sha256:6e9213484e4ce1fb14267ee435e18f23cc3a0634e635b9fb4ed4677b84e0fdf8" - ], - "markers": "python_version >= '3.8'", - "version": "==6.21.2" - }, - "ipython": { - "hashes": [ - "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e", - "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345" - ], - "markers": "python_version >= '3.8'", - "version": "==8.10.0" - }, - "ipython-genutils": { - "hashes": [ - "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", - "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" - ], - "version": "==0.2.0" - }, - "isoduration": { - "hashes": [ - "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", - "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042" - ], - "version": "==20.11.0" - }, - "jedi": { - "hashes": [ - "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e", - "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612" - ], - "markers": "python_version >= '3.6'", - "version": "==0.18.2" - }, - "jinja2": { - "hashes": [ - "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", - "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" - ], - "index": "pypi", - "version": "==3.1.2" - }, - "jsonpointer": { - "hashes": [ - "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9", - "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a" - ], - "version": "==2.3" - }, - "jsonschema": { - "hashes": [ - "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d", - "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6" - ], - "markers": "python_version >= '3.7'", - "version": "==4.17.3" - }, - "jupyter-client": { - "hashes": [ - "sha256:47ac9f586dbcff4d79387ec264faf0fdeb5f14845fa7345fd7d1e378f8096011", - "sha256:c53731eb590b68839b0ce04bf46ff8c4f03278f5d9fe5c3b0f268a57cc2bd97e" - ], - "markers": "python_version >= '3.8'", - "version": "==8.0.2" - }, - "jupyter-core": { - "hashes": [ - "sha256:1407cdb4c79ee467696c04b76633fc1884015fa109323365a6372c8e890cc83f", - "sha256:4bdc2928c37f6917130c667d8b8708f20aee539d8283c6be72aabd2a4b4c83b0" - ], - "markers": "python_version >= '3.8'", - "version": "==5.2.0" - }, - "jupyter-events": { - "hashes": [ - "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17", - "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3" - ], - "markers": "python_version >= '3.7'", - "version": "==0.6.3" - }, - "jupyter-server": { - "hashes": [ - "sha256:5afb8a0cdfee37d02d69bdf470ae9cbb1dee5d4788f9bc6cc8e54bd8c83fb096", - "sha256:854fb7d49f6b7f545d4f8354172b004dcda887ba0699def7112daf785ba3c9ce" - ], - "markers": "python_version >= '3.8'", - "version": "==2.2.1" - }, - "jupyter-server-terminals": { - "hashes": [ - "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d", - "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36" - ], - "markers": "python_version >= '3.8'", - "version": "==0.4.4" - }, - "jupyterlab-pygments": { - "hashes": [ - "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f", - "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d" - ], - "markers": "python_version >= '3.7'", - "version": "==0.2.2" - }, - "markupsafe": { - "hashes": [ - "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed", - "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc", - "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2", - "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460", - "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7", - "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0", - "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1", - "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa", - "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03", - "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323", - "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65", - "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013", - "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036", - "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f", - "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4", - "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419", - "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2", - "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619", - "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a", - "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a", - "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd", - "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7", - "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666", - "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65", - "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859", - "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625", - "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff", - "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156", - "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd", - "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba", - "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f", - "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1", - "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094", - "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a", - "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513", - "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed", - "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d", - "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3", - "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147", - "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c", - "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603", - "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601", - "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a", - "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1", - "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d", - "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3", - "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54", - "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2", - "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6", - "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58" - ], - "markers": "python_version >= '3.7'", - "version": "==2.1.2" - }, - "matplotlib-inline": { - "hashes": [ - "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", - "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" - ], - "markers": "python_version >= '3.5'", - "version": "==0.1.6" - }, - "mistune": { - "hashes": [ - "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34", - "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8" - ], - "version": "==2.0.5" - }, - "nbclassic": { - "hashes": [ - "sha256:32c235e1f22f4048f3b877d354c198202898797cf9c2085856827598cead001b", - "sha256:8e8ffce7582bb7a4baf11fa86a3d88b184e8e7df78eed4ead69f15aa4fc0e323" - ], - "markers": "python_version >= '3.7'", - "version": "==0.5.1" - }, - "nbclient": { - "hashes": [ - "sha256:884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547", - "sha256:d97ac6257de2794f5397609df754fcbca1a603e94e924eb9b99787c031ae2e7c" - ], - "markers": "python_full_version >= '3.7.0'", - "version": "==0.7.2" - }, - "nbconvert": { - "hashes": [ - "sha256:495638c5e06005f4a5ce828d8a81d28e34f95c20f4384d5d7a22254b443836e7", - "sha256:a42c3ac137c64f70cbe4d763111bf358641ea53b37a01a5c202ed86374af5234" - ], - "index": "pypi", - "version": "==7.2.9" - }, - "nbformat": { - "hashes": [ - "sha256:22a98a6516ca216002b0a34591af5bcb8072ca6c63910baffc901cfa07fefbf0", - "sha256:4b021fca24d3a747bf4e626694033d792d594705829e5e35b14ee3369f9f6477" - ], - "index": "pypi", - "version": "==5.7.3" - }, - "nest-asyncio": { - "hashes": [ - "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8", - "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290" - ], - "markers": "python_version >= '3.5'", - "version": "==1.5.6" - }, - "notebook": { - "hashes": [ - "sha256:c1897e5317e225fc78b45549a6ab4b668e4c996fd03a04e938fe5e7af2bfffd0", - "sha256:e04f9018ceb86e4fa841e92ea8fb214f8d23c1cedfde530cc96f92446924f0e4" - ], - "index": "pypi", - "version": "==6.5.2" - }, - "notebook-shim": { - "hashes": [ - "sha256:090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f", - "sha256:9c6c30f74c4fbea6fce55c1be58e7fd0409b1c681b075dcedceb005db5026949" - ], - "markers": "python_version >= '3.7'", - "version": "==0.2.2" - }, - "packaging": { - "hashes": [ - "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2", - "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97" - ], - "markers": "python_version >= '3.7'", - "version": "==23.0" - }, - "pandocfilters": { - "hashes": [ - "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38", - "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.5.0" - }, - "parso": { - "hashes": [ - "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", - "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" - ], - "markers": "python_version >= '3.6'", - "version": "==0.8.3" - }, - "pexpect": { - "hashes": [ - "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", - "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" - ], - "markers": "sys_platform != 'win32'", - "version": "==4.8.0" - }, - "pickleshare": { - "hashes": [ - "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", - "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" - ], - "version": "==0.7.5" - }, - "pip": { - "hashes": [ - "sha256:aee438284e82c8def684b0bcc50b1f6ed5e941af97fa940e83e2e8ef1a59da9b", - "sha256:b5f88adff801f5ef052bcdef3daa31b55eb67b0fccd6d0106c206fa248e0463c" - ], - "markers": "python_version >= '3.7'", - "version": "==23.0" - }, - "platformdirs": { - "hashes": [ - "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9", - "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567" - ], - "markers": "python_version >= '3.7'", - "version": "==3.0.0" - }, - "prometheus-client": { - "hashes": [ - "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab", - "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48" - ], - "markers": "python_version >= '3.6'", - "version": "==0.16.0" - }, - "prompt-toolkit": { - "hashes": [ - "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", - "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305" - ], - "markers": "python_full_version >= '3.6.2'", - "version": "==3.0.36" - }, - "psutil": { - "hashes": [ - "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff", - "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1", - "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62", - "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549", - "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08", - "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7", - "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e", - "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe", - "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24", - "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad", - "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94", - "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8", - "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7", - "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==5.9.4" - }, - "ptyprocess": { - "hashes": [ - "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", - "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" - ], - "markers": "os_name != 'nt'", - "version": "==0.7.0" - }, - "pure-eval": { - "hashes": [ - "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", - "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" - ], - "version": "==0.2.2" - }, - "py": { - "hashes": [ - "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", - "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" - ], - "index": "pypi", - "version": "==1.11.0" - }, - "pycparser": { - "hashes": [ - "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", - "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.21" - }, - "pygments": { - "hashes": [ - "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297", - "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717" - ], - "index": "pypi", - "version": "==2.14.0" - }, - "pyjwt": { - "hashes": [ - "sha256:69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd", - "sha256:d83c3d892a77bbb74d3e1a2cfa90afaadb60945205d1095d9221f04466f64c14" - ], - "markers": "python_version >= '3.7'", - "version": "==2.6.0" - }, - "pyrsistent": { - "hashes": [ - "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8", - "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440", - "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a", - "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c", - "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3", - "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393", - "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9", - "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da", - "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf", - "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64", - "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a", - "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3", - "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98", - "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2", - "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8", - "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf", - "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc", - "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7", - "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28", - "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2", - "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b", - "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a", - "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64", - "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19", - "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1", - "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9", - "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c" - ], - "markers": "python_version >= '3.7'", - "version": "==0.19.3" - }, - "python-dateutil": { - "hashes": [ - "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", - "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.8.2" - }, - "python-json-logger": { - "hashes": [ - "sha256:3853e0b73e6c1ba4b1f2543066b24950bf1c21ed104f297a7bff8c74532a6ab2", - "sha256:f389ccb0a8fd26f84c294dc627a999daf58f759b457ee022f698098f6547288d" - ], - "markers": "python_version >= '3.6'", - "version": "==2.0.5" - }, - "pyyaml": { - "hashes": [ - "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", - "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", - "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", - "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", - "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", - "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", - "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", - "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", - "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", - "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", - "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", - "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", - "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", - "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", - "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", - "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", - "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", - "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", - "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", - "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", - "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", - "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", - "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", - "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", - "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", - "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", - "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", - "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", - "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", - "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", - "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", - "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", - "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", - "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", - "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", - "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", - "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", - "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", - "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", - "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" - ], - "markers": "python_version >= '3.6'", - "version": "==6.0" - }, - "pyzmq": { - "hashes": [ - "sha256:00c94fd4c9dd3c95aace0c629a7fa713627a5c80c1819326b642adf6c4b8e2a2", - "sha256:01d53958c787cfea34091fcb8ef36003dbb7913b8e9f8f62a0715234ebc98b70", - "sha256:0282bba9aee6e0346aa27d6c69b5f7df72b5a964c91958fc9e0c62dcae5fdcdc", - "sha256:02f5cb60a7da1edd5591a15efa654ffe2303297a41e1b40c3c8942f8f11fc17c", - "sha256:0645b5a2d2a06fd8eb738018490c514907f7488bf9359c6ee9d92f62e844b76f", - "sha256:0a154ef810d44f9d28868be04641f837374a64e7449df98d9208e76c260c7ef1", - "sha256:0a90b2480a26aef7c13cff18703ba8d68e181facb40f78873df79e6d42c1facc", - "sha256:0e8d00228db627ddd1b418c7afd81820b38575f237128c9650365f2dd6ac3443", - "sha256:17e1cb97d573ea84d7cd97188b42ca6f611ab3ee600f6a75041294ede58e3d20", - "sha256:183e18742be3621acf8908903f689ec520aee3f08449bfd29f583010ca33022b", - "sha256:1f6116991568aac48b94d6d8aaed6157d407942ea385335a6ed313692777fb9d", - "sha256:20638121b0bdc80777ce0ec8c1f14f1ffec0697a1f88f0b564fa4a23078791c4", - "sha256:2754fa68da08a854f4816e05160137fa938a2347276471103d31e04bcee5365c", - "sha256:28bcb2e66224a7ac2843eb632e4109d6b161479e7a2baf24e37210461485b4f1", - "sha256:293a7c2128690f496057f1f1eb6074f8746058d13588389981089ec45d8fdc77", - "sha256:2a73af6504e0d2805e926abf136ebf536735a13c22f709be7113c2ec65b4bec3", - "sha256:2d05d904f03ddf1e0d83d97341354dfe52244a619b5a1440a5f47a5b3451e84e", - "sha256:2e7b87638ee30ab13230e37ce5331b3e730b1e0dda30120b9eeec3540ed292c8", - "sha256:3100dddcada66ec5940ed6391ebf9d003cc3ede3d320748b2737553019f58230", - "sha256:31e523d067ce44a04e876bed3ff9ea1ff8d1b6636d16e5fcace9d22f8c564369", - "sha256:3594c0ff604e685d7e907860b61d0e10e46c74a9ffca168f6e9e50ea934ee440", - "sha256:3670e8c5644768f214a3b598fe46378a4a6f096d5fb82a67dfd3440028460565", - "sha256:4046d03100aca266e70d54a35694cb35d6654cfbef633e848b3c4a8d64b9d187", - "sha256:4725412e27612f0d7d7c2f794d89807ad0227c2fc01dd6146b39ada49c748ef9", - "sha256:484c2c4ee02c1edc07039f42130bd16e804b1fe81c4f428e0042e03967f40c20", - "sha256:487305c2a011fdcf3db1f24e8814bb76d23bc4d2f46e145bc80316a59a9aa07d", - "sha256:4a1bc30f0c18444d51e9b0d0dd39e3a4e7c53ee74190bebef238cd58de577ea9", - "sha256:4c25c95416133942280faaf068d0fddfd642b927fb28aaf4ab201a738e597c1e", - "sha256:4cbb885f347eba7ab7681c450dee5b14aed9f153eec224ec0c3f299273d9241f", - "sha256:4d3d604fe0a67afd1aff906e54da557a5203368a99dcc50a70eef374f1d2abef", - "sha256:4e295f7928a31ae0f657e848c5045ba6d693fe8921205f408ca3804b1b236968", - "sha256:5049e75cc99db65754a3da5f079230fb8889230cf09462ec972d884d1704a3ed", - "sha256:5050f5c50b58a6e38ccaf9263a356f74ef1040f5ca4030225d1cb1a858c5b7b6", - "sha256:526f884a27e8bba62fe1f4e07c62be2cfe492b6d432a8fdc4210397f8cf15331", - "sha256:531866c491aee5a1e967c286cfa470dffac1e2a203b1afda52d62b58782651e9", - "sha256:5605621f2181f20b71f13f698944deb26a0a71af4aaf435b34dd90146092d530", - "sha256:58fc3ad5e1cfd2e6d24741fbb1e216b388115d31b0ca6670f894187f280b6ba6", - "sha256:60ecbfe7669d3808ffa8a7dd1487d6eb8a4015b07235e3b723d4b2a2d4de7203", - "sha256:610d2d112acd4e5501fac31010064a6c6efd716ceb968e443cae0059eb7b86de", - "sha256:6136bfb0e5a9cf8c60c6ac763eb21f82940a77e6758ea53516c8c7074f4ff948", - "sha256:62b9e80890c0d2408eb42d5d7e1fc62a5ce71be3288684788f74cf3e59ffd6e2", - "sha256:656281d496aaf9ca4fd4cea84e6d893e3361057c4707bd38618f7e811759103c", - "sha256:66509c48f7446b640eeae24b60c9c1461799a27b1b0754e438582e36b5af3315", - "sha256:6bf3842af37af43fa953e96074ebbb5315f6a297198f805d019d788a1021dbc8", - "sha256:731b208bc9412deeb553c9519dca47136b5a01ca66667cafd8733211941b17e4", - "sha256:75243e422e85a62f0ab7953dc315452a56b2c6a7e7d1a3c3109ac3cc57ed6b47", - "sha256:7877264aa851c19404b1bb9dbe6eed21ea0c13698be1eda3784aab3036d1c861", - "sha256:81f99fb1224d36eb91557afec8cdc2264e856f3464500b55749020ce4c848ef2", - "sha256:8539216173135e9e89f6b1cc392e74e6b935b91e8c76106cf50e7a02ab02efe5", - "sha256:85456f0d8f3268eecd63dede3b99d5bd8d3b306310c37d4c15141111d22baeaf", - "sha256:866eabf7c1315ef2e93e34230db7cbf672e0d7c626b37c11f7e870c8612c3dcc", - "sha256:926236ca003aec70574754f39703528947211a406f5c6c8b3e50eca04a9e87fc", - "sha256:930e6ad4f2eaac31a3d0c2130619d25db754b267487ebc186c6ad18af2a74018", - "sha256:94f0a7289d0f5c80807c37ebb404205e7deb737e8763eb176f4770839ee2a287", - "sha256:9a2d5e419bd39a1edb6cdd326d831f0120ddb9b1ff397e7d73541bf393294973", - "sha256:9ca6db34b26c4d3e9b0728841ec9aa39484eee272caa97972ec8c8e231b20c7e", - "sha256:9f72ea279b2941a5203e935a4588b9ba8a48aeb9a926d9dfa1986278bd362cb8", - "sha256:a0e7ef9ac807db50b4eb6f534c5dcc22f998f5dae920cc28873d2c1d080a4fc9", - "sha256:a1cd4a95f176cdc0ee0a82d49d5830f13ae6015d89decbf834c273bc33eeb3d3", - "sha256:a9c464cc508177c09a5a6122b67f978f20e2954a21362bf095a0da4647e3e908", - "sha256:ac97e7d647d5519bcef48dd8d3d331f72975afa5c4496c95f6e854686f45e2d9", - "sha256:af1fbfb7ad6ac0009ccee33c90a1d303431c7fb594335eb97760988727a37577", - "sha256:b055a1cddf8035966ad13aa51edae5dc8f1bba0b5d5e06f7a843d8b83dc9b66b", - "sha256:b6f75b4b8574f3a8a0d6b4b52606fc75b82cb4391471be48ab0b8677c82f9ed4", - "sha256:b90bb8dfbbd138558f1f284fecfe328f7653616ff9a972433a00711d9475d1a9", - "sha256:be05504af0619d1cffa500af1e0ede69fb683f301003851f5993b5247cc2c576", - "sha256:c21a5f4e54a807df5afdef52b6d24ec1580153a6bcf0607f70a6e1d9fa74c5c3", - "sha256:c48f257da280b3be6c94e05bd575eddb1373419dbb1a72c3ce64e88f29d1cd6d", - "sha256:cac602e02341eaaf4edfd3e29bd3fdef672e61d4e6dfe5c1d065172aee00acee", - "sha256:ccb3e1a863222afdbda42b7ca8ac8569959593d7abd44f5a709177d6fa27d266", - "sha256:e1081d7030a1229c8ff90120346fb7599b54f552e98fcea5170544e7c6725aab", - "sha256:e14df47c1265356715d3d66e90282a645ebc077b70b3806cf47efcb7d1d630cb", - "sha256:e4bba04ea779a3d7ef25a821bb63fd0939142c88e7813e5bd9c6265a20c523a2", - "sha256:e99629a976809fe102ef73e856cf4b2660acd82a412a51e80ba2215e523dfd0a", - "sha256:f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2", - "sha256:f3f96d452e9580cb961ece2e5a788e64abaecb1232a80e61deffb28e105ff84a", - "sha256:fc7c1421c5b1c916acf3128bf3cc7ea7f5018b58c69a6866d70c14190e600ce9" - ], - "markers": "python_version >= '3.6'", - "version": "==25.0.0" - }, - "rfc3339-validator": { - "hashes": [ - "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", - "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.1.4" - }, - "rfc3986-validator": { - "hashes": [ - "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", - "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.1.1" - }, - "rsconnect-python": { - "hashes": [ - "sha256:b583a276eeaa418e8f850c50d925e80ab774d2e8025eea570343031ffd708298" - ], - "index": "pypi", - "version": "==1.14.1" - }, - "semver": { - "hashes": [ - "sha256:ced8b23dceb22134307c1b8abfa523da14198793d9787ac838e70e29e77458d4", - "sha256:fa0fe2722ee1c3f57eac478820c3a5ae2f624af8264cbdf9000c980ff7f75e3f" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.13.0" - }, - "send2trash": { - "hashes": [ - "sha256:56215329f48b4b147d93719fe901d7de84cae0048cad6e6c31e6d593d9f2dcbb", - "sha256:9c9f667f7211232dda8add62116e835304c8015210cbd8612847aaf19875a487" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==1.8.1b0" - }, - "six": { - "hashes": [ - "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" - ], - "index": "pypi", - "version": "==1.16.0" - }, - "sniffio": { - "hashes": [ - "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101", - "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384" - ], - "markers": "python_version >= '3.7'", - "version": "==1.3.0" - }, - "soupsieve": { - "hashes": [ - "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", - "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" - ], - "markers": "python_version >= '3.6'", - "version": "==2.3.2.post1" - }, - "stack-data": { - "hashes": [ - "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815", - "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8" - ], - "version": "==0.6.2" - }, - "terminado": { - "hashes": [ - "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333", - "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae" - ], - "markers": "python_version >= '3.7'", - "version": "==0.17.1" - }, - "tinycss2": { - "hashes": [ - "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847", - "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627" - ], - "markers": "python_version >= '3.7'", - "version": "==1.2.1" - }, - "tornado": { - "hashes": [ - "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", - "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", - "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", - "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", - "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", - "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", - "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", - "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", - "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", - "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", - "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" - ], - "markers": "python_version >= '3.7'", - "version": "==6.2" - }, - "traitlets": { - "hashes": [ - "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8", - "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9" - ], - "markers": "python_version >= '3.7'", - "version": "==5.9.0" - }, - "uri-template": { - "hashes": [ - "sha256:934e4d09d108b70eb8a24410af8615294d09d279ce0e7cbcdaef1bd21f932b06", - "sha256:f1699c77b73b925cf4937eae31ab282a86dc885c333f2e942513f08f691fc7db" - ], - "version": "==1.2.0" - }, - "wcwidth": { - "hashes": [ - "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e", - "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0" - ], - "version": "==0.2.6" - }, - "webcolors": { - "hashes": [ - "sha256:16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9", - "sha256:d98743d81d498a2d3eaf165196e65481f0d2ea85281463d856b1e51b09f62dce" - ], - "version": "==1.12" - }, - "webencodings": { - "hashes": [ - "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", - "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" - ], - "version": "==0.5.1" - }, - "websocket-client": { - "hashes": [ - "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40", - "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e" - ], - "markers": "python_version >= '3.7'", - "version": "==1.5.1" - } - }, - "develop": { - "appnope": { - "hashes": [ - "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24", - "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e" - ], - "markers": "platform_system == 'Darwin'", - "version": "==0.1.3" - }, - "asttokens": { - "hashes": [ - "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3", - "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c" - ], - "version": "==2.2.1" - }, - "attrs": { - "hashes": [ - "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836", - "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99" - ], - "markers": "python_version >= '3.6'", - "version": "==22.2.0" - }, - "backcall": { - "hashes": [ - "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", - "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255" - ], - "version": "==0.2.0" - }, - "black": { - "hashes": [ - "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd", - "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555", - "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481", - "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468", - "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9", - "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a", - "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958", - "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580", - "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26", - "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32", - "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8", - "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753", - "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b", - "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074", - "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651", - "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24", - "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6", - "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad", - "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac", - "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221", - "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06", - "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27", - "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648", - "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739", - "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104" - ], - "index": "pypi", - "markers": "python_version >= '3.6'", - "version": "==23.1.0" - }, - "bleach": { - "hashes": [ - "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414", - "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4" - ], - "index": "pypi", - "version": "==6.0.0" - }, - "certifi": { - "hashes": [ - "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", - "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" - ], - "markers": "python_version >= '3.6'", - "version": "==2022.12.7" - }, - "charset-normalizer": { - "hashes": [ - "sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b", - "sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42", - "sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d", - "sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b", - "sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a", - "sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59", - "sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154", - "sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1", - "sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c", - "sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a", - "sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d", - "sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6", - "sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b", - "sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b", - "sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783", - "sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5", - "sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918", - "sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555", - "sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639", - "sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786", - "sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e", - "sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed", - "sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820", - "sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8", - "sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3", - "sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541", - "sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14", - "sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be", - "sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e", - "sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76", - "sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b", - "sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c", - "sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b", - "sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3", - "sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc", - "sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6", - "sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59", - "sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4", - "sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d", - "sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d", - "sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3", - "sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a", - "sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea", - "sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6", - "sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e", - "sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603", - "sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24", - "sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a", - "sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58", - "sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678", - "sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a", - "sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c", - "sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6", - "sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18", - "sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174", - "sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317", - "sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f", - "sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc", - "sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837", - "sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41", - "sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c", - "sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579", - "sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753", - "sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8", - "sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291", - "sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087", - "sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866", - "sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3", - "sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d", - "sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1", - "sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca", - "sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e", - "sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db", - "sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72", - "sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d", - "sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc", - "sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539", - "sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d", - "sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af", - "sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b", - "sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602", - "sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f", - "sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478", - "sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c", - "sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e", - "sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479", - "sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7", - "sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8" - ], - "markers": "python_version >= '3'", - "version": "==3.0.1" - }, - "click": { - "hashes": [ - "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", - "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" - ], - "markers": "python_version >= '3.7'", - "version": "==8.1.3" - }, - "coverage": { - "hashes": [ - "sha256:04481245ef966fbd24ae9b9e537ce899ae584d521dfbe78f89cad003c38ca2ab", - "sha256:0c45948f613d5d18c9ec5eaa203ce06a653334cf1bd47c783a12d0dd4fd9c851", - "sha256:10188fe543560ec4874f974b5305cd1a8bdcfa885ee00ea3a03733464c4ca265", - "sha256:218fe982371ac7387304153ecd51205f14e9d731b34fb0568181abaf7b443ba0", - "sha256:29571503c37f2ef2138a306d23e7270687c0efb9cab4bd8038d609b5c2393a3a", - "sha256:2a60d6513781e87047c3e630b33b4d1e89f39836dac6e069ffee28c4786715f5", - "sha256:2bf1d5f2084c3932b56b962a683074a3692bce7cabd3aa023c987a2a8e7612f6", - "sha256:3164d31078fa9efe406e198aecd2a02d32a62fecbdef74f76dad6a46c7e48311", - "sha256:32df215215f3af2c1617a55dbdfb403b772d463d54d219985ac7cd3bf124cada", - "sha256:33d1ae9d4079e05ac4cc1ef9e20c648f5afabf1a92adfaf2ccf509c50b85717f", - "sha256:33ff26d0f6cc3ca8de13d14fde1ff8efe1456b53e3f0273e63cc8b3c84a063d8", - "sha256:38da2db80cc505a611938d8624801158e409928b136c8916cd2e203970dde4dc", - "sha256:3b155caf3760408d1cb903b21e6a97ad4e2bdad43cbc265e3ce0afb8e0057e73", - "sha256:3b946bbcd5a8231383450b195cfb58cb01cbe7f8949f5758566b881df4b33baf", - "sha256:3baf5f126f30781b5e93dbefcc8271cb2491647f8283f20ac54d12161dff080e", - "sha256:4b14d5e09c656de5038a3f9bfe5228f53439282abcab87317c9f7f1acb280352", - "sha256:51b236e764840a6df0661b67e50697aaa0e7d4124ca95e5058fa3d7cbc240b7c", - "sha256:63ffd21aa133ff48c4dff7adcc46b7ec8b565491bfc371212122dd999812ea1c", - "sha256:6a43c7823cd7427b4ed763aa7fb63901ca8288591323b58c9cd6ec31ad910f3c", - "sha256:755e89e32376c850f826c425ece2c35a4fc266c081490eb0a841e7c1cb0d3bda", - "sha256:7a726d742816cb3a8973c8c9a97539c734b3a309345236cd533c4883dda05b8d", - "sha256:7c7c0d0827e853315c9bbd43c1162c006dd808dbbe297db7ae66cd17b07830f0", - "sha256:7ed681b0f8e8bcbbffa58ba26fcf5dbc8f79e7997595bf071ed5430d8c08d6f3", - "sha256:7ee5c9bb51695f80878faaa5598040dd6c9e172ddcf490382e8aedb8ec3fec8d", - "sha256:8361be1c2c073919500b6601220a6f2f98ea0b6d2fec5014c1d9cfa23dd07038", - "sha256:8ae125d1134bf236acba8b83e74c603d1b30e207266121e76484562bc816344c", - "sha256:9817733f0d3ea91bea80de0f79ef971ae94f81ca52f9b66500c6a2fea8e4b4f8", - "sha256:98b85dd86514d889a2e3dd22ab3c18c9d0019e696478391d86708b805f4ea0fa", - "sha256:9ccb092c9ede70b2517a57382a601619d20981f56f440eae7e4d7eaafd1d1d09", - "sha256:9d58885215094ab4a86a6aef044e42994a2bd76a446dc59b352622655ba6621b", - "sha256:b643cb30821e7570c0aaf54feaf0bfb630b79059f85741843e9dc23f33aaca2c", - "sha256:bc7c85a150501286f8b56bd8ed3aa4093f4b88fb68c0843d21ff9656f0009d6a", - "sha256:beeb129cacea34490ffd4d6153af70509aa3cda20fdda2ea1a2be870dfec8d52", - "sha256:c31b75ae466c053a98bf26843563b3b3517b8f37da4d47b1c582fdc703112bc3", - "sha256:c4e4881fa9e9667afcc742f0c244d9364d197490fbc91d12ac3b5de0bf2df146", - "sha256:c5b15ed7644ae4bee0ecf74fee95808dcc34ba6ace87e8dfbf5cb0dc20eab45a", - "sha256:d12d076582507ea460ea2a89a8c85cb558f83406c8a41dd641d7be9a32e1274f", - "sha256:d248cd4a92065a4d4543b8331660121b31c4148dd00a691bfb7a5cdc7483cfa4", - "sha256:d47dd659a4ee952e90dc56c97d78132573dc5c7b09d61b416a9deef4ebe01a0c", - "sha256:d4a5a5879a939cb84959d86869132b00176197ca561c664fc21478c1eee60d75", - "sha256:da9b41d4539eefd408c46725fb76ecba3a50a3367cafb7dea5f250d0653c1040", - "sha256:db61a79c07331e88b9a9974815c075fbd812bc9dbc4dc44b366b5368a2936063", - "sha256:ddb726cb861c3117a553f940372a495fe1078249ff5f8a5478c0576c7be12050", - "sha256:ded59300d6330be27bc6cf0b74b89ada58069ced87c48eaf9344e5e84b0072f7", - "sha256:e2617759031dae1bf183c16cef8fcfb3de7617f394c813fa5e8e46e9b82d4222", - "sha256:e5cdbb5cafcedea04924568d990e20ce7f1945a1dd54b560f879ee2d57226912", - "sha256:ec8e767f13be637d056f7e07e61d089e555f719b387a7070154ad80a0ff31801", - "sha256:ef382417db92ba23dfb5864a3fc9be27ea4894e86620d342a116b243ade5d35d", - "sha256:f2cba5c6db29ce991029b5e4ac51eb36774458f0a3b8d3137241b32d1bb91f06", - "sha256:f5b4198d85a3755d27e64c52f8c95d6333119e49fd001ae5798dac872c95e0f8", - "sha256:ffeeb38ee4a80a30a6877c5c4c359e5498eec095878f1581453202bfacc8fbc2" - ], - "index": "pypi", - "version": "==7.1.0" - }, - "decorator": { - "hashes": [ - "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", - "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" - ], - "markers": "python_version >= '3.5'", - "version": "==5.1.1" - }, - "docutils": { - "hashes": [ - "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6", - "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc" - ], - "markers": "python_version >= '3.7'", - "version": "==0.19" - }, - "exceptiongroup": { - "hashes": [ - "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e", - "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23" - ], - "markers": "python_version < '3.11'", - "version": "==1.1.0" - }, - "executing": { - "hashes": [ - "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc", - "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107" - ], - "version": "==1.2.0" - }, - "flake8": { - "hashes": [ - "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7", - "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181" - ], - "index": "pypi", - "version": "==6.0.0" - }, - "idna": { - "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" - ], - "markers": "python_version >= '3.5'", - "version": "==3.4" - }, - "importlib-metadata": { - "hashes": [ - "sha256:7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad", - "sha256:e354bedeb60efa6affdcc8ae121b73544a7aa74156d047311948f6d711cd378d" - ], - "index": "pypi", - "version": "==6.0.0" - }, - "iniconfig": { - "hashes": [ - "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", - "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" - ], - "markers": "python_version >= '3.7'", - "version": "==2.0.0" - }, - "ipython": { - "hashes": [ - "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e", - "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345" - ], - "markers": "python_version >= '3.8'", - "version": "==8.10.0" - }, - "jaraco.classes": { - "hashes": [ - "sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158", - "sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a" - ], - "markers": "python_version >= '3.7'", - "version": "==3.2.3" - }, - "jedi": { - "hashes": [ - "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e", - "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612" - ], - "markers": "python_version >= '3.6'", - "version": "==0.18.2" - }, - "keyring": { - "hashes": [ - "sha256:771ed2a91909389ed6148631de678f82ddc73737d85a927f382a8a1b157898cd", - "sha256:ba2e15a9b35e21908d0aaf4e0a47acc52d6ae33444df0da2b49d41a46ef6d678" - ], - "markers": "python_version >= '3.7'", - "version": "==23.13.1" - }, - "markdown-it-py": { - "hashes": [ - "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27", - "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da" - ], - "markers": "python_version >= '3.7'", - "version": "==2.1.0" - }, - "matplotlib-inline": { - "hashes": [ - "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", - "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" - ], - "markers": "python_version >= '3.5'", - "version": "==0.1.6" - }, - "mccabe": { - "hashes": [ - "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", - "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" - ], - "markers": "python_version >= '3.6'", - "version": "==0.7.0" - }, - "mdurl": { - "hashes": [ - "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", - "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" - ], - "markers": "python_version >= '3.7'", - "version": "==0.1.2" - }, - "more-itertools": { - "hashes": [ - "sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41", - "sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab" - ], - "markers": "python_version >= '3.7'", - "version": "==9.0.0" - }, - "mypy-extensions": { - "hashes": [ - "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", - "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" - ], - "markers": "python_version >= '3.5'", - "version": "==1.0.0" - }, - "packaging": { - "hashes": [ - "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2", - "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97" - ], - "markers": "python_version >= '3.7'", - "version": "==23.0" - }, - "parso": { - "hashes": [ - "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", - "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" - ], - "markers": "python_version >= '3.6'", - "version": "==0.8.3" - }, - "pathspec": { - "hashes": [ - "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229", - "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc" - ], - "markers": "python_version >= '3.7'", - "version": "==0.11.0" - }, - "pexpect": { - "hashes": [ - "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", - "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" - ], - "markers": "sys_platform != 'win32'", - "version": "==4.8.0" - }, - "pickleshare": { - "hashes": [ - "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", - "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" - ], - "version": "==0.7.5" - }, - "pkginfo": { - "hashes": [ - "sha256:4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546", - "sha256:8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046" - ], - "markers": "python_version >= '3.6'", - "version": "==1.9.6" - }, - "platformdirs": { - "hashes": [ - "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9", - "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567" - ], - "markers": "python_version >= '3.7'", - "version": "==3.0.0" - }, - "pluggy": { - "hashes": [ - "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", - "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" - ], - "markers": "python_version >= '3.6'", - "version": "==1.0.0" - }, - "prompt-toolkit": { - "hashes": [ - "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", - "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305" - ], - "markers": "python_full_version >= '3.6.2'", - "version": "==3.0.36" - }, - "ptyprocess": { - "hashes": [ - "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", - "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" - ], - "markers": "os_name != 'nt'", - "version": "==0.7.0" - }, - "pure-eval": { - "hashes": [ - "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", - "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" - ], - "version": "==0.2.2" - }, - "pycodestyle": { - "hashes": [ - "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053", - "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610" - ], - "markers": "python_version >= '3.6'", - "version": "==2.10.0" - }, - "pyflakes": { - "hashes": [ - "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf", - "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd" - ], - "markers": "python_version >= '3.6'", - "version": "==3.0.1" - }, - "pygments": { - "hashes": [ - "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297", - "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717" - ], - "index": "pypi", - "version": "==2.14.0" - }, - "pytest": { - "hashes": [ - "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5", - "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42" - ], - "index": "pypi", - "version": "==7.2.1" - }, - "pytest-cov": { - "hashes": [ - "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b", - "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470" - ], - "index": "pypi", - "version": "==4.0.0" - }, - "readme-renderer": { - "hashes": [ - "sha256:cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273", - "sha256:f67a16caedfa71eef48a31b39708637a6f4664c4394801a7b0d6432d13907343" - ], - "markers": "python_version >= '3.7'", - "version": "==37.3" - }, - "requests": { - "hashes": [ - "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa", - "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" - ], - "markers": "python_version >= '3.7' and python_version < '4'", - "version": "==2.28.2" - }, - "requests-toolbelt": { - "hashes": [ - "sha256:18565aa58116d9951ac39baa288d3adb5b3ff975c4f25eee78555d89e8f247f7", - "sha256:62e09f7ff5ccbda92772a29f394a49c3ad6cb181d568b1337626b2abb628a63d" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==0.10.1" - }, - "rfc3986": { - "hashes": [ - "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", - "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c" - ], - "markers": "python_version >= '3.7'", - "version": "==2.0.0" - }, - "rich": { - "hashes": [ - "sha256:125d96d20c92b946b983d0d392b84ff945461e5a06d3867e9f9e575f8697b67f", - "sha256:8aa57747f3fc3e977684f0176a88e789be314a99f99b43b75d1e9cb5dc6db9e9" - ], - "markers": "python_full_version >= '3.7.0'", - "version": "==13.3.1" - }, - "setuptools": { - "hashes": [ - "sha256:16ccf598aab3b506593c17378473978908a2734d7336755a8769b480906bec1c", - "sha256:b440ee5f7e607bb8c9de15259dba2583dd41a38879a7abc1d43a71c59524da48" - ], - "markers": "python_version >= '3.7'", - "version": "==67.2.0" - }, - "setuptools-scm": { - "hashes": [ - "sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27", - "sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e" - ], - "index": "pypi", - "version": "==7.1.0" - }, - "six": { - "hashes": [ - "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" - ], - "index": "pypi", - "version": "==1.16.0" - }, - "stack-data": { - "hashes": [ - "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815", - "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8" - ], - "version": "==0.6.2" - }, - "toml": { - "hashes": [ - "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", - "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" - ], - "index": "pypi", - "version": "==0.10.2" - }, - "tomli": { - "hashes": [ - "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", - "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" - ], - "markers": "python_version < '3.11'", - "version": "==2.0.1" - }, - "traitlets": { - "hashes": [ - "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8", - "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9" - ], - "markers": "python_version >= '3.7'", - "version": "==5.9.0" - }, - "twine": { - "hashes": [ - "sha256:929bc3c280033347a00f847236564d1c52a3e61b1ac2516c97c48f3ceab756d8", - "sha256:9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8" - ], - "index": "pypi", - "version": "==4.0.2" - }, - "typing-extensions": { - "hashes": [ - "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", - "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" - ], - "markers": "python_version >= '3.7'", - "version": "==4.4.0" - }, - "urllib3": { - "hashes": [ - "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72", - "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.14" - }, - "wcwidth": { - "hashes": [ - "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e", - "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0" - ], - "version": "==0.2.6" - }, - "webencodings": { - "hashes": [ - "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", - "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" - ], - "version": "==0.5.1" - }, - "wheel": { - "hashes": [ - "sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac", - "sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8" - ], - "index": "pypi", - "version": "==0.38.4" - }, - "zipp": { - "hashes": [ - "sha256:23f70e964bc11a34cef175bc90ba2914e1e4545ea1e3e2f67c079671883f9cb6", - "sha256:e8b2a36ea17df80ffe9e2c4fda3f693c3dad6df1697d3cd3af232db680950b0b" - ], - "markers": "python_version >= '3.7'", - "version": "==3.13.0" - } - } -} diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 00000000..17d8fe78 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,15 @@ +-r requirements.txt +black==22.3.0 +click>=7.0.0 +coverage +flake8 +importlib-metadata +ipython +pytest +pytest-cov +setuptools_scm +toml +twine +wheel +# https://github.com/rstudio/rsconnect-jupyter/issues/316 +traitlets>=5.1.1 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..d8c9291f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,10 @@ +nbconvert>=5.0 +nbformat +notebook>=6.1.5, <7.0.0 +six +py>=1.10.0 +Pygments>=2.7.4 +jinja2>=2.11.3 +bleach>=3.3.0 +cryptography>=3.2 +git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila#egg=rsconnect-python diff --git a/setup.cfg b/setup.cfg index 48d2f000..92a8f2af 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,7 +16,7 @@ project_urls = [options] install_requires = - rsconnect-python>=1.7.1 + rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila#egg=rsconnect-python notebook>=6.1.5,<7.0.0 nbformat nbconvert>=5.6.1 From f4d0e4f9ecb2080c4cc2340b68ad75d91a0055a4 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 14 Feb 2023 10:35:57 -0500 Subject: [PATCH 18/28] fix notebook path in make run --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 8c23392a..070fb4d8 100644 --- a/Makefile +++ b/Makefile @@ -69,7 +69,7 @@ run: install jupyter notebook \ -y \ --log-level=$(JUPYTER_LOG_LEVEL) \ - --notebook-dir=$(NOTEBOOKS_DIR) \ + --notebook-dir=./notebooks3 \ --ip='0.0.0.0' \ --port=9999 \ --no-browser \ From 1bac0bf7c50eb50e9bf69de352c16d00acc5981a Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 14 Feb 2023 10:51:50 -0500 Subject: [PATCH 19/28] uninstall old plugin before installing --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 070fb4d8..b8d2df0f 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,7 @@ run: install .PHONY: install install: version-frontend + jupyter nbextension uninstall rsconnect_jupyter || true jupyter nbextension install --symlink --user --py rsconnect_jupyter jupyter nbextension enable --py rsconnect_jupyter jupyter serverextension enable --py rsconnect_jupyter From ffe77c890843f2a6c74f7b090250a49ba9872e22 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 14 Feb 2023 11:34:45 -0500 Subject: [PATCH 20/28] fix notebook dir --- selenium/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selenium/Makefile b/selenium/Makefile index fb38e73b..91ad8a1e 100644 --- a/selenium/Makefile +++ b/selenium/Makefile @@ -37,7 +37,7 @@ TMP_PIPE=tmp.pipe TRE_IMAGE?=rstudio/checkrs-tew:0.4.0 NOTEBOOKS_DIR_MOUNT := /notebooks -NOTEBOOKS_DIR := $(CURDIR)/../notebooks$(PY_VERSION) +NOTEBOOKS_DIR := $(CURDIR)/../notebooks3 # Allocate a tty and keep stdin open when running locally # Jenkins nodes don't have input tty, so we set this to "" From 7d00034f42721e3225ffbab7faf32d96f0a1e655 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Wed, 15 Feb 2023 14:33:41 -0500 Subject: [PATCH 21/28] add Voila to the docs --- docs/docs/images/rsconnect-jupyter-usage.png | Bin 81634 -> 111476 bytes docs/docs/usage.md | 23 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/docs/images/rsconnect-jupyter-usage.png b/docs/docs/images/rsconnect-jupyter-usage.png index 1f583547e706fb41380b2000bc1e0bf6b428b4bb..20ad1c5d501ae767836151506237f90f1789c52b 100644 GIT binary patch literal 111476 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

xF$Mqsour7tg5Qm-k1nB! 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 Y_n2F~Nh2+eJK&G3qyn@;+`#|;0J7O&v;Y7A literal 81634 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�mT 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 V13YPlVpiq92Pk58JpYgfoIz$g{ zHk$lBNbY(?l%G{G-Pxe2g?n9u?x@r0&Ovr0rWLkDn$rI=XcdKgtea?Kvk9`kBG$c( z;ZQwNc>Q=W2T40ob5^{Lvs35@Zm`qE_sR2Kl(qLiJir1Uhu{1Poo7=k=VM7Ytyie5 z<23^(->Qi5CjlQBIXusH@njECHCO!+P1((SDXLZGNk5jd36=0@=fz(5d_H|aHO!kj z7ZW-7UQEmMsO({0r>?z3*I;%xFP9!jrPa1Yj>Vs}%-W;+~gi{Cd&y5-ZYwkuhN*AO z!sw@{`!D+j!=PIj&XIkgdnL+QIJCDlqcDW#CQaYoU0m+wiqX0DMyv4~6A4DQXNzJ; z#_@c3L#zWzo5Q@#gofz`H)8=cDc&^!d>(x@mlmW{vpsnHPWk+X&rTa&N2x~SXvWK+nZS`3{CDiE{Rz<%*~i8Fks#bsK#?W!wy*- zJI^#o{8O*dYekh{eylth)HQA)F;wP?viXL&9azqC6??X7=yJ)iMAFmJCk#-UVq zJh}4dDd=OARb&5VgSe8($c*!b<0U#2b$2k|dtTsOjp0_PY!FfBK6gCVbSY?iI?!{=HUzerLt4mP|N z$>*YZg~v_c1L zi*xxl6%Ex5QpJTGCKVjfM6J!OxK>XmuU&Xjy__ST2YG<6Q((4LA+T8ze)wJv5Fbln zxG(W9vOFScH|rkJ8Gv}BWaj2b6&rXKN`7Oz9-&AyQSsIgUfLxM9wAy1sJ^o@&?fp_k57XJ z*=fqU9wUc}JM5lxMSG~!*qI=V;c+MF&&VSa4`C1-8Mt;3IuWZt52ti<9v(@Xev`@# z7Mn@+)w#5E2m&xpoS#VsHe|lT;+1o#`1+Q!*=c@(!9A5xZ5li3883y!7n_bo?Y@FU z?cS#D<+W1^iLpt*C}Oy7O{Pg->?RbvO&h^sP02JD$Pxi#j%Q?sXF}-=D91SbLk&vp z`#Qd1GAv40c7sLONbKz(gIJA z0cIB69%G~o=a%L9#;8=tkUv>NmJW)k!P*yEU&qpbTP0`DkA$iN2&Z)~v`CEndP8_> zYcrV)_0n=;rIvxT$L_?VvtJJ?kHu&X-Ob0`?2NJA6y^?2a(B&rYZdrq9{vmnhQ=Be zFiALWKNWsrMt)USEYFLk9%uBD^9|Vr5MOj%odvO{wHqZ)z6t47Xfo^DR-qY zdI^=qLfa7|@L=DUsqr&%*=bt(|Mq6Yb90RLwgcw= z4^A9k`N3-XqVe{3h6b8QdCh7CdUm*NEBjKbx#c(KG48npY3;$aF|GjW^}yZ!SKhj- SH-4vijvqU9wD9L&qyGl5$(AMn diff --git a/docs/docs/usage.md b/docs/docs/usage.md index 69edaa75..b0bc64c4 100644 --- a/docs/docs/usage.md +++ b/docs/docs/usage.md @@ -39,13 +39,18 @@ You have multiple options in this case, depending on your needs: ## Publishing options -There are two different publication modes: +There are three different publication modes: -- If you select **Publish document with source code**, the notebook file and a list of the Python -packages installed in your environment will be sent to Posit Connect. This enables Posit +- If you select **Publish document with source code**, the notebook file and a list of the Python +packages installed in your environment will be sent to Posit Connect. This enables Posit Connect to recreate the environment and re-run the notebook at a later time. -- Selecting **Publish finished document only** will -publish an HTML snapshot of the notebook to Posit Connect. HTML snapshots are static and +- If you select **Publish interactive Voila document with source code**, your notebook will +be published using the [Voila](https://voila.readthedocs.io/en/stable/) package. When +visitors view your published notebook, Connect will present it as an interactive +application. Voila creates a Jupyter kernel for each visitor so they can interact +with any `ipywidgets` that you have included in your notebook. +- Selecting **Publish finished document only** will +publish an HTML snapshot of the notebook to Posit Connect. HTML snapshots are static and cannot be scheduled or re-run on the Posit Connect server. publish dialog @@ -74,7 +79,7 @@ Once enabled, tag each cell where you would like to hide the input code. The tag ### Additional Files -If your notebook needs some external file to render, add the file using the +If your notebook needs some external file to render, add the file using the **Select Files...** button. You can select any file within the notebook folder. However, these files may not be made available to users after render. @@ -117,7 +122,7 @@ informing you of this fact. If you need to regenerate the files, delete them in Dialog titled -For more information on git publishing, see the +For more information on git publishing, see the [Posit Connect User Guide](https://docs.rstudio.com/connect/user/git-backed#git-backed-publishing). ## Handling conflicts @@ -129,13 +134,13 @@ may choose to overwrite the existing content or create new content. - Choosing **New location** creates a new document in Posit Connect. - You can choose either publication mode: - - an HTML snapshot *or* + - an HTML snapshot *or* - a document with source code Updating an existing document will not change its publication mode. Upon successful publishing of the document, a notification will be -shown in the toolbar. +shown in the toolbar. Clicking the notification will open the published document in the Posit Connect server you selected in the previous From 204d9bd09914c49b30a84ad44d6d7e3bb5489c79 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 27 Feb 2023 09:13:17 -0500 Subject: [PATCH 22/28] deploy in single file mode --- rsconnect_jupyter/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rsconnect_jupyter/__init__.py b/rsconnect_jupyter/__init__.py index 0165b9cc..0fd0112b 100644 --- a/rsconnect_jupyter/__init__.py +++ b/rsconnect_jupyter/__init__.py @@ -202,8 +202,8 @@ def post(self, action): try: bundle = make_voila_bundle( - dirname(os_path), - basename(os_path), + os_path, + None, extra_files, [], # excludes False, # force_generate From dedc8f9749360383a13023ffac222e3c31cdcea0 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Mon, 27 Feb 2023 12:31:29 -0500 Subject: [PATCH 23/28] disable code cell hiding in Voila mode --- rsconnect_jupyter/static/connect.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rsconnect_jupyter/static/connect.js b/rsconnect_jupyter/static/connect.js index 6238e01a..4a726d77 100644 --- a/rsconnect_jupyter/static/connect.js +++ b/rsconnect_jupyter/static/connect.js @@ -1033,6 +1033,11 @@ define([ $subdirsBox.prop('checked', false); } $subdirsBox.parent().toggleClass('rsc-text-light', !canIncludeSubdirs); + + // Disable hide code cells options in Voila mode, since Voila always hides them. + var isVoila = (appMode === 'jupyter-voila'); + $('#hide_all_input').prop('disabled', isVoila); + $('#hide_tagged_input').prop('disabled', isVoila); } var publishModal = Dialog.modal({ From 5ded8d4e7a73dec79fdf624cd87e6f609201ccdb Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 28 Feb 2023 08:09:23 -0500 Subject: [PATCH 24/28] lint --- rsconnect_jupyter/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rsconnect_jupyter/__init__.py b/rsconnect_jupyter/__init__.py index 0fd0112b..86eb7df7 100644 --- a/rsconnect_jupyter/__init__.py +++ b/rsconnect_jupyter/__init__.py @@ -4,7 +4,7 @@ import sys from six.moves.urllib.parse import unquote_plus -from os.path import basename, dirname +from os.path import dirname from notebook.base.handlers import APIHandler from notebook.utils import url_path_join From 3d7402b14cbca44c62e6d66b628882f3f55812f1 Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Mar 2023 11:28:12 -0500 Subject: [PATCH 25/28] rsconnect-python from master branch --- requirements.txt | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index d8c9291f..aa3c5418 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ Pygments>=2.7.4 jinja2>=2.11.3 bleach>=3.3.0 cryptography>=3.2 -git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila#egg=rsconnect-python +git+https://github.com/rstudio/rsconnect-python.git@master#egg=rsconnect-python diff --git a/setup.cfg b/setup.cfg index 92a8f2af..a0da8584 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,7 +16,7 @@ project_urls = [options] install_requires = - rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@bcwu-voila#egg=rsconnect-python + rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@master#egg=rsconnect-python notebook>=6.1.5,<7.0.0 nbformat nbconvert>=5.6.1 From 3dc1047f4f843f2743da6505a571e7a86aebac7e Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Mar 2023 15:30:27 -0500 Subject: [PATCH 26/28] update to rsconnect-python 1.15.0b1 --- requirements.txt | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index aa3c5418..987c251a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ Pygments>=2.7.4 jinja2>=2.11.3 bleach>=3.3.0 cryptography>=3.2 -git+https://github.com/rstudio/rsconnect-python.git@master#egg=rsconnect-python +rsconnect-python>=1.15.0b1 diff --git a/setup.cfg b/setup.cfg index a0da8584..64257545 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,7 +16,7 @@ project_urls = [options] install_requires = - rsconnect-python @ git+https://github.com/rstudio/rsconnect-python.git@master#egg=rsconnect-python + rsconnect-python>=1.15.0b1 notebook>=6.1.5,<7.0.0 nbformat nbconvert>=5.6.1 From 6706207ed2355cce48d931af89f5df3e52ca43fd Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Mar 2023 15:39:35 -0500 Subject: [PATCH 27/28] add asyncmock --- requirements-dev.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements-dev.txt b/requirements-dev.txt index 17d8fe78..4a689397 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,5 @@ -r requirements.txt +asyncmock black==22.3.0 click>=7.0.0 coverage From 73e517d0f31acf6dc891b27f04dead726ec904ac Mon Sep 17 00:00:00 2001 From: Michael Marchetti Date: Tue, 7 Mar 2023 15:48:20 -0500 Subject: [PATCH 28/28] import from asyncmock --- tests/test_managers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_managers.py b/tests/test_managers.py index 78883349..5f5a22c8 100644 --- a/tests/test_managers.py +++ b/tests/test_managers.py @@ -1,5 +1,5 @@ from unittest import TestCase -from unittest.mock import Mock, MagicMock, AsyncMock +from asyncmock import Mock, MagicMock, AsyncMock from rsconnect_jupyter.managers import ContentsManager, get_model, isawaitable

qU^V(bIIK1)2(KJGT>9q)l4|83!op+UKQ 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