diff --git a/Pipfile b/Pipfile index 38e9320..b81e369 100644 --- a/Pipfile +++ b/Pipfile @@ -28,7 +28,7 @@ pytest-asyncio = "*" types-requests = "*" [packages] -solana = {version = ">=0.11.3"} +solana = {version = ">=0.15.0"} construct = "*" flake8 = "*" construct-typing = "*" diff --git a/Pipfile.lock b/Pipfile.lock index f7c3201..dc4f46f 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "6e3769e9efcc90fa5c6a46dcd89465e6457f6cb2c1395adc91ae3886a900ab17" + "sha256": "25937afe79242d19be0abd2c88c32b28a5fceb89ea8c52556a3d3150eecfa063" }, "pipfile-spec": 6, "requires": { - "python_version": "3.7" + "python_version": "3.9" }, "sources": [ { @@ -18,11 +18,11 @@ "default": { "anyio": { "hashes": [ - "sha256:929a6852074397afe1d989002aa96d457e3e1e5441357c60d03e7eea0e65e1b0", - "sha256:ae57a67583e5ff8b4af47666ff5651c3732d45fd26c929253748e796af860374" + "sha256:0b993a2ef6c1dc456815c2b5ca2819f382f20af98087cc2090a4afed3a501436", + "sha256:c32da314c510b34a862f5afeaf8a446ffed2c2fde21583e654bd71ecfb5b744b" ], "markers": "python_full_version >= '3.6.2'", - "version": "==3.3.0" + "version": "==3.3.2" }, "base58": { "hashes": [ @@ -32,70 +32,83 @@ "markers": "python_version >= '3.5'", "version": "==2.1.0" }, + "cachetools": { + "hashes": [ + "sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693", + "sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1" + ], + "markers": "python_version ~= '3.5'", + "version": "==4.2.4" + }, "certifi": { "hashes": [ - "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee", - "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8" + "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", + "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" ], - "version": "==2021.5.30" + "version": "==2021.10.8" }, "cffi": { "hashes": [ - "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d", - "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771", - "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872", - "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c", - "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc", - "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762", - "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202", - "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5", - "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548", - "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a", - "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f", - "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20", - "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218", - "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c", - "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e", - "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56", - "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224", - "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a", - "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2", - "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a", - "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819", - "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346", - "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b", - "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e", - "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534", - "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb", - "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0", - "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156", - "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd", - "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87", - "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc", - "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195", - "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33", - "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f", - "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d", - "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd", - "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728", - "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7", - "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca", - "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99", - "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf", - "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e", - "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c", - "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5", - "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69" - ], - "version": "==1.14.6" + "sha256:041959931764e4ae49e62a0064093f1979ef0b9988ea0876972a8b4139e2eace", + "sha256:064eba829f71bd10792455bc7dde4bd8477fe0cac12b6076423667397339d604", + "sha256:14c6f65976cfb5354a2c71bd3e996221d244264f39aa76266e5bf92031e7c32f", + "sha256:1708c7ce000c5241e9a0942e259056b62559055b5b0648e6f4fe2009eb6543c6", + "sha256:1b2d4964dbda701e00ef673b9171078c68ab87945e4e41b0f97cc6cf8b228519", + "sha256:1e4e4a181c4d7718b5e820db5f5552ba75d49237f5766b56ac39d76dab986340", + "sha256:26cbbc5a9ba601419cdbbd296a8120b6296fbddb3f76d0d5669b4c3de41fcfa5", + "sha256:2b63ec0afdceb26c998487ee995ce40aa7de13113c8a8c07430cb825b4cf600d", + "sha256:2e50e0cd32baac221ad447bf3c8233f6dcf1b9dfe985fbade4609c33ab25a261", + "sha256:3d1d2dbf682ef11ab9b19192a4e9a4dab5fed28d820b3c4fecdd14eb4a53e2ba", + "sha256:4bcd611118ebd3c4da7aa453195006857fdf4e8367116ae9bc7840fb6e55e5cb", + "sha256:4c5f154140a7525787e12612659f16acc8c5e10854a28b5f34265ced7e52ea7c", + "sha256:4fdb3bfc6d359b6c2389ce3f9541861f8866690da8beb1a07edd7c2b909689a2", + "sha256:546e07621327d841e92eb000b1b8857b6ca38dc07aec2b40b50392ccd18457e9", + "sha256:5828ca3b9dfc05118336a7474dfe3d5e28128e26c2a3844c6fc931c18bf9e015", + "sha256:5cd63b45d8c391779cd1059d00c29b7a92da3b6913de3f671f11d103d99597f1", + "sha256:5fe287dad6b1f2a936ae7ffdb2822dd9c0ed01bc56eed6ad3bad0788cba841c0", + "sha256:61e0f7f6b719dfa786e5f39887cb62d96477956006edce4869a11e75287a5c58", + "sha256:68b9cc5f9872cc8ac2dd2dc4249a17e46537005b87ef2f7aa863fba7e6aceae0", + "sha256:760eab7b40e8b1da0e68afc0524f951c03a55c9cd1589718094bb4e759f24972", + "sha256:7945717dc73e197b5e56b7a468749b79a4adce1463dce7766d4b50e1771fb710", + "sha256:7d1f584a0c786b6b10c7f1a80e9615532a7410dd2eb117a6b9cd214258936be0", + "sha256:82391d89ab10e5a5af763052ec048b675ae72cbf047d47918c7f0b9f3dfadfbc", + "sha256:84d4d27c986e3c9c22eed7b84a47a87a8e9b4840fb17151266342a382c78baa0", + "sha256:875009c94e380fd0b027193cbf7abf54fb8e0173401f0941d27b4ccce6a077b6", + "sha256:99b9cc04ad9df57ed541bd9814244509bb3ca0ce7104b4471a33ba649e86a1fa", + "sha256:9ca5ff9ce84bcec15cac6d05ccaf48c527a4dae0a5492a07feefaa1989ab9ec7", + "sha256:9e490d1d3621e792d38d2ad504024b0cc98a90ee44380d22672da39175ca0b47", + "sha256:9f1dba4b183736cdc2d7481b328fb0e3666c26bd4c44da0782c3e49ea24034c2", + "sha256:a03cf4fc1e93f20fd5580650aac0adcd10c667c38de77169bf1956ed9e96534e", + "sha256:b086e09e7a13dfc91e9334d8bfc4895a7212452905db41c88add6563deb5d6be", + "sha256:b360176e10fe892948aec2656822cea1ac53b52fceaebc9f49c4f304dbb67d99", + "sha256:b62b6d33de56392a7a5c35e72b7006b12cfb68d57d608bd55c98f7e2b71229c6", + "sha256:b644c4cbbada9ed3c6c4f2e79b2fe58e8826de696378df221aeafe3d14204696", + "sha256:b6a1b91f87725ae86d00911f8dd373d98e0cdf1845997d8f40d5b8f977df6fae", + "sha256:bf90ce27e390932a57331755a51d5474cbbf74ac7d22533d2f36c00bcff825e7", + "sha256:c361849741ab4e0b9992e51f4975251a9e9253d2231786ffcd75598960ff9b37", + "sha256:c3c9224e3851b7a98ebaa51edb30d6a0d30c472e1641dc2ecae090f466b56c62", + "sha256:c996ccae21e66ca1576c6ccf69017bbad59eb3694b14eda963b726e786dd20c2", + "sha256:c9d1cb341593da38089612c8dde502c1c446496766a1cd3b37c98de6cef1ecef", + "sha256:caabbde5dd107525817cd633a7cd75cbeac48672a5d72b25ae006f9009a9392c", + "sha256:cccb7e359e5465b3ba0bd055b9a3993d45b833c900420697864fb3c77711c2ba", + "sha256:cccfdb53d37d1b0407d30c5cf321845ba4b3df42d904396c9bd44fe460896046", + "sha256:cf1bdf1675c4605cd15b6bf9b987a808526d85cec57a1141665581690ff34b6d", + "sha256:d030856eb6a44347ce4027b3db9c7120aa6726a66f5fddff0a9380802d0df59d", + "sha256:d3eacf2acbae1a9c9ea734b771599191ccd3b21a4b1aaa160f30270127f5d79b", + "sha256:dc2f352dbc1b1562442fdb061fa6953850fcb977e09c94e347f2d702e62261f6", + "sha256:e2059472cb38a3f0ed10c62f9b654442779d95f1490f4cdbf6ddd6e5b6552474", + "sha256:e50a72110c6426d4c00c1cb9e9551fcc4d6894931f070b3821595b1d90c19246", + "sha256:f30d664202fbf49c32451a627b71db34e5564cf48c40b4de429836cdf368e517" + ], + "version": "==1.15.0rc2" }, "charset-normalizer": { "hashes": [ - "sha256:0c8911edd15d19223366a194a513099a302055a962bca2cec0f54b8b63175d8b", - "sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3" + "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6", + "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f" ], "markers": "python_version >= '3'", - "version": "==2.0.4" + "version": "==2.0.6" }, "construct": { "hashes": [ @@ -130,19 +143,19 @@ }, "httpcore": { "hashes": [ - "sha256:b0d16f0012ec88d8cc848f5a55f8a03158405f4bca02ee49bc4ca2c1fda49f3e", - "sha256:db4c0dcb8323494d01b8c6d812d80091a31e520033e7b0120883d6f52da649ff" + "sha256:036f960468759e633574d7c121afba48af6419615d36ab8ede979f1ad6276fa3", + "sha256:369aa481b014cf046f7067fddd67d00560f2f00426e79569d99cb11245134af0" ], "markers": "python_version >= '3.6'", - "version": "==0.13.6" + "version": "==0.13.7" }, "httpx": { "hashes": [ - "sha256:979afafecb7d22a1d10340bafb403cf2cb75aff214426ff206521fc79d26408c", - "sha256:9f99c15d33642d38bce8405df088c1c4cfd940284b4290cacbfb02e64f4877c6" + "sha256:92ecd2c00c688b529eda11cedb15161eaf02dee9116712f621c70d9a40b2cdd0", + "sha256:9bd728a6c5ec0a9e243932a9983d57d3cc4a87bb4f554e1360fce407f78f9435" ], "markers": "python_version >= '3.6'", - "version": "==0.18.2" + "version": "==0.19.0" }, "idna": { "hashes": [ @@ -152,14 +165,6 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==3.2" }, - "importlib-metadata": { - "hashes": [ - "sha256:0645585859e9a6689c523927a5032f2ba5919f1f7d0e84bd4533312320de1ff9", - "sha256:51c6635429c77cf1ae634c997ff9e53ca3438b495f10a55ba28594dd69764a8b" - ], - "markers": "python_version < '3.8'", - "version": "==4.6.3" - }, "mccabe": { "hashes": [ "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", @@ -251,36 +256,28 @@ }, "solana": { "hashes": [ - "sha256:c18bd089ea7023e0d301cbad42bb1812d09ef73bca2b196b0adbe7028e747bf7", - "sha256:e1edb5b0b38c0455c1924e9308d38b61e836a40eb4b21ede3b6744e0dccc1296" + "sha256:42590faea125d2c30ada4b28c658e8b6b32b6745982b05ddd167f960305fc9c6", + "sha256:72ffc5b32aea10e7c592a9a14897410c762d620798ffb9b8e888f3bd83443f9d" ], "index": "pypi", - "version": "==0.11.3" + "version": "==0.16.0" }, "typing-extensions": { "hashes": [ - "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497", - "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342", - "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84" + "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e", + "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7", + "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34" ], "markers": "python_version < '3.8'", - "version": "==3.10.0.0" + "version": "==3.10.0.2" }, "urllib3": { "hashes": [ - "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4", - "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f" + "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece", + "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844" ], "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.6" - }, - "zipp": { - "hashes": [ - "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3", - "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4" - ], - "markers": "python_version >= '3.6'", - "version": "==3.5.0" + "version": "==1.26.7" } }, "develop": { @@ -293,45 +290,28 @@ }, "anyio": { "hashes": [ - "sha256:929a6852074397afe1d989002aa96d457e3e1e5441357c60d03e7eea0e65e1b0", - "sha256:ae57a67583e5ff8b4af47666ff5651c3732d45fd26c929253748e796af860374" + "sha256:0b993a2ef6c1dc456815c2b5ca2819f382f20af98087cc2090a4afed3a501436", + "sha256:c32da314c510b34a862f5afeaf8a446ffed2c2fde21583e654bd71ecfb5b744b" ], "markers": "python_full_version >= '3.6.2'", - "version": "==3.3.0" - }, - "appdirs": { - "hashes": [ - "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", - "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128" - ], - "version": "==1.4.4" + "version": "==3.3.2" }, "argon2-cffi": { "hashes": [ - "sha256:05a8ac07c7026542377e38389638a8a1e9b78f1cd8439cd7493b39f08dd75fbf", - "sha256:0bf066bc049332489bb2d75f69216416329d9dc65deee127152caeb16e5ce7d5", - "sha256:18dee20e25e4be86680b178b35ccfc5d495ebd5792cd00781548d50880fee5c5", - "sha256:36320372133a003374ef4275fbfce78b7ab581440dfca9f9471be3dd9a522428", - "sha256:392c3c2ef91d12da510cfb6f9bae52512a4552573a9e27600bdb800e05905d2b", - "sha256:3aa804c0e52f208973845e8b10c70d8957c9e5a666f702793256242e9167c4e0", - "sha256:57358570592c46c420300ec94f2ff3b32cbccd10d38bdc12dc6979c4a8484fbc", - "sha256:6678bb047373f52bcff02db8afab0d2a77d83bde61cfecea7c5c62e2335cb203", - "sha256:6ea92c980586931a816d61e4faf6c192b4abce89aa767ff6581e6ddc985ed003", - "sha256:77e909cc756ef81d6abb60524d259d959bab384832f0c651ed7dcb6e5ccdbb78", - "sha256:7d455c802727710e9dfa69b74ccaab04568386ca17b0ad36350b622cd34606fe", - "sha256:8282b84ceb46b5b75c3a882b28856b8cd7e647ac71995e71b6705ec06fc232c3", - "sha256:8a84934bd818e14a17943de8099d41160da4a336bcc699bb4c394bbb9b94bd32", - "sha256:9bee3212ba4f560af397b6d7146848c32a800652301843df06b9e8f68f0f7361", - "sha256:9dfd5197852530294ecb5795c97a823839258dfd5eb9420233c7cfedec2058f2", - "sha256:b160416adc0f012fb1f12588a5e6954889510f82f698e23ed4f4fa57f12a0647", - "sha256:b94042e5dcaa5d08cf104a54bfae614be502c6f44c9c89ad1535b2ebdaacbd4c", - "sha256:ba7209b608945b889457f949cc04c8e762bed4fe3fec88ae9a6b7765ae82e496", - "sha256:cc0e028b209a5483b6846053d5fd7165f460a1f14774d79e632e75e7ae64b82b", - "sha256:d8029b2d3e4b4cea770e9e5a0104dd8fa185c1724a0f01528ae4826a6d25f97d", - "sha256:da7f0445b71db6d3a72462e04f36544b0de871289b0bc8a7cc87c0f5ec7079fa", - "sha256:e2db6e85c057c16d0bd3b4d2b04f270a7467c147381e8fd73cbbe5bc719832be" - ], - "version": "==20.1.0" + "sha256:165cadae5ac1e26644f5ade3bd9c18d89963be51d9ea8817bd671006d7909057", + "sha256:217b4f0f853ccbbb5045242946ad2e162e396064575860141b71a85eb47e475a", + "sha256:245f64a203012b144b7b8c8ea6d468cb02b37caa5afee5ba4a10c80599334f6a", + "sha256:4ad152c418f7eb640eac41ac815534e6aa61d1624530b8e7779114ecfbf327f8", + "sha256:566ffb581bbd9db5562327aee71b2eda24a1c15b23a356740abe3c011bbe0dcb", + "sha256:65213a9174320a1aee03fe826596e0620783966b49eb636955958b3074e87ff9", + "sha256:bc513db2283c385ea4da31a2cd039c33380701f376f4edd12fe56db118a3b21a", + "sha256:c7a7c8cc98ac418002090e4add5bebfff1b915ea1cb459c578cd8206fef10378", + "sha256:e4d8f0ae1524b7b0372a3e574a2561cbdddb3fdb6c28b70a72868189bda19659", + "sha256:f710b61103d1a1f692ca3ecbd1373e28aa5e545ac625ba067ff2feca1b2bb870", + "sha256:fa7e7d1fc22514a32b1761fdfa1882b6baa5c36bb3ef557bdd69e6fc9ba14a41" + ], + "markers": "python_version >= '3.5'", + "version": "==21.1.0" }, "astroid": { "hashes": [ @@ -341,14 +321,6 @@ "markers": "python_version ~= '3.6'", "version": "==2.6.6" }, - "async-generator": { - "hashes": [ - "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b", - "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144" - ], - "markers": "python_version >= '3.5'", - "version": "==1.10" - }, "attrs": { "hashes": [ "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1", @@ -374,92 +346,97 @@ }, "black": { "hashes": [ - "sha256:1c7aa6ada8ee864db745b22790a32f94b2795c253a75d6d9b5e439ff10d23116", - "sha256:c8373c6491de9362e39271630b65b964607bc5c79c83783547d76c839b3aa219" + "sha256:380f1b5da05e5a1429225676655dddb96f5ae8c75bdf91e53d798871b902a115", + "sha256:7de4cfc7eb6b710de325712d40125689101d21d25283eed7e9998722cf10eb91" ], "index": "pypi", - "version": "==21.7b0" + "version": "==21.9b0" }, "bleach": { "hashes": [ - "sha256:c1685a132e6a9a38bf93752e5faab33a9517a6c0bb2f37b785e47bf253bdb51d", - "sha256:ffa9221c6ac29399cc50fcc33473366edd0cf8d5e2cbbbb63296dc327fb67cc8" + "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da", + "sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994" ], "markers": "python_version >= '3.6'", - "version": "==4.0.0" + "version": "==4.1.0" }, "certifi": { "hashes": [ - "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee", - "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8" + "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", + "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" ], - "version": "==2021.5.30" + "version": "==2021.10.8" }, "cffi": { "hashes": [ - "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d", - "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771", - "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872", - "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c", - "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc", - "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762", - "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202", - "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5", - "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548", - "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a", - "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f", - "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20", - "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218", - "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c", - "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e", - "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56", - "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224", - "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a", - "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2", - "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a", - "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819", - "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346", - "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b", - "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e", - "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534", - "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb", - "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0", - "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156", - "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd", - "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87", - "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc", - "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195", - "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33", - "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f", - "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d", - "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd", - "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728", - "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7", - "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca", - "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99", - "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf", - "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e", - "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c", - "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5", - "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69" - ], - "version": "==1.14.6" + "sha256:041959931764e4ae49e62a0064093f1979ef0b9988ea0876972a8b4139e2eace", + "sha256:064eba829f71bd10792455bc7dde4bd8477fe0cac12b6076423667397339d604", + "sha256:14c6f65976cfb5354a2c71bd3e996221d244264f39aa76266e5bf92031e7c32f", + "sha256:1708c7ce000c5241e9a0942e259056b62559055b5b0648e6f4fe2009eb6543c6", + "sha256:1b2d4964dbda701e00ef673b9171078c68ab87945e4e41b0f97cc6cf8b228519", + "sha256:1e4e4a181c4d7718b5e820db5f5552ba75d49237f5766b56ac39d76dab986340", + "sha256:26cbbc5a9ba601419cdbbd296a8120b6296fbddb3f76d0d5669b4c3de41fcfa5", + "sha256:2b63ec0afdceb26c998487ee995ce40aa7de13113c8a8c07430cb825b4cf600d", + "sha256:2e50e0cd32baac221ad447bf3c8233f6dcf1b9dfe985fbade4609c33ab25a261", + "sha256:3d1d2dbf682ef11ab9b19192a4e9a4dab5fed28d820b3c4fecdd14eb4a53e2ba", + "sha256:4bcd611118ebd3c4da7aa453195006857fdf4e8367116ae9bc7840fb6e55e5cb", + "sha256:4c5f154140a7525787e12612659f16acc8c5e10854a28b5f34265ced7e52ea7c", + "sha256:4fdb3bfc6d359b6c2389ce3f9541861f8866690da8beb1a07edd7c2b909689a2", + "sha256:546e07621327d841e92eb000b1b8857b6ca38dc07aec2b40b50392ccd18457e9", + "sha256:5828ca3b9dfc05118336a7474dfe3d5e28128e26c2a3844c6fc931c18bf9e015", + "sha256:5cd63b45d8c391779cd1059d00c29b7a92da3b6913de3f671f11d103d99597f1", + "sha256:5fe287dad6b1f2a936ae7ffdb2822dd9c0ed01bc56eed6ad3bad0788cba841c0", + "sha256:61e0f7f6b719dfa786e5f39887cb62d96477956006edce4869a11e75287a5c58", + "sha256:68b9cc5f9872cc8ac2dd2dc4249a17e46537005b87ef2f7aa863fba7e6aceae0", + "sha256:760eab7b40e8b1da0e68afc0524f951c03a55c9cd1589718094bb4e759f24972", + "sha256:7945717dc73e197b5e56b7a468749b79a4adce1463dce7766d4b50e1771fb710", + "sha256:7d1f584a0c786b6b10c7f1a80e9615532a7410dd2eb117a6b9cd214258936be0", + "sha256:82391d89ab10e5a5af763052ec048b675ae72cbf047d47918c7f0b9f3dfadfbc", + "sha256:84d4d27c986e3c9c22eed7b84a47a87a8e9b4840fb17151266342a382c78baa0", + "sha256:875009c94e380fd0b027193cbf7abf54fb8e0173401f0941d27b4ccce6a077b6", + "sha256:99b9cc04ad9df57ed541bd9814244509bb3ca0ce7104b4471a33ba649e86a1fa", + "sha256:9ca5ff9ce84bcec15cac6d05ccaf48c527a4dae0a5492a07feefaa1989ab9ec7", + "sha256:9e490d1d3621e792d38d2ad504024b0cc98a90ee44380d22672da39175ca0b47", + "sha256:9f1dba4b183736cdc2d7481b328fb0e3666c26bd4c44da0782c3e49ea24034c2", + "sha256:a03cf4fc1e93f20fd5580650aac0adcd10c667c38de77169bf1956ed9e96534e", + "sha256:b086e09e7a13dfc91e9334d8bfc4895a7212452905db41c88add6563deb5d6be", + "sha256:b360176e10fe892948aec2656822cea1ac53b52fceaebc9f49c4f304dbb67d99", + "sha256:b62b6d33de56392a7a5c35e72b7006b12cfb68d57d608bd55c98f7e2b71229c6", + "sha256:b644c4cbbada9ed3c6c4f2e79b2fe58e8826de696378df221aeafe3d14204696", + "sha256:b6a1b91f87725ae86d00911f8dd373d98e0cdf1845997d8f40d5b8f977df6fae", + "sha256:bf90ce27e390932a57331755a51d5474cbbf74ac7d22533d2f36c00bcff825e7", + "sha256:c361849741ab4e0b9992e51f4975251a9e9253d2231786ffcd75598960ff9b37", + "sha256:c3c9224e3851b7a98ebaa51edb30d6a0d30c472e1641dc2ecae090f466b56c62", + "sha256:c996ccae21e66ca1576c6ccf69017bbad59eb3694b14eda963b726e786dd20c2", + "sha256:c9d1cb341593da38089612c8dde502c1c446496766a1cd3b37c98de6cef1ecef", + "sha256:caabbde5dd107525817cd633a7cd75cbeac48672a5d72b25ae006f9009a9392c", + "sha256:cccb7e359e5465b3ba0bd055b9a3993d45b833c900420697864fb3c77711c2ba", + "sha256:cccfdb53d37d1b0407d30c5cf321845ba4b3df42d904396c9bd44fe460896046", + "sha256:cf1bdf1675c4605cd15b6bf9b987a808526d85cec57a1141665581690ff34b6d", + "sha256:d030856eb6a44347ce4027b3db9c7120aa6726a66f5fddff0a9380802d0df59d", + "sha256:d3eacf2acbae1a9c9ea734b771599191ccd3b21a4b1aaa160f30270127f5d79b", + "sha256:dc2f352dbc1b1562442fdb061fa6953850fcb977e09c94e347f2d702e62261f6", + "sha256:e2059472cb38a3f0ed10c62f9b654442779d95f1490f4cdbf6ddd6e5b6552474", + "sha256:e50a72110c6426d4c00c1cb9e9551fcc4d6894931f070b3821595b1d90c19246", + "sha256:f30d664202fbf49c32451a627b71db34e5564cf48c40b4de429836cdf368e517" + ], + "version": "==1.15.0rc2" }, "charset-normalizer": { "hashes": [ - "sha256:0c8911edd15d19223366a194a513099a302055a962bca2cec0f54b8b63175d8b", - "sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3" + "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6", + "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f" ], "markers": "python_version >= '3'", - "version": "==2.0.4" + "version": "==2.0.6" }, "click": { "hashes": [ - "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a", - "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6" + "sha256:3fab8aeb8f15f5452ae7511ad448977b3417325bceddd53df87e0bb81f3a8cf8", + "sha256:7027bc7bbafaab8b2c2816861d8eb372429ee3c02e193fc2f93d6c4ab9de49c5" ], "markers": "python_version >= '3.6'", - "version": "==8.0.1" + "version": "==8.0.2" }, "colorama": { "hashes": [ @@ -470,152 +447,107 @@ "version": "==0.4.4" }, "coverage": { - "hashes": [ - "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c", - "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6", - "sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45", - "sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a", - "sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03", - "sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529", - "sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a", - "sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a", - "sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2", - "sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6", - "sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759", - "sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53", - "sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a", - "sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4", - "sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff", - "sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502", - "sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793", - "sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb", - "sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905", - "sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821", - "sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b", - "sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81", - "sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0", - "sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b", - "sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3", - "sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184", - "sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701", - "sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a", - "sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82", - "sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638", - "sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5", - "sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083", - "sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6", - "sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90", - "sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465", - "sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a", - "sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3", - "sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e", - "sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066", - "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf", - "sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b", - "sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae", - "sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669", - "sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873", - "sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b", - "sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6", - "sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb", - "sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160", - "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c", - "sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079", - "sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d", - "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4.0'", - "version": "==5.5" + "extras": [ + "toml" + ], + "hashes": [ + "sha256:07efe1fbd72e67df026ad5109bcd216acbbd4a29d5208b3dab61779bae6b7b26", + "sha256:0898d6948b31df13391cd40568de8f35fa5901bc922c5ae05cf070587cb9c666", + "sha256:0a7e55cc9f7efa22d5cc9966276ec7a40a8803676f6ccbfdc06a486fba9aa9ee", + "sha256:17426808e8e0824f864876312d41961223bf5e503bf8f1f846735279a60ea345", + "sha256:1770d24f45f1f2daeae34cfa3b33fcb29702153544cd2ad40d58399dd4ff53b5", + "sha256:1864bdf9b2ccb43e724051bc23a1c558daf101ad4488ede1945f2a8be1facdad", + "sha256:2c5f39d1556e75fc3c4fb071f9e7cfa618895a999a0de763a541d730775d0d5f", + "sha256:3490ff6dbf3f7accf0750136ed60ae1f487bccc1f097740e3b21262bc9c89854", + "sha256:353a50f123f0185cdb7a1e1e3e2cfb9d1fd7e293cfaf68eedaf5bd8e02e3ec32", + "sha256:3edbb3ec580c73e5a264f5d04f30245bc98eff1a26765d46c5c65134f0a0e2f7", + "sha256:4eb9cd910ca8e243f930243a9940ea1a522e32435d15668445753d087c30ee12", + "sha256:5b06f4f1729e2963281d9cd6e65e6976bf27b44d4c07ac5b47223ce45f822cec", + "sha256:5b1ceacb86e0a9558061dcc6baae865ed25933ea57effea644f21657cdce19bc", + "sha256:65da6e3e8325291f012921bbf71fea0a97824e1c573981871096aac6e2cf0ec5", + "sha256:66fe33e9e0df58675e08e83fe257f89e7f625e7633ea93d0872154e09cce2724", + "sha256:6873f3f954d3e3ab8b1881f4e5307cc19f70c9f931c41048d9f7e6fd946eabe7", + "sha256:73880a80fad0597eca43e213e5e1711bf6c0fcdb7eb6b01b3b17841ebe5a7f8d", + "sha256:7600fac458f74c68b097379f76f3a6e3a630493fc7fc94b6508fedd9d498c194", + "sha256:83682b73785d2e078e0b5f63410b8125b122e1a22422640c57edd4011c950f3e", + "sha256:83faa3692e8306b20293889714fdf573d10ef5efc5843bd7c7aea6971487bd6a", + "sha256:9c416ba03844608f45661a5b48dc59c6b5e89956efe388564dd138ca8caf540b", + "sha256:9d242a2434801ef5125330deddb4cddba8990c9a49b3dec99dca17dd7eefba5a", + "sha256:a2e15ab5afbee34abf716fece80ea33ea09a82e7450512f022723b1a82ec9a4e", + "sha256:abe8207dfb8a61ded9cd830d26c1073c8218fc0ae17eb899cfe8ec0fafae6e22", + "sha256:ad7182a82843f9f85487f44567c8c688f16c906bdb8d0e44ae462aed61cb8f1b", + "sha256:b45f89a8ef65c29195f8f28dbe215f44ccb29d934f3e862d2a5c12e38698a793", + "sha256:b81a4e667c45b13658b84f9b8f1d32ef86d5405fabcbd181b76b9e51d295f397", + "sha256:c9c413c4397d4cdc7ca89286158d240ce524f9667b52c9a64dd7e13d16cf8815", + "sha256:e11cca9eb5c9b3eaad899728ee2ce916138399ee8cbbccaadc1871fecb750827", + "sha256:e66c50f0ab445fec920a9f084914ea1776a809e3016c3738519048195f851bbb", + "sha256:ea452a2d83964d08232ade470091015e7ab9b8f53acbec10f2210fbab4ce7e43", + "sha256:f398d38e6ebc2637863db1d7be3d4f9c5174e7d24bb3b0716cdb1f204669cbcf", + "sha256:f82a17f2a77958f3eef40ad385fc82d4c6ba9a77a51a174efe03ce75daebbc16" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0.1" }, "cryptography": { "hashes": [ - "sha256:0f1212a66329c80d68aeeb39b8a16d54ef57071bf22ff4e521657b27372e327d", - "sha256:1e056c28420c072c5e3cb36e2b23ee55e260cb04eee08f702e0edfec3fb51959", - "sha256:240f5c21aef0b73f40bb9f78d2caff73186700bf1bc6b94285699aff98cc16c6", - "sha256:26965837447f9c82f1855e0bc8bc4fb910240b6e0d16a664bb722df3b5b06873", - "sha256:37340614f8a5d2fb9aeea67fd159bfe4f5f4ed535b1090ce8ec428b2f15a11f2", - "sha256:3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713", - "sha256:3d8427734c781ea5f1b41d6589c293089704d4759e34597dce91014ac125aad1", - "sha256:7ec5d3b029f5fa2b179325908b9cd93db28ab7b85bb6c1db56b10e0b54235177", - "sha256:8e56e16617872b0957d1c9742a3f94b43533447fd78321514abbe7db216aa250", - "sha256:b01fd6f2737816cb1e08ed4807ae194404790eac7ad030b34f2ce72b332f5586", - "sha256:bf40af59ca2465b24e54f671b2de2c59257ddc4f7e5706dbd6930e26823668d3", - "sha256:de4e5f7f68220d92b7637fc99847475b59154b7a1b3868fb7385337af54ac9ca", - "sha256:eb8cc2afe8b05acbd84a43905832ec78e7b3873fb124ca190f574dca7389a87d", - "sha256:ee77aa129f481be46f8d92a1a7db57269a2f23052d5f2433b4621bb457081cc9" + "sha256:07bb7fbfb5de0980590ddfc7f13081520def06dc9ed214000ad4372fb4e3c7f6", + "sha256:18d90f4711bf63e2fb21e8c8e51ed8189438e6b35a6d996201ebd98a26abbbe6", + "sha256:1ed82abf16df40a60942a8c211251ae72858b25b7421ce2497c2eb7a1cee817c", + "sha256:22a38e96118a4ce3b97509443feace1d1011d0571fae81fc3ad35f25ba3ea999", + "sha256:2d69645f535f4b2c722cfb07a8eab916265545b3475fdb34e0be2f4ee8b0b15e", + "sha256:4a2d0e0acc20ede0f06ef7aa58546eee96d2592c00f450c9acb89c5879b61992", + "sha256:54b2605e5475944e2213258e0ab8696f4f357a31371e538ef21e8d61c843c28d", + "sha256:7075b304cd567694dc692ffc9747f3e9cb393cc4aa4fb7b9f3abd6f5c4e43588", + "sha256:7b7ceeff114c31f285528ba8b390d3e9cfa2da17b56f11d366769a807f17cbaa", + "sha256:7eba2cebca600a7806b893cb1d541a6e910afa87e97acf2021a22b32da1df52d", + "sha256:928185a6d1ccdb816e883f56ebe92e975a262d31cc536429041921f8cb5a62fd", + "sha256:9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d", + "sha256:a688ebcd08250eab5bb5bca318cc05a8c66de5e4171a65ca51db6bd753ff8953", + "sha256:abb5a361d2585bb95012a19ed9b2c8f412c5d723a9836418fab7aaa0243e67d2", + "sha256:c10c797ac89c746e488d2ee92bd4abd593615694ee17b2500578b63cad6b93a8", + "sha256:ced40344e811d6abba00295ced98c01aecf0c2de39481792d87af4fa58b7b4d6", + "sha256:d57e0cdc1b44b6cdf8af1d01807db06886f10177469312fbde8f44ccbb284bc9", + "sha256:d99915d6ab265c22873f1b4d6ea5ef462ef797b4140be4c9d8b179915e0985c6", + "sha256:eb80e8a1f91e4b7ef8b33041591e6d89b2b8e122d787e87eeb2b08da71bb16ad", + "sha256:ebeddd119f526bcf323a89f853afb12e225902a24d29b55fe18dd6fcb2838a76" ], "markers": "python_version >= '3.6'", - "version": "==3.4.7" + "version": "==35.0.0" }, "debugpy": { "hashes": [ - "sha256:00f9d14da52b87e98e26f5c3c8f1937cc496915b38f8ccb7b329336b21898678", - "sha256:129312b01ec46ab303a8c0667d559a0de0bed1a394cc128039b6f008f1c376b7", - "sha256:12cb415e7394c6738527cbc482935aa9414e9b4cc87dd040015d0e5cb8b4471a", - "sha256:1762908202b0b0b481ec44125edb625d136d16c4991d3a7c1310c85672ffe5ba", - "sha256:1bc8e835a48ef23280cbaf2b70a5a2b629b9ee79685b64d974bfb8d467f4aa67", - "sha256:2bfda2721046fb43a7074d475a12adcd55a65bfd23a1ff675427b09a01ba40cc", - "sha256:2d4c4ab934fbe1c7095d19b3d4246afe119396b49540ca5d5ad34ef01b27bd2a", - "sha256:309909b6c85f89aea3fa10fc256b52fef3c25fee4d00e1b5f5db1ace57203a2c", - "sha256:3756cd421be701d06490635372327ebd1ccb44b37d59682c994f6bd59e040a91", - "sha256:399b2c60c8e67a5d30c6e4522129e8be8d484e6064286f8ba3ce857a3927312a", - "sha256:3a6dee475102d0169732162b735878e8787500719ccb4d54b1458afe992a4c4d", - "sha256:3d92cb2e8b4f9591f6d6e17ccf8c1a55a58857949d9a5aae0ff37b64faaa3b80", - "sha256:4655824321b36b353b12d1617a29c79320412f085ecabf54524603b4c0c791e8", - "sha256:4e0d57a8c35b20b4e363db943b909aa83f12594e2f34070a1db5fa9b7213336b", - "sha256:52920ccb4acdbb2a9a42e0a4d60a7bbc4a34bf16fd23c674b280f8e9a8cacbd6", - "sha256:595170ac17567773b546d40a0ff002dc350cfcd95c9233f65e79370954fb9a01", - "sha256:67d496890d1cada5ce924cb30178684e7b82a36b80b8868beb148db54fd9e44c", - "sha256:6bb62615b3ad3d7202b7b7eb85f3d000aa17a61303af5f11eab048c91a1f30a6", - "sha256:71e67d352cabdc6a3f4dc3e39a1d2d1e76763a2102a276904e3495ede48a9832", - "sha256:732ac8bb79694cb4127c08bfc6128274f3dee9e6fd2ddde7bf026a40efeb202d", - "sha256:7376bd8f4272ab01342940bd020955f021e26954e1f0df91cfa8bf1fa4451b56", - "sha256:768f393ffaa66a3b3ed92b06e21912a5df3e01f18fb531bcbba2f94cad1725a7", - "sha256:7b332ce0d1a46f0f4200d59ee78428f18301d1fb85d07402723b94e1de96951c", - "sha256:7b4e399790a301c83ad6b153452233695b2f15450d78956a6d297859eb44d185", - "sha256:7e12e94aa2c9a0017c0a84cd475063108d06e305360b69c933bde17a6a527f80", - "sha256:84ff51b8b5c847d5421324ca419db1eec813a4dd2bbf19dbbbe132e2ab2b2fc6", - "sha256:86cd13162b752664e8ef048287a6973c8fba0a71f396b31cf36394880ec2a6bf", - "sha256:889316de0b8ff3732927cb058cfbd3371e4cd0002ecc170d34c755ad289c867c", - "sha256:89d53d57001e54a3854489e898c697aafb2d6bb81fca596da2400f3fd7fd397c", - "sha256:8a2be4e5d696ad39be6c6c37dc580993d04aad7d893fd6e449e1a055d7b5dddb", - "sha256:8e63585c372873cd88c2380c0b3c4815c724a9713f5b86d1b3a1f1ac30df079e", - "sha256:939c94d516e6ed5433cc3ba12d9d0d8108499587158ae5f76f6db18d49e21b5b", - "sha256:959d39f3d724d25b7ab79278f032e33df03c6376d51b3517abaf2f8e83594ee0", - "sha256:9a0cd73d7a76222fbc9f9180612ccb4ad7d7f7e4f26e55ef1fbd459c0f2f5322", - "sha256:9d559bd0e4c288487349e0723bc70ff06390638446ee8087d4d5711486119643", - "sha256:a19def91a0a166877c2a26b611c1ad0473ce85b1df61ae5276197375d574228b", - "sha256:a2c5a1c49239707ed5bc8e97d8f9252fb392d9e13c79c7b477593d7dde4ae24a", - "sha256:a4368c79a2c4458d5a0540381a32f8fdc02b3c9ba9dd413a49b42929297b29b3", - "sha256:a9f582203af34c6978bffaba77425662e949251998276e9dece113862e753459", - "sha256:ab37f189b1dd0d8420545c9f3d066bd1601a1ae85b26de38f5c1ccb96cf0b042", - "sha256:ac2d1cdd3279806dab2119937c0769f11dee13166650aaa84b6700b30a845d10", - "sha256:bad668e9edb21199017ab31f52a05e14506ad6566110560796d2a8f258e0b819", - "sha256:c5e771fcd12727f734caf2a10ff92966ae9857db0ccb6bebd1a4f776c54186a8", - "sha256:c96e82d863db97d3eb498cc8e55773004724bdeaa58fb0eb7ee7d5a21d240d6a", - "sha256:cd36e75c0f71a924f4b4cdb5f74b3321952cf636aadf70e0f85fd9cd2edfc1d0", - "sha256:cf6b26f26f97ef3033008db7b3df7233363407d7b6cacd4bc4f8e02ce8e11df4", - "sha256:d89ab3bd51d6a3f13b093bc3881a827d8f6c9588d9a493bddb3b47f9d078fd1d", - "sha256:dea62527a4a2770a0d12ce46564636d892bba29baaf5dba5bfe98bb55bf17a11", - "sha256:e47c42bc1a68ead3c39d9a658d3ccf311bc45dc84f3c90fa5cb7de1796243f47", - "sha256:e6711106aafc26ecb78e43c4be0a49bd0ae4a1f3e1aa502de151e38f4717b2a2", - "sha256:e7e049a4e8e362183a5a5b4ad058a1543211970819d0c11011c87c3a9dec2eaf", - "sha256:ebc241351791595796864a960892e1cd58627064feda939d0377edd0730bbff2", - "sha256:eee2224ce547d2958ffc0d63cd280a9cc6377043f32ce370cfe4ca6be4e05476", - "sha256:f20a07ac5fb0deee9be1ad1a9a124d858a8b79c66c7ec5e1767d78aa964f86c4", - "sha256:f77406f33760e6f13a7ff0ac375d9c8856844b61cd95f7502b57116858f0cfe1", - "sha256:fece69933d17e0918b73ddeb5e23bcf789edd2a6eb0d438b09c40d51e76b9c74" + "sha256:098753d30232d1e4264eee37e1ddd5d106dc5c4bc6d8d7f4dadad9e44736cd48", + "sha256:1283e418f595262d11abc5fae6a3ac629c5fc3b44d3988511ea755414aab3062", + "sha256:33e8a9b4949be8b4f5fcfff07e24bd63c565060659f1c79773c08d19eee012f2", + "sha256:72093ea83226d5264b3697b948c07a3cfcc4953da14a78a50c4e623a2bb99ad8", + "sha256:77b5233b23a248cd930bf03ecd684da065c6e7d2a57d137516b6fa1698a58317", + "sha256:82c4fa1293981a28c435d196a3714e06df761daff0da3336234475ceff1b042c", + "sha256:86febd61fc351cee926060eef008e242b7259957d71d25eef82860d0cc59b4dc", + "sha256:8e7391a08a351adce6e5154ed35e4cf90c5f3c10dbf7c8f6a234faef300588d6", + "sha256:990228f15de4ccbc52c2accf41a63b3b8d0a01e3de9876e02e77e487c4b1ffab", + "sha256:9f3bed64027bd80a8fe1f35491ec0ec2d2c85f1e63dac7c0311e400bfe58cf05", + "sha256:a03051ba4fdf6720ee83a42e9f803e3a0b69a48b00436b97d16aeda49d28a8bf", + "sha256:be7ca2baef5a634dfbd086d9c1d6b5e0783c6d0f6d0a004b43d36f625d4fc0a9", + "sha256:c3184666cfe1768bf110f8075bafea59d2afce3cc54f4c501f2371c7238bc69d", + "sha256:cdaf6baaf8176644e752aed321b3f810dcf8b0439709f7edd9ae542f849a639b", + "sha256:ce0794d50391c87813bb148548c34dc638fb4d58198d275334968f63c088aa69", + "sha256:dacdb0a3377063d638bd8736c80b7274ae341ce778fec0f883ef1cbb79538bf2", + "sha256:dd0e8d5e099444c22b27511dafd48e8bdcd7051b811ddd0ab2062965fe36ac80", + "sha256:de56775b3dbbfc02bc9fb0682da4a960e0a5bada699eac5e22e0723c4107ec9f", + "sha256:ef71eb8eb276370f8e74ab3f8c7648bbdc9aabac814a5b2840c8dd38a7bc7251", + "sha256:f058c204341fd7ff800ee0edafc106ca0fb1c9857e8a8895a6e04cca3ddcb7bf", + "sha256:fda623aa1036b34d554a1225a09cae6bf02b06c0ad903a9f0b8ac3cb74eddc15" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==1.4.1" + "version": "==1.5.0" }, "decorator": { "hashes": [ - "sha256:6e5c199c16f7a9f0e3a61a4a54b3d27e7dad0dbdde92b944426cb20914376323", - "sha256:72ecfba4320a893c53f9706bebb2d55c270c1e51a28789361aa93e4a21319ed5" + "sha256:7b12e7c3c6ab203a29e157335e9122cb03de9ab7264b137594103fd4a683b374", + "sha256:e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7" ], "markers": "python_version >= '3.5'", - "version": "==5.0.9" + "version": "==5.1.0" }, "defusedxml": { "hashes": [ @@ -667,11 +599,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:0645585859e9a6689c523927a5032f2ba5919f1f7d0e84bd4533312320de1ff9", - "sha256:51c6635429c77cf1ae634c997ff9e53ca3438b495f10a55ba28594dd69764a8b" + "sha256:b618b6d2d5ffa2f16add5697cf57a46c76a56229b0ed1c438322e4e95645bd15", + "sha256:f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1" ], - "markers": "python_version < '3.8'", - "version": "==4.6.3" + "markers": "python_version >= '3.6'", + "version": "==4.8.1" }, "iniconfig": { "hashes": [ @@ -682,19 +614,19 @@ }, "ipykernel": { "hashes": [ - "sha256:0df34a78c7e1422800d6078cde65ccdcdb859597046c338c759db4dbc535c58f", - "sha256:9f9f41a14caf2fde2b7802446adf83885afcbf50585a46d6c687292599a3c3af" + "sha256:a3f6c2dda2ecf63b37446808a70ed825fea04790779ca524889c596deae0def8", + "sha256:df3355e5eec23126bc89767a676c5f0abfc7f4c3497d118c592b83b316e8c0cd" ], "markers": "python_version >= '3.7'", - "version": "==6.0.3" + "version": "==6.4.1" }, "ipython": { "hashes": [ - "sha256:0cff04bb042800129348701f7bd68a430a844e8fb193979c08f6c99f28bb735e", - "sha256:892743b65c21ed72b806a3a602cca408520b3200b89d1924f4b3d2cdb3692362" + "sha256:2097be5c814d1b974aea57673176a924c4c8c9583890e7a5f082f547b9975b11", + "sha256:f16148f9163e1e526f1008d7c8d966d9c15600ca20d1a754287cf96d00ba6f1d" ], "markers": "python_version >= '3.7'", - "version": "==7.26.0" + "version": "==7.28.0" }, "ipython-genutils": { "hashes": [ @@ -729,11 +661,11 @@ }, "jinja2": { "hashes": [ - "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4", - "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4" + "sha256:827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45", + "sha256:8569982d3f0889eed11dd620c706d39b60c36d6d25843961f33f77fb6bc6b20c" ], "markers": "python_version >= '3.6'", - "version": "==3.0.1" + "version": "==3.0.2" }, "json5": { "hashes": [ @@ -744,42 +676,43 @@ }, "jsonschema": { "hashes": [ - "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163", - "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a" + "sha256:2b3cca28580511d44326f0e7fc582eab3cbe31aabd1a1c2cfa74a399796ffd84", + "sha256:9dd7c33b4a96138dc37bb86b3610d3b12d30d96433d4d73435ca3025804154a8" ], - "version": "==3.2.0" + "markers": "python_version >= '3.7'", + "version": "==4.1.0" }, "jupyter-client": { "hashes": [ - "sha256:c4bca1d0846186ca8be97f4d2fa6d2bae889cce4892a167ffa1ba6bd1f73e782", - "sha256:e053a2c44b6fa597feebe2b3ecb5eea3e03d1d91cc94351a52931ee1426aecfc" + "sha256:074bdeb1ffaef4a3095468ee16313938cfdc48fc65ca95cc18980b956c2e5d79", + "sha256:8b6e06000eb9399775e0a55c52df6c1be4766666209c22f90c2691ded0e338dc" ], - "markers": "python_version >= '3.5'", - "version": "==6.1.12" + "markers": "python_full_version >= '3.6.1'", + "version": "==7.0.6" }, "jupyter-core": { "hashes": [ - "sha256:79025cb3225efcd36847d0840f3fc672c0abd7afd0de83ba8a1d3837619122b4", - "sha256:8c6c0cac5c1b563622ad49321d5ec47017bd18b94facb381c6973a0486395f8e" + "sha256:8dd262ec8afae95bd512518eb003bc546b76adbf34bf99410e9accdf4be9aa3a", + "sha256:ef210dcb4fca04de07f2ead4adf408776aca94d17151d6f750ad6ded0b91ea16" ], "markers": "python_version >= '3.6'", - "version": "==4.7.1" + "version": "==4.8.1" }, "jupyter-server": { "hashes": [ - "sha256:491c920013144a2d6f5286ab4038df6a081b32352c9c8b928ec8af17eb2a5e10", - "sha256:d3a3b68ebc6d7bfee1097f1712cf7709ee39c92379da2cc08724515bb85e72bf" + "sha256:618aba127b1ff35f50e274b6055dfeff006a6008e94d4e9511c251a2d99131e5", + "sha256:ab7ab1cc38512f15026cbcbb96300fb46ec8b24aa162263d9edd00e0a749b1e8" ], "markers": "python_version >= '3.6'", - "version": "==1.10.2" + "version": "==1.11.1" }, "jupyterlab": { "hashes": [ - "sha256:82b5ea0f4bd500ff2a6aa27304a206007d7bbe8bc2bc5c685014d72462c985da", - "sha256:b8ab11e2d6c467674f6e7c779c08cd6d33759bccda50dcf1f0b96ac3e4e6ed6d" + "sha256:b5e926ea21f4ab4be6c0ee2a5033e23b9213351db964990918a9bc9187548fa3", + "sha256:cee7f8a801d386e2bfa18dbff7bb5ebd6959274d35d883ef47dbf7b854b4c5e7" ], "index": "pypi", - "version": "==3.1.4" + "version": "==4.0.0a13" }, "jupyterlab-pygments": { "hashes": [ @@ -790,19 +723,19 @@ }, "jupyterlab-server": { "hashes": [ - "sha256:244c815578c2fdcd341f01635e77d9f112efcbc92ba299e8c6243f870c84c609", - "sha256:31457ef564febc42043bc539356c804f6f9144f602e2852150bf0820ed6d7e18" + "sha256:26d813c8162c83d466df7d155865987dabe70aa452f9187dfb79fd88afc8fa0b", + "sha256:9507f059ddb3d088674ed76fd3d751cedd940f8a74055e2250bf44babcc2ea1f" ], "markers": "python_version >= '3.6'", - "version": "==2.7.0" + "version": "==2.8.2" }, "keyring": { "hashes": [ - "sha256:045703609dd3fccfcdb27da201684278823b72af515aedec1a8515719a038cb8", - "sha256:8f607d7d1cc502c43a932a275a56fe47db50271904513a379d39df1af277ac48" + "sha256:6334aee6073db2fb1f30892697b1730105b5e9a77ce7e61fca6b435225493efe", + "sha256:bd2145a237ed70c8ce72978b497619ddfcae640b6dcf494402d5143e37755c6e" ], "markers": "python_version >= '3.6'", - "version": "==23.0.1" + "version": "==23.2.1" }, "lazy-object-proxy": { "hashes": [ @@ -839,30 +772,50 @@ "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b", "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567", "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff", + "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724", "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74", + "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646", "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35", + "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6", + "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6", + "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad", "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26", + "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38", + "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac", "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7", + "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6", "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75", "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f", "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135", "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8", + "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a", "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a", + "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9", + "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864", "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914", "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18", "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8", "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2", "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d", + "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b", "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b", "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f", "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb", "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833", + "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28", "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415", "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902", + "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d", "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9", "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d", + "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145", "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066", + "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c", + "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1", "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f", + "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53", + "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134", + "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85", "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5", "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94", "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509", @@ -874,11 +827,11 @@ }, "matplotlib-inline": { "hashes": [ - "sha256:5cf1176f554abb4fa98cb362aa2b55c500147e4bdbb07e3fda359143e1da0811", - "sha256:f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e" + "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee", + "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c" ], "markers": "python_version >= '3.5'", - "version": "==0.1.2" + "version": "==0.1.3" }, "mccabe": { "hashes": [ @@ -932,27 +885,27 @@ }, "nbclassic": { "hashes": [ - "sha256:a7437c90a0bffcce172a4540cc53e140ea5987280c87c31a0cfa6e5d315eb907", - "sha256:f920f8d09849bea7950e1017ff3bd101763a8d68f565a51ce053572e65aa7947" + "sha256:57936a39410a18261442ca3b298421f859c9012272b87bf55e17b5507f052f4d", + "sha256:863462bf6a6e0e5e502dcc479ce2ea1edf60437c969f1850d0c0823dba0c39b7" ], "markers": "python_version >= '3.6'", - "version": "==0.3.1" + "version": "==0.3.2" }, "nbclient": { "hashes": [ - "sha256:db17271330c68c8c88d46d72349e24c147bb6f34ec82d8481a8f025c4d26589c", - "sha256:e79437364a2376892b3f46bedbf9b444e5396cfb1bc366a472c37b48e9551500" + "sha256:6c8ad36a28edad4562580847f9f1636fe5316a51a323ed85a24a4ad37d4aefce", + "sha256:95a300c6fbe73721736cf13972a46d8d666f78794b832866ed7197a504269e11" ], "markers": "python_full_version >= '3.6.1'", - "version": "==0.5.3" + "version": "==0.5.4" }, "nbconvert": { "hashes": [ - "sha256:37cd92ff2ae6a268e62075ff8b16129e0be4939c4dfcee53dc77cc8a7e06c684", - "sha256:d22a8ff202644d31db254d24d52c3a96c82156623fcd7c7f987bba2612303ec9" + "sha256:16ceecd0afaa8fd26c245fa32e2c52066c02f13aa73387fffafd84750baea863", + "sha256:b1b9dc4f1ff6cafae0e6d91f42fb9046fdc32e6beb6d7e2fa2cd7191ad535240" ], "markers": "python_version >= '3.7'", - "version": "==6.1.0" + "version": "==6.2.0" }, "nbformat": { "hashes": [ @@ -972,11 +925,11 @@ }, "notebook": { "hashes": [ - "sha256:b50eafa8208d5db966efd1caa4076b4dfc51815e02a805b32ecd717e9e6cc071", - "sha256:e6b6dfed36b00cf950f63c0d42e947c101d4258aec21624de62b9e0c11ed5c0d" + "sha256:26b0095c568e307a310fd78818ad8ebade4f00462dada4c0e34cbad632b9085d", + "sha256:33488bdcc5cbef23c3cfa12cd51b0b5459a211945b5053d17405980611818149" ], "markers": "python_version >= '3.6'", - "version": "==6.4.3" + "version": "==6.4.4" }, "packaging": { "hashes": [ @@ -988,9 +941,11 @@ }, "pandocfilters": { "hashes": [ - "sha256:bc63fbb50534b4b1f8ebe1860889289e8af94a23bff7445259592df25a3906eb" + "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38", + "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f" ], - "version": "==1.4.3" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.5.0" }, "parso": { "hashes": [ @@ -1029,13 +984,21 @@ ], "version": "==1.7.1" }, + "platformdirs": { + "hashes": [ + "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2", + "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d" + ], + "markers": "python_version >= '3.6'", + "version": "==2.4.0" + }, "pluggy": { "hashes": [ - "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", - "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" + "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", + "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==0.13.1" + "markers": "python_version >= '3.6'", + "version": "==1.0.0" }, "prometheus-client": { "hashes": [ @@ -1047,11 +1010,11 @@ }, "prompt-toolkit": { "hashes": [ - "sha256:08360ee3a3148bdb5163621709ee322ec34fc4375099afa4bbf751e9b7b7fa4f", - "sha256:7089d8d2938043508aa9420ec18ce0922885304cddae87fb96eebca942299f88" + "sha256:6076e46efae19b1e0ca1ec003ed37a933dc94b4d20f486235d436e64771dcd5c", + "sha256:eb71d5a6b72ce6db177af4a7d4d7085b99756bf656d98ffcc4fecd36850eea6c" ], - "markers": "python_full_version >= '3.6.1'", - "version": "==3.0.19" + "markers": "python_full_version >= '3.6.2'", + "version": "==3.0.20" }, "ptyprocess": { "hashes": [ @@ -1103,27 +1066,27 @@ }, "pygments": { "hashes": [ - "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f", - "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e" + "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380", + "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6" ], "markers": "python_version >= '3.5'", - "version": "==2.9.0" + "version": "==2.10.0" }, "pylint": { "hashes": [ - "sha256:2e1a0eb2e8ab41d6b5dbada87f066492bb1557b12b76c47c2ee8aa8a11186594", - "sha256:8b838c8983ee1904b2de66cce9d0b96649a91901350e956d78f289c3bc87b48e" + "sha256:349b149e88e4357ed4f77ac3a4e61c0ab965cda293b6f4e58caf73d4b24ae551", + "sha256:adc11bec00c2084bf55c81dd69e26f2793fef757547997d44b21aed038f74403" ], "index": "pypi", - "version": "==2.9.6" + "version": "==3.0.0a4" }, "pyparsing": { "hashes": [ - "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", - "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" + "sha256:10fb0827f908440eda768ec659627c3ac5dc20a25b4adaf50e7e10b248c17a4f", + "sha256:f72f2294ef53f917d984093e8ac8ed5818837516132e68c67b7fdd5350c8dabf" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.4.7" + "markers": "python_version >= '3.6'", + "version": "==3.0.0rc2" }, "pyrsistent": { "hashes": [ @@ -1154,11 +1117,11 @@ }, "pytest": { "hashes": [ - "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b", - "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890" + "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89", + "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134" ], "index": "pypi", - "version": "==6.2.4" + "version": "==6.2.5" }, "pytest-asyncio": { "hashes": [ @@ -1170,11 +1133,11 @@ }, "pytest-cov": { "hashes": [ - "sha256:261bb9e47e65bd099c89c3edf92972865210c36813f80ede5277dceb77a4a62a", - "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7" + "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6", + "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470" ], "index": "pypi", - "version": "==2.12.1" + "version": "==3.0.0" }, "python-dateutil": { "hashes": [ @@ -1186,98 +1149,106 @@ }, "pytz": { "hashes": [ - "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da", - "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798" + "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c", + "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326" ], - "version": "==2021.1" + "version": "==2021.3" }, "pyzmq": { "hashes": [ - "sha256:021e22a8c58ab294bd4b96448a2ca4e716e1d76600192ff84c33d71edb1fbd37", - "sha256:0471d634c7fe48ff7d3849798da6c16afc71676dd890b5ae08eb1efe735c6fec", - "sha256:0d17bac19e934e9f547a8811b7c2a32651a7840f38086b924e2e3dcb2fae5c3a", - "sha256:200ac096cee5499964c90687306a7244b79ef891f773ed4cf15019fd1f3df330", - "sha256:240b83b3a8175b2f616f80092cbb019fcd5c18598f78ffc6aa0ae9034b300f14", - "sha256:246f27b88722cfa729bb04881e94484e40b085720d728c1b05133b3f331b0b7b", - "sha256:2534a036b777f957bd6b89b55fb2136775ca2659fb0f1c85036ba78d17d86fd5", - "sha256:262f470e7acde18b7217aac78d19d2e29ced91a5afbeb7d98521ebf26461aa7e", - "sha256:2dd3896b3c952cf6c8013deda53c1df16bf962f355b5503d23521e0f6403ae3d", - "sha256:31c5dfb6df5148789835128768c01bf6402eb753d06f524f12f6786caf96fb44", - "sha256:4842a8263cbaba6fce401bbe4e2b125321c401a01714e42624dabc554bfc2629", - "sha256:50d007d5702171bc810c1e74498fa2c7bc5b50f9750697f7fd2a3e71a25aad91", - "sha256:5933d1f4087de6e52906f72d92e1e4dcc630d371860b92c55d7f7a4b815a664c", - "sha256:620b0abb813958cb3ecb5144c177e26cde92fee6f43c4b9de6b329515532bf27", - "sha256:631f932fb1fa4b76f31adf976f8056519bc6208a3c24c184581c3dd5be15066e", - "sha256:66375a6094af72a6098ed4403b15b4db6bf00013c6febc1baa832e7abda827f4", - "sha256:6a5b4566f66d953601d0d47d4071897f550a265bafd52ebcad5ac7aad3838cbb", - "sha256:6d18c76676771fd891ca8e0e68da0bbfb88e30129835c0ade748016adb3b6242", - "sha256:6e9c030222893afa86881d7485d3e841969760a16004bd23e9a83cca28b42778", - "sha256:89200ab6ef9081c72a04ed84c52a50b60dcb0655375aeedb40689bc7c934715e", - "sha256:93705cb90baa9d6f75e8448861a1efd3329006f79095ab18846bd1eaa342f7c3", - "sha256:a649065413ba4eab92a783a7caa4de8ce14cf46ba8a2a09951426143f1298adb", - "sha256:ac4497e4b7d134ee53ce5532d9cc3b640d6e71806a55062984e0c99a2f88f465", - "sha256:b2c16d20bd0aef8e57bc9505fdd80ea0d6008020c3740accd96acf1b3d1b5347", - "sha256:b3f57bee62e36be5c97712de32237c5589caee0d1154c2ad01a888accfae20bc", - "sha256:b4428302c389fffc0c9c07a78cad5376636b9d096f332acfe66b321ae9ff2c63", - "sha256:b4a51c7d906dc263a0cc5590761e53e0a68f2c2fefe549cbef21c9ee5d2d98a4", - "sha256:b921758f8b5098faa85f341bbdd5e36d5339de5e9032ca2b07d8c8e7bec5069b", - "sha256:c1b6619ceb33a8907f1cb82ff8afc8a133e7a5f16df29528e919734718600426", - "sha256:c9cb0bd3a3cb7ccad3caa1d7b0d18ba71ed3a4a3610028e506a4084371d4d223", - "sha256:d60a407663b7c2af781ab7f49d94a3d379dd148bb69ea8d9dd5bc69adf18097c", - "sha256:da7f7f3bb08bcf59a6b60b4e53dd8f08bb00c9e61045319d825a906dbb3c8fb7", - "sha256:e66025b64c4724ba683d6d4a4e5ee23de12fe9ae683908f0c7f0f91b4a2fd94e", - "sha256:ed67df4eaa99a20d162d76655bda23160abdf8abf82a17f41dfd3962e608dbcc", - "sha256:f520e9fee5d7a2e09b051d924f85b977c6b4e224e56c0551c3c241bbeeb0ad8d", - "sha256:f5c84c5de9a773bbf8b22c51e28380999ea72e5e85b4db8edf5e69a7a0d4d9f9", - "sha256:ff345d48940c834168f81fa1d4724675099f148f1ab6369748c4d712ed71bf7c" + "sha256:0ca6cd58f62a2751728016d40082008d3b3412a7f28ddfb4a2f0d3c130f69e74", + "sha256:1621e7a2af72cced1f6ec8ca8ca91d0f76ac236ab2e8828ac8fe909512d566cb", + "sha256:18cd854b423fce44951c3a4d3e686bac8f1243d954f579e120a1714096637cc0", + "sha256:2841997a0d85b998cbafecb4183caf51fd19c4357075dfd33eb7efea57e4c149", + "sha256:2b97502c16a5ec611cd52410bdfaab264997c627a46b0f98d3f666227fd1ea2d", + "sha256:3a4c9886d61d386b2b493377d980f502186cd71d501fffdba52bd2a0880cef4f", + "sha256:3c1895c95be92600233e476fe283f042e71cf8f0b938aabf21b7aafa62a8dac9", + "sha256:42abddebe2c6a35180ca549fadc7228d23c1e1f76167c5ebc8a936b5804ea2df", + "sha256:480b9931bfb08bf8b094edd4836271d4d6b44150da051547d8c7113bf947a8b0", + "sha256:67db33bea0a29d03e6eeec55a8190e033318cee3cbc732ba8fd939617cbf762d", + "sha256:6b217b8f9dfb6628f74b94bdaf9f7408708cb02167d644edca33f38746ca12dd", + "sha256:7661fc1d5cb73481cf710a1418a4e1e301ed7d5d924f91c67ba84b2a1b89defd", + "sha256:76c532fd68b93998aab92356be280deec5de8f8fe59cd28763d2cc8a58747b7f", + "sha256:79244b9e97948eaf38695f4b8e6fc63b14b78cc37f403c6642ba555517ac1268", + "sha256:7c58f598d9fcc52772b89a92d72bf8829c12d09746a6d2c724c5b30076c1f11d", + "sha256:7dc09198e4073e6015d9a8ea093fc348d4e59de49382476940c3dd9ae156fba8", + "sha256:80e043a89c6cadefd3a0712f8a1322038e819ebe9dbac7eca3bce1721bcb63bf", + "sha256:851977788b9caa8ed011f5f643d3ee8653af02c5fc723fa350db5125abf2be7b", + "sha256:8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c", + "sha256:954e73c9cd4d6ae319f1c936ad159072b6d356a92dcbbabfd6e6204b9a79d356", + "sha256:ab888624ed68930442a3f3b0b921ad7439c51ba122dbc8c386e6487a658e4a4e", + "sha256:acebba1a23fb9d72b42471c3771b6f2f18dcd46df77482612054bd45c07dfa36", + "sha256:b4ebed0977f92320f6686c96e9e8dd29eed199eb8d066936bac991afc37cbb70", + "sha256:be4e0f229cf3a71f9ecd633566bd6f80d9fa6afaaff5489492be63fe459ef98c", + "sha256:c0f84360dcca3481e8674393bdf931f9f10470988f87311b19d23cda869bb6b7", + "sha256:c1e41b32d6f7f9c26bc731a8b529ff592f31fc8b6ef2be9fa74abd05c8a342d7", + "sha256:cf98fd7a6c8aaa08dbc699ffae33fd71175696d78028281bc7b832b26f00ca57", + "sha256:d072f7dfbdb184f0786d63bda26e8a0882041b1e393fbe98940395f7fab4c5e2", + "sha256:d3dcb5548ead4f1123851a5ced467791f6986d68c656bc63bfff1bf9e36671e2", + "sha256:d6157793719de168b199194f6b6173f0ccd3bf3499e6870fac17086072e39115", + "sha256:d728b08448e5ac3e4d886b165385a262883c34b84a7fe1166277fe675e1c197a", + "sha256:de8df0684398bd74ad160afdc2a118ca28384ac6f5e234eb0508858d8d2d9364", + "sha256:e6a02cf7271ee94674a44f4e62aa061d2d049001c844657740e156596298b70b", + "sha256:ea12133df25e3a6918718fbb9a510c6ee5d3fdd5a346320421aac3882f4feeea", + "sha256:f43b4a2e6218371dd4f41e547bd919ceeb6ebf4abf31a7a0669cd11cd91ea973", + "sha256:f762442bab706fd874064ca218b33a1d8e40d4938e96c24dafd9b12e28017f45", + "sha256:f89468059ebc519a7acde1ee50b779019535db8dcf9b8c162ef669257fef7a93" ], "markers": "python_version >= '3.6'", - "version": "==22.2.1" + "version": "==22.3.0" }, "readme-renderer": { "hashes": [ - "sha256:63b4075c6698fcfa78e584930f07f39e05d46f3ec97f65006e430b595ca6348c", - "sha256:92fd5ac2bf8677f310f3303aa4bce5b9d5f9f2094ab98c29f13791d7b805a3db" + "sha256:3286806450d9961d6e3b5f8a59f77e61503799aca5155c8d8d40359b4e1e1adc", + "sha256:8299700d7a910c304072a7601eafada6712a5b011a20139417e1b1e9f04645d8" ], - "version": "==29.0" + "version": "==30.0" }, "regex": { "hashes": [ - "sha256:026beb631097a4a3def7299aa5825e05e057de3c6d72b139c37813bfa351274b", - "sha256:14caacd1853e40103f59571f169704367e79fb78fac3d6d09ac84d9197cadd16", - "sha256:16d9eaa8c7e91537516c20da37db975f09ac2e7772a0694b245076c6d68f85da", - "sha256:18fdc51458abc0a974822333bd3a932d4e06ba2a3243e9a1da305668bd62ec6d", - "sha256:28e8af338240b6f39713a34e337c3813047896ace09d51593d6907c66c0708ba", - "sha256:3835de96524a7b6869a6c710b26c90e94558c31006e96ca3cf6af6751b27dca1", - "sha256:3905c86cc4ab6d71635d6419a6f8d972cab7c634539bba6053c47354fd04452c", - "sha256:3c09d88a07483231119f5017904db8f60ad67906efac3f1baa31b9b7f7cca281", - "sha256:4551728b767f35f86b8e5ec19a363df87450c7376d7419c3cac5b9ceb4bce576", - "sha256:459bbe342c5b2dec5c5223e7c363f291558bc27982ef39ffd6569e8c082bdc83", - "sha256:4f421e3cdd3a273bace013751c345f4ebeef08f05e8c10757533ada360b51a39", - "sha256:577737ec3d4c195c4aef01b757905779a9e9aee608fa1cf0aec16b5576c893d3", - "sha256:57fece29f7cc55d882fe282d9de52f2f522bb85290555b49394102f3621751ee", - "sha256:7976d410e42be9ae7458c1816a416218364e06e162b82e42f7060737e711d9ce", - "sha256:85f568892422a0e96235eb8ea6c5a41c8ccbf55576a2260c0160800dbd7c4f20", - "sha256:8764a78c5464ac6bde91a8c87dd718c27c1cabb7ed2b4beaf36d3e8e390567f9", - "sha256:8935937dad2c9b369c3d932b0edbc52a62647c2afb2fafc0c280f14a8bf56a6a", - "sha256:8fe58d9f6e3d1abf690174fd75800fda9bdc23d2a287e77758dc0e8567e38ce6", - "sha256:937b20955806381e08e54bd9d71f83276d1f883264808521b70b33d98e4dec5d", - "sha256:9569da9e78f0947b249370cb8fadf1015a193c359e7e442ac9ecc585d937f08d", - "sha256:a3b73390511edd2db2d34ff09aa0b2c08be974c71b4c0505b4a048d5dc128c2b", - "sha256:a4eddbe2a715b2dd3849afbdeacf1cc283160b24e09baf64fa5675f51940419d", - "sha256:a5c6dbe09aff091adfa8c7cfc1a0e83fdb8021ddb2c183512775a14f1435fe16", - "sha256:b63e3571b24a7959017573b6455e05b675050bbbea69408f35f3cb984ec54363", - "sha256:bb350eb1060591d8e89d6bac4713d41006cd4d479f5e11db334a48ff8999512f", - "sha256:bf6d987edd4a44dd2fa2723fca2790f9442ae4de2c8438e53fcb1befdf5d823a", - "sha256:bfa6a679410b394600eafd16336b2ce8de43e9b13f7fb9247d84ef5ad2b45e91", - "sha256:c856ec9b42e5af4fe2d8e75970fcc3a2c15925cbcc6e7a9bcb44583b10b95e80", - "sha256:cea56288eeda8b7511d507bbe7790d89ae7049daa5f51ae31a35ae3c05408531", - "sha256:ea212df6e5d3f60341aef46401d32fcfded85593af1d82b8b4a7a68cd67fdd6b", - "sha256:f35567470ee6dbfb946f069ed5f5615b40edcbb5f1e6e1d3d2b114468d505fc6", - "sha256:fbc20975eee093efa2071de80df7f972b7b35e560b213aafabcec7c0bd00bd8c", - "sha256:ff4a8ad9638b7ca52313d8732f37ecd5fd3c8e3aff10a8ccb93176fd5b3812f6" - ], - "version": "==2021.8.3" + "sha256:09e1031e2059abd91177c302da392a7b6859ceda038be9e015b522a182c89e4f", + "sha256:176796cb7f82a7098b0c436d6daac82f57b9101bb17b8e8119c36eecf06a60a3", + "sha256:1abbd95cbe9e2467cac65c77b6abd9223df717c7ae91a628502de67c73bf6838", + "sha256:1ce02f420a7ec3b2480fe6746d756530f69769292eca363218c2291d0b116a01", + "sha256:1f51926db492440e66c89cd2be042f2396cf91e5b05383acd7372b8cb7da373f", + "sha256:26895d7c9bbda5c52b3635ce5991caa90fbb1ddfac9c9ff1c7ce505e2282fb2a", + "sha256:2efd47704bbb016136fe34dfb74c805b1ef5c7313aef3ce6dcb5ff844299f432", + "sha256:36c98b013273e9da5790ff6002ab326e3f81072b4616fd95f06c8fa733d2745f", + "sha256:39079ebf54156be6e6902f5c70c078f453350616cfe7bfd2dd15bdb3eac20ccc", + "sha256:3d52c5e089edbdb6083391faffbe70329b804652a53c2fdca3533e99ab0580d9", + "sha256:45cb0f7ff782ef51bc79e227a87e4e8f24bc68192f8de4f18aae60b1d60bc152", + "sha256:4786dae85c1f0624ac77cb3813ed99267c9adb72e59fdc7297e1cf4d6036d493", + "sha256:51feefd58ac38eb91a21921b047da8644155e5678e9066af7bcb30ee0dca7361", + "sha256:55ef044899706c10bc0aa052f2fc2e58551e2510694d6aae13f37c50f3f6ff61", + "sha256:5e5796d2f36d3c48875514c5cd9e4325a1ca172fc6c78b469faa8ddd3d770593", + "sha256:5f199419a81c1016e0560c39773c12f0bd924c37715bffc64b97140d2c314354", + "sha256:5f55c4804797ef7381518e683249310f7f9646da271b71cb6b3552416c7894ee", + "sha256:74e55f8d66f1b41d44bc44c891bcf2c7fad252f8f323ee86fba99d71fd1ad5e3", + "sha256:7f125fce0a0ae4fd5c3388d369d7a7d78f185f904c90dd235f7ecf8fe13fa741", + "sha256:82cfb97a36b1a53de32b642482c6c46b6ce80803854445e19bc49993655ebf3b", + "sha256:88dc3c1acd3f0ecfde5f95c32fcb9beda709dbdf5012acdcf66acbc4794468eb", + "sha256:924079d5590979c0e961681507eb1773a142553564ccae18d36f1de7324e71ca", + "sha256:973499dac63625a5ef9dfa4c791aa33a502ddb7615d992bdc89cf2cc2285daa3", + "sha256:981c786293a3115bc14c103086ae54e5ee50ca57f4c02ce7cf1b60318d1e8072", + "sha256:9c070d5895ac6aeb665bd3cd79f673775caf8d33a0b569e98ac434617ecea57d", + "sha256:9e3e2cea8f1993f476a6833ef157f5d9e8c75a59a8d8b0395a9a6887a097243b", + "sha256:9e527ab1c4c7cf2643d93406c04e1d289a9d12966529381ce8163c4d2abe4faf", + "sha256:a37305eb3199d8f0d8125ec2fb143ba94ff6d6d92554c4b8d4a8435795a6eccd", + "sha256:aa0ab3530a279a3b7f50f852f1bab41bc304f098350b03e30a3876b7dd89840e", + "sha256:b04e512eb628ea82ed86eb31c0f7fc6842b46bf2601b66b1356a7008327f7700", + "sha256:b09d3904bf312d11308d9a2867427479d277365b1617e48ad09696fa7dfcdf59", + "sha256:b8b6ee6555b6fbae578f1468b3f685cdfe7940a65675611365a7ea1f8d724991", + "sha256:b9b5c215f3870aa9b011c00daeb7be7e1ae4ecd628e9beb6d7e6107e07d81287", + "sha256:c6569ba7b948c3d61d27f04e2b08ebee24fec9ff8e9ea154d8d1e975b175bfa7", + "sha256:e4204708fa116dd03436a337e8e84261bc8051d058221ec63535c9403a1582a1", + "sha256:ea8de658d7db5987b11097445f2b1f134400e2232cb40e614e5f7b6f5428710e", + "sha256:f540f153c4f5617bc4ba6433534f8916d96366a08797cbbe4132c37b70403e92", + "sha256:fab3ab8aedfb443abb36729410403f0fe7f60ad860c19a979d47fb3eb98ef820", + "sha256:fb2baff66b7d2267e07ef71e17d01283b55b3cc51a81b54cc385e721ae172ba4", + "sha256:fe6ce4f3d3c48f9f402da1ceb571548133d3322003ce01b20d960a82251695d2", + "sha256:ff24897f6b2001c38a805d53b6ae72267025878d35ea225aa24675fbff2dba7f" + ], + "version": "==2021.10.8" }, "requests": { "hashes": [ @@ -1313,10 +1284,10 @@ }, "rope": { "hashes": [ - "sha256:64e6d747532e1f5c8009ec5aae3e5523a5bcedf516f39a750d57d8ed749d90da" + "sha256:505a2f6b4ac7b18e0429be179f4d8712243a194da5c866b0731f9d91ce7590bb" ], "index": "pypi", - "version": "==0.19.0" + "version": "==0.20.1" }, "secretstorage": { "hashes": [ @@ -1328,10 +1299,11 @@ }, "send2trash": { "hashes": [ - "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d", - "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08" + "sha256:56215329f48b4b147d93719fe901d7de84cae0048cad6e6c31e6d593d9f2dcbb", + "sha256:9c9f667f7211232dda8add62116e835304c8015210cbd8612847aaf19875a487" ], - "version": "==1.8.0" + "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": [ @@ -1358,11 +1330,11 @@ }, "sphinx": { "hashes": [ - "sha256:3092d929cd807926d846018f2ace47ba2f3b671b309c7a89cd3306e80c826b13", - "sha256:46d52c6cee13fec44744b8c01ed692c18a640f6910a725cbb938bc36e8d64544" + "sha256:94078db9184491e15bce0a56d9186e0aec95f16ac20b12d00e06d4e36f1058a6", + "sha256:98a535c62a4fcfcc362528592f69b26f7caec587d32cd55688db580be0287ae0" ], "index": "pypi", - "version": "==4.1.2" + "version": "==4.2.0" }, "sphinxcontrib-applehelp": { "hashes": [ @@ -1414,18 +1386,18 @@ }, "sphinxemoji": { "hashes": [ - "sha256:3da5d1e33c0bc4fa9506420f02b73234868d10a1b243ee15ae2111f118a43f72" + "sha256:27861d1dd7c6570f5e63020dac9a687263f7481f6d5d6409eb31ecebcc804e4c" ], "index": "pypi", - "version": "==0.1.8" + "version": "==0.2.0" }, "terminado": { "hashes": [ - "sha256:89d5dac2f4e2b39758a0ff9a3b643707c95a020a6df36e70583b88297cd59cbe", - "sha256:c89ace5bffd0e7268bdcf22526830eb787fd146ff9d78691a0528386f92b9ae3" + "sha256:09fdde344324a1c9c6e610ee4ca165c4bb7f5bbf982fceeeb38998a988ef8452", + "sha256:b20fd93cc57c1678c799799d117874367cc07a3d2d55be95205b1a88fa08393f" ], "markers": "python_version >= '3.6'", - "version": "==0.10.1" + "version": "==0.12.1" }, "testpath": { "hashes": [ @@ -1500,19 +1472,19 @@ }, "tqdm": { "hashes": [ - "sha256:3642d483b558eec80d3c831e23953582c34d7e4540db86d9e5ed9dad238dabc6", - "sha256:706dea48ee05ba16e936ee91cb3791cd2ea6da348a0e50b46863ff4363ff4340" + "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.0" + "version": "==4.62.3" }, "traitlets": { "hashes": [ - "sha256:178f4ce988f69189f7e523337a3e11d91c786ded9360174a3d9ca83e79bc5396", - "sha256:69ff3f9d5351f31a7ad80443c2674b7099df13cc41fc5fa6e2f6d3b0330b0426" + "sha256:03f172516916220b58c9f19d7f854734136dd9528103d04e9bf139a92c9f54c4", + "sha256:bd382d7ea181fbbcce157c133db9a829ce06edffe097bcf3ab945b435452b46d" ], "markers": "python_version >= '3.7'", - "version": "==5.0.5" + "version": "==5.1.0" }, "twine": { "hashes": [ @@ -1522,66 +1494,30 @@ "index": "pypi", "version": "==3.4.2" }, - "typed-ast": { - "hashes": [ - "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace", - "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff", - "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266", - "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528", - "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6", - "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808", - "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4", - "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363", - "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341", - "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04", - "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41", - "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e", - "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3", - "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899", - "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805", - "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c", - "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c", - "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39", - "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a", - "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3", - "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7", - "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f", - "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075", - "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0", - "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40", - "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428", - "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927", - "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3", - "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f", - "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65" - ], - "markers": "python_version < '3.8' and implementation_name == 'cpython'", - "version": "==1.4.3" - }, "types-requests": { "hashes": [ - "sha256:a5a305b43ea57bf64d6731f89816946a405b591eff6de28d4c0fd58422cee779", - "sha256:e21541c0f55c066c491a639309159556dd8c5833e49fcde929c4c47bdb0002ee" + "sha256:4ec8b71da73e5344adb9bee725a74ec8598e7286f9bcb17500d627f259fe4fb9", + "sha256:543ba8b3b23e38ac028da1d163aecbbc27d3cc8f654ae64339da539a191a2b1c" ], "index": "pypi", - "version": "==2.25.6" + "version": "==2.25.9" }, "typing-extensions": { "hashes": [ - "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497", - "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342", - "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84" + "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e", + "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7", + "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34" ], "markers": "python_version < '3.8'", - "version": "==3.10.0.0" + "version": "==3.10.0.2" }, "urllib3": { "hashes": [ - "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4", - "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f" + "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece", + "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844" ], "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.6" + "version": "==1.26.7" }, "wcwidth": { "hashes": [ @@ -1599,11 +1535,11 @@ }, "websocket-client": { "hashes": [ - "sha256:7665ba6c645989b28b61670874ab753e6929179e9fc90565ace6ac090f59c559", - "sha256:d82a975bdd02216f7884cd18106a0d9896a9a9e8cc90f23fe8c81dc48da2f142" + "sha256:0133d2f784858e59959ce82ddac316634229da55b498aac311f1620567a710ec", + "sha256:8dfb715d8a992f5712fff8c843adae94e22b22a99b2c5e6b0ec4a1a981cc4e0d" ], "markers": "python_version >= '3.6'", - "version": "==1.2.0" + "version": "==1.2.1" }, "wrapt": { "hashes": [ @@ -1613,11 +1549,11 @@ }, "zipp": { "hashes": [ - "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3", - "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4" + "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832", + "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc" ], "markers": "python_version >= '3.6'", - "version": "==3.5.0" + "version": "==3.6.0" } } } diff --git a/pyserum/market/async_market.py b/pyserum/market/async_market.py index a67382d..c0d11f5 100644 --- a/pyserum/market/async_market.py +++ b/pyserum/market/async_market.py @@ -3,7 +3,7 @@ from typing import List -from solana.account import Account +from solana.keypair import Keypair from solana.publickey import PublicKey from solana.rpc.async_api import AsyncClient from solana.rpc.types import RPCResponse, TxOpts @@ -91,7 +91,7 @@ async def load_fills(self, limit=100) -> List[t.FilledOrder]: async def place_order( # pylint: disable=too-many-arguments,too-many-locals self, payer: PublicKey, - owner: Account, + owner: Keypair, order_type: OrderType, side: Side, limit_price: float, @@ -100,8 +100,8 @@ async def place_order( # pylint: disable=too-many-arguments,too-many-locals opts: TxOpts = TxOpts(), ) -> RPCResponse: # TODO: Add open_orders_address_key param and fee_discount_pubkey transaction = Transaction() - signers: List[Account] = [owner] - open_order_accounts = await self.find_open_orders_accounts_for_owner(owner.public_key()) + signers: List[Keypair] = [owner] + open_order_accounts = await self.find_open_orders_accounts_for_owner(owner.public_key) if open_order_accounts: place_order_open_order_account = open_order_accounts[0].address else: @@ -128,24 +128,24 @@ async def place_order( # pylint: disable=too-many-arguments,too-many-locals return await self._conn.send_transaction(transaction, *signers, opts=opts) async def cancel_order_by_client_id( - self, owner: Account, open_orders_account: PublicKey, client_id: int, opts: TxOpts = TxOpts() + self, owner: Keypair, open_orders_account: PublicKey, client_id: int, opts: TxOpts = TxOpts() ) -> RPCResponse: txs = self._build_cancel_order_by_client_id_tx( owner=owner, open_orders_account=open_orders_account, client_id=client_id ) return await self._conn.send_transaction(txs, owner, opts=opts) - async def cancel_order(self, owner: Account, order: t.Order, opts: TxOpts = TxOpts()) -> RPCResponse: + async def cancel_order(self, owner: Keypair, order: t.Order, opts: TxOpts = TxOpts()) -> RPCResponse: txn = self._build_cancel_order_tx(owner=owner, order=order) return await self._conn.send_transaction(txn, owner, opts=opts) - async def match_orders(self, fee_payer: Account, limit: int, opts: TxOpts = TxOpts()) -> RPCResponse: + async def match_orders(self, fee_payer: Keypair, limit: int, opts: TxOpts = TxOpts()) -> RPCResponse: txn = self._build_match_orders_tx(limit) return await self._conn.send_transaction(txn, fee_payer, opts=opts) async def settle_funds( # pylint: disable=too-many-arguments self, - owner: Account, + owner: Keypair, open_orders: AsyncOpenOrdersAccount, base_wallet: PublicKey, quote_wallet: PublicKey, # TODO: add referrer_quote_wallet. diff --git a/pyserum/market/core.py b/pyserum/market/core.py index 5498ba1..d85efe0 100644 --- a/pyserum/market/core.py +++ b/pyserum/market/core.py @@ -5,7 +5,7 @@ import logging from typing import List, Union -from solana.account import Account +from solana.keypair import Keypair from solana.publickey import PublicKey from solana.rpc.types import RPCResponse from solana.system_program import CreateAccountParams, create_account @@ -115,14 +115,15 @@ def parse_fill_event(self, event: t.Event) -> t.FilledOrder: ) def _prepare_new_oo_account( - self, owner: Account, balance_needed: int, signers: List[Account], transaction: Transaction + self, owner: Keypair, balance_needed: int, signers: List[Keypair], transaction: Transaction ) -> PublicKey: - new_open_orders_account = Account() - place_order_open_order_account = new_open_orders_account.public_key() + # new_open_orders_account = Account() + new_open_orders_account = Keypair() + place_order_open_order_account = new_open_orders_account.public_key transaction.add( make_create_account_instruction( - owner_address=owner.public_key(), - new_account_address=new_open_orders_account.public_key(), + owner_address=owner.public_key, + new_account_address=new_open_orders_account.public_key, lamports=balance_needed, program_id=self.state.program_id(), ) @@ -134,10 +135,10 @@ def _prepare_order_transaction( # pylint: disable=too-many-arguments,too-many-l self, transaction: Transaction, payer: PublicKey, - owner: Account, + owner: Keypair, order_type: OrderType, side: Side, - signers: List[Account], + signers: List[Keypair], limit_price: float, max_quantity: float, client_id: int, @@ -145,7 +146,7 @@ def _prepare_order_transaction( # pylint: disable=too-many-arguments,too-many-l place_order_open_order_account: PublicKey, ) -> None: # unwrapped SOL cannot be used for payment - if payer == owner.public_key(): + if payer == owner.public_key: raise ValueError("Invalid payer account. Cannot use unwrapped SOL.") # TODO: add integration test for SOL wrapping. @@ -154,14 +155,15 @@ def _prepare_order_transaction( # pylint: disable=too-many-arguments,too-many-l ) if should_wrap_sol: - wrapped_sol_account = Account() - payer = wrapped_sol_account.public_key() + # wrapped_sol_account = Account() + wrapped_sol_account = Keypair() + payer = wrapped_sol_account.public_key signers.append(wrapped_sol_account) transaction.add( create_account( CreateAccountParams( - from_pubkey=owner.public_key(), - new_account_pubkey=wrapped_sol_account.public_key(), + from_pubkey=owner.public_key, + new_account_pubkey=wrapped_sol_account.public_key, lamports=self._get_lamport_need_for_sol_wrapping( limit_price, max_quantity, side, open_order_accounts ), @@ -173,9 +175,9 @@ def _prepare_order_transaction( # pylint: disable=too-many-arguments,too-many-l transaction.add( initialize_account( InitializeAccountParams( - account=wrapped_sol_account.public_key(), + account=wrapped_sol_account.public_key, mint=WRAPPED_SOL_MINT, - owner=owner.public_key(), + owner=owner.public_key, program_id=TOKEN_PROGRAM_ID, ) ) @@ -198,16 +200,16 @@ def _prepare_order_transaction( # pylint: disable=too-many-arguments,too-many-l transaction.add( close_account( CloseAccountParams( - account=wrapped_sol_account.public_key(), - owner=owner.public_key(), - dest=owner.public_key(), + account=wrapped_sol_account.public_key, + owner=owner.public_key, + dest=owner.public_key, program_id=TOKEN_PROGRAM_ID, ) ) ) def _after_oo_mbfre_resp( - self, mbfre_resp: RPCResponse, owner: Account, signers: List[Account], transaction: Transaction + self, mbfre_resp: RPCResponse, owner: Keypair, signers: List[Keypair], transaction: Transaction ) -> PublicKey: balance_needed = mbfre_resp["result"] place_order_open_order_account = self._prepare_new_oo_account(owner, balance_needed, signers, transaction) @@ -235,7 +237,7 @@ def _get_lamport_need_for_sol_wrapping( def make_place_order_instruction( # pylint: disable=too-many-arguments self, payer: PublicKey, - owner: Account, + owner: Keypair, order_type: OrderType, side: Side, limit_price: float, @@ -254,7 +256,7 @@ def make_place_order_instruction( # pylint: disable=too-many-arguments market=self.state.public_key(), open_orders=open_order_account, payer=payer, - owner=owner.public_key(), + owner=owner.public_key, request_queue=self.state.request_queue(), base_vault=self.state.base_vault(), quote_vault=self.state.quote_vault(), @@ -271,7 +273,7 @@ def make_place_order_instruction( # pylint: disable=too-many-arguments market=self.state.public_key(), open_orders=open_order_account, payer=payer, - owner=owner.public_key(), + owner=owner.public_key, request_queue=self.state.request_queue(), event_queue=self.state.event_queue(), bids=self.state.bids(), @@ -294,18 +296,18 @@ def make_place_order_instruction( # pylint: disable=too-many-arguments ) def _build_cancel_order_by_client_id_tx( - self, owner: Account, open_orders_account: PublicKey, client_id: int + self, owner: Keypair, open_orders_account: PublicKey, client_id: int ) -> Transaction: return Transaction().add(self.make_cancel_order_by_client_id_instruction(owner, open_orders_account, client_id)) def make_cancel_order_by_client_id_instruction( - self, owner: Account, open_orders_account: PublicKey, client_id: int + self, owner: Keypair, open_orders_account: PublicKey, client_id: int ) -> TransactionInstruction: if self._use_request_queue(): return instructions.cancel_order_by_client_id( instructions.CancelOrderByClientIDParams( market=self.state.public_key(), - owner=owner.public_key(), + owner=owner.public_key, open_orders=open_orders_account, request_queue=self.state.request_queue(), client_id=client_id, @@ -315,7 +317,7 @@ def make_cancel_order_by_client_id_instruction( return instructions.cancel_order_by_client_id_v2( instructions.CancelOrderByClientIDV2Params( market=self.state.public_key(), - owner=owner.public_key(), + owner=owner.public_key, open_orders=open_orders_account, bids=self.state.bids(), asks=self.state.asks(), @@ -325,8 +327,8 @@ def make_cancel_order_by_client_id_instruction( ) ) - def _build_cancel_order_tx(self, owner: Account, order: t.Order) -> Transaction: - return Transaction().add(self.make_cancel_order_instruction(owner.public_key(), order)) + def _build_cancel_order_tx(self, owner: Keypair, order: t.Order) -> Transaction: + return Transaction().add(self.make_cancel_order_instruction(owner.public_key, order)) def make_cancel_order_instruction(self, owner: PublicKey, order: t.Order) -> TransactionInstruction: if self._use_request_queue(): @@ -376,8 +378,8 @@ def make_match_orders_instruction(self, limit: int) -> TransactionInstruction: def _build_settle_funds_tx( # pylint: disable=too-many-arguments self, - owner: Account, - signers: List[Account], + owner: Keypair, + signers: List[Keypair], open_orders: Union[OpenOrdersAccount, AsyncOpenOrdersAccount], base_wallet: PublicKey, quote_wallet: PublicKey, # TODO: add referrer_quote_wallet. @@ -385,7 +387,7 @@ def _build_settle_funds_tx( # pylint: disable=too-many-arguments should_wrap_sol: bool, ) -> Transaction: # TODO: Handle wrapped sol accounts - if open_orders.owner != owner.public_key(): + if open_orders.owner != owner.public_key: raise Exception("Invalid open orders account") vault_signer = PublicKey.create_program_address( [bytes(self.state.public_key()), self.state.vault_signer_nonce().to_bytes(8, byteorder="little")], @@ -394,15 +396,15 @@ def _build_settle_funds_tx( # pylint: disable=too-many-arguments transaction = Transaction() if should_wrap_sol: - wrapped_sol_account = Account() + wrapped_sol_account = Keypair() signers.append(wrapped_sol_account) # make a wrapped SOL account with enough balance to # fund the trade, run the program, then send itself back home transaction.add( create_account( CreateAccountParams( - from_pubkey=owner.public_key(), - new_account_pubkey=wrapped_sol_account.public_key(), + from_pubkey=owner.public_key, + new_account_pubkey=wrapped_sol_account.public_key, lamports=min_bal_for_rent_exemption, space=ACCOUNT_LEN, program_id=TOKEN_PROGRAM_ID, @@ -413,9 +415,9 @@ def _build_settle_funds_tx( # pylint: disable=too-many-arguments transaction.add( initialize_account( InitializeAccountParams( - account=wrapped_sol_account.public_key(), + account=wrapped_sol_account.public_key, mint=WRAPPED_SOL_MINT, - owner=owner.public_key(), + owner=owner.public_key, program_id=TOKEN_PROGRAM_ID, ) ) @@ -424,8 +426,8 @@ def _build_settle_funds_tx( # pylint: disable=too-many-arguments transaction.add( self.make_settle_funds_instruction( open_orders, - base_wallet if self.state.base_mint() != WRAPPED_SOL_MINT else wrapped_sol_account.public_key(), - quote_wallet if self.state.quote_mint() != WRAPPED_SOL_MINT else wrapped_sol_account.public_key(), + base_wallet if self.state.base_mint() != WRAPPED_SOL_MINT else wrapped_sol_account.public_key, + quote_wallet if self.state.quote_mint() != WRAPPED_SOL_MINT else wrapped_sol_account.public_key, vault_signer, ) ) @@ -435,9 +437,9 @@ def _build_settle_funds_tx( # pylint: disable=too-many-arguments transaction.add( close_account( CloseAccountParams( - account=wrapped_sol_account.public_key(), - owner=owner.public_key(), - dest=owner.public_key(), + account=wrapped_sol_account.public_key, + owner=owner.public_key, + dest=owner.public_key, program_id=TOKEN_PROGRAM_ID, ) ) diff --git a/pyserum/market/market.py b/pyserum/market/market.py index 1a66ce0..b588924 100644 --- a/pyserum/market/market.py +++ b/pyserum/market/market.py @@ -3,7 +3,7 @@ from typing import List -from solana.account import Account +from solana.keypair import Keypair from solana.publickey import PublicKey from solana.rpc.api import Client from solana.rpc.types import RPCResponse, TxOpts @@ -91,7 +91,7 @@ def load_fills(self, limit=100) -> List[t.FilledOrder]: def place_order( # pylint: disable=too-many-arguments,too-many-locals self, payer: PublicKey, - owner: Account, + owner: Keypair, order_type: OrderType, side: Side, limit_price: float, @@ -100,8 +100,8 @@ def place_order( # pylint: disable=too-many-arguments,too-many-locals opts: TxOpts = TxOpts(), ) -> RPCResponse: # TODO: Add open_orders_address_key param and fee_discount_pubkey transaction = Transaction() - signers: List[Account] = [owner] - open_order_accounts = self.find_open_orders_accounts_for_owner(owner.public_key()) + signers: List[Keypair] = [owner] + open_order_accounts = self.find_open_orders_accounts_for_owner(owner.public_key) if open_order_accounts: place_order_open_order_account = open_order_accounts[0].address else: @@ -128,24 +128,24 @@ def place_order( # pylint: disable=too-many-arguments,too-many-locals return self._conn.send_transaction(transaction, *signers, opts=opts) def cancel_order_by_client_id( - self, owner: Account, open_orders_account: PublicKey, client_id: int, opts: TxOpts = TxOpts() + self, owner: Keypair, open_orders_account: PublicKey, client_id: int, opts: TxOpts = TxOpts() ) -> RPCResponse: txs = self._build_cancel_order_by_client_id_tx( owner=owner, open_orders_account=open_orders_account, client_id=client_id ) return self._conn.send_transaction(txs, owner, opts=opts) - def cancel_order(self, owner: Account, order: t.Order, opts: TxOpts = TxOpts()) -> RPCResponse: + def cancel_order(self, owner: Keypair, order: t.Order, opts: TxOpts = TxOpts()) -> RPCResponse: txn = self._build_cancel_order_tx(owner=owner, order=order) return self._conn.send_transaction(txn, owner, opts=opts) - def match_orders(self, fee_payer: Account, limit: int, opts: TxOpts = TxOpts()) -> RPCResponse: + def match_orders(self, fee_payer: Keypair, limit: int, opts: TxOpts = TxOpts()) -> RPCResponse: txn = self._build_match_orders_tx(limit) return self._conn.send_transaction(txn, fee_payer, opts=opts) def settle_funds( # pylint: disable=too-many-arguments self, - owner: Account, + owner: Keypair, open_orders: OpenOrdersAccount, base_wallet: PublicKey, quote_wallet: PublicKey, # TODO: add referrer_quote_wallet. @@ -166,4 +166,4 @@ def settle_funds( # pylint: disable=too-many-arguments min_bal_for_rent_exemption=min_bal_for_rent_exemption, should_wrap_sol=should_wrap_sol, ) - return self._conn.send_transaction(transaction, *signers, opts=opts) + return self._conn.send_transaction(transaction, owner, opts=opts) diff --git a/tests/conftest.py b/tests/conftest.py index 413ff27..f532d4d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,7 +2,7 @@ import asyncio import pytest -from solana.account import Account +from solana.keypair import Keypair from solana.publickey import PublicKey from solana.rpc.api import Client from solana.rpc.async_api import AsyncClient @@ -26,11 +26,12 @@ def __bs_params() -> Dict[str, str]: return params -def __bootstrap_account(pubkey: str, secretkey: str) -> Account: +def __bootstrap_account(pubkey: str, secretkey: str) -> Keypair: secret = [int(b) for b in secretkey[1:-1].split(" ")] - account = Account(secret) - assert str(account.public_key()) == pubkey, "account must map to provided public key" - return account + secret_bytes = bytes(secret) + keypair = Keypair.from_secret_key(secret_bytes) + assert str(keypair.public_key) == pubkey, "account must map to provided public key" + return keypair @pytest.mark.integration @@ -42,35 +43,35 @@ def stubbed_dex_program_pk(__bs_params) -> PublicKey: @pytest.mark.integration @pytest.fixture(scope="session") -def stubbed_payer(__bs_params) -> Account: +def stubbed_payer(__bs_params) -> Keypair: """Bootstrapped payer account.""" return __bootstrap_account(__bs_params["payer"], __bs_params["payer_secret"]) @pytest.mark.integration @pytest.fixture(scope="session") -def stubbed_base_mint(__bs_params) -> Account: +def stubbed_base_mint(__bs_params) -> Keypair: """Bootstrapped base mint account.""" return __bootstrap_account(__bs_params["coin_mint"], __bs_params["coin_mint_secret"]) @pytest.mark.integration @pytest.fixture(scope="session") -def stubbed_quote_mint(__bs_params) -> Account: +def stubbed_quote_mint(__bs_params) -> Keypair: """Bootstrapped quote mint account.""" return __bootstrap_account(__bs_params["pc_mint"], __bs_params["pc_mint_secret"]) @pytest.mark.integration @pytest.fixture(scope="session") -def stubbed_base_wallet(__bs_params) -> Account: +def stubbed_base_wallet(__bs_params) -> Keypair: """Bootstrapped base mint account.""" return __bootstrap_account(__bs_params["coin_wallet"], __bs_params["coin_wallet_secret"]) @pytest.mark.integration @pytest.fixture(scope="session") -def stubbed_quote_wallet(__bs_params) -> Account: +def stubbed_quote_wallet(__bs_params) -> Keypair: """Bootstrapped quote mint account.""" return __bootstrap_account(__bs_params["pc_wallet"], __bs_params["pc_wallet_secret"]) diff --git a/tests/integration/test_async_market.py b/tests/integration/test_async_market.py index aff09c9..34124e6 100644 --- a/tests/integration/test_async_market.py +++ b/tests/integration/test_async_market.py @@ -1,7 +1,7 @@ # pylint: disable=redefined-outer-name import pytest -from solana.account import Account +from solana.keypair import Keypair from solana.publickey import PublicKey from solana.rpc.async_api import AsyncClient from solana.rpc.types import TxOpts @@ -26,14 +26,14 @@ async def test_bootstrapped_market( bootstrapped_market: AsyncMarket, stubbed_market_pk: PublicKey, stubbed_dex_program_pk: PublicKey, - stubbed_base_mint: PublicKey, - stubbed_quote_mint: PublicKey, + stubbed_base_mint: Keypair, + stubbed_quote_mint: Keypair, ): assert isinstance(bootstrapped_market, AsyncMarket) assert bootstrapped_market.state.public_key() == stubbed_market_pk assert bootstrapped_market.state.program_id() == stubbed_dex_program_pk - assert bootstrapped_market.state.base_mint() == stubbed_base_mint.public_key() - assert bootstrapped_market.state.quote_mint() == stubbed_quote_mint.public_key() + assert bootstrapped_market.state.base_mint() == stubbed_base_mint.public_key + assert bootstrapped_market.state.quote_mint() == stubbed_quote_mint.public_key @pytest.mark.async_integration @@ -69,7 +69,7 @@ async def test_market_load_requests(bootstrapped_market: AsyncMarket): @pytest.mark.async_integration @pytest.mark.asyncio -async def test_match_order(bootstrapped_market: AsyncMarket, stubbed_payer: Account): +async def test_match_order(bootstrapped_market: AsyncMarket, stubbed_payer: Keypair): await bootstrapped_market.match_orders(stubbed_payer, 2, TxOpts(skip_confirmation=False)) request_queue = await bootstrapped_market.load_request_queue() @@ -93,11 +93,11 @@ async def test_match_order(bootstrapped_market: AsyncMarket, stubbed_payer: Acco @pytest.mark.asyncio async def test_settle_fund( bootstrapped_market: AsyncMarket, - stubbed_payer: Account, - stubbed_quote_wallet: Account, - stubbed_base_wallet: Account, + stubbed_payer: Keypair, + stubbed_quote_wallet: Keypair, + stubbed_base_wallet: Keypair, ): - open_order_accounts = await bootstrapped_market.find_open_orders_accounts_for_owner(stubbed_payer.public_key()) + open_order_accounts = await bootstrapped_market.find_open_orders_accounts_for_owner(stubbed_payer.public_key) with pytest.raises(ValueError): # Should not allow base_wallet to be base_vault @@ -105,7 +105,7 @@ async def test_settle_fund( stubbed_payer, open_order_accounts[0], bootstrapped_market.state.base_vault(), - stubbed_quote_wallet.public_key(), + stubbed_quote_wallet.public_key, ) with pytest.raises(ValueError): @@ -113,7 +113,7 @@ async def test_settle_fund( await bootstrapped_market.settle_funds( stubbed_payer, open_order_accounts[0], - stubbed_base_wallet.public_key(), + stubbed_base_wallet.public_key, bootstrapped_market.state.quote_vault(), ) @@ -121,8 +121,8 @@ async def test_settle_fund( assert "error" not in await bootstrapped_market.settle_funds( stubbed_payer, open_order_account, - stubbed_base_wallet.public_key(), - stubbed_quote_wallet.public_key(), + stubbed_base_wallet.public_key, + stubbed_quote_wallet.public_key, opts=TxOpts(skip_confirmation=False), ) @@ -133,13 +133,13 @@ async def test_settle_fund( @pytest.mark.asyncio async def test_order_placement_cancellation_cycle( bootstrapped_market: AsyncMarket, - stubbed_payer: Account, - stubbed_quote_wallet: Account, - stubbed_base_wallet: Account, + stubbed_payer: Keypair, + stubbed_quote_wallet: Keypair, + stubbed_base_wallet: Keypair, ): initial_request_len = len(await bootstrapped_market.load_request_queue()) await bootstrapped_market.place_order( - payer=stubbed_quote_wallet.public_key(), + payer=stubbed_quote_wallet.public_key, owner=stubbed_payer, side=Side.BUY, order_type=OrderType.LIMIT, @@ -161,7 +161,7 @@ async def test_order_placement_cancellation_cycle( assert sum(1 for _ in asks) == 0 await bootstrapped_market.place_order( - payer=stubbed_base_wallet.public_key(), + payer=stubbed_base_wallet.public_key, owner=stubbed_payer, side=Side.SELL, order_type=OrderType.LIMIT, diff --git a/tests/integration/test_bootstrap.py b/tests/integration/test_bootstrap.py index 7feaef2..a23b12a 100644 --- a/tests/integration/test_bootstrap.py +++ b/tests/integration/test_bootstrap.py @@ -1,21 +1,23 @@ import pytest -from solana.account import Account + +# from solana.account import Keypair +from solana.keypair import Keypair from solana.publickey import PublicKey @pytest.mark.integration def test_payer(stubbed_payer): - assert isinstance(stubbed_payer, Account) + assert isinstance(stubbed_payer, Keypair) @pytest.mark.integration def test_base_mint(stubbed_base_mint): - assert isinstance(stubbed_base_mint, Account) + assert isinstance(stubbed_base_mint, Keypair) @pytest.mark.integration def test_base_wallet(stubbed_base_wallet): - assert isinstance(stubbed_base_wallet, Account) + assert isinstance(stubbed_base_wallet, Keypair) @pytest.mark.integration @@ -25,12 +27,12 @@ def test_base_vault_pk(stubbed_base_vault_pk): @pytest.mark.integration def test_quote_mint(stubbed_quote_mint): - assert isinstance(stubbed_quote_mint, Account) + assert isinstance(stubbed_quote_mint, Keypair) @pytest.mark.integration def test_quote_wallet(stubbed_quote_wallet): - assert isinstance(stubbed_quote_wallet, Account) + assert isinstance(stubbed_quote_wallet, Keypair) @pytest.mark.integration diff --git a/tests/integration/test_market.py b/tests/integration/test_market.py index 6d61905..db2426d 100644 --- a/tests/integration/test_market.py +++ b/tests/integration/test_market.py @@ -1,7 +1,7 @@ # pylint: disable=redefined-outer-name import pytest -from solana.account import Account +from solana.keypair import Keypair from solana.publickey import PublicKey from solana.rpc.api import Client from solana.rpc.types import TxOpts @@ -21,14 +21,14 @@ def test_bootstrapped_market( bootstrapped_market: Market, stubbed_market_pk: PublicKey, stubbed_dex_program_pk: PublicKey, - stubbed_base_mint: PublicKey, - stubbed_quote_mint: PublicKey, + stubbed_base_mint: Keypair, + stubbed_quote_mint: Keypair, ): assert isinstance(bootstrapped_market, Market) assert bootstrapped_market.state.public_key() == stubbed_market_pk assert bootstrapped_market.state.program_id() == stubbed_dex_program_pk - assert bootstrapped_market.state.base_mint() == stubbed_base_mint.public_key() - assert bootstrapped_market.state.quote_mint() == stubbed_quote_mint.public_key() + assert bootstrapped_market.state.base_mint() == stubbed_base_mint.public_key + assert bootstrapped_market.state.quote_mint() == stubbed_quote_mint.public_key @pytest.mark.integration @@ -59,7 +59,7 @@ def test_market_load_requests(bootstrapped_market: Market): @pytest.mark.integration -def test_match_order(bootstrapped_market: Market, stubbed_payer: Account): +def test_match_order(bootstrapped_market: Market, stubbed_payer: Keypair): bootstrapped_market.match_orders(stubbed_payer, 2, TxOpts(skip_confirmation=False)) request_queue = bootstrapped_market.load_request_queue() @@ -82,11 +82,11 @@ def test_match_order(bootstrapped_market: Market, stubbed_payer: Account): @pytest.mark.integration def test_settle_fund( bootstrapped_market: Market, - stubbed_payer: Account, - stubbed_quote_wallet: Account, - stubbed_base_wallet: Account, + stubbed_payer: Keypair, + stubbed_quote_wallet: Keypair, + stubbed_base_wallet: Keypair, ): - open_order_accounts = bootstrapped_market.find_open_orders_accounts_for_owner(stubbed_payer.public_key()) + open_order_accounts = bootstrapped_market.find_open_orders_accounts_for_owner(stubbed_payer.public_key) with pytest.raises(ValueError): # Should not allow base_wallet to be base_vault @@ -94,7 +94,7 @@ def test_settle_fund( stubbed_payer, open_order_accounts[0], bootstrapped_market.state.base_vault(), - stubbed_quote_wallet.public_key(), + stubbed_quote_wallet.public_key, ) with pytest.raises(ValueError): @@ -102,7 +102,7 @@ def test_settle_fund( bootstrapped_market.settle_funds( stubbed_payer, open_order_accounts[0], - stubbed_base_wallet.public_key(), + stubbed_base_wallet.public_key, bootstrapped_market.state.quote_vault(), ) @@ -110,8 +110,8 @@ def test_settle_fund( assert "error" not in bootstrapped_market.settle_funds( stubbed_payer, open_order_account, - stubbed_base_wallet.public_key(), - stubbed_quote_wallet.public_key(), + stubbed_base_wallet.public_key, + stubbed_quote_wallet.public_key, opts=TxOpts(skip_confirmation=False), ) @@ -121,13 +121,13 @@ def test_settle_fund( @pytest.mark.integration def test_order_placement_cancellation_cycle( bootstrapped_market: Market, - stubbed_payer: Account, - stubbed_quote_wallet: Account, - stubbed_base_wallet: Account, + stubbed_payer: Keypair, + stubbed_quote_wallet: Keypair, + stubbed_base_wallet: Keypair, ): initial_request_len = len(bootstrapped_market.load_request_queue()) bootstrapped_market.place_order( - payer=stubbed_quote_wallet.public_key(), + payer=stubbed_quote_wallet.public_key, owner=stubbed_payer, side=Side.BUY, order_type=OrderType.LIMIT, @@ -149,7 +149,7 @@ def test_order_placement_cancellation_cycle( assert sum(1 for _ in asks) == 0 bootstrapped_market.place_order( - payer=stubbed_base_wallet.public_key(), + payer=stubbed_base_wallet.public_key, owner=stubbed_payer, side=Side.SELL, order_type=OrderType.LIMIT,