From 14ca71605567994168e3ef11a983a457b22be144 Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 26 Aug 2022 20:59:39 +0200 Subject: [PATCH 1/9] Add install instructions --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 3729204..49292fd 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # Python Loading SDK +## How to install + +``` +pip install python-loading-sdk +``` + ## Usage Examples Instantiate the client and optionally provide login credentials to be able to use methods that requires the user to be logged in. From e994dbf2b26d296f6fe5462dbdd7d6cd11ff91b3 Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 26 Aug 2022 21:15:29 +0200 Subject: [PATCH 2/9] Add badges to readme --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 49292fd..f036040 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,16 @@ # Python Loading SDK +[![PyPI Version][pypi-image]][pypi-url] +[![][versions-image]][versions-url] +[![Build Status][build-image]][build-url] + +[pypi-image]: https://img.shields.io/pypi/v/python-loading-sdk +[pypi-url]: https://pypi.org/project/python-loading-sdk/ +[versions-image]: https://img.shields.io/pypi/pyversions/python-loading-sdk +[versions-url]: https://pypi.org/project/python-loading-sdk/ +[build-image]: https://github.com/hnrkcode/python-loading-sdk/actions/workflows/build.yaml/badge.svg +[build-url]: https://github.com/hnrkcode/python-loading-sdk/actions/workflows/build.yaml + ## How to install ``` From 1fc645bb1f6c0f96f1840a1cfe2afd19b5a5efac Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 2 Sep 2022 19:33:55 +0200 Subject: [PATCH 3/9] Add aiohttp dependency --- poetry.lock | 352 ++++++++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 1 + 2 files changed, 352 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 645a3d2..e367589 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,34 @@ +[[package]] +name = "aiohttp" +version = "3.8.1" +description = "Async http client/server framework (asyncio)" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +aiosignal = ">=1.1.2" +async-timeout = ">=4.0.0a3,<5.0" +attrs = ">=17.3.0" +charset-normalizer = ">=2.0,<3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +yarl = ">=1.0,<2.0" + +[package.extras] +speedups = ["aiodns", "brotli", "cchardet"] + +[[package]] +name = "aiosignal" +version = "1.2.0" +description = "aiosignal: a list of registered asynchronous callbacks" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +frozenlist = ">=1.1.0" + [[package]] name = "alabaster" version = "0.7.12" @@ -6,6 +37,28 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "async-timeout" +version = "4.0.2" +description = "Timeout context manager for asyncio programs" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "attrs" +version = "22.1.0" +description = "Classes Without Boilerplate" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] + [[package]] name = "babel" version = "2.10.3" @@ -72,6 +125,14 @@ python-versions = ">=3.7" docs = ["furo (>=2022.6.21)", "sphinx (>=5.1.1)", "sphinx-autodoc-typehints (>=1.19.1)"] testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pytest-cov (>=3)", "pytest-timeout (>=2.1)"] +[[package]] +name = "frozenlist" +version = "1.3.1" +description = "A list-like structure which implements collections.abc.MutableSequence" +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "idna" version = "3.3" @@ -126,6 +187,14 @@ category = "dev" optional = false python-versions = ">=3.7" +[[package]] +name = "multidict" +version = "6.0.2" +description = "multidict implementation" +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "packaging" version = "21.3" @@ -411,6 +480,18 @@ platformdirs = ">=2.4,<3" docs = ["proselint (>=0.13)", "sphinx (>=5.1.1)", "sphinx-argparse (>=0.3.1)", "sphinx-rtd-theme (>=1)", "towncrier (>=21.9)"] testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=21.3)", "pytest (>=7.0.1)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.6.1)", "pytest-randomly (>=3.10.3)", "pytest-timeout (>=2.1)"] +[[package]] +name = "yarl" +version = "1.8.1" +description = "Yet another URL library" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + [[package]] name = "zipp" version = "3.8.1" @@ -426,13 +507,99 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "1c40c29ccdbe3e632575f682efc52266b8e7bd254f12c7ef24eefa55a2322abe" +content-hash = "b1893540c1eea57c75fc89eca4ed0e2c0f24c86f8da88e0c2f107477f4adb5ef" [metadata.files] +aiohttp = [ + {file = "aiohttp-3.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1ed0b6477896559f17b9eaeb6d38e07f7f9ffe40b9f0f9627ae8b9926ae260a8"}, + {file = "aiohttp-3.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7dadf3c307b31e0e61689cbf9e06be7a867c563d5a63ce9dca578f956609abf8"}, + {file = "aiohttp-3.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a79004bb58748f31ae1cbe9fa891054baaa46fb106c2dc7af9f8e3304dc30316"}, + {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12de6add4038df8f72fac606dff775791a60f113a725c960f2bab01d8b8e6b15"}, + {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f0d5f33feb5f69ddd57a4a4bd3d56c719a141080b445cbf18f238973c5c9923"}, + {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eaba923151d9deea315be1f3e2b31cc39a6d1d2f682f942905951f4e40200922"}, + {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:099ebd2c37ac74cce10a3527d2b49af80243e2a4fa39e7bce41617fbc35fa3c1"}, + {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2e5d962cf7e1d426aa0e528a7e198658cdc8aa4fe87f781d039ad75dcd52c516"}, + {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fa0ffcace9b3aa34d205d8130f7873fcfefcb6a4dd3dd705b0dab69af6712642"}, + {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:61bfc23df345d8c9716d03717c2ed5e27374e0fe6f659ea64edcd27b4b044cf7"}, + {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:31560d268ff62143e92423ef183680b9829b1b482c011713ae941997921eebc8"}, + {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:01d7bdb774a9acc838e6b8f1d114f45303841b89b95984cbb7d80ea41172a9e3"}, + {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:97ef77eb6b044134c0b3a96e16abcb05ecce892965a2124c566af0fd60f717e2"}, + {file = "aiohttp-3.8.1-cp310-cp310-win32.whl", hash = "sha256:c2aef4703f1f2ddc6df17519885dbfa3514929149d3ff900b73f45998f2532fa"}, + {file = "aiohttp-3.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:713ac174a629d39b7c6a3aa757b337599798da4c1157114a314e4e391cd28e32"}, + {file = "aiohttp-3.8.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:473d93d4450880fe278696549f2e7aed8cd23708c3c1997981464475f32137db"}, + {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99b5eeae8e019e7aad8af8bb314fb908dd2e028b3cdaad87ec05095394cce632"}, + {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af642b43ce56c24d063325dd2cf20ee012d2b9ba4c3c008755a301aaea720ad"}, + {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3630c3ef435c0a7c549ba170a0633a56e92629aeed0e707fec832dee313fb7a"}, + {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4a4a4e30bf1edcad13fb0804300557aedd07a92cabc74382fdd0ba6ca2661091"}, + {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6f8b01295e26c68b3a1b90efb7a89029110d3a4139270b24fda961893216c440"}, + {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a25fa703a527158aaf10dafd956f7d42ac6d30ec80e9a70846253dd13e2f067b"}, + {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:5bfde62d1d2641a1f5173b8c8c2d96ceb4854f54a44c23102e2ccc7e02f003ec"}, + {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:51467000f3647d519272392f484126aa716f747859794ac9924a7aafa86cd411"}, + {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:03a6d5349c9ee8f79ab3ff3694d6ce1cfc3ced1c9d36200cb8f08ba06bd3b782"}, + {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:102e487eeb82afac440581e5d7f8f44560b36cf0bdd11abc51a46c1cd88914d4"}, + {file = "aiohttp-3.8.1-cp36-cp36m-win32.whl", hash = "sha256:4aed991a28ea3ce320dc8ce655875e1e00a11bdd29fe9444dd4f88c30d558602"}, + {file = "aiohttp-3.8.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b0e20cddbd676ab8a64c774fefa0ad787cc506afd844de95da56060348021e96"}, + {file = "aiohttp-3.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:37951ad2f4a6df6506750a23f7cbabad24c73c65f23f72e95897bb2cecbae676"}, + {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c23b1ad869653bc818e972b7a3a79852d0e494e9ab7e1a701a3decc49c20d51"}, + {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:15b09b06dae900777833fe7fc4b4aa426556ce95847a3e8d7548e2d19e34edb8"}, + {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:477c3ea0ba410b2b56b7efb072c36fa91b1e6fc331761798fa3f28bb224830dd"}, + {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2f2f69dca064926e79997f45b2f34e202b320fd3782f17a91941f7eb85502ee2"}, + {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ef9612483cb35171d51d9173647eed5d0069eaa2ee812793a75373447d487aa4"}, + {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6d69f36d445c45cda7b3b26afef2fc34ef5ac0cdc75584a87ef307ee3c8c6d00"}, + {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:55c3d1072704d27401c92339144d199d9de7b52627f724a949fc7d5fc56d8b93"}, + {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b9d00268fcb9f66fbcc7cd9fe423741d90c75ee029a1d15c09b22d23253c0a44"}, + {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:07b05cd3305e8a73112103c834e91cd27ce5b4bd07850c4b4dbd1877d3f45be7"}, + {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c34dc4958b232ef6188c4318cb7b2c2d80521c9a56c52449f8f93ab7bc2a8a1c"}, + {file = "aiohttp-3.8.1-cp37-cp37m-win32.whl", hash = "sha256:d2f9b69293c33aaa53d923032fe227feac867f81682f002ce33ffae978f0a9a9"}, + {file = "aiohttp-3.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6ae828d3a003f03ae31915c31fa684b9890ea44c9c989056fea96e3d12a9fa17"}, + {file = "aiohttp-3.8.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0c7ebbbde809ff4e970824b2b6cb7e4222be6b95a296e46c03cf050878fc1785"}, + {file = "aiohttp-3.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b7ef7cbd4fec9a1e811a5de813311ed4f7ac7d93e0fda233c9b3e1428f7dd7b"}, + {file = "aiohttp-3.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c3d6a4d0619e09dcd61021debf7059955c2004fa29f48788a3dfaf9c9901a7cd"}, + {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:718626a174e7e467f0558954f94af117b7d4695d48eb980146016afa4b580b2e"}, + {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:589c72667a5febd36f1315aa6e5f56dd4aa4862df295cb51c769d16142ddd7cd"}, + {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ed076098b171573161eb146afcb9129b5ff63308960aeca4b676d9d3c35e700"}, + {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:086f92daf51a032d062ec5f58af5ca6a44d082c35299c96376a41cbb33034675"}, + {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:11691cf4dc5b94236ccc609b70fec991234e7ef8d4c02dd0c9668d1e486f5abf"}, + {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:31d1e1c0dbf19ebccbfd62eff461518dcb1e307b195e93bba60c965a4dcf1ba0"}, + {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:11a67c0d562e07067c4e86bffc1553f2cf5b664d6111c894671b2b8712f3aba5"}, + {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:bb01ba6b0d3f6c68b89fce7305080145d4877ad3acaed424bae4d4ee75faa950"}, + {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:44db35a9e15d6fe5c40d74952e803b1d96e964f683b5a78c3cc64eb177878155"}, + {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:844a9b460871ee0a0b0b68a64890dae9c415e513db0f4a7e3cab41a0f2fedf33"}, + {file = "aiohttp-3.8.1-cp38-cp38-win32.whl", hash = "sha256:7d08744e9bae2ca9c382581f7dce1273fe3c9bae94ff572c3626e8da5b193c6a"}, + {file = "aiohttp-3.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:04d48b8ce6ab3cf2097b1855e1505181bdd05586ca275f2505514a6e274e8e75"}, + {file = "aiohttp-3.8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f5315a2eb0239185af1bddb1abf472d877fede3cc8d143c6cddad37678293237"}, + {file = "aiohttp-3.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a996d01ca39b8dfe77440f3cd600825d05841088fd6bc0144cc6c2ec14cc5f74"}, + {file = "aiohttp-3.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:13487abd2f761d4be7c8ff9080de2671e53fff69711d46de703c310c4c9317ca"}, + {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea302f34477fda3f85560a06d9ebdc7fa41e82420e892fc50b577e35fc6a50b2"}, + {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2f635ce61a89c5732537a7896b6319a8fcfa23ba09bec36e1b1ac0ab31270d2"}, + {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e999f2d0e12eea01caeecb17b653f3713d758f6dcc770417cf29ef08d3931421"}, + {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0770e2806a30e744b4e21c9d73b7bee18a1cfa3c47991ee2e5a65b887c49d5cf"}, + {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd"}, + {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c7cefb4b0640703eb1069835c02486669312bf2f12b48a748e0a7756d0de33d"}, + {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:71927042ed6365a09a98a6377501af5c9f0a4d38083652bcd2281a06a5976724"}, + {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:28d490af82bc6b7ce53ff31337a18a10498303fe66f701ab65ef27e143c3b0ef"}, + {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:b6613280ccedf24354406caf785db748bebbddcf31408b20c0b48cb86af76866"}, + {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:81e3d8c34c623ca4e36c46524a3530e99c0bc95ed068fd6e9b55cb721d408fb2"}, + {file = "aiohttp-3.8.1-cp39-cp39-win32.whl", hash = "sha256:7187a76598bdb895af0adbd2fb7474d7f6025d170bc0a1130242da817ce9e7d1"}, + {file = "aiohttp-3.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:1c182cb873bc91b411e184dab7a2b664d4fea2743df0e4d57402f7f3fa644bac"}, + {file = "aiohttp-3.8.1.tar.gz", hash = "sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578"}, +] +aiosignal = [ + {file = "aiosignal-1.2.0-py3-none-any.whl", hash = "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a"}, + {file = "aiosignal-1.2.0.tar.gz", hash = "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"}, +] alabaster = [ {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, ] +async-timeout = [ + {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, + {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, +] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] babel = [ {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, @@ -461,6 +628,67 @@ filelock = [ {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, ] +frozenlist = [ + {file = "frozenlist-1.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5f271c93f001748fc26ddea409241312a75e13466b06c94798d1a341cf0e6989"}, + {file = "frozenlist-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9c6ef8014b842f01f5d2b55315f1af5cbfde284eb184075c189fd657c2fd8204"}, + {file = "frozenlist-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:219a9676e2eae91cb5cc695a78b4cb43d8123e4160441d2b6ce8d2c70c60e2f3"}, + {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b47d64cdd973aede3dd71a9364742c542587db214e63b7529fbb487ed67cddd9"}, + {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2af6f7a4e93f5d08ee3f9152bce41a6015b5cf87546cb63872cc19b45476e98a"}, + {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a718b427ff781c4f4e975525edb092ee2cdef6a9e7bc49e15063b088961806f8"}, + {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c56c299602c70bc1bb5d1e75f7d8c007ca40c9d7aebaf6e4ba52925d88ef826d"}, + {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717470bfafbb9d9be624da7780c4296aa7935294bd43a075139c3d55659038ca"}, + {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:31b44f1feb3630146cffe56344704b730c33e042ffc78d21f2125a6a91168131"}, + {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c3b31180b82c519b8926e629bf9f19952c743e089c41380ddca5db556817b221"}, + {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:d82bed73544e91fb081ab93e3725e45dd8515c675c0e9926b4e1f420a93a6ab9"}, + {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49459f193324fbd6413e8e03bd65789e5198a9fa3095e03f3620dee2f2dabff2"}, + {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:94e680aeedc7fd3b892b6fa8395b7b7cc4b344046c065ed4e7a1e390084e8cb5"}, + {file = "frozenlist-1.3.1-cp310-cp310-win32.whl", hash = "sha256:fabb953ab913dadc1ff9dcc3a7a7d3dc6a92efab3a0373989b8063347f8705be"}, + {file = "frozenlist-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:eee0c5ecb58296580fc495ac99b003f64f82a74f9576a244d04978a7e97166db"}, + {file = "frozenlist-1.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0bc75692fb3770cf2b5856a6c2c9de967ca744863c5e89595df64e252e4b3944"}, + {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086ca1ac0a40e722d6833d4ce74f5bf1aba2c77cbfdc0cd83722ffea6da52a04"}, + {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b51eb355e7f813bcda00276b0114c4172872dc5fb30e3fea059b9367c18fbcb"}, + {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:74140933d45271c1a1283f708c35187f94e1256079b3c43f0c2267f9db5845ff"}, + {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee4c5120ddf7d4dd1eaf079af3af7102b56d919fa13ad55600a4e0ebe532779b"}, + {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97d9e00f3ac7c18e685320601f91468ec06c58acc185d18bb8e511f196c8d4b2"}, + {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6e19add867cebfb249b4e7beac382d33215d6d54476bb6be46b01f8cafb4878b"}, + {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a027f8f723d07c3f21963caa7d585dcc9b089335565dabe9c814b5f70c52705a"}, + {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:61d7857950a3139bce035ad0b0945f839532987dfb4c06cfe160254f4d19df03"}, + {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:53b2b45052e7149ee8b96067793db8ecc1ae1111f2f96fe1f88ea5ad5fd92d10"}, + {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bbb1a71b1784e68870800b1bc9f3313918edc63dbb8f29fbd2e767ce5821696c"}, + {file = "frozenlist-1.3.1-cp37-cp37m-win32.whl", hash = "sha256:ab6fa8c7871877810e1b4e9392c187a60611fbf0226a9e0b11b7b92f5ac72792"}, + {file = "frozenlist-1.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f89139662cc4e65a4813f4babb9ca9544e42bddb823d2ec434e18dad582543bc"}, + {file = "frozenlist-1.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4c0c99e31491a1d92cde8648f2e7ccad0e9abb181f6ac3ddb9fc48b63301808e"}, + {file = "frozenlist-1.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:61e8cb51fba9f1f33887e22488bad1e28dd8325b72425f04517a4d285a04c519"}, + {file = "frozenlist-1.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc2f3e368ee5242a2cbe28323a866656006382872c40869b49b265add546703f"}, + {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58fb94a01414cddcdc6839807db77ae8057d02ddafc94a42faee6004e46c9ba8"}, + {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:022178b277cb9277d7d3b3f2762d294f15e85cd2534047e68a118c2bb0058f3e"}, + {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:572ce381e9fe027ad5e055f143763637dcbac2542cfe27f1d688846baeef5170"}, + {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19127f8dcbc157ccb14c30e6f00392f372ddb64a6ffa7106b26ff2196477ee9f"}, + {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42719a8bd3792744c9b523674b752091a7962d0d2d117f0b417a3eba97d1164b"}, + {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2743bb63095ef306041c8f8ea22bd6e4d91adabf41887b1ad7886c4c1eb43d5f"}, + {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:fa47319a10e0a076709644a0efbcaab9e91902c8bd8ef74c6adb19d320f69b83"}, + {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52137f0aea43e1993264a5180c467a08a3e372ca9d378244c2d86133f948b26b"}, + {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:f5abc8b4d0c5b556ed8cd41490b606fe99293175a82b98e652c3f2711b452988"}, + {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1e1cf7bc8cbbe6ce3881863671bac258b7d6bfc3706c600008925fb799a256e2"}, + {file = "frozenlist-1.3.1-cp38-cp38-win32.whl", hash = "sha256:0dde791b9b97f189874d654c55c24bf7b6782343e14909c84beebd28b7217845"}, + {file = "frozenlist-1.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:9494122bf39da6422b0972c4579e248867b6b1b50c9b05df7e04a3f30b9a413d"}, + {file = "frozenlist-1.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:31bf9539284f39ff9398deabf5561c2b0da5bb475590b4e13dd8b268d7a3c5c1"}, + {file = "frozenlist-1.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0c8c803f2f8db7217898d11657cb6042b9b0553a997c4a0601f48a691480fab"}, + {file = "frozenlist-1.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da5ba7b59d954f1f214d352308d1d86994d713b13edd4b24a556bcc43d2ddbc3"}, + {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74e6b2b456f21fc93ce1aff2b9728049f1464428ee2c9752a4b4f61e98c4db96"}, + {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526d5f20e954d103b1d47232e3839f3453c02077b74203e43407b962ab131e7b"}, + {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b499c6abe62a7a8d023e2c4b2834fce78a6115856ae95522f2f974139814538c"}, + {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab386503f53bbbc64d1ad4b6865bf001414930841a870fc97f1546d4d133f141"}, + {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f63c308f82a7954bf8263a6e6de0adc67c48a8b484fab18ff87f349af356efd"}, + {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:12607804084d2244a7bd4685c9d0dca5df17a6a926d4f1967aa7978b1028f89f"}, + {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:da1cdfa96425cbe51f8afa43e392366ed0b36ce398f08b60de6b97e3ed4affef"}, + {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f810e764617b0748b49a731ffaa525d9bb36ff38332411704c2400125af859a6"}, + {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:35c3d79b81908579beb1fb4e7fcd802b7b4921f1b66055af2578ff7734711cfa"}, + {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c92deb5d9acce226a501b77307b3b60b264ca21862bd7d3e0c1f3594022f01bc"}, + {file = "frozenlist-1.3.1-cp39-cp39-win32.whl", hash = "sha256:5e77a8bd41e54b05e4fb2708dc6ce28ee70325f8c6f50f3df86a44ecb1d7a19b"}, + {file = "frozenlist-1.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:625d8472c67f2d96f9a4302a947f92a7adbc1e20bedb6aff8dbc8ff039ca6189"}, + {file = "frozenlist-1.3.1.tar.gz", hash = "sha256:3a735e4211a04ccfa3f4833547acdf5d2f863bfeb01cfd3edaffbc251f15cec8"}, +] idna = [ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, @@ -519,6 +747,67 @@ markupsafe = [ {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, ] +multidict = [ + {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2"}, + {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3"}, + {file = "multidict-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389"}, + {file = "multidict-6.0.2-cp310-cp310-win32.whl", hash = "sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293"}, + {file = "multidict-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658"}, + {file = "multidict-6.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15"}, + {file = "multidict-6.0.2-cp37-cp37m-win32.whl", hash = "sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc"}, + {file = "multidict-6.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a"}, + {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60"}, + {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86"}, + {file = "multidict-6.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d"}, + {file = "multidict-6.0.2-cp38-cp38-win32.whl", hash = "sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57"}, + {file = "multidict-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96"}, + {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c"}, + {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e"}, + {file = "multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937"}, + {file = "multidict-6.0.2-cp39-cp39-win32.whl", hash = "sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a"}, + {file = "multidict-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae"}, + {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"}, +] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, @@ -607,6 +896,67 @@ virtualenv = [ {file = "virtualenv-20.16.3-py2.py3-none-any.whl", hash = "sha256:4193b7bc8a6cd23e4eb251ac64f29b4398ab2c233531e66e40b19a6b7b0d30c1"}, {file = "virtualenv-20.16.3.tar.gz", hash = "sha256:d86ea0bb50e06252d79e6c241507cb904fcd66090c3271381372d6221a3970f9"}, ] +yarl = [ + {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:abc06b97407868ef38f3d172762f4069323de52f2b70d133d096a48d72215d28"}, + {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3"}, + {file = "yarl-1.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9de955d98e02fab288c7718662afb33aab64212ecb368c5dc866d9a57bf48880"}, + {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ec362167e2c9fd178f82f252b6d97669d7245695dc057ee182118042026da40"}, + {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20df6ff4089bc86e4a66e3b1380460f864df3dd9dccaf88d6b3385d24405893b"}, + {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5999c4662631cb798496535afbd837a102859568adc67d75d2045e31ec3ac497"}, + {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed19b74e81b10b592084a5ad1e70f845f0aacb57577018d31de064e71ffa267a"}, + {file = "yarl-1.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e4808f996ca39a6463f45182e2af2fae55e2560be586d447ce8016f389f626f"}, + {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2d800b9c2eaf0684c08be5f50e52bfa2aa920e7163c2ea43f4f431e829b4f0fd"}, + {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6628d750041550c5d9da50bb40b5cf28a2e63b9388bac10fedd4f19236ef4957"}, + {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f5af52738e225fcc526ae64071b7e5342abe03f42e0e8918227b38c9aa711e28"}, + {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:76577f13333b4fe345c3704811ac7509b31499132ff0181f25ee26619de2c843"}, + {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0c03f456522d1ec815893d85fccb5def01ffaa74c1b16ff30f8aaa03eb21e453"}, + {file = "yarl-1.8.1-cp310-cp310-win32.whl", hash = "sha256:ea30a42dc94d42f2ba4d0f7c0ffb4f4f9baa1b23045910c0c32df9c9902cb272"}, + {file = "yarl-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:9130ddf1ae9978abe63808b6b60a897e41fccb834408cde79522feb37fb72fb0"}, + {file = "yarl-1.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0ab5a138211c1c366404d912824bdcf5545ccba5b3ff52c42c4af4cbdc2c5035"}, + {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0fb2cb4204ddb456a8e32381f9a90000429489a25f64e817e6ff94879d432fc"}, + {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:85cba594433915d5c9a0d14b24cfba0339f57a2fff203a5d4fd070e593307d0b"}, + {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ca7e596c55bd675432b11320b4eacc62310c2145d6801a1f8e9ad160685a231"}, + {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0f77539733e0ec2475ddcd4e26777d08996f8cd55d2aef82ec4d3896687abda"}, + {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29e256649f42771829974e742061c3501cc50cf16e63f91ed8d1bf98242e5507"}, + {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7fce6cbc6c170ede0221cc8c91b285f7f3c8b9fe28283b51885ff621bbe0f8ee"}, + {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:59ddd85a1214862ce7c7c66457f05543b6a275b70a65de366030d56159a979f0"}, + {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:12768232751689c1a89b0376a96a32bc7633c08da45ad985d0c49ede691f5c0d"}, + {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:b19255dde4b4f4c32e012038f2c169bb72e7f081552bea4641cab4d88bc409dd"}, + {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6c8148e0b52bf9535c40c48faebb00cb294ee577ca069d21bd5c48d302a83780"}, + {file = "yarl-1.8.1-cp37-cp37m-win32.whl", hash = "sha256:de839c3a1826a909fdbfe05f6fe2167c4ab033f1133757b5936efe2f84904c07"}, + {file = "yarl-1.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:dd032e8422a52e5a4860e062eb84ac94ea08861d334a4bcaf142a63ce8ad4802"}, + {file = "yarl-1.8.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:19cd801d6f983918a3f3a39f3a45b553c015c5aac92ccd1fac619bd74beece4a"}, + {file = "yarl-1.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6347f1a58e658b97b0a0d1ff7658a03cb79bdbda0331603bed24dd7054a6dea1"}, + {file = "yarl-1.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c0da7e44d0c9108d8b98469338705e07f4bb7dab96dbd8fa4e91b337db42548"}, + {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5587bba41399854703212b87071c6d8638fa6e61656385875f8c6dff92b2e461"}, + {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31a9a04ecccd6b03e2b0e12e82131f1488dea5555a13a4d32f064e22a6003cfe"}, + {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:205904cffd69ae972a1707a1bd3ea7cded594b1d773a0ce66714edf17833cdae"}, + {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea513a25976d21733bff523e0ca836ef1679630ef4ad22d46987d04b372d57fc"}, + {file = "yarl-1.8.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0b51530877d3ad7a8d47b2fff0c8df3b8f3b8deddf057379ba50b13df2a5eae"}, + {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d2b8f245dad9e331540c350285910b20dd913dc86d4ee410c11d48523c4fd546"}, + {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ab2a60d57ca88e1d4ca34a10e9fb4ab2ac5ad315543351de3a612bbb0560bead"}, + {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:449c957ffc6bc2309e1fbe67ab7d2c1efca89d3f4912baeb8ead207bb3cc1cd4"}, + {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a165442348c211b5dea67c0206fc61366212d7082ba8118c8c5c1c853ea4d82e"}, + {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b3ded839a5c5608eec8b6f9ae9a62cb22cd037ea97c627f38ae0841a48f09eae"}, + {file = "yarl-1.8.1-cp38-cp38-win32.whl", hash = "sha256:c1445a0c562ed561d06d8cbc5c8916c6008a31c60bc3655cdd2de1d3bf5174a0"}, + {file = "yarl-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:56c11efb0a89700987d05597b08a1efcd78d74c52febe530126785e1b1a285f4"}, + {file = "yarl-1.8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e80ed5a9939ceb6fda42811542f31c8602be336b1fb977bccb012e83da7e4936"}, + {file = "yarl-1.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6afb336e23a793cd3b6476c30f030a0d4c7539cd81649683b5e0c1b0ab0bf350"}, + {file = "yarl-1.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c322cbaa4ed78a8aac89b2174a6df398faf50e5fc12c4c191c40c59d5e28357"}, + {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fae37373155f5ef9b403ab48af5136ae9851151f7aacd9926251ab26b953118b"}, + {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5395da939ffa959974577eff2cbfc24b004a2fb6c346918f39966a5786874e54"}, + {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:076eede537ab978b605f41db79a56cad2e7efeea2aa6e0fa8f05a26c24a034fb"}, + {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d1a50e461615747dd93c099f297c1994d472b0f4d2db8a64e55b1edf704ec1c"}, + {file = "yarl-1.8.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7de89c8456525650ffa2bb56a3eee6af891e98f498babd43ae307bd42dca98f6"}, + {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4a88510731cd8d4befaba5fbd734a7dd914de5ab8132a5b3dde0bbd6c9476c64"}, + {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2d93a049d29df172f48bcb09acf9226318e712ce67374f893b460b42cc1380ae"}, + {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:21ac44b763e0eec15746a3d440f5e09ad2ecc8b5f6dcd3ea8cb4773d6d4703e3"}, + {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d0272228fabe78ce00a3365ffffd6f643f57a91043e119c289aaba202f4095b0"}, + {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:99449cd5366fe4608e7226c6cae80873296dfa0cde45d9b498fefa1de315a09e"}, + {file = "yarl-1.8.1-cp39-cp39-win32.whl", hash = "sha256:8b0af1cf36b93cee99a31a545fe91d08223e64390c5ecc5e94c39511832a4bb6"}, + {file = "yarl-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:de49d77e968de6626ba7ef4472323f9d2e5a56c1d85b7c0e2a190b2173d3b9be"}, + {file = "yarl-1.8.1.tar.gz", hash = "sha256:af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf"}, +] zipp = [ {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, diff --git a/pyproject.toml b/pyproject.toml index a634511..8055ac1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,7 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" requests = "^2.28.1" +aiohttp = "^3.8.1" [tool.poetry.dev-dependencies] tox = "^3.25.1" From c0fb8e643baf20909591ff3ecb05f0846a11cf50 Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 2 Sep 2022 19:34:45 +0200 Subject: [PATCH 4/9] Tweak tox.ini --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 9f86fee..0c1805e 100644 --- a/tox.ini +++ b/tox.ini @@ -18,6 +18,6 @@ deps = commands = black --check --diff --verbose loading_sdk flake8 loading_sdk --max-complexity 10 --ignore E501 - pylint loading_sdk --disable=C0114,C0115,C0116 + pylint loading_sdk --disable=C0114,C0115,C0116,W0212,R0801 coverage run --source=loading_sdk --branch -m unittest -v - coverage report -m --fail-under 80 \ No newline at end of file + coverage report -m \ No newline at end of file From 874ca5693e3e3ed10c2b4f5576627c078b0bf00d Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 2 Sep 2022 19:36:06 +0200 Subject: [PATCH 5/9] Add support for asynchronous code --- loading_sdk/__init__.py | 3 +- loading_sdk/async_api.py | 480 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 482 insertions(+), 1 deletion(-) create mode 100644 loading_sdk/async_api.py diff --git a/loading_sdk/__init__.py b/loading_sdk/__init__.py index ebb313e..a3eda79 100644 --- a/loading_sdk/__init__.py +++ b/loading_sdk/__init__.py @@ -1,3 +1,4 @@ from loading_sdk.api import LoadingApiClient +from loading_sdk.async_api import async_loading_api_client as AsyncLoadingApiClient -__all__ = ["LoadingApiClient"] +__all__ = ["LoadingApiClient", "AsyncLoadingApiClient"] diff --git a/loading_sdk/async_api.py b/loading_sdk/async_api.py new file mode 100644 index 0000000..3bd8e83 --- /dev/null +++ b/loading_sdk/async_api.py @@ -0,0 +1,480 @@ +import math +import aiohttp + +from loading_sdk.settings import ( + API_URL, + API_VERSION, + EDITORIAL_POST_TYPES, + EDITORIAL_SORT, + USER_AGENT, +) + + +async def async_loading_api_client(email=None, password=None): + client = AsyncLoadingApiClient() + await client._set_cookie(email, password) + + return client + + +class AsyncLoadingApiClient: + def __init__(self): + self._cookies = None + + async def _set_cookie(self, email, password): + if email and password: + response = await self._authenticate(email, password) + + if response.get("code") == 200: + self._cookies = response.get("cookies") + + async def _authenticate(self, email, password): + url = f"{API_URL}/{API_VERSION}/auth/login" + headers = { + "User-Agent": USER_AGENT, + "content-type": "application/x-www-form-urlencoded", + } + data = { + "email": email, + "password": password, + } + + async with aiohttp.ClientSession() as session: + async with session.post(url, headers=headers, data=data) as response: + if response.status == 200: + return {"code": response.status, "cookies": response.cookies} + + return await response.json() + + async def _get_threads_in_forum_category(self, category_name, page): + url = f"{API_URL}/{API_VERSION}/posts/" + headers = {"User-Agent": USER_AGENT, category_name: category_name} + + # Chooses a specific page instead of the first page which is the default page. + if page and page > 1: + headers["page"] = str(page) + + # Doing this checks to make sure it only return data from a page that exists. + if page and page < 1: + return { + "code": 404, + "message": "Page number too low", + "data": {"posts": [], "users": []}, + } + + async with aiohttp.ClientSession() as session: + async with session.get(url, headers=headers) as response: + data = await response.json() + + # Page out of range. + if not data["posts"]: + return { + "code": 404, + "message": "Page number too high", + "data": data, + } + + return { + "code": response.status, + "message": "OK", + "data": data, + } + + async def get_profile(self): + """Returns authenticated users profile data + + :rtype: dict + """ + + url = f"{API_URL}/{API_VERSION}/users/profile" + headers = {"User-Agent": USER_AGENT} + + async with aiohttp.ClientSession() as session: + async with session.get( + url, headers=headers, cookies=self._cookies + ) as response: + data = await response.json() + + if response.status == 200: + return { + "code": response.status, + "message": "OK", + "data": data, + } + + return data + + async def search(self, query): + """Returns posts that matches the query + + :param query: Search query + :type query: str + :rtype: dict + """ + + url = f"{API_URL}/{API_VERSION}/search/" + headers = { + "User-Agent": USER_AGENT, + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + } + data = {"query": query} + + async with aiohttp.ClientSession() as session: + async with session.post(url, headers=headers, data=data) as response: + data = await response.json() + + if response.status == 200: + return { + "code": response.status, + "message": "OK" if len(data["posts"]) else "No results", + "data": data, + } + + return data + + async def get_post(self, post_id): + """Returns a specific post + + :param post_id: unique post id + :type post_id: str + :rtype: dict + """ + + if not post_id: + return {"code": 404, "message": '"post_id" is not allowed to be empty'} + + url = f"{API_URL}/{API_VERSION}/posts/{post_id}" + headers = {"User-Agent": USER_AGENT} + + async with aiohttp.ClientSession() as session: + async with session.get(url, headers=headers) as response: + data = await response.json() + + if response.status == 200: + return { + "code": response.status, + "message": "OK", + "data": data, + } + + return data + + async def get_thread(self, thread_id, page=None): + """Returns all posts on a specific page from a specific thread + + :param thread_id: unique thread_id + :type thread_id: str + :param page: thread page (**optional**) + :type page: int + :rtype: dict + """ + + if not thread_id: + return {"code": 404, "message": '"thread_id" is not allowed to be empty'} + + url = f"{API_URL}/{API_VERSION}/posts/{thread_id}" + headers = {"User-Agent": USER_AGENT} + + # Chooses a specific page instead of the first page which is the default page. + if page and page > 1: + headers["page"] = str(page) + + async with aiohttp.ClientSession() as session: + async with session.get(url, headers=headers) as response: + data = await response.json() + + if response.status != 200: + return data + + if "title" not in data["posts"][-1]: + return { + "code": response.status, + "message": "Exists, but was not a thread id", + } + + # Doing this checks to make sure it only return data from a page that exists. + if page: + replies = data["posts"][-1]["replies"] + pages = math.ceil(replies / 30) + + # There is always atleast one page. + if pages == 0: + pages = 1 + + # Page is out of range. + if page < 1: + return { + "code": response.status, + "message": "Page number too low", + "data": {"posts": [], "users": []}, + } + + if page > pages: + return { + "code": response.status, + "message": "Page number too high", + "data": {"posts": [], "users": []}, + } + + successful_response = { + "code": response.status, + "message": "OK", + "data": data, + } + + return successful_response + + async def get_games(self, page=None): + """Retruns threads from a specific page in the game category + + :param page: Game forum page + :type page: int + :rtype: dict + """ + + category_name = "games" + thread_data = await self._get_threads_in_forum_category(category_name, page) + + return thread_data + + async def get_other(self, page=None): + """Retruns threads from a specific page in the other category + + :param page: Other forum page + :type page: int + :rtype: dict + """ + + category_name = "other" + thread_data = await self._get_threads_in_forum_category(category_name, page) + + return thread_data + + async def get_editorials(self, page=None, post_type=None, sort=None): + """Retruns threads from a specific page in the texts category + + :param page: Texts forum page (**optional**) + :type page: int + :param post_type: Articles can be of post_type: "review", "opinion", "update", "podcast", + or "conversation" (**optional**) + :type post_type: str + :param sort: Sort the returned threads by date by the default, but if "title" is used as + a parameter it's sorted by thread title instead. (**optional**) + :type sort: str + :rtype: dict + """ + + url = f"{API_URL}/{API_VERSION}/posts/" + headers = { + "User-Agent": USER_AGENT, + "texts": "texts", + "post-type": "neRegular", + } + + if post_type and post_type in EDITORIAL_POST_TYPES: + headers["post-type"] = post_type + + if sort and sort in EDITORIAL_SORT: + headers["sort"] = sort + + # Chooses a specific page instead of the first page which is the default page. + if page and page > 1: + headers["page"] = str(page) + + # Doing this checks to make sure it only return data from a page that exists. + if page and page < 1: + return { + "code": 404, + "message": "Page number too low", + "data": {"posts": [], "users": []}, + } + + async with aiohttp.ClientSession() as session: + async with session.get(url, headers=headers) as response: + data = await response.json() + + # Page out of range. + if not data["posts"]: + return { + "code": 404, + "message": "Page number too high", + "data": data, + } + + return { + "code": response.status, + "message": "OK", + "data": data, + } + + async def create_post(self, thread_id, message): + """Create new post in a thread + + :param thread_id: Unique thread id + :type thread_id: str + :param message: Text that can be formatted with markdown that will be posted in the thread + :type message: str + :rtype: dict + """ + + if not thread_id: + return {"code": 400, "message": '"thread_id" is not allowed to be empty'} + + url = f"{API_URL}/{API_VERSION}/posts/{thread_id}" + headers = { + "User-Agent": USER_AGENT, + "content-type": "application/x-www-form-urlencoded", + } + data = {"body": message} + + async with aiohttp.ClientSession() as session: + async with session.post( + url, + headers=headers, + data=data, + cookies=self._cookies, + ) as response: + data = await response.json() + + # Has no auth token. + if response.status == 401: + return data + + # Post id doesn't exist. + if response.status == 404: + return data + + if response.status == 201: + return { + "code": response.status, + "message": "Post created", + "data": data, + } + + # Handle any other unknown status code. + return data + + async def edit_post(self, post_id, message): + """Edit existing post in a thread + + :param post_id: Unique post id + :type post_id: str + :param message: New text, that can be formatted with markdown, + that will replace the old message + :type message: str + :rtype: dict + """ + if not message: + return {"code": 400, "message": '"message" is not allowed to be empty'} + + url = f"{API_URL}/{API_VERSION}/posts/{post_id}" + headers = { + "User-Agent": USER_AGENT, + "content-type": "application/x-www-form-urlencoded", + } + data = {"body": message} + + async with aiohttp.ClientSession() as session: + async with session.patch( + url, + headers=headers, + data=data, + cookies=self._cookies, + ) as response: + data = await response.json() + + # Has no auth token. + if response.status == 401: + return data + + # Post id doesn't exist. + if response.status == 404: + return data + + if response.status == 200: + return { + "code": response.status, + "message": "Post updated", + "data": data, + } + + # Handle any other unknown status code. + return data + + async def create_thread(self, title, message, category_name, post_type=None): + """Create new thread in one of the forum categories + + :param title: Thread title + :type title: str + :param message: Thread body that can be formatted with markdown + :type message: str + :param category_name: Forum category. Can be either "games" or "other". + :type category_name: str + :param post_type: Creates a "regular" thread by the default. (**optional**) + :rtype: dict + """ + if category_name not in ["games", "other"]: + return {"code": 400, "message": "Invalid forum category"} + + if post_type and post_type not in EDITORIAL_POST_TYPES: + return {"code": 400, "message": "Invalid post_type"} + + if not post_type: + post_type = "regular" + + url = f"{API_URL}/{API_VERSION}/posts/" + headers = { + "User-Agent": USER_AGENT, + "content-type": "application/x-www-form-urlencoded", + } + data = { + "category": category_name, + "postType": post_type, + "title": title, + "body": message, + } + async with aiohttp.ClientSession() as session: + async with session.post( + url, + headers=headers, + data=data, + cookies=self._cookies, + ) as response: + data = await response.json() + + # Validation errors. Happens when title or message is empty. + # Possibly in other cases too. + if response.status == 400: + return data + + # No auth token. + if response.status == 401: + return data + + if response.status == 201: + return { + "code": response.status, + "message": "Thread created", + "data": data, + } + + # Handle any other unknown status code. + return data + + async def edit_thread(self, thread_id, message): + """Edit existing thread + + :param thread_id: Unique thread id + :type thread_id: str + :param message: New text, that can be formatted with markdown, + that will replace the old message + :type message: str + :rtype: dict + """ + + thread_data = await self.edit_post(thread_id, message) + + if thread_data["code"] == 200: + thread_data["message"] = "Thread updated" + + return thread_data From 15f2bd94312ade8ed8c2481764aace998138e215 Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 2 Sep 2022 19:47:25 +0200 Subject: [PATCH 6/9] Add docstring --- loading_sdk/async_api.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/loading_sdk/async_api.py b/loading_sdk/async_api.py index 3bd8e83..eecf1cc 100644 --- a/loading_sdk/async_api.py +++ b/loading_sdk/async_api.py @@ -18,6 +18,17 @@ async def async_loading_api_client(email=None, password=None): class AsyncLoadingApiClient: + """An async client that allows python apps to easily communicate with the loading forums web api. + + Some methods can be used anonymously, while others require the client to be authenticated + with user credentials. + + :param email: users email address (**optional**) + :type email: str + :param password: users password (**optional**) + :type password: str + """ + def __init__(self): self._cookies = None From cc60eac19fe8fbc9818957e4f366a6cf2cff63b5 Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 2 Sep 2022 19:50:01 +0200 Subject: [PATCH 7/9] Bump to version 0.2.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8055ac1..a14d891 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "python-loading-sdk" -version = "0.1.1" +version = "0.2.0" description = "Python api wrapper for loading.se" authors = ["hnrkcode <44243358+hnrkcode@users.noreply.github.com>"] packages = [ From 0a91c56e4053d58d3823ecf4b239b227b7d6d517 Mon Sep 17 00:00:00 2001 From: Henrik Petersson <44243358+hnrkcode@users.noreply.github.com> Date: Fri, 2 Sep 2022 19:51:07 +0200 Subject: [PATCH 8/9] Update documentation with async module --- docs/build/doctrees/environment.pickle | Bin 19961 -> 23707 bytes docs/build/doctrees/index.doctree | Bin 6468 -> 6486 bytes docs/build/doctrees/loading_sdk.doctree | Bin 102160 -> 160913 bytes docs/build/doctrees/modules.doctree | Bin 2730 -> 2748 bytes docs/build/html/.buildinfo | 2 +- docs/build/html/_sources/loading_sdk.rst.txt | 8 + .../html/_static/documentation_options.js | 2 +- docs/build/html/genindex.html | 50 ++++- docs/build/html/index.html | 2 +- docs/build/html/loading_sdk.html | 209 +++++++++++++++++- docs/build/html/modules.html | 3 +- docs/build/html/objects.inv | Bin 474 -> 556 bytes docs/build/html/py-modindex.html | 7 +- docs/build/html/search.html | 2 +- docs/build/html/searchindex.js | 2 +- docs/source/conf.py | 2 +- docs/source/loading_sdk.rst | 8 + 17 files changed, 286 insertions(+), 11 deletions(-) diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 355f58c321e1fd81a2ba580a437922bbfeecce49..081612f2b64b09858a074fce84dcc4eca125eaf0 100644 GIT binary patch delta 6981 zcmcgxeQZ!!N;u!lh5*j z*>ET_V~z3gL^R?LTVwGk;b)UCH&>lGQPtGHQtg^EKl{n5R*UTl=&r4yUtqk<#RQ9G zhne8Y!%c6MFv;6hwcI8y6q)9q6VhejsDBzGm`qI1Ub%0qUe$cIxTt8r`!5>5qjhvE#x5 z^C7b^Xj#C=wTE?QVZ6?xy9JAN1NuMUa%l@(Zmb5b-k`e;we{nTzeQnciiJvkhu@oD z5S|yzgz5$d$RF|JX@T5@*XnC+%zl#;-2_eA6!QmW{WH8kK14mmdw?fIDdqX^N|2wz!5@zsnKPmrsM-UFo12!JSo7%ij4SPM zpHpk+0F&MO)Uvv{z-WO;0nd<0!E!1DteJdzWOa<0#ACwY;v!rZ)k%qPZ3A~xWiDJ7 z)Y>_$m4)jyF~LH)nLnqh(Mzm5+OnmQvF;-WQd4u$=~T8P-cd)L&2c^ay5-T_Jg=!O z3YNuHweGC)Y-P*h$08<$w)HdY>Rq^QY1qvYe@uSeSnwV+i7-e92c3L>r&;=^hHGuv};w~FFJYVAWxI?Gc05vE(X8`_I8%L^C(yfVje3ig@D>`rxG8r6jJF5Yy&4F zskuo!N%0UiDD=kyZIOqIStC8nK}CCiC6!>W`y|HhXKgh;oPkigp@NF=7YwsmK$*~f zRQDn1I|g+@8149O{W};6c@@pcPx0GQmrXmq{p4K~?I%Bnt)2Gf>+JgtHd2iClV9NX z)8suIakXEv4{S#M3CB9Oua*Kj2jA(usK1YM=?-|?wG9@!jZo853pI{Xc%y5r?mqme z>zJs}2H$p9F@@{STKJ25Jx*S5B*aMv#5_heIqvMl32;VnT-6<2&79k3csTFgj0$5Y zzSW%&#qB75-O&ygJ>_t|r%80x3V-dTn#Px1HvQjdXw~pWXQd-U=0e(_$+t#&3jHH)BQn7T4NYftYRzruD{o%f9sBxEyKKfv% zyE?CrE-fE1ccWJ#QtPbZ)S)J@L%oZ^jw_9G@^Zo6K5f6lu*YsoxH7xy)}g8RX-ii{JC!as=?t=4A({D&M}gYlXIczyNRc zNTtz34_w~#S~Y#RYUWvb-Qo$!=week83>1v5NWQVh}3+UGV@~NCUs_b7A<)vq~n^I z%Q_XLdZf$%c30~Vi^0l{?uhvQ$r}s#v;)9pw`W|_c$N-6veS&~0FH0EW^rtCQyM$# zp26`yZYr7e9L4c{50&(L>G-;r$8lpXot^Iu;rOTCxb9al;oFYm313wyCEL^F9K7n= zjFRv9diCrb%Rk@~U)$PwuBgZ?zI6E)xcWSD!2|eOpHD7$2v_^*XPs)h;wMxH+iE zV29d#1(aQ;$ikxbp_v8JvzHOQVoP^@dM~s(6_ME0K9-^4tqS`NwY?^oBI%YYd^prT zmf_rL`F{4O&6lCuEs8Ve;o$3iHSL^=qH-xu<#-Gkb) z!>4AZpytBAX4|j%J*LR^Oa)JJ)aL{i~J?t21nD1cz zm2>H}(#ryTS&RSSp{z}m8pMZYF9|OSQ!fel?wa?<13`fdp%DLFlGkO~0j6XcqyH$$ zdTh)Fv{&Y`EOxvF+kNprOk_+CAB|Xc*-?SeAvo}&K)m#+H}gc7me$9)G5Um7Pwac5 LctQ`C_Kp4*3S+Ys delta 4491 zcmcIo3v5$m6kfY_8+2tXp|Cf5uZ7XFCu7~lbYQo2FGLt@Gth09wg0*m`am%vU<4di zU^$lzgBTw?1eAaz8jJ}@G{yuCA<xd^UM_N3y0QvTiiG zNMCgP6WJFN=mVToX#i9@COoNH!Gy=NH76BJGMb#NoT9QjEWNhDzU8joe%`CJ4fb-+ zA5WQ{9GcNu6L~dQ zR@wBc*76XWlbO4NnLZi_Jvm*nU2rO=R(26&xu%#=^zYR}LT)hR+`9Go1 z)6HTdm+)D)kzdDa3B_7Xl&<|lXLQP5SC*b)?j$2-yP80>S~ z+;+~zlA~oIm+3$$XUQ;53G?n%xE(zr;6>=nPnjJ=h?ZPLL+=E;&E;Nhb8`bc@FB#( zzWlQCAS0iRlUvC-xxpST+y;FzvL_eRtN}9Y%B-q3`BX(};an;PaS<2!Q}0DK0{f`U%Jy$7V3UBpZJs z5}=h*%#u=Eg{?C(amgH>kt~G1mQ4|9$zTPwkTY{y9$Pqp3a*i~@FyFnpzD#?&}1VK z<6pd#ME|BB*%VS_X~|=-g?;9oVuuZdX+q~mV+2AO_e*AmyiJ9D1)5Oa-jlTO=NI7Z zZ6Q;sB(?u(OUUPAmJ=6wx(6J+9=aI??RH{?kouRBiTF}agjW6J(DYABT7|dGNl9$@ z8u?71N~-LSQ*|&I@^Fm|7&3%4a!oRv@r17#(n1sdRnjUv;h!b3{@w_zlm8)M+U5z( ztooTfjzKr>js7ku6%O5Swa^P{h1AYBPR*Q>q)=)mN?L_e6Z=SPC^eC`5WnBRJ}fM; zhhYPL_dK#ZzO9MfE2LJf_%a$Z!$U=#pk|dCoXj56(PE{vqu{7+A zu4P#1GrAt*h~FzLm?J5TBaZkaPFdnF>w3L)1n$;iVS zK#2U`H9)nb-#GsP588?}HNC=_B+tXqU(!y?Y_|gxDE7B6E2(Qb8 zB6gtc`-;`FF{qzgFIx%2a}VUcgL9I%P)Xj!r}3K{y?3>c{U~Z72cWC6RCka)A7UdV zqlFyC=OOX|jyT&9_Jil<9XL^$73T|R1TI&;FFOmb8C^I&Fg_P^7IEG(XlqD@m#Q;h zT7w!+Rpq1dN)?54R37Icur)s!!*2E8!m;MEsfEg@D6MeKKSya-_Sh{h7p!R0!SBX+H4*8* zgPN8)wMcMY0iU;)fWBQNmR?Z64=uG~$&U)iZw<1%L@noFsbVIHXBeg88nNjW1;n>i zizUBN_a(maOb}~sC}4YghOaiUL5^=J;AWe#RuubfnrzGf=e9a}`5`xcRfT*_iLiGO zOJ*TaP`M;eJmWnD*q0c^lKV7+3`lQJgvO^6#F_^Rc(9~0UgTB|N0!dUeo%{rO4!z3 zD;C5-*3weSR8TEcC^d>7O@qvIoRl>T?B>5>NjCAUY n_R<*XU^Q*#$uau&k^ha(i+r}`MIh3rNya5`k^Idsma+nnR)5@1*t{F`FV*s`UOS# OS*h72n_n|UiU9zG3KmEJ delta 40 wcmca+bi|0Ifpx0oMwUxVqPF@O`MIh3rNya5`oY;nnPo}&MJb#AGDV6304)a&{Qv*} diff --git a/docs/build/doctrees/loading_sdk.doctree b/docs/build/doctrees/loading_sdk.doctree index 35922291c082bed6a6af0c605de447be7e933a45..f2c0211049380b7e2ff490df578bbe2821b57339 100644 GIT binary patch delta 25555 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

@@cg2&|% zc`kqi$TI;dnaLwC-x+zJHkxi>9+L;MwLeurmP|Jv1R3PX1z~U>Xa$RIVbPGF=sQ^S zraU6g%se8`UEM_hjUa*+0|8{=LJ(vL!S#L!aCX4UKt~wGAw~fSqWF|ieB_7X^X{U6 zMi9jz0|jL9HV`%qPUNNkLb2*UH%gmRZGPMx zKJgh6H0N3Q#OE210H5bTMKhmcG2a=Vp*Gs_n0)3lWZ|+4WXbx@2SEm(N95B1_`6uN z&Y~ef(d{hy(R||b;(X%s6Wv7sjUWQuKmaLTbb&lUXfs3b5uh@ktusI0WSzPBM1Y@I zcRzS_hXm+TKm;IgOn@#`5?Vk62rgg|KlqDa0>tMN0iO4oDvl8n00bZb7Gv*;07DBr z1Q=T2M}WFWVUGFm?L~d?j><*yk^&~eg;4eEflC>B|@zZINSBuJRm+Dk*^)&ku% zQOp+w#DQnARU5$Z27||7fZ$sE+t3d4T5K&KT1>(rBM*+lhO__yNQ>Usd!ofF z_=z?(UUB)+;)+z!Y|INgm>!U+V;Q$m2R_EPyZYvpe)vj2a(D9SshkfJ=uVU!nJ z2&2TCx=`YY@_uyD4GUKxRm>}-isx}f$YI3^zKT#{s)+Y2uH=fdxMDL`gdA49(N_^l zOcjxUzMg77z+FFlxy5@fB49AamFg)iKjH_}22<|?cv_9G(y`CGCH&z+D7I=_3z>ca zDvDlbChsrg`RCa}GM1;XNjPH#Rsyf2z>5;^6cPd6C?xJdGN8Unp2Qv%$uA)R?tKfD z%qD&x<~!pa)J7A3qmWG;vX?J7AG5T=jx3^p2(lCq!MAAmM?k(|_=iEq#ubUOB0}XZ zB2n5!9gPk&RxXdAZu^>8nXm$A%lY~fkTM^&IK_1!11jJ zozW>q2MMBkgwZ|ZhwicNqJu^doifm=qKXK`F6M0cR-1U$<1zW-=e;QG5*>goUA-o^|8F|IcA~ zU?Tn4O|*do$^0MeRFV7z5+L*MP{~Z@Co$g{nV~jX^D>!yhd=}=mE>(V8%(fO_+t7<8CL4P7 zc1Of9l+32HuY^qp4t$6ADJ8QBFJ-d{5L6PnsgP1O9a|}xP6D=Q10ZBNaIRYxm6GY? zmy+o~g7fDErDQszAOX`E3zf{K6O8%JOb2SC>ExHP=|DMm3=AfB>|eY1l2Y zotNM#-`hrV^m!6f~9IWoRmV z%2_6sk-fxYvo-(&_A*Ttmcf9yH(K)PgmVyl*Qpse%V;oi%6Pov%S_`P1MR|-ncihI z7Vmp?g(7e)D$8grDzR-Ei!1RHjm4E^eq(WBE?m1a9_#2!YDI%wR>mW6EmSc^;H=+G zD>s!9p*NNxp+nX}lXNQh0(hGv-g$huj3$(4%4kA?98M@Nm3b!=DDg}vYw=@tgb$Ur z25unX;^XQvlOOoYBRLUk5IGO-HDx@waI`o4dn~qUr;Ncpn@)KT@1CSlo+o>k(*VnI z8sIfBvh-fOC_K3ZDe9sFPaZN1b=C5p%rM z0XH^94z6J8ltC4PI%oBEWqDx*(PLr-&4c4GG3G&E)7sbyw*R6EuW#FZt#Cw)Md@t* z#T7;b1&3CbVzE`brhLPeR+x-vWd#}0_YCh_ z6TE3MbPyTQD;3_kuuI87gUE<_4Pp`B`io#AS_GYjki8gXun~b8(1<_)8qq7*Ei$5t zK^`Nj800Y`I++@=4^Me;WjMZomEjZs9!s_2DFCWG+FNVC84mvDOzhI(Glg~Cw9@LuE_P$a%DT8py4 zAAC=%wksO`;F}lWC1mgiUrwfd9uI%;Ek*DK5%_~|7SWt|ryQ@_Yd7Hi*5&x;FkErd z@ZzE-;Pk(Sx3o0Z-|;VATG2M(v1>e-t{s8XZyKJXB#qNCLKr*9`udMqzy538?>`+Q z%w6U=g9tr6j*a7SFzrQr*o)_mw8Lmpc#1-siVwi?0kO6lpMK%PC9MiKpmBFydk=R$ zahp$@ifd`yA<)+2N(WbR+KUkSX&8@d$1uXfXiK{q=dEk|;NK!N`m&0hPp=VE#Qy`t Cl`jqe delta 10167 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 diff --git a/docs/build/doctrees/modules.doctree b/docs/build/doctrees/modules.doctree index 037416a091cdd6d1eef60840ddbd9408232112f1..02d0135e10b9f123c896fe2ed87073ae8d5e1879 100644 GIT binary patch delta 58 zcmZ1_x<{0yfpzM}jVwNl>Vf(h`MIh3rNya5`k^Idsma+nnR)5@1*t{F`FV*s`UOS# NS*h72n^PHGIRRwy6%zme delta 40 vcmdlZx=NI#fpzNqjVwNlqW1b3`MIh3rNya5`oY;nnPo}&MJb!h8C^L67ugNS diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 714668e..a7ed714 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: c4d800262be12854ef2a1da1aeb238c2 +config: 51fcf3155e9b8927d200a3927a4b8e0b tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/loading_sdk.rst.txt b/docs/build/html/_sources/loading_sdk.rst.txt index 3070b22..8dde1ee 100644 --- a/docs/build/html/_sources/loading_sdk.rst.txt +++ b/docs/build/html/_sources/loading_sdk.rst.txt @@ -12,6 +12,14 @@ loading\_sdk.api module :undoc-members: :show-inheritance: +loading\_sdk.async_api module +----------------------------- + +.. automodule:: loading_sdk.async_api + :members: + :undoc-members: + :show-inheritance: + Module contents --------------- diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index 3462e59..8c1afeb 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.1.1', + VERSION: '0.2.0', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index a0b634b..1159a82 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -3,7 +3,7 @@ - Index — python-loading-sdk 0.1.1 documentation + Index — python-loading-sdk 0.2.0 documentation