diff --git a/generator/generate.py b/generator/generate.py index b53dbfd..f1d9d5e 100644 --- a/generator/generate.py +++ b/generator/generate.py @@ -140,15 +140,27 @@ def format_annotation(current_module: types.ModuleType, ann: typing.Any): ann_str = f'{ann.__module__}.{ann.__name__}' else: ann_str = ann.__name__ - elif ann._name == 'Any': + elif hasattr(ann, '_name') and ann._name == 'Any': ann_str = 'typing.Any' - elif ann._name == 'List': + elif hasattr(ann, '_name') and ann._name == 'List': nested_ann = format_annotation(current_module, ann.__args__[0]) ann_str = f'typing.List[{nested_ann}]' - elif ann._name == 'Tuple': + elif hasattr(ann, '_name') and ann._name == 'Dict': + key_ann = format_annotation(current_module, ann.__args__[0]) + val_ann = format_annotation(current_module, ann.__args__[1]) + ann_str = f'typing.Dict[{key_ann}, {val_ann}]' + elif hasattr(ann, '_name') and ann._name == 'Tuple': nested_anns = ', '.join(format_annotation(current_module, a) for a in ann.__args__) ann_str = f'typing.Tuple[{nested_anns}]' - elif ann._name is None and len(ann.__args__) > 1: + elif hasattr(ann, '_name') and ann._name == 'Generator': + nested_anns = ', '.join(format_annotation(current_module, a) for a in ann.__args__) + ann_str = f'typing.Generator[{nested_anns}]' + elif hasattr(ann, '_name') and ann._name == 'Optional': + # Optional is actually Union[X, None] + opt_type = [a for a in ann.__args__ if a is not type(None)][0] + nested_ann = format_annotation(current_module, opt_type) + ann_str = f'typing.Optional[{nested_ann}]' + elif hasattr(ann, '_name') and ann._name is None and hasattr(ann, '__args__') and len(ann.__args__) > 1: # For some reason union annotations don't have a name? # If the union has two members and one of them is NoneType, then it's really # a typing.Optional. diff --git a/poetry.lock b/poetry.lock index 271ced9..bb99d2d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,445 +1,904 @@ +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. + [[package]] -category = "dev" -description = "A configurable sidebar-enabled Sphinx theme" name = "alabaster" +version = "0.7.13" +description = "A configurable sidebar-enabled Sphinx theme" optional = false -python-versions = "*" -version = "0.7.12" +python-versions = ">=3.6" +groups = ["dev"] +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] [[package]] -category = "main" -description = "Async generators and context managers for Python 3.5+" name = "async-generator" -optional = false -python-versions = ">=3.5" version = "1.10" - -[[package]] -category = "dev" -description = "Atomic file writes." -marker = "sys_platform == \"win32\"" -name = "atomicwrites" +description = "Async generators and context managers for Python 3.5+" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.3.0" +python-versions = ">=3.5" +groups = ["main"] +files = [ + {file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"}, + {file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"}, +] [[package]] -category = "main" -description = "Classes Without Boilerplate" name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "19.3.0" +python-versions = ">=3.7" +groups = ["main", "dev"] +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] + +[package.dependencies] +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"] -dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "pre-commit"] -docs = ["sphinx", "zope.interface"] -tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] +benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\""] [[package]] -category = "dev" -description = "Internationalization utilities" name = "babel" +version = "2.14.0" +description = "Internationalization utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "2.8.0" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, +] [package.dependencies] -pytz = ">=2015.7" +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] -category = "dev" -description = "Python package for providing Mozilla's CA Bundle." name = "certifi" +version = "2025.11.12" +description = "Python package for providing Mozilla's CA Bundle." optional = false -python-versions = "*" -version = "2020.4.5.1" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b"}, + {file = "certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316"}, +] [[package]] -category = "main" -description = "Foreign Function Interface for Python calling C code." -marker = "os_name == \"nt\"" name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." optional = false python-versions = "*" -version = "1.14.0" +groups = ["main", "dev"] +markers = "os_name == \"nt\" and implementation_name != \"pypy\"" +files = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] [package.dependencies] pycparser = "*" [[package]] -category = "dev" -description = "Universal encoding detector for Python 2 and 3" -name = "chardet" +name = "charset-normalizer" +version = "3.4.4" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false -python-versions = "*" -version = "3.0.4" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ce8a0633f41a967713a59c4139d29110c07e826d131a316b50ce11b1d79b4f84"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaabd426fe94daf8fd157c32e571c85cb12e66692f15516a83a03264b08d06c3"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4ef880e27901b6cc782f1b95f82da9313c0eb95c3af699103088fa0ac3ce9ac"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aaba3b0819274cc41757a1da876f810a3e4d7b6eb25699253a4effef9e8e4af"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:778d2e08eda00f4256d7f672ca9fef386071c9202f5e4607920b86d7803387f2"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f155a433c2ec037d4e8df17d18922c3a0d9b3232a396690f17175d2946f0218d"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8bf8d0f749c5757af2142fe7903a9df1d2e8aa3841559b2bad34b08d0e2bcf3"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:194f08cbb32dc406d6e1aea671a68be0823673db2832b38405deba2fb0d88f63"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:6aee717dcfead04c6eb1ce3bd29ac1e22663cdea57f943c87d1eab9a025438d7"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:cd4b7ca9984e5e7985c12bc60a6f173f3c958eae74f3ef6624bb6b26e2abbae4"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:b7cf1017d601aa35e6bb650b6ad28652c9cd78ee6caff19f3c28d03e1c80acbf"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e912091979546adf63357d7e2ccff9b44f026c075aeaf25a52d0e95ad2281074"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5cb4d72eea50c8868f5288b7f7f33ed276118325c1dfd3957089f6b519e1382a"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-win32.whl", hash = "sha256:837c2ce8c5a65a2035be9b3569c684358dfbf109fd3b6969630a87535495ceaa"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:44c2a8734b333e0578090c4cd6b16f275e07aa6614ca8715e6c038e865e70576"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win32.whl", hash = "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win_arm64.whl", hash = "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50"}, + {file = "charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f"}, + {file = "charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"}, +] [[package]] -category = "main" -description = "Python type wrappers for Chrome DevTools Protocol (CDP)" name = "chrome-devtools-protocol" +version = "0.4.0" +description = "Python type wrappers for Chrome DevTools Protocol (CDP)" optional = false -python-versions = ">=3.7" -version = "0.3.0" +python-versions = ">=3.7,<4.0" +groups = ["main"] +files = [ + {file = "chrome-devtools-protocol-0.4.0.tar.gz", hash = "sha256:eb26b540c2e0bc2e35021e2347e5af2b0c5b9f8d0f5a2136dc64d1ae7e7e9328"}, + {file = "chrome_devtools_protocol-0.4.0-py3-none-any.whl", hash = "sha256:edf6216e4ee65ab440d220b36f7d4edf36f1bc9a52ec75bfb6556e5bd71a6561"}, +] [package.dependencies] -deprecated = "*" +deprecated = ">=1.2.9,<2.0.0" [[package]] -category = "dev" -description = "Cross-platform colored terminal text." -marker = "sys_platform == \"win32\"" name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "0.4.3" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +markers = "sys_platform == \"win32\"" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] [[package]] -category = "dev" -description = "Code coverage measurement for Python" name = "coverage" +version = "7.2.7" +description = "Code coverage measurement for Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" -version = "5.1" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, + {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, + {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, + {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, + {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, + {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, + {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, + {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, + {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, + {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, + {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, + {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, + {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, + {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, + {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, + {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, + {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] -toml = ["toml"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] -category = "main" -description = "Python @deprecated decorator to deprecate old python classes, functions or methods." name = "deprecated" +version = "1.3.1" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.2.9" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["main"] +files = [ + {file = "deprecated-1.3.1-py2.py3-none-any.whl", hash = "sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f"}, + {file = "deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223"}, +] [package.dependencies] -wrapt = ">=1.10,<2" +wrapt = ">=1.10,<3" [package.extras] -dev = ["tox", "bumpversion (<1)", "sphinx (<2)", "PyTest (<5)", "PyTest-Cov (<2.6)", "pytest", "pytest-cov"] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools ; python_version >= \"3.12\"", "tox"] [[package]] -category = "dev" -description = "Docutils -- Python Documentation Utilities" name = "docutils" +version = "0.16" +description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "0.16" +groups = ["dev"] +files = [ + {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, + {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + +[package.extras] +test = ["pytest (>=6)"] [[package]] -category = "main" -description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false -python-versions = "*" -version = "0.9.0" +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[package.dependencies] +typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [[package]] -category = "main" -description = "Internationalized Domain Names in Applications (IDNA)" name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "2.9" +python-versions = ">=3.6" +groups = ["main", "dev"] +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] -category = "dev" -description = "Getting image size from png/jpeg/jpeg2000/gif file" name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.2.0" +groups = ["dev"] +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] [[package]] -category = "dev" -description = "Read metadata from Python packages" -marker = "python_version < \"3.8\"" name = "importlib-metadata" +version = "6.7.0" +description = "Read metadata from Python packages" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -version = "1.6.0" +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version == \"3.7\"" +files = [ + {file = "importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5"}, + {file = "importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4"}, +] [package.dependencies] +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "rst.linker"] -testing = ["packaging", "importlib-resources"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)", "pytest-ruff"] [[package]] -category = "main" -description = "IPv4/IPv6 manipulation library" -name = "ipaddress" +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" optional = false -python-versions = "*" -version = "1.0.23" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] [[package]] -category = "dev" -description = "A very fast and expressive template engine." name = "jinja2" +version = "3.1.6" +description = "A very fast and expressive template engine." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "2.11.2" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, + {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, +] [package.dependencies] -MarkupSafe = ">=0.23" +MarkupSafe = ">=2.0" [package.extras] -i18n = ["Babel (>=0.8)"] +i18n = ["Babel (>=2.7)"] [[package]] -category = "dev" -description = "Safely add untrusted strings to HTML/XML markup." name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" -version = "1.1.1" - -[[package]] -category = "dev" -description = "More routines for operating on iterables, beyond itertools" -name = "more-itertools" -optional = false -python-versions = ">=3.5" -version = "8.2.0" - -[[package]] -category = "main" -description = "multidict implementation" -name = "multidict" -optional = false -python-versions = ">=3.5" -version = "4.7.5" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] [[package]] -category = "dev" -description = "Optional static typing for Python" name = "mypy" +version = "1.4.1" +description = "Optional static typing for Python" optional = false -python-versions = ">=3.5" -version = "0.770" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"}, + {file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"}, + {file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"}, + {file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"}, + {file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"}, + {file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"}, + {file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"}, + {file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"}, + {file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"}, + {file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"}, + {file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"}, + {file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"}, + {file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"}, + {file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"}, + {file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"}, + {file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"}, + {file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"}, + {file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"}, + {file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"}, + {file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"}, + {file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"}, + {file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"}, + {file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"}, + {file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"}, + {file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"}, + {file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"}, +] [package.dependencies] -mypy-extensions = ">=0.4.3,<0.5.0" -typed-ast = ">=1.4.0,<1.5.0" -typing-extensions = ">=3.7.4" +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} +typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] [[package]] -category = "dev" -description = "Experimental type system extensions for programs checked with the mypy typechecker." name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." optional = false -python-versions = "*" -version = "0.4.3" +python-versions = ">=3.5" +groups = ["dev"] +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] [[package]] -category = "main" -description = "Capture the outcome of Python function calls." name = "outcome" +version = "1.3.0.post0" +description = "Capture the outcome of Python function calls." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.0.1" +python-versions = ">=3.7" +groups = ["main", "dev"] +files = [ + {file = "outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b"}, + {file = "outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8"}, +] [package.dependencies] attrs = ">=19.2.0" [[package]] -category = "dev" -description = "Core utilities for Python packages" name = "packaging" +version = "24.0" +description = "Core utilities for Python packages" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "20.3" - -[package.dependencies] -pyparsing = ">=2.0.2" -six = "*" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, +] [[package]] -category = "dev" -description = "plugin and hook calling mechanisms for python" name = "pluggy" +version = "1.2.0" +description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "0.13.1" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, + {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, +] [package.dependencies] -[package.dependencies.importlib-metadata] -python = "<3.8" -version = ">=0.12" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.extras] dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] [[package]] -category = "dev" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -name = "py" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.8.1" - -[[package]] -category = "main" -description = "C parser in Python" -marker = "os_name == \"nt\"" name = "pycparser" +version = "2.21" +description = "C parser in Python" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "2.20" +groups = ["main", "dev"] +markers = "os_name == \"nt\" and implementation_name != \"pypy\"" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] [[package]] -category = "dev" -description = "Pygments is a syntax highlighting package written in Python." name = "pygments" +version = "2.17.2" +description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.5" -version = "2.6.1" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] -[[package]] -category = "dev" -description = "Python parsing module" -name = "pyparsing" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -version = "2.4.7" +[package.extras] +plugins = ["importlib-metadata ; python_version < \"3.8\""] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] -category = "dev" -description = "pytest: simple powerful testing with Python" name = "pytest" +version = "7.4.4" +description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.5" -version = "5.4.1" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, +] [package.dependencies] -atomicwrites = ">=1.0" -attrs = ">=17.4.0" -colorama = "*" -more-itertools = ">=4.0.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<1.0" -py = ">=1.5.0" -wcwidth = "*" - -[package.dependencies.importlib-metadata] -python = "<3.8" -version = ">=0.12" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -checkqa-mypy = ["mypy (v0.761)"] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] -category = "dev" -description = "Pytest plugin for measuring coverage." name = "pytest-cov" +version = "4.1.0" +description = "Pytest plugin for measuring coverage." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "2.8.1" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, +] [package.dependencies] -coverage = ">=4.4" -pytest = ">=3.6" +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] [[package]] -category = "dev" -description = "Pytest plugin for trio" name = "pytest-trio" +version = "0.8.0" +description = "Pytest plugin for trio" optional = false -python-versions = ">=3.5" -version = "0.5.2" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "pytest-trio-0.8.0.tar.gz", hash = "sha256:8363db6336a79e6c53375a2123a41ddbeccc4aa93f93788651641789a56fb52e"}, + {file = "pytest_trio-0.8.0-py3-none-any.whl", hash = "sha256:e6a7e7351ae3e8ec3f4564d30ee77d1ec66e1df611226e5618dbb32f9545c841"}, +] [package.dependencies] -async-generator = ">=1.9" -pytest = ">=3.6" -trio = ">=0.11" +outcome = ">=1.1.0" +pytest = ">=7.2.0" +trio = ">=0.22.0" [[package]] -category = "dev" -description = "World timezone definitions, modern and historical" name = "pytz" +version = "2025.2" +description = "World timezone definitions, modern and historical" optional = false python-versions = "*" -version = "2019.3" +groups = ["dev"] +markers = "python_version < \"3.9\"" +files = [ + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, +] [[package]] -category = "dev" -description = "Python HTTP for Humans." name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "2.23.0" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] [package.dependencies] certifi = ">=2017.4.17" -chardet = ">=3.0.2,<4" -idna = ">=2.5,<3" -urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" [package.extras] -security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] -socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] -category = "dev" -description = "Python 2 and 3 compatibility utilities" -name = "six" +name = "setuptools" +version = "68.0.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -version = "1.14.0" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, + {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov ; platform_python_implementation != \"PyPy\"", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf", "pytest-ruff ; sys_platform != \"cygwin\"", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] -category = "main" -description = "Sniff out which async library your code is running under" name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" optional = false -python-versions = ">=3.5" -version = "1.1.0" +python-versions = ">=3.7" +groups = ["main", "dev"] +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] [[package]] -category = "dev" -description = "This package provides 26 stemmers for 25 languages generated from Snowball algorithms." name = "snowballstemmer" +version = "3.0.1" +description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." optional = false -python-versions = "*" -version = "2.0.0" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" +groups = ["dev"] +files = [ + {file = "snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064"}, + {file = "snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895"}, +] [[package]] -category = "main" -description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" name = "sortedcontainers" +version = "2.4.0" +description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" optional = false python-versions = "*" -version = "2.1.0" +groups = ["main", "dev"] +files = [ + {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, + {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, +] [[package]] -category = "dev" -description = "Python documentation generator" name = "sphinx" +version = "3.5.4" +description = "Python documentation generator" optional = false python-versions = ">=3.5" -version = "3.0.1" +groups = ["dev"] +files = [ + {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"}, + {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"}, +] [package.dependencies] -Jinja2 = ">=2.3" -Pygments = ">=2.0" alabaster = ">=0.7,<0.8" babel = ">=1.3" -colorama = ">=0.3.5" -docutils = ">=0.12" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.12,<0.17" imagesize = "*" +Jinja2 = ">=2.3" packaging = "*" +Pygments = ">=2.0" requests = ">=2.5.0" setuptools = "*" snowballstemmer = ">=1.1" @@ -452,615 +911,385 @@ sphinxcontrib-serializinghtml = "*" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "flake8-import-order", "mypy (>=0.770)", "docutils-stubs"] -test = ["pytest", "pytest-cov", "html5lib", "typed-ast", "cython"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "isort", "mypy (>=0.800)"] +test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast ; python_version < \"3.8\""] [[package]] -category = "dev" -description = "Type hints (PEP 484) support for the Sphinx autodoc extension" name = "sphinx-autodoc-typehints" +version = "1.12.0" +description = "Type hints (PEP 484) support for the Sphinx autodoc extension" optional = false -python-versions = ">=3.5.2" -version = "1.10.3" +python-versions = ">=3.6" +groups = ["dev"] +files = [ + {file = "sphinx-autodoc-typehints-1.12.0.tar.gz", hash = "sha256:193617d9dbe0847281b1399d369e74e34cd959c82e02c7efde077fca908a9f52"}, + {file = "sphinx_autodoc_typehints-1.12.0-py3-none-any.whl", hash = "sha256:5e81776ec422dd168d688ab60f034fccfafbcd94329e9537712c93003bddc04a"}, +] [package.dependencies] -Sphinx = ">=2.1" +Sphinx = ">=3.0" [package.extras] -test = ["pytest (>=3.1.0)", "typing-extensions (>=3.5)", "sphobjinv (>=2.0)", "dataclasses"] -type_comments = ["typed-ast (>=1.4.0)"] +test = ["Sphinx (>=3.2.0)", "dataclasses ; python_version == \"3.6\"", "pytest (>=3.1.0)", "sphobjinv (>=2.0)", "typing-extensions (>=3.5)"] +type-comments = ["typed-ast (>=1.4.0) ; python_version < \"3.8\""] [[package]] -category = "dev" -description = "Read the Docs theme for Sphinx" name = "sphinx-rtd-theme" +version = "0.4.3" +description = "Read the Docs theme for Sphinx" optional = false python-versions = "*" -version = "0.4.3" +groups = ["dev"] +files = [ + {file = "sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl", hash = "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4"}, + {file = "sphinx_rtd_theme-0.4.3.tar.gz", hash = "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a"}, +] [package.dependencies] sphinx = "*" [[package]] -category = "dev" -description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.5" -version = "1.0.2" +groups = ["dev"] +files = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] -category = "dev" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." optional = false python-versions = ">=3.5" -version = "1.0.2" +groups = ["dev"] +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] -category = "dev" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" name = "sphinxcontrib-htmlhelp" +version = "2.0.0" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false -python-versions = ">=3.5" -version = "1.0.3" +python-versions = ">=3.6" +groups = ["dev"] +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest", "html5lib"] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] [[package]] -category = "dev" -description = "A sphinx extension which renders display math in HTML via JavaScript" name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" -version = "1.0.1" +groups = ["dev"] +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] [package.extras] -test = ["pytest", "flake8", "mypy"] +test = ["flake8", "mypy", "pytest"] [[package]] -category = "dev" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." optional = false python-versions = ">=3.5" -version = "1.0.3" +groups = ["dev"] +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] -category = "dev" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." optional = false python-versions = ">=3.5" -version = "1.1.4" +groups = ["dev"] +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] -category = "main" -description = "A friendly Python library for async concurrency and I/O" +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_full_version <= \"3.11.0a6\"" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] name = "trio" +version = "0.22.2" +description = "A friendly Python library for async concurrency and I/O" optional = false -python-versions = ">=3.5" -version = "0.13.0" +python-versions = ">=3.7" +groups = ["main", "dev"] +files = [ + {file = "trio-0.22.2-py3-none-any.whl", hash = "sha256:f43da357620e5872b3d940a2e3589aa251fd3f881b65a608d742e00809b1ec38"}, + {file = "trio-0.22.2.tar.gz", hash = "sha256:3887cf18c8bcc894433420305468388dac76932e9668afa1c49aa3806b6accb3"}, +] [package.dependencies] -async-generator = ">=1.9" -attrs = ">=19.2.0" -cffi = ">=1.12" +attrs = ">=20.1.0" +cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name != \"pypy\""} +exceptiongroup = {version = ">=1.0.0rc9", markers = "python_version < \"3.11\""} idna = "*" outcome = "*" sniffio = "*" sortedcontainers = "*" [[package]] -category = "main" -description = "WebSocket library for Trio" name = "trio-websocket" +version = "0.9.2" +description = "WebSocket library for Trio" optional = false python-versions = ">=3.5" -version = "0.8.0" +groups = ["main"] +files = [ + {file = "trio-websocket-0.9.2.tar.gz", hash = "sha256:a3d34de8fac26023eee701ed1e7bf4da9a8326b61a62934ec9e53b64970fd8fe"}, + {file = "trio_websocket-0.9.2-py3-none-any.whl", hash = "sha256:5b558f6e83cc20a37c3b61202476c5295d1addf57bd65543364e0337e37ed2bc"}, +] [package.dependencies] -async_generator = ">=1.10,<2" -ipaddress = ">=1.0.22,<2" +async-generator = ">=1.10" trio = ">=0.11" -wsaccel = ">=0.6.2,<0.7" -wsproto = ">=0.14,<0.15" -yarl = ">=1.2.6,<2" +wsproto = ">=0.14" [[package]] -category = "dev" -description = "a fork of Python 2 and 3 ast modules with type comment support" name = "typed-ast" +version = "1.5.5" +description = "a fork of Python 2 and 3 ast modules with type comment support" optional = false -python-versions = "*" -version = "1.4.1" +python-versions = ">=3.6" +groups = ["dev"] +markers = "python_version == \"3.7\"" +files = [ + {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, + {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, + {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, + {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, + {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, + {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, + {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, + {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, + {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, + {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, +] [[package]] -category = "dev" -description = "Backported and Experimental Type Hints for Python 3.5+" name = "typing-extensions" +version = "4.7.1" +description = "Backported and Experimental Type Hints for Python 3.7+" optional = false -python-versions = "*" -version = "3.7.4.2" +python-versions = ">=3.7" +groups = ["main", "dev"] +files = [ + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, +] +markers = {main = "python_version < \"3.11\""} [[package]] -category = "dev" -description = "HTTP library with thread-safe connection pooling, file post, and more." name = "urllib3" +version = "2.0.7" +description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" -version = "1.25.8" +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, +] [package.extras] -brotli = ["brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] -socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] - -[[package]] -category = "dev" -description = "Measures number of Terminal column cells of wide-character codes" -name = "wcwidth" -optional = false -python-versions = "*" -version = "0.1.9" +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] -category = "main" -description = "Module for decorators, wrappers and monkey patching." name = "wrapt" +version = "1.16.0" +description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = "*" -version = "1.12.1" - -[[package]] -category = "main" -description = "Accelerator for ws4py and AutobahnPython" -marker = "implementation_name != \"pypy\"" -name = "wsaccel" -optional = false -python-versions = "*" -version = "0.6.2" +python-versions = ">=3.6" +groups = ["main"] +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, +] [[package]] -category = "main" -description = "WebSockets state-machine based protocol implementation" name = "wsproto" +version = "1.2.0" +description = "WebSockets state-machine based protocol implementation" optional = false -python-versions = "*" -version = "0.14.1" - -[package.dependencies] -h11 = ">=0.8.1" - -[[package]] -category = "main" -description = "Yet another URL library" -name = "yarl" -optional = false -python-versions = ">=3.5" -version = "1.4.2" +python-versions = ">=3.7.0" +groups = ["main"] +files = [ + {file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"}, + {file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"}, +] [package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" +h11 = ">=0.9.0,<1" [[package]] -category = "dev" -description = "Backport of pathlib-compatible object wrapper for zip files" -marker = "python_version < \"3.8\"" name = "zipp" +version = "3.15.0" +description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.6" -version = "3.1.0" +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version == \"3.7\"" +files = [ + {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, + {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, +] [package.extras] -docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] -testing = ["jaraco.itertools", "func-timeout"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8 ; python_version < \"3.12\"", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\""] [metadata] -content-hash = "a74d6edfcd64d8564b38a43a80aee099aaac6cf267b8980b160ac0506d32cb56" +lock-version = "2.1" python-versions = "^3.7" - -[metadata.files] -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-generator = [ - {file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"}, - {file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"}, -] -atomicwrites = [ - {file = "atomicwrites-1.3.0-py2.py3-none-any.whl", hash = "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4"}, - {file = "atomicwrites-1.3.0.tar.gz", hash = "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"}, -] -attrs = [ - {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"}, - {file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"}, -] -babel = [ - {file = "Babel-2.8.0-py2.py3-none-any.whl", hash = "sha256:d670ea0b10f8b723672d3a6abeb87b565b244da220d76b4dba1b66269ec152d4"}, - {file = "Babel-2.8.0.tar.gz", hash = "sha256:1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38"}, -] -certifi = [ - {file = "certifi-2020.4.5.1-py2.py3-none-any.whl", hash = "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304"}, - {file = "certifi-2020.4.5.1.tar.gz", hash = "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"}, -] -cffi = [ - {file = "cffi-1.14.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1cae98a7054b5c9391eb3249b86e0e99ab1e02bb0cc0575da191aedadbdf4384"}, - {file = "cffi-1.14.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:cf16e3cf6c0a5fdd9bc10c21687e19d29ad1fe863372b5543deaec1039581a30"}, - {file = "cffi-1.14.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f2b0fa0c01d8a0c7483afd9f31d7ecf2d71760ca24499c8697aeb5ca37dc090c"}, - {file = "cffi-1.14.0-cp27-cp27m-win32.whl", hash = "sha256:99f748a7e71ff382613b4e1acc0ac83bf7ad167fb3802e35e90d9763daba4d78"}, - {file = "cffi-1.14.0-cp27-cp27m-win_amd64.whl", hash = "sha256:c420917b188a5582a56d8b93bdd8e0f6eca08c84ff623a4c16e809152cd35793"}, - {file = "cffi-1.14.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:399aed636c7d3749bbed55bc907c3288cb43c65c4389964ad5ff849b6370603e"}, - {file = "cffi-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cab50b8c2250b46fe738c77dbd25ce017d5e6fb35d3407606e7a4180656a5a6a"}, - {file = "cffi-1.14.0-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:001bf3242a1bb04d985d63e138230802c6c8d4db3668fb545fb5005ddf5bb5ff"}, - {file = "cffi-1.14.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:e56c744aa6ff427a607763346e4170629caf7e48ead6921745986db3692f987f"}, - {file = "cffi-1.14.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b8c78301cefcf5fd914aad35d3c04c2b21ce8629b5e4f4e45ae6812e461910fa"}, - {file = "cffi-1.14.0-cp35-cp35m-win32.whl", hash = "sha256:8c0ffc886aea5df6a1762d0019e9cb05f825d0eec1f520c51be9d198701daee5"}, - {file = "cffi-1.14.0-cp35-cp35m-win_amd64.whl", hash = "sha256:8a6c688fefb4e1cd56feb6c511984a6c4f7ec7d2a1ff31a10254f3c817054ae4"}, - {file = "cffi-1.14.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:95cd16d3dee553f882540c1ffe331d085c9e629499ceadfbda4d4fde635f4b7d"}, - {file = "cffi-1.14.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:66e41db66b47d0d8672d8ed2708ba91b2f2524ece3dee48b5dfb36be8c2f21dc"}, - {file = "cffi-1.14.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:028a579fc9aed3af38f4892bdcc7390508adabc30c6af4a6e4f611b0c680e6ac"}, - {file = "cffi-1.14.0-cp36-cp36m-win32.whl", hash = "sha256:cef128cb4d5e0b3493f058f10ce32365972c554572ff821e175dbc6f8ff6924f"}, - {file = "cffi-1.14.0-cp36-cp36m-win_amd64.whl", hash = "sha256:337d448e5a725bba2d8293c48d9353fc68d0e9e4088d62a9571def317797522b"}, - {file = "cffi-1.14.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e577934fc5f8779c554639376beeaa5657d54349096ef24abe8c74c5d9c117c3"}, - {file = "cffi-1.14.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:62ae9af2d069ea2698bf536dcfe1e4eed9090211dbaafeeedf5cb6c41b352f66"}, - {file = "cffi-1.14.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:14491a910663bf9f13ddf2bc8f60562d6bc5315c1f09c704937ef17293fb85b0"}, - {file = "cffi-1.14.0-cp37-cp37m-win32.whl", hash = "sha256:c43866529f2f06fe0edc6246eb4faa34f03fe88b64a0a9a942561c8e22f4b71f"}, - {file = "cffi-1.14.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2089ed025da3919d2e75a4d963d008330c96751127dd6f73c8dc0c65041b4c26"}, - {file = "cffi-1.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3b911c2dbd4f423b4c4fcca138cadde747abdb20d196c4a48708b8a2d32b16dd"}, - {file = "cffi-1.14.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:7e63cbcf2429a8dbfe48dcc2322d5f2220b77b2e17b7ba023d6166d84655da55"}, - {file = "cffi-1.14.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:3d311bcc4a41408cf5854f06ef2c5cab88f9fded37a3b95936c9879c1640d4c2"}, - {file = "cffi-1.14.0-cp38-cp38-win32.whl", hash = "sha256:675686925a9fb403edba0114db74e741d8181683dcf216be697d208857e04ca8"}, - {file = "cffi-1.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:00789914be39dffba161cfc5be31b55775de5ba2235fe49aa28c148236c4e06b"}, - {file = "cffi-1.14.0.tar.gz", hash = "sha256:2d384f4a127a15ba701207f7639d94106693b6cd64173d6c8988e2c25f3ac2b6"}, -] -chardet = [ - {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, - {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, -] -chrome-devtools-protocol = [ - {file = "chrome-devtools-protocol-0.3.0.tar.gz", hash = "sha256:e3e076432a2f615dd093bf1c82c1d8ae051c4487d17463f0737e35e4cc0884de"}, -] -colorama = [ - {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, - {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, -] -coverage = [ - {file = "coverage-5.1-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:0cb4be7e784dcdc050fc58ef05b71aa8e89b7e6636b99967fadbdba694cf2b65"}, - {file = "coverage-5.1-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:c317eaf5ff46a34305b202e73404f55f7389ef834b8dbf4da09b9b9b37f76dd2"}, - {file = "coverage-5.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b83835506dfc185a319031cf853fa4bb1b3974b1f913f5bb1a0f3d98bdcded04"}, - {file = "coverage-5.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5f2294dbf7875b991c381e3d5af2bcc3494d836affa52b809c91697449d0eda6"}, - {file = "coverage-5.1-cp27-cp27m-win32.whl", hash = "sha256:de807ae933cfb7f0c7d9d981a053772452217df2bf38e7e6267c9cbf9545a796"}, - {file = "coverage-5.1-cp27-cp27m-win_amd64.whl", hash = "sha256:bf9cb9a9fd8891e7efd2d44deb24b86d647394b9705b744ff6f8261e6f29a730"}, - {file = "coverage-5.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:acf3763ed01af8410fc36afea23707d4ea58ba7e86a8ee915dfb9ceff9ef69d0"}, - {file = "coverage-5.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:dec5202bfe6f672d4511086e125db035a52b00f1648d6407cc8e526912c0353a"}, - {file = "coverage-5.1-cp35-cp35m-macosx_10_12_x86_64.whl", hash = "sha256:7a5bdad4edec57b5fb8dae7d3ee58622d626fd3a0be0dfceda162a7035885ecf"}, - {file = "coverage-5.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:1601e480b9b99697a570cea7ef749e88123c04b92d84cedaa01e117436b4a0a9"}, - {file = "coverage-5.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:dbe8c6ae7534b5b024296464f387d57c13caa942f6d8e6e0346f27e509f0f768"}, - {file = "coverage-5.1-cp35-cp35m-win32.whl", hash = "sha256:a027ef0492ede1e03a8054e3c37b8def89a1e3c471482e9f046906ba4f2aafd2"}, - {file = "coverage-5.1-cp35-cp35m-win_amd64.whl", hash = "sha256:0e61d9803d5851849c24f78227939c701ced6704f337cad0a91e0972c51c1ee7"}, - {file = "coverage-5.1-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:2d27a3f742c98e5c6b461ee6ef7287400a1956c11421eb574d843d9ec1f772f0"}, - {file = "coverage-5.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:66460ab1599d3cf894bb6baee8c684788819b71a5dc1e8fa2ecc152e5d752019"}, - {file = "coverage-5.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5c542d1e62eece33c306d66fe0a5c4f7f7b3c08fecc46ead86d7916684b36d6c"}, - {file = "coverage-5.1-cp36-cp36m-win32.whl", hash = "sha256:2742c7515b9eb368718cd091bad1a1b44135cc72468c731302b3d641895b83d1"}, - {file = "coverage-5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:dead2ddede4c7ba6cb3a721870f5141c97dc7d85a079edb4bd8d88c3ad5b20c7"}, - {file = "coverage-5.1-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:01333e1bd22c59713ba8a79f088b3955946e293114479bbfc2e37d522be03355"}, - {file = "coverage-5.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:e1ea316102ea1e1770724db01998d1603ed921c54a86a2efcb03428d5417e489"}, - {file = "coverage-5.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:adeb4c5b608574a3d647011af36f7586811a2c1197c861aedb548dd2453b41cd"}, - {file = "coverage-5.1-cp37-cp37m-win32.whl", hash = "sha256:782caea581a6e9ff75eccda79287daefd1d2631cc09d642b6ee2d6da21fc0a4e"}, - {file = "coverage-5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:00f1d23f4336efc3b311ed0d807feb45098fc86dee1ca13b3d6768cdab187c8a"}, - {file = "coverage-5.1-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:402e1744733df483b93abbf209283898e9f0d67470707e3c7516d84f48524f55"}, - {file = "coverage-5.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:a3f3654d5734a3ece152636aad89f58afc9213c6520062db3978239db122f03c"}, - {file = "coverage-5.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6402bd2fdedabbdb63a316308142597534ea8e1895f4e7d8bf7476c5e8751fef"}, - {file = "coverage-5.1-cp38-cp38-win32.whl", hash = "sha256:8fa0cbc7ecad630e5b0f4f35b0f6ad419246b02bc750de7ac66db92667996d24"}, - {file = "coverage-5.1-cp38-cp38-win_amd64.whl", hash = "sha256:79a3cfd6346ce6c13145731d39db47b7a7b859c0272f02cdb89a3bdcbae233a0"}, - {file = "coverage-5.1-cp39-cp39-win32.whl", hash = "sha256:a82b92b04a23d3c8a581fc049228bafde988abacba397d57ce95fe95e0338ab4"}, - {file = "coverage-5.1-cp39-cp39-win_amd64.whl", hash = "sha256:bb28a7245de68bf29f6fb199545d072d1036a1917dca17a1e75bbb919e14ee8e"}, - {file = "coverage-5.1.tar.gz", hash = "sha256:f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052"}, -] -deprecated = [ - {file = "Deprecated-1.2.9-py2.py3-none-any.whl", hash = "sha256:55b41a15bda04c6a2c0d27dd4c2b7b81ffa6348c9cad8f077ac1978c59927ab9"}, - {file = "Deprecated-1.2.9.tar.gz", hash = "sha256:0cf37d293a96805c6afd8b5fc525cb40f23a2cac9b2d066ac3bd4b04e72ceccc"}, -] -docutils = [ - {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, - {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, -] -h11 = [ - {file = "h11-0.9.0-py2.py3-none-any.whl", hash = "sha256:4bc6d6a1238b7615b266ada57e0618568066f57dd6fa967d1290ec9309b2f2f1"}, - {file = "h11-0.9.0.tar.gz", hash = "sha256:33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1"}, -] -idna = [ - {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"}, - {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"}, -] -imagesize = [ - {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"}, - {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"}, -] -importlib-metadata = [ - {file = "importlib_metadata-1.6.0-py2.py3-none-any.whl", hash = "sha256:2a688cbaa90e0cc587f1df48bdc97a6eadccdcd9c35fb3f976a09e3b5016d90f"}, - {file = "importlib_metadata-1.6.0.tar.gz", hash = "sha256:34513a8a0c4962bc66d35b359558fd8a5e10cd472d37aec5f66858addef32c1e"}, -] -ipaddress = [ - {file = "ipaddress-1.0.23-py2.py3-none-any.whl", hash = "sha256:6e0f4a39e66cb5bb9a137b00276a2eff74f93b71dcbdad6f10ff7df9d3557fcc"}, - {file = "ipaddress-1.0.23.tar.gz", hash = "sha256:b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"}, -] -jinja2 = [ - {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, - {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"}, -] -markupsafe = [ - {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, - {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, - {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, - {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, - {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, - {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, - {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, - {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, - {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, -] -more-itertools = [ - {file = "more-itertools-8.2.0.tar.gz", hash = "sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507"}, - {file = "more_itertools-8.2.0-py3-none-any.whl", hash = "sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c"}, -] -multidict = [ - {file = "multidict-4.7.5-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:fc3b4adc2ee8474cb3cd2a155305d5f8eda0a9c91320f83e55748e1fcb68f8e3"}, - {file = "multidict-4.7.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:42f56542166040b4474c0c608ed051732033cd821126493cf25b6c276df7dd35"}, - {file = "multidict-4.7.5-cp35-cp35m-win32.whl", hash = "sha256:7774e9f6c9af3f12f296131453f7b81dabb7ebdb948483362f5afcaac8a826f1"}, - {file = "multidict-4.7.5-cp35-cp35m-win_amd64.whl", hash = "sha256:c2c37185fb0af79d5c117b8d2764f4321eeb12ba8c141a95d0aa8c2c1d0a11dd"}, - {file = "multidict-4.7.5-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:e439c9a10a95cb32abd708bb8be83b2134fa93790a4fb0535ca36db3dda94d20"}, - {file = "multidict-4.7.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:85cb26c38c96f76b7ff38b86c9d560dea10cf3459bb5f4caf72fc1bb932c7136"}, - {file = "multidict-4.7.5-cp36-cp36m-win32.whl", hash = "sha256:620b37c3fea181dab09267cd5a84b0f23fa043beb8bc50d8474dd9694de1fa6e"}, - {file = "multidict-4.7.5-cp36-cp36m-win_amd64.whl", hash = "sha256:6e6fef114741c4d7ca46da8449038ec8b1e880bbe68674c01ceeb1ac8a648e78"}, - {file = "multidict-4.7.5-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:a326f4240123a2ac66bb163eeba99578e9d63a8654a59f4688a79198f9aa10f8"}, - {file = "multidict-4.7.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:dc561313279f9d05a3d0ffa89cd15ae477528ea37aa9795c4654588a3287a9ab"}, - {file = "multidict-4.7.5-cp37-cp37m-win32.whl", hash = "sha256:4b7df040fb5fe826d689204f9b544af469593fb3ff3a069a6ad3409f742f5928"}, - {file = "multidict-4.7.5-cp37-cp37m-win_amd64.whl", hash = "sha256:317f96bc0950d249e96d8d29ab556d01dd38888fbe68324f46fd834b430169f1"}, - {file = "multidict-4.7.5-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:b51249fdd2923739cd3efc95a3d6c363b67bbf779208e9f37fd5e68540d1a4d4"}, - {file = "multidict-4.7.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ae402f43604e3b2bc41e8ea8b8526c7fa7139ed76b0d64fc48e28125925275b2"}, - {file = "multidict-4.7.5-cp38-cp38-win32.whl", hash = "sha256:bb519becc46275c594410c6c28a8a0adc66fe24fef154a9addea54c1adb006f5"}, - {file = "multidict-4.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:544fae9261232a97102e27a926019100a9db75bec7b37feedd74b3aa82f29969"}, - {file = "multidict-4.7.5.tar.gz", hash = "sha256:aee283c49601fa4c13adc64c09c978838a7e812f85377ae130a24d7198c0331e"}, -] -mypy = [ - {file = "mypy-0.770-cp35-cp35m-macosx_10_6_x86_64.whl", hash = "sha256:a34b577cdf6313bf24755f7a0e3f3c326d5c1f4fe7422d1d06498eb25ad0c600"}, - {file = "mypy-0.770-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:86c857510a9b7c3104cf4cde1568f4921762c8f9842e987bc03ed4f160925754"}, - {file = "mypy-0.770-cp35-cp35m-win_amd64.whl", hash = "sha256:a8ffcd53cb5dfc131850851cc09f1c44689c2812d0beb954d8138d4f5fc17f65"}, - {file = "mypy-0.770-cp36-cp36m-macosx_10_6_x86_64.whl", hash = "sha256:7687f6455ec3ed7649d1ae574136835a4272b65b3ddcf01ab8704ac65616c5ce"}, - {file = "mypy-0.770-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:3beff56b453b6ef94ecb2996bea101a08f1f8a9771d3cbf4988a61e4d9973761"}, - {file = "mypy-0.770-cp36-cp36m-win_amd64.whl", hash = "sha256:15b948e1302682e3682f11f50208b726a246ab4e6c1b39f9264a8796bb416aa2"}, - {file = "mypy-0.770-cp37-cp37m-macosx_10_6_x86_64.whl", hash = "sha256:b90928f2d9eb2f33162405f32dde9f6dcead63a0971ca8a1b50eb4ca3e35ceb8"}, - {file = "mypy-0.770-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:c56ffe22faa2e51054c5f7a3bc70a370939c2ed4de308c690e7949230c995913"}, - {file = "mypy-0.770-cp37-cp37m-win_amd64.whl", hash = "sha256:8dfb69fbf9f3aeed18afffb15e319ca7f8da9642336348ddd6cab2713ddcf8f9"}, - {file = "mypy-0.770-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:219a3116ecd015f8dca7b5d2c366c973509dfb9a8fc97ef044a36e3da66144a1"}, - {file = "mypy-0.770-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7ec45a70d40ede1ec7ad7f95b3c94c9cf4c186a32f6bacb1795b60abd2f9ef27"}, - {file = "mypy-0.770-cp38-cp38-win_amd64.whl", hash = "sha256:f91c7ae919bbc3f96cd5e5b2e786b2b108343d1d7972ea130f7de27fdd547cf3"}, - {file = "mypy-0.770-py3-none-any.whl", hash = "sha256:3b1fc683fb204c6b4403a1ef23f0b1fac8e4477091585e0c8c54cbdf7d7bb164"}, - {file = "mypy-0.770.tar.gz", hash = "sha256:8a627507ef9b307b46a1fea9513d5c98680ba09591253082b4c48697ba05a4ae"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -outcome = [ - {file = "outcome-1.0.1-py2.py3-none-any.whl", hash = "sha256:ee46c5ce42780cde85d55a61819d0e6b8cb490f1dbd749ba75ff2629771dcd2d"}, - {file = "outcome-1.0.1.tar.gz", hash = "sha256:fc7822068ba7dd0fc2532743611e8a73246708d3564e29a39f93d6ab3701b66f"}, -] -packaging = [ - {file = "packaging-20.3-py2.py3-none-any.whl", hash = "sha256:82f77b9bee21c1bafbf35a84905d604d5d1223801d639cf3ed140bd651c08752"}, - {file = "packaging-20.3.tar.gz", hash = "sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3"}, -] -pluggy = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, -] -py = [ - {file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"}, - {file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"}, -] -pycparser = [ - {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, - {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, -] -pygments = [ - {file = "Pygments-2.6.1-py3-none-any.whl", hash = "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"}, - {file = "Pygments-2.6.1.tar.gz", hash = "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"}, -] -pyparsing = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, -] -pytest = [ - {file = "pytest-5.4.1-py3-none-any.whl", hash = "sha256:0e5b30f5cb04e887b91b1ee519fa3d89049595f428c1db76e73bd7f17b09b172"}, - {file = "pytest-5.4.1.tar.gz", hash = "sha256:84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970"}, -] -pytest-cov = [ - {file = "pytest-cov-2.8.1.tar.gz", hash = "sha256:cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b"}, - {file = "pytest_cov-2.8.1-py2.py3-none-any.whl", hash = "sha256:cdbdef4f870408ebdbfeb44e63e07eb18bb4619fae852f6e760645fa36172626"}, -] -pytest-trio = [ - {file = "pytest-trio-0.5.2.tar.gz", hash = "sha256:6a50e9585ebbb0ce9ae83d33bde7865952d76c4d4b8759a0345a551f113d468c"}, - {file = "pytest_trio-0.5.2-py3-none-any.whl", hash = "sha256:848c2ba632d9c2d4e2770fe4eb149c8db69ecefc9239e2e6f77c41d9a2393d5e"}, -] -pytz = [ - {file = "pytz-2019.3-py2.py3-none-any.whl", hash = "sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d"}, - {file = "pytz-2019.3.tar.gz", hash = "sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be"}, -] -requests = [ - {file = "requests-2.23.0-py2.py3-none-any.whl", hash = "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee"}, - {file = "requests-2.23.0.tar.gz", hash = "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"}, -] -six = [ - {file = "six-1.14.0-py2.py3-none-any.whl", hash = "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"}, - {file = "six-1.14.0.tar.gz", hash = "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"}, -] -sniffio = [ - {file = "sniffio-1.1.0-py3-none-any.whl", hash = "sha256:20ed6d5b46f8ae136d00b9dcb807615d83ed82ceea6b2058cecb696765246da5"}, - {file = "sniffio-1.1.0.tar.gz", hash = "sha256:8e3810100f69fe0edd463d02ad407112542a11ffdc29f67db2bf3771afb87a21"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"}, - {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"}, -] -sortedcontainers = [ - {file = "sortedcontainers-2.1.0-py2.py3-none-any.whl", hash = "sha256:d9e96492dd51fae31e60837736b38fe42a187b5404c16606ff7ee7cd582d4c60"}, - {file = "sortedcontainers-2.1.0.tar.gz", hash = "sha256:974e9a32f56b17c1bac2aebd9dcf197f3eb9cd30553c5852a3187ad162e1a03a"}, -] -sphinx = [ - {file = "Sphinx-3.0.1-py3-none-any.whl", hash = "sha256:8411878f4768ec2a8896b844d68070204f9354a831b37937989c2e559d29dffc"}, - {file = "Sphinx-3.0.1.tar.gz", hash = "sha256:50972d83b78990fd61d0d3fe8620814cae53db29443e92c13661bc43dff46ec8"}, -] -sphinx-autodoc-typehints = [ - {file = "sphinx-autodoc-typehints-1.10.3.tar.gz", hash = "sha256:a6b3180167479aca2c4d1ed3b5cb044a70a76cccd6b38662d39288ebd9f0dff0"}, - {file = "sphinx_autodoc_typehints-1.10.3-py3-none-any.whl", hash = "sha256:27c9e6ef4f4451766ab8d08b2d8520933b97beb21c913f3df9ab2e59b56e6c6c"}, -] -sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl", hash = "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4"}, - {file = "sphinx_rtd_theme-0.4.3.tar.gz", hash = "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"}, - {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"}, - {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, -] -trio = [ - {file = "trio-0.13.0-py3-none-any.whl", hash = "sha256:a6d83c0cb4a177ec0f5179ce88e27914d5c8e6fd01c4285176b949e6ddc88c6c"}, - {file = "trio-0.13.0.tar.gz", hash = "sha256:f1cf00054ad974c86d9b7afa187a65d79fd5995340abe01e8e4784d86f4acb30"}, -] -trio-websocket = [ - {file = "trio-websocket-0.8.0.tar.gz", hash = "sha256:2f6c1f2ac87640e7b4539db723d336873149057caec4aac3b56af02de4cd47f0"}, -] -typed-ast = [ - {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3"}, - {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb"}, - {file = "typed_ast-1.4.1-cp35-cp35m-win32.whl", hash = "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919"}, - {file = "typed_ast-1.4.1-cp35-cp35m-win_amd64.whl", hash = "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01"}, - {file = "typed_ast-1.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75"}, - {file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652"}, - {file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"}, - {file = "typed_ast-1.4.1-cp36-cp36m-win32.whl", hash = "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1"}, - {file = "typed_ast-1.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa"}, - {file = "typed_ast-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614"}, - {file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41"}, - {file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b"}, - {file = "typed_ast-1.4.1-cp37-cp37m-win32.whl", hash = "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe"}, - {file = "typed_ast-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355"}, - {file = "typed_ast-1.4.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6"}, - {file = "typed_ast-1.4.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907"}, - {file = "typed_ast-1.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d"}, - {file = "typed_ast-1.4.1-cp38-cp38-win32.whl", hash = "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c"}, - {file = "typed_ast-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4"}, - {file = "typed_ast-1.4.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34"}, - {file = "typed_ast-1.4.1.tar.gz", hash = "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b"}, -] -typing-extensions = [ - {file = "typing_extensions-3.7.4.2-py2-none-any.whl", hash = "sha256:f8d2bd89d25bc39dabe7d23df520442fa1d8969b82544370e03d88b5a591c392"}, - {file = "typing_extensions-3.7.4.2-py3-none-any.whl", hash = "sha256:6e95524d8a547a91e08f404ae485bbb71962de46967e1b71a0cb89af24e761c5"}, - {file = "typing_extensions-3.7.4.2.tar.gz", hash = "sha256:79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae"}, -] -urllib3 = [ - {file = "urllib3-1.25.8-py2.py3-none-any.whl", hash = "sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc"}, - {file = "urllib3-1.25.8.tar.gz", hash = "sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc"}, -] -wcwidth = [ - {file = "wcwidth-0.1.9-py2.py3-none-any.whl", hash = "sha256:cafe2186b3c009a04067022ce1dcd79cb38d8d65ee4f4791b8888d6599d1bbe1"}, - {file = "wcwidth-0.1.9.tar.gz", hash = "sha256:ee73862862a156bf77ff92b09034fc4825dd3af9cf81bc5b360668d425f3c5f1"}, -] -wrapt = [ - {file = "wrapt-1.12.1.tar.gz", hash = "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"}, -] -wsaccel = [ - {file = "wsaccel-0.6.2.tar.gz", hash = "sha256:425706acf0724d2f6bfa391ec37b4ef121d3432c956029de3cea4e101c218e0c"}, -] -wsproto = [ - {file = "wsproto-0.14.1-py2.py3-none-any.whl", hash = "sha256:2b870f5b5b4a6d23dce080a4ee1cbb119b2378f82593bd6d66ae2cbd72a7c0ad"}, - {file = "wsproto-0.14.1.tar.gz", hash = "sha256:ed222c812aaea55d72d18a87df429cfd602e15b6c992a07a53b495858f083a14"}, -] -yarl = [ - {file = "yarl-1.4.2-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:3ce3d4f7c6b69c4e4f0704b32eca8123b9c58ae91af740481aa57d7857b5e41b"}, - {file = "yarl-1.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:a4844ebb2be14768f7994f2017f70aca39d658a96c786211be5ddbe1c68794c1"}, - {file = "yarl-1.4.2-cp35-cp35m-win32.whl", hash = "sha256:d8cdee92bc930d8b09d8bd2043cedd544d9c8bd7436a77678dd602467a993080"}, - {file = "yarl-1.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:c2b509ac3d4b988ae8769901c66345425e361d518aecbe4acbfc2567e416626a"}, - {file = "yarl-1.4.2-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:308b98b0c8cd1dfef1a0311dc5e38ae8f9b58349226aa0533f15a16717ad702f"}, - {file = "yarl-1.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:944494be42fa630134bf907714d40207e646fd5a94423c90d5b514f7b0713fea"}, - {file = "yarl-1.4.2-cp36-cp36m-win32.whl", hash = "sha256:5b10eb0e7f044cf0b035112446b26a3a2946bca9d7d7edb5e54a2ad2f6652abb"}, - {file = "yarl-1.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a161de7e50224e8e3de6e184707476b5a989037dcb24292b391a3d66ff158e70"}, - {file = "yarl-1.4.2-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:26d7c90cb04dee1665282a5d1a998defc1a9e012fdca0f33396f81508f49696d"}, - {file = "yarl-1.4.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:0c2ab325d33f1b824734b3ef51d4d54a54e0e7a23d13b86974507602334c2cce"}, - {file = "yarl-1.4.2-cp37-cp37m-win32.whl", hash = "sha256:e15199cdb423316e15f108f51249e44eb156ae5dba232cb73be555324a1d49c2"}, - {file = "yarl-1.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:2098a4b4b9d75ee352807a95cdf5f10180db903bc5b7270715c6bbe2551f64ce"}, - {file = "yarl-1.4.2-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c9959d49a77b0e07559e579f38b2f3711c2b8716b8410b320bf9713013215a1b"}, - {file = "yarl-1.4.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:25e66e5e2007c7a39541ca13b559cd8ebc2ad8fe00ea94a2aad28a9b1e44e5ae"}, - {file = "yarl-1.4.2-cp38-cp38-win32.whl", hash = "sha256:6faa19d3824c21bcbfdfce5171e193c8b4ddafdf0ac3f129ccf0cdfcb083e462"}, - {file = "yarl-1.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:0ca2f395591bbd85ddd50a82eb1fde9c1066fafe888c5c7cc1d810cf03fd3cc6"}, - {file = "yarl-1.4.2.tar.gz", hash = "sha256:58cd9c469eced558cd81aa3f484b2924e8897049e06889e8ff2510435b7ef74b"}, -] -zipp = [ - {file = "zipp-3.1.0-py3-none-any.whl", hash = "sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b"}, - {file = "zipp-3.1.0.tar.gz", hash = "sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"}, -] +content-hash = "db90da4d0f774e34aee744bf2d8d9927e135d0365e1458e4983f7efbc0467bb2" diff --git a/pyproject.toml b/pyproject.toml index 2e1d92f..1b7768d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,14 +16,14 @@ classifiers = [ [tool.poetry.dependencies] python = "^3.7" chrome-devtools-protocol = "^0.4.0" -trio = "^0.13.0" -trio_websocket = "^0.8.0" +trio = "^0.22.0" +trio_websocket = "^0.9.0" -[tool.poetry.dev-dependencies] -mypy = "^0.770" -pytest = "^5.4.1" -pytest-cov = "^2.8.1" -pytest-trio = "^0.5.2" +[tool.poetry.group.dev.dependencies] +mypy = "^1.0" +pytest = "^7.0" +pytest-cov = "^4.0" +pytest-trio = "^0.8.0" sphinx = "^3.0.1" sphinx-rtd-theme = "^0.4.3" sphinx-autodoc-typehints = "^1.10.3" diff --git a/trio_cdp/generated/__init__.py b/trio_cdp/generated/__init__.py index a4b6710..74b9fbd 100644 --- a/trio_cdp/generated/__init__.py +++ b/trio_cdp/generated/__init__.py @@ -5,6 +5,7 @@ from . import accessibility from . import animation +from . import application_cache from . import audits from . import background_service from . import browser @@ -20,7 +21,6 @@ from . import dom_snapshot from . import dom_storage from . import emulation -from . import event_breakpoints from . import fetch from . import headless_experimental from . import heap_profiler @@ -30,13 +30,11 @@ from . import io from . import layer_tree from . import log -from . import media from . import memory from . import network from . import overlay from . import page from . import performance -from . import performance_timeline from . import profiler from . import runtime from . import schema diff --git a/trio_cdp/generated/accessibility.py b/trio_cdp/generated/accessibility.py index c13cd63..d73cfe9 100644 --- a/trio_cdp/generated/accessibility.py +++ b/trio_cdp/generated/accessibility.py @@ -19,9 +19,7 @@ AXValueNativeSourceType, AXValueSource, AXValueSourceType, - AXValueType, - LoadComplete, - NodesUpdated + AXValueType ) @@ -42,61 +40,16 @@ async def enable() -> None: return await session.execute(cdp.accessibility.enable()) -async def get_ax_node_and_ancestors( - node_id: typing.Optional[cdp.dom.NodeId] = None, - backend_node_id: typing.Optional[cdp.dom.BackendNodeId] = None, - object_id: typing.Optional[cdp.runtime.RemoteObjectId] = None - ) -> typing.List[AXNode]: - r''' - Fetches a node and all ancestors up to and including the root. - Requires ``enable()`` to have been called previously. - - **EXPERIMENTAL** - - :param node_id: *(Optional)* Identifier of the node to get. - :param backend_node_id: *(Optional)* Identifier of the backend node to get. - :param object_id: *(Optional)* JavaScript object id of the node wrapper to get. - :returns: - ''' - session = get_session_context('accessibility.get_ax_node_and_ancestors') - return await session.execute(cdp.accessibility.get_ax_node_and_ancestors(node_id, backend_node_id, object_id)) - - -async def get_child_ax_nodes( - id_: AXNodeId, - frame_id: typing.Optional[cdp.page.FrameId] = None - ) -> typing.List[AXNode]: - r''' - Fetches a particular accessibility node by AXNodeId. - Requires ``enable()`` to have been called previously. - - **EXPERIMENTAL** - - :param id_: - :param frame_id: *(Optional)* The frame in whose document the node resides. If omitted, the root frame is used. - :returns: - ''' - session = get_session_context('accessibility.get_child_ax_nodes') - return await session.execute(cdp.accessibility.get_child_ax_nodes(id_, frame_id)) - - -async def get_full_ax_tree( - depth: typing.Optional[int] = None, - max_depth: typing.Optional[int] = None, - frame_id: typing.Optional[cdp.page.FrameId] = None - ) -> typing.List[AXNode]: +async def get_full_ax_tree() -> typing.List[AXNode]: r''' - Fetches the entire accessibility tree for the root Document + Fetches the entire accessibility tree **EXPERIMENTAL** - :param depth: *(Optional)* The maximum depth at which descendants of the root node should be retrieved. If omitted, the full tree is returned. - :param max_depth: **(DEPRECATED)** *(Optional)* Deprecated. This parameter has been renamed to ```depth```. If depth is not provided, max_depth will be used. - :param frame_id: *(Optional)* The frame for whose document the AX tree should be retrieved. If omited, the root frame is used. :returns: ''' session = get_session_context('accessibility.get_full_ax_tree') - return await session.execute(cdp.accessibility.get_full_ax_tree(depth, max_depth, frame_id)) + return await session.execute(cdp.accessibility.get_full_ax_tree()) async def get_partial_ax_tree( @@ -118,46 +71,3 @@ async def get_partial_ax_tree( ''' session = get_session_context('accessibility.get_partial_ax_tree') return await session.execute(cdp.accessibility.get_partial_ax_tree(node_id, backend_node_id, object_id, fetch_relatives)) - - -async def get_root_ax_node( - frame_id: typing.Optional[cdp.page.FrameId] = None - ) -> AXNode: - r''' - Fetches the root node. - Requires ``enable()`` to have been called previously. - - **EXPERIMENTAL** - - :param frame_id: *(Optional)* The frame in whose document the node resides. If omitted, the root frame is used. - :returns: - ''' - session = get_session_context('accessibility.get_root_ax_node') - return await session.execute(cdp.accessibility.get_root_ax_node(frame_id)) - - -async def query_ax_tree( - node_id: typing.Optional[cdp.dom.NodeId] = None, - backend_node_id: typing.Optional[cdp.dom.BackendNodeId] = None, - object_id: typing.Optional[cdp.runtime.RemoteObjectId] = None, - accessible_name: typing.Optional[str] = None, - role: typing.Optional[str] = None - ) -> typing.List[AXNode]: - r''' - Query a DOM node's accessibility subtree for accessible name and role. - This command computes the name and role for all nodes in the subtree, including those that are - ignored for accessibility, and returns those that mactch the specified name and role. If no DOM - node is specified, or the DOM node does not exist, the command returns an error. If neither - ``accessibleName`` or ``role`` is specified, it returns all the accessibility nodes in the subtree. - - **EXPERIMENTAL** - - :param node_id: *(Optional)* Identifier of the node for the root to query. - :param backend_node_id: *(Optional)* Identifier of the backend node for the root to query. - :param object_id: *(Optional)* JavaScript object id of the node wrapper for the root to query. - :param accessible_name: *(Optional)* Find nodes with this computed name. - :param role: *(Optional)* Find nodes with this computed role. - :returns: A list of ``Accessibility.AXNode`` matching the specified attributes, including nodes that are ignored for accessibility. - ''' - session = get_session_context('accessibility.query_ax_tree') - return await session.execute(cdp.accessibility.query_ax_tree(node_id, backend_node_id, object_id, accessible_name, role)) diff --git a/trio_cdp/generated/application_cache.py b/trio_cdp/generated/application_cache.py new file mode 100644 index 0000000..2dfaf47 --- /dev/null +++ b/trio_cdp/generated/application_cache.py @@ -0,0 +1,63 @@ +# DO NOT EDIT THIS FILE! +# +# This code is generated off of PyCDP modules. If you need to make +# changes, edit the generator and regenerate all of the modules. + +from __future__ import annotations +import typing + +from ..context import get_connection_context, get_session_context + +import cdp.application_cache +from cdp.application_cache import ( + ApplicationCache, + ApplicationCacheResource, + ApplicationCacheStatusUpdated, + FrameWithManifest, + NetworkStateUpdated +) + + +async def enable() -> None: + r''' + Enables application cache domain notifications. + ''' + session = get_session_context('application_cache.enable') + return await session.execute(cdp.application_cache.enable()) + + +async def get_application_cache_for_frame( + frame_id: cdp.page.FrameId + ) -> ApplicationCache: + r''' + Returns relevant application cache data for the document in given frame. + + :param frame_id: Identifier of the frame containing document whose application cache is retrieved. + :returns: Relevant application cache data for the document in given frame. + ''' + session = get_session_context('application_cache.get_application_cache_for_frame') + return await session.execute(cdp.application_cache.get_application_cache_for_frame(frame_id)) + + +async def get_frames_with_manifests() -> typing.List[FrameWithManifest]: + r''' + Returns array of frame identifiers with manifest urls for each frame containing a document + associated with some application cache. + + :returns: Array of frame identifiers with manifest urls for each frame containing a document associated with some application cache. + ''' + session = get_session_context('application_cache.get_frames_with_manifests') + return await session.execute(cdp.application_cache.get_frames_with_manifests()) + + +async def get_manifest_for_frame( + frame_id: cdp.page.FrameId + ) -> str: + r''' + Returns manifest URL for document in the given frame. + + :param frame_id: Identifier of the frame containing document whose manifest is retrieved. + :returns: Manifest URL for document in the given frame. + ''' + session = get_session_context('application_cache.get_manifest_for_frame') + return await session.execute(cdp.application_cache.get_manifest_for_frame(frame_id)) diff --git a/trio_cdp/generated/audits.py b/trio_cdp/generated/audits.py index 4110220..cc77ccb 100644 --- a/trio_cdp/generated/audits.py +++ b/trio_cdp/generated/audits.py @@ -9,78 +9,6 @@ from ..context import get_connection_context, get_session_context import cdp.audits -from cdp.audits import ( - AffectedCookie, - AffectedFrame, - AffectedRequest, - AttributionReportingIssueDetails, - AttributionReportingIssueType, - BlockedByResponseIssueDetails, - BlockedByResponseReason, - ClientHintIssueDetails, - ClientHintIssueReason, - ContentSecurityPolicyIssueDetails, - ContentSecurityPolicyViolationType, - CorsIssueDetails, - DeprecationIssueDetails, - GenericIssueDetails, - GenericIssueErrorType, - HeavyAdIssueDetails, - HeavyAdReason, - HeavyAdResolutionStatus, - InspectorIssue, - InspectorIssueCode, - InspectorIssueDetails, - IssueAdded, - IssueId, - LowTextContrastIssueDetails, - MixedContentIssueDetails, - MixedContentResolutionStatus, - MixedContentResourceType, - NavigatorUserAgentIssueDetails, - QuirksModeIssueDetails, - SameSiteCookieExclusionReason, - SameSiteCookieIssueDetails, - SameSiteCookieOperation, - SameSiteCookieWarningReason, - SharedArrayBufferIssueDetails, - SharedArrayBufferIssueType, - SourceCodeLocation, - TrustedWebActivityIssueDetails, - TwaQualityEnforcementViolationType, - WasmCrossOriginModuleSharingIssueDetails -) - - -async def check_contrast( - report_aaa: typing.Optional[bool] = None - ) -> None: - r''' - Runs the contrast check for the target page. Found issues are reported - using Audits.issueAdded event. - - :param report_aaa: *(Optional)* Whether to report WCAG AAA level issues. Default is false. - ''' - session = get_session_context('audits.check_contrast') - return await session.execute(cdp.audits.check_contrast(report_aaa)) - - -async def disable() -> None: - r''' - Disables issues domain, prevents further issues from being reported to the client. - ''' - session = get_session_context('audits.disable') - return await session.execute(cdp.audits.disable()) - - -async def enable() -> None: - r''' - Enables issues domain, sends the issues collected so far to the client by means of the - ``issueAdded`` event. - ''' - session = get_session_context('audits.enable') - return await session.execute(cdp.audits.enable()) - async def get_encoded_response( request_id: cdp.network.RequestId, @@ -98,7 +26,7 @@ async def get_encoded_response( :param size_only: *(Optional)* Whether to only return the size information (defaults to false). :returns: A tuple with the following items: - 0. **body** - *(Optional)* The encoded body as a base64 string. Omitted if sizeOnly is true. (Encoded as a base64 string when passed over JSON) + 0. **body** - *(Optional)* The encoded body as a base64 string. Omitted if sizeOnly is true. 1. **originalSize** - Size before re-encoding. 2. **encodedSize** - Size after re-encoding. ''' diff --git a/trio_cdp/generated/browser.py b/trio_cdp/generated/browser.py index 68be413..e3fc11b 100644 --- a/trio_cdp/generated/browser.py +++ b/trio_cdp/generated/browser.py @@ -11,36 +11,14 @@ import cdp.browser from cdp.browser import ( Bounds, - BrowserCommandId, - BrowserContextID, Bucket, - DownloadProgress, - DownloadWillBegin, Histogram, - PermissionDescriptor, - PermissionSetting, PermissionType, WindowID, WindowState ) -async def cancel_download( - guid: str, - browser_context_id: typing.Optional[BrowserContextID] = None - ) -> None: - r''' - Cancel a download if in progress - - **EXPERIMENTAL** - - :param guid: Global unique identifier of the download. - :param browser_context_id: *(Optional)* BrowserContext to perform the action in. When omitted, default browser context is used. - ''' - session = get_session_context('browser.cancel_download') - return await session.execute(cdp.browser.cancel_download(guid, browser_context_id)) - - async def close() -> None: r''' Close browser gracefully. @@ -69,20 +47,6 @@ async def crash_gpu_process() -> None: return await session.execute(cdp.browser.crash_gpu_process()) -async def execute_browser_command( - command_id: BrowserCommandId - ) -> None: - r''' - Invoke custom browser commands used by telemetry. - - **EXPERIMENTAL** - - :param command_id: - ''' - session = get_session_context('browser.execute_browser_command') - return await session.execute(cdp.browser.execute_browser_command(command_id)) - - async def get_browser_command_line() -> typing.List[str]: r''' Returns the command line switches for the browser process if, and only if @@ -180,25 +144,25 @@ async def get_window_for_target( async def grant_permissions( + origin: str, permissions: typing.List[PermissionType], - origin: typing.Optional[str] = None, - browser_context_id: typing.Optional[BrowserContextID] = None + browser_context_id: typing.Optional[cdp.target.BrowserContextID] = None ) -> None: r''' Grant specific permissions to the given origin and reject all others. **EXPERIMENTAL** + :param origin: :param permissions: - :param origin: *(Optional)* Origin the permission applies to, all origins if not specified. :param browser_context_id: *(Optional)* BrowserContext to override permissions. When omitted, default browser context is used. ''' session = get_session_context('browser.grant_permissions') - return await session.execute(cdp.browser.grant_permissions(permissions, origin, browser_context_id)) + return await session.execute(cdp.browser.grant_permissions(origin, permissions, browser_context_id)) async def reset_permissions( - browser_context_id: typing.Optional[BrowserContextID] = None + browser_context_id: typing.Optional[cdp.target.BrowserContextID] = None ) -> None: r''' Reset all permission management for all origins. @@ -221,52 +185,12 @@ async def set_dock_tile( **EXPERIMENTAL** :param badge_label: *(Optional)* - :param image: *(Optional)* Png encoded image. (Encoded as a base64 string when passed over JSON) + :param image: *(Optional)* Png encoded image. ''' session = get_session_context('browser.set_dock_tile') return await session.execute(cdp.browser.set_dock_tile(badge_label, image)) -async def set_download_behavior( - behavior: str, - browser_context_id: typing.Optional[BrowserContextID] = None, - download_path: typing.Optional[str] = None, - events_enabled: typing.Optional[bool] = None - ) -> None: - r''' - Set the behavior when downloading a file. - - **EXPERIMENTAL** - - :param behavior: Whether to allow all or deny all download requests, or use default Chrome behavior if available (otherwise deny). ``allowAndName`` allows download and names files according to their dowmload guids. - :param browser_context_id: *(Optional)* BrowserContext to set download behavior. When omitted, default browser context is used. - :param download_path: *(Optional)* The default path to save downloaded files to. This is required if behavior is set to 'allow' or 'allowAndName'. - :param events_enabled: *(Optional)* Whether to emit download events (defaults to false). - ''' - session = get_session_context('browser.set_download_behavior') - return await session.execute(cdp.browser.set_download_behavior(behavior, browser_context_id, download_path, events_enabled)) - - -async def set_permission( - permission: PermissionDescriptor, - setting: PermissionSetting, - origin: typing.Optional[str] = None, - browser_context_id: typing.Optional[BrowserContextID] = None - ) -> None: - r''' - Set permission settings for given origin. - - **EXPERIMENTAL** - - :param permission: Descriptor of permission to override. - :param setting: Setting of the permission. - :param origin: *(Optional)* Origin the permission applies to, all origins if not specified. - :param browser_context_id: *(Optional)* Context to override. When omitted, default browser context is used. - ''' - session = get_session_context('browser.set_permission') - return await session.execute(cdp.browser.set_permission(permission, setting, origin, browser_context_id)) - - async def set_window_bounds( window_id: WindowID, bounds: Bounds diff --git a/trio_cdp/generated/cache_storage.py b/trio_cdp/generated/cache_storage.py index 486f4ff..82d755a 100644 --- a/trio_cdp/generated/cache_storage.py +++ b/trio_cdp/generated/cache_storage.py @@ -77,16 +77,16 @@ async def request_cached_response( async def request_entries( cache_id: CacheId, - skip_count: typing.Optional[int] = None, - page_size: typing.Optional[int] = None, + skip_count: int, + page_size: int, path_filter: typing.Optional[str] = None ) -> typing.Tuple[typing.List[DataEntry], float]: r''' Requests data from cache. :param cache_id: ID of cache to get entries from. - :param skip_count: *(Optional)* Number of records to skip. - :param page_size: *(Optional)* Number of records to fetch. + :param skip_count: Number of records to skip. + :param page_size: Number of records to fetch. :param path_filter: *(Optional)* If present, only return the entries containing this substring in the path :returns: A tuple with the following items: diff --git a/trio_cdp/generated/cast.py b/trio_cdp/generated/cast.py index 657ff14..7ca5377 100644 --- a/trio_cdp/generated/cast.py +++ b/trio_cdp/generated/cast.py @@ -53,18 +53,6 @@ async def set_sink_to_use( return await session.execute(cdp.cast.set_sink_to_use(sink_name)) -async def start_desktop_mirroring( - sink_name: str - ) -> None: - r''' - Starts mirroring the desktop to the sink. - - :param sink_name: - ''' - session = get_session_context('cast.start_desktop_mirroring') - return await session.execute(cdp.cast.start_desktop_mirroring(sink_name)) - - async def start_tab_mirroring( sink_name: str ) -> None: diff --git a/trio_cdp/generated/css.py b/trio_cdp/generated/css.py index 0ab8ad1..826402d 100644 --- a/trio_cdp/generated/css.py +++ b/trio_cdp/generated/css.py @@ -11,7 +11,6 @@ import cdp.css from cdp.css import ( CSSComputedStyleProperty, - CSSContainerQuery, CSSKeyframeRule, CSSKeyframesRule, CSSMedia, @@ -20,7 +19,6 @@ CSSStyle, CSSStyleSheetHeader, FontFace, - FontVariationAxis, FontsUpdated, InheritedStyleEntry, MediaQuery, @@ -221,25 +219,6 @@ async def get_style_sheet_text( return await session.execute(cdp.css.get_style_sheet_text(style_sheet_id)) -async def set_container_query_text( - style_sheet_id: StyleSheetId, - range_: SourceRange, - text: str - ) -> CSSContainerQuery: - r''' - Modifies the expression of a container query. - - **EXPERIMENTAL** - - :param style_sheet_id: - :param range_: - :param text: - :returns: The resulting CSS container query rule after modification. - ''' - session = get_session_context('css.set_container_query_text') - return await session.execute(cdp.css.set_container_query_text(style_sheet_id, range_, text)) - - async def set_effective_property_value_for_node( node_id: cdp.dom.NodeId, property_name: str, @@ -274,20 +253,6 @@ async def set_keyframe_key( return await session.execute(cdp.css.set_keyframe_key(style_sheet_id, range_, key_text)) -async def set_local_fonts_enabled( - enabled: bool - ) -> None: - r''' - Enables/disables rendering of local CSS fonts (enabled by default). - - **EXPERIMENTAL** - - :param enabled: Whether rendering of local fonts is enabled. - ''' - session = get_session_context('css.set_local_fonts_enabled') - return await session.execute(cdp.css.set_local_fonts_enabled(enabled)) - - async def set_media_text( style_sheet_id: StyleSheetId, range_: SourceRange, @@ -369,46 +334,12 @@ async def stop_rule_usage_tracking() -> typing.List[RuleUsage]: return await session.execute(cdp.css.stop_rule_usage_tracking()) -async def take_computed_style_updates() -> typing.List[cdp.dom.NodeId]: - r''' - Polls the next batch of computed style updates. - - **EXPERIMENTAL** - - :returns: The list of node Ids that have their tracked computed styles updated - ''' - session = get_session_context('css.take_computed_style_updates') - return await session.execute(cdp.css.take_computed_style_updates()) - - -async def take_coverage_delta() -> typing.Tuple[typing.List[RuleUsage], float]: +async def take_coverage_delta() -> typing.List[RuleUsage]: r''' Obtain list of rules that became used since last call to this method (or since start of coverage instrumentation) - :returns: A tuple with the following items: - - 0. **coverage** - - 1. **timestamp** - Monotonically increasing time, in seconds. + :returns: ''' session = get_session_context('css.take_coverage_delta') return await session.execute(cdp.css.take_coverage_delta()) - - -async def track_computed_style_updates( - properties_to_track: typing.List[CSSComputedStyleProperty] - ) -> None: - r''' - Starts tracking the given computed styles for updates. The specified array of properties - replaces the one previously specified. Pass empty array to disable tracking. - Use takeComputedStyleUpdates to retrieve the list of nodes that had properties modified. - The changes to computed style properties are only tracked for nodes pushed to the front-end - by the DOM agent. If no changes to the tracked properties occur after the node has been pushed - to the front-end, no updates will be issued for the node. - - **EXPERIMENTAL** - - :param properties_to_track: - ''' - session = get_session_context('css.track_computed_style_updates') - return await session.execute(cdp.css.track_computed_style_updates(properties_to_track)) diff --git a/trio_cdp/generated/debugger.py b/trio_cdp/generated/debugger.py index 06abdb1..5a10ee8 100644 --- a/trio_cdp/generated/debugger.py +++ b/trio_cdp/generated/debugger.py @@ -15,14 +15,11 @@ BreakpointResolved, CallFrame, CallFrameId, - DebugSymbols, Location, - LocationRange, Paused, Resumed, Scope, ScriptFailedToParse, - ScriptLanguage, ScriptParsed, ScriptPosition, SearchMatch @@ -58,7 +55,7 @@ async def enable( Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received. - :param max_scripts_cache_size: **(EXPERIMENTAL)** *(Optional)* The maximum size in bytes of collected scripts (not referenced by other heap objects) the debugger can hold. Puts no limit if parameter is omitted. + :param max_scripts_cache_size: **(EXPERIMENTAL)** *(Optional)* The maximum size in bytes of collected scripts (not referenced by other heap objects) the debugger can hold. Puts no limit if paramter is omitted. :returns: Unique identifier of the debugger. ''' session = get_session_context('debugger.enable') @@ -117,15 +114,12 @@ async def get_possible_breakpoints( async def get_script_source( script_id: cdp.runtime.ScriptId - ) -> typing.Tuple[str, typing.Optional[str]]: + ) -> str: r''' Returns source for the script with given id. :param script_id: Id of the script to get source for. - :returns: A tuple with the following items: - - 0. **scriptSource** - Script source (empty in case of Wasm bytecode). - 1. **bytecode** - *(Optional)* Wasm bytecode. (Encoded as a base64 string when passed over JSON) + :returns: Script source. ''' session = get_session_context('debugger.get_script_source') return await session.execute(cdp.debugger.get_script_source(script_id)) @@ -146,23 +140,6 @@ async def get_stack_trace( return await session.execute(cdp.debugger.get_stack_trace(stack_trace_id)) -async def get_wasm_bytecode( - script_id: cdp.runtime.ScriptId - ) -> str: - r''' -This command is deprecated. Use getScriptSource instead. - -.. deprecated:: 1.3 - -:param script_id: Id of the Wasm script to get source for. -:returns: Script source. (Encoded as a base64 string when passed over JSON) - -.. deprecated:: 1.3 -''' - session = get_session_context('debugger.get_wasm_bytecode') - return await session.execute(cdp.debugger.get_wasm_bytecode(script_id)) - - async def pause() -> None: r''' Stops on the next JavaScript statement. @@ -177,14 +154,10 @@ async def pause_on_async_call( r''' -.. deprecated:: 1.3 - -**EXPERIMENTAL** - -:param parent_stack_trace_id: Debugger will pause when async call with given stack trace is started. + **EXPERIMENTAL** -.. deprecated:: 1.3 -''' + :param parent_stack_trace_id: Debugger will pause when async call with given stack trace is started. + ''' session = get_session_context('debugger.pause_on_async_call') return await session.execute(cdp.debugger.pause_on_async_call(parent_stack_trace_id)) @@ -205,33 +178,25 @@ async def restart_frame( call_frame_id: CallFrameId ) -> typing.Tuple[typing.List[CallFrame], typing.Optional[cdp.runtime.StackTrace], typing.Optional[cdp.runtime.StackTraceId]]: r''' -Restarts particular call frame from the beginning. + Restarts particular call frame from the beginning. -.. deprecated:: 1.3 - -:param call_frame_id: Call frame identifier to evaluate on. -:returns: A tuple with the following items: - - 0. **callFrames** - New stack trace. - 1. **asyncStackTrace** - *(Optional)* Async stack trace, if any. - 2. **asyncStackTraceId** - *(Optional)* Async stack trace, if any. + :param call_frame_id: Call frame identifier to evaluate on. + :returns: A tuple with the following items: -.. deprecated:: 1.3 -''' + 0. **callFrames** - New stack trace. + 1. **asyncStackTrace** - *(Optional)* Async stack trace, if any. + 2. **asyncStackTraceId** - *(Optional)* Async stack trace, if any. + ''' session = get_session_context('debugger.restart_frame') return await session.execute(cdp.debugger.restart_frame(call_frame_id)) -async def resume( - terminate_on_resume: typing.Optional[bool] = None - ) -> None: +async def resume() -> None: r''' Resumes JavaScript execution. - - :param terminate_on_resume: *(Optional)* Set to true to terminate execution upon resuming execution. In contrast to Runtime.terminateExecution, this will allows to execute further JavaScript (i.e. via evaluation) until execution of the paused code is actually resumed, at which point termination is triggered. If execution is currently not paused, this parameter has no effect. ''' session = get_session_context('debugger.resume') - return await session.execute(cdp.debugger.resume(terminate_on_resume)) + return await session.execute(cdp.debugger.resume()) async def search_in_content( @@ -473,17 +438,15 @@ async def set_variable_value( async def step_into( - break_on_async_call: typing.Optional[bool] = None, - skip_list: typing.Optional[typing.List[LocationRange]] = None + break_on_async_call: typing.Optional[bool] = None ) -> None: r''' Steps into the function call. - :param break_on_async_call: **(EXPERIMENTAL)** *(Optional)* Debugger will pause on the execution of the first async task which was scheduled before next pause. - :param skip_list: **(EXPERIMENTAL)** *(Optional)* The skipList specifies location ranges that should be skipped on step into. + :param break_on_async_call: **(EXPERIMENTAL)** *(Optional)* Debugger will issue additional Debugger.paused notification if any async task is scheduled before next pause. ''' session = get_session_context('debugger.step_into') - return await session.execute(cdp.debugger.step_into(break_on_async_call, skip_list)) + return await session.execute(cdp.debugger.step_into(break_on_async_call)) async def step_out() -> None: @@ -494,13 +457,9 @@ async def step_out() -> None: return await session.execute(cdp.debugger.step_out()) -async def step_over( - skip_list: typing.Optional[typing.List[LocationRange]] = None - ) -> None: +async def step_over() -> None: r''' Steps over the statement. - - :param skip_list: **(EXPERIMENTAL)** *(Optional)* The skipList specifies location ranges that should be skipped on step over. ''' session = get_session_context('debugger.step_over') - return await session.execute(cdp.debugger.step_over(skip_list)) + return await session.execute(cdp.debugger.step_over()) diff --git a/trio_cdp/generated/dom.py b/trio_cdp/generated/dom.py index 0080162..98cbda1 100644 --- a/trio_cdp/generated/dom.py +++ b/trio_cdp/generated/dom.py @@ -15,12 +15,10 @@ BackendNode, BackendNodeId, BoxModel, - CSSComputedStyleProperty, CharacterDataModified, ChildNodeCountUpdated, ChildNodeInserted, ChildNodeRemoved, - CompatibilityMode, DistributedNodesUpdated, DocumentUpdated, InlineStyleInvalidated, @@ -174,25 +172,6 @@ async def get_box_model( return await session.execute(cdp.dom.get_box_model(node_id, backend_node_id, object_id)) -async def get_container_for_node( - node_id: NodeId, - container_name: typing.Optional[str] = None - ) -> typing.Optional[NodeId]: - r''' - Returns the container of the given node based on container query conditions. - If containerName is given, it will find the nearest container with a matching name; - otherwise it will find the nearest container regardless of its container name. - - **EXPERIMENTAL** - - :param node_id: - :param container_name: *(Optional)* - :returns: *(Optional)* The container node for the given node, or null if not found. - ''' - session = get_session_context('dom.get_container_for_node') - return await session.execute(cdp.dom.get_container_for_node(node_id, container_name)) - - async def get_content_quads( node_id: typing.Optional[NodeId] = None, backend_node_id: typing.Optional[BackendNodeId] = None, @@ -249,18 +228,12 @@ async def get_flattened_document( pierce: typing.Optional[bool] = None ) -> typing.List[Node]: r''' -Returns the root DOM node (and optionally the subtree) to the caller. -Deprecated, as it is not designed to work well with the rest of the DOM agent. -Use DOMSnapshot.captureSnapshot instead. - -.. deprecated:: 1.3 - -:param depth: *(Optional)* The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0. -:param pierce: *(Optional)* Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false). -:returns: Resulting node. + Returns the root DOM node (and optionally the subtree) to the caller. -.. deprecated:: 1.3 -''' + :param depth: *(Optional)* The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0. + :param pierce: *(Optional)* Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false). + :returns: Resulting node. + ''' session = get_session_context('dom.get_flattened_document') return await session.execute(cdp.dom.get_flattened_document(depth, pierce)) @@ -286,59 +259,24 @@ async def get_frame_owner( async def get_node_for_location( x: int, y: int, - include_user_agent_shadow_dom: typing.Optional[bool] = None, - ignore_pointer_events_none: typing.Optional[bool] = None - ) -> typing.Tuple[BackendNodeId, cdp.page.FrameId, typing.Optional[NodeId]]: + include_user_agent_shadow_dom: typing.Optional[bool] = None + ) -> typing.Tuple[BackendNodeId, typing.Optional[NodeId]]: r''' Returns node id at given location. Depending on whether DOM domain is enabled, nodeId is either returned or not. + **EXPERIMENTAL** + :param x: X coordinate. :param y: Y coordinate. :param include_user_agent_shadow_dom: *(Optional)* False to skip to the nearest non-UA shadow root ancestor (default: false). - :param ignore_pointer_events_none: *(Optional)* Whether to ignore pointer-events: none on elements and hit test them. :returns: A tuple with the following items: 0. **backendNodeId** - Resulting node. - 1. **frameId** - Frame this node belongs to. - 2. **nodeId** - *(Optional)* Id of the node at given coordinates, only when enabled and requested document. + 1. **nodeId** - *(Optional)* Id of the node at given coordinates, only when enabled and requested document. ''' session = get_session_context('dom.get_node_for_location') - return await session.execute(cdp.dom.get_node_for_location(x, y, include_user_agent_shadow_dom, ignore_pointer_events_none)) - - -async def get_node_stack_traces( - node_id: NodeId - ) -> typing.Optional[cdp.runtime.StackTrace]: - r''' - Gets stack traces associated with a Node. As of now, only provides stack trace for Node creation. - - **EXPERIMENTAL** - - :param node_id: Id of the node to get stack traces for. - :returns: *(Optional)* Creation stack trace, if available. - ''' - session = get_session_context('dom.get_node_stack_traces') - return await session.execute(cdp.dom.get_node_stack_traces(node_id)) - - -async def get_nodes_for_subtree_by_style( - node_id: NodeId, - computed_styles: typing.List[CSSComputedStyleProperty], - pierce: typing.Optional[bool] = None - ) -> typing.List[NodeId]: - r''' - Finds nodes with a given computed style in a subtree. - - **EXPERIMENTAL** - - :param node_id: Node ID pointing to the root of a subtree. - :param computed_styles: The style to filter nodes by (includes nodes if any of properties matches). - :param pierce: *(Optional)* Whether or not iframes and shadow roots in the same target should be traversed when returning the results (default is false). - :returns: Resulting nodes. - ''' - session = get_session_context('dom.get_nodes_for_subtree_by_style') - return await session.execute(cdp.dom.get_nodes_for_subtree_by_style(node_id, computed_styles, pierce)) + return await session.execute(cdp.dom.get_node_for_location(x, y, include_user_agent_shadow_dom)) async def get_outer_html( @@ -358,22 +296,6 @@ async def get_outer_html( return await session.execute(cdp.dom.get_outer_html(node_id, backend_node_id, object_id)) -async def get_querying_descendants_for_container( - node_id: NodeId - ) -> typing.List[NodeId]: - r''' - Returns the descendants of a container query container that have - container queries against this container. - - **EXPERIMENTAL** - - :param node_id: Id of the container node to find querying descendants from. - :returns: Descendant nodes with container queries against the given container. - ''' - session = get_session_context('dom.get_querying_descendants_for_container') - return await session.execute(cdp.dom.get_querying_descendants_for_container(node_id)) - - async def get_relayout_boundary( node_id: NodeId ) -> NodeId: @@ -629,28 +551,6 @@ async def resolve_node( return await session.execute(cdp.dom.resolve_node(node_id, backend_node_id, object_group, execution_context_id)) -async def scroll_into_view_if_needed( - node_id: typing.Optional[NodeId] = None, - backend_node_id: typing.Optional[BackendNodeId] = None, - object_id: typing.Optional[cdp.runtime.RemoteObjectId] = None, - rect: typing.Optional[Rect] = None - ) -> None: - r''' - Scrolls the specified rect of the given node into view if not already visible. - Note: exactly one between nodeId, backendNodeId and objectId should be passed - to identify the node. - - **EXPERIMENTAL** - - :param node_id: *(Optional)* Identifier of the node. - :param backend_node_id: *(Optional)* Identifier of the backend node. - :param object_id: *(Optional)* JavaScript object id of the node wrapper. - :param rect: *(Optional)* The rect to be scrolled into view, relative to the node's border box, in CSS pixels. When omitted, center of the node will be used, similar to Element.scrollIntoView. - ''' - session = get_session_context('dom.scroll_into_view_if_needed') - return await session.execute(cdp.dom.scroll_into_view_if_needed(node_id, backend_node_id, object_id, rect)) - - async def set_attribute_value( node_id: NodeId, name: str, @@ -732,20 +632,6 @@ async def set_node_name( return await session.execute(cdp.dom.set_node_name(node_id, name)) -async def set_node_stack_traces_enabled( - enable: bool - ) -> None: - r''' - Sets if stack traces should be captured for Nodes. See ``Node.getNodeStackTraces``. Default is disabled. - - **EXPERIMENTAL** - - :param enable: Enable or disable. - ''' - session = get_session_context('dom.set_node_stack_traces_enabled') - return await session.execute(cdp.dom.set_node_stack_traces_enabled(enable)) - - async def set_node_value( node_id: NodeId, value: str diff --git a/trio_cdp/generated/dom_debugger.py b/trio_cdp/generated/dom_debugger.py index 7864672..efdd3db 100644 --- a/trio_cdp/generated/dom_debugger.py +++ b/trio_cdp/generated/dom_debugger.py @@ -10,7 +10,6 @@ import cdp.dom_debugger from cdp.dom_debugger import ( - CSPViolationType, DOMBreakpointType, EventListener ) @@ -87,20 +86,6 @@ async def remove_xhr_breakpoint( return await session.execute(cdp.dom_debugger.remove_xhr_breakpoint(url)) -async def set_break_on_csp_violation( - violation_types: typing.List[CSPViolationType] - ) -> None: - r''' - Sets breakpoint on particular CSP violations. - - **EXPERIMENTAL** - - :param violation_types: CSP Violations to stop upon. - ''' - session = get_session_context('dom_debugger.set_break_on_csp_violation') - return await session.execute(cdp.dom_debugger.set_break_on_csp_violation(violation_types)) - - async def set_dom_breakpoint( node_id: cdp.dom.NodeId, type_: DOMBreakpointType diff --git a/trio_cdp/generated/dom_snapshot.py b/trio_cdp/generated/dom_snapshot.py index 2d77b96..f23c005 100644 --- a/trio_cdp/generated/dom_snapshot.py +++ b/trio_cdp/generated/dom_snapshot.py @@ -30,10 +30,7 @@ async def capture_snapshot( computed_styles: typing.List[str], - include_paint_order: typing.Optional[bool] = None, - include_dom_rects: typing.Optional[bool] = None, - include_blended_background_colors: typing.Optional[bool] = None, - include_text_color_opacities: typing.Optional[bool] = None + include_dom_rects: typing.Optional[bool] = None ) -> typing.Tuple[typing.List[DocumentSnapshot], typing.List[str]]: r''' Returns a document snapshot, including the full DOM tree of the root node (including iframes, @@ -42,17 +39,14 @@ async def capture_snapshot( flattened. :param computed_styles: Whitelist of computed styles to return. - :param include_paint_order: *(Optional)* Whether to include layout object paint orders into the snapshot. :param include_dom_rects: *(Optional)* Whether to include DOM rectangles (offsetRects, clientRects, scrollRects) into the snapshot - :param include_blended_background_colors: **(EXPERIMENTAL)** *(Optional)* Whether to include blended background colors in the snapshot (default: false). Blended background color is achieved by blending background colors of all elements that overlap with the current element. - :param include_text_color_opacities: **(EXPERIMENTAL)** *(Optional)* Whether to include text color opacity in the snapshot (default: false). An element might have the opacity property set that affects the text color of the element. The final text color opacity is computed based on the opacity of all overlapping elements. :returns: A tuple with the following items: 0. **documents** - The nodes in the DOM tree. The DOMNode at index 0 corresponds to the root document. 1. **strings** - Shared string table that all string properties refer to with indexes. ''' session = get_session_context('dom_snapshot.capture_snapshot') - return await session.execute(cdp.dom_snapshot.capture_snapshot(computed_styles, include_paint_order, include_dom_rects, include_blended_background_colors, include_text_color_opacities)) + return await session.execute(cdp.dom_snapshot.capture_snapshot(computed_styles, include_dom_rects)) async def disable() -> None: diff --git a/trio_cdp/generated/emulation.py b/trio_cdp/generated/emulation.py index 01cfddb..68271d6 100644 --- a/trio_cdp/generated/emulation.py +++ b/trio_cdp/generated/emulation.py @@ -10,12 +10,7 @@ import cdp.emulation from cdp.emulation import ( - DisabledImageType, - DisplayFeature, - MediaFeature, ScreenOrientation, - UserAgentBrandVersion, - UserAgentMetadata, VirtualTimeBudgetExpired, VirtualTimePolicy ) @@ -33,7 +28,7 @@ async def can_emulate() -> bool: async def clear_device_metrics_override() -> None: r''' - Clears the overridden device metrics. + Clears the overriden device metrics. ''' session = get_session_context('emulation.clear_device_metrics_override') return await session.execute(cdp.emulation.clear_device_metrics_override()) @@ -41,22 +36,12 @@ async def clear_device_metrics_override() -> None: async def clear_geolocation_override() -> None: r''' - Clears the overridden Geolocation Position and Error. + Clears the overriden Geolocation Position and Error. ''' session = get_session_context('emulation.clear_geolocation_override') return await session.execute(cdp.emulation.clear_geolocation_override()) -async def clear_idle_override() -> None: - r''' - Clears Idle state overrides. - - **EXPERIMENTAL** - ''' - session = get_session_context('emulation.clear_idle_override') - return await session.execute(cdp.emulation.clear_idle_override()) - - async def reset_page_scale_factor() -> None: r''' Requests that page scale factor is reset to initial values. @@ -67,20 +52,6 @@ async def reset_page_scale_factor() -> None: return await session.execute(cdp.emulation.reset_page_scale_factor()) -async def set_auto_dark_mode_override( - enabled: typing.Optional[bool] = None - ) -> None: - r''' - Automatically render all web contents using a dark theme. - - **EXPERIMENTAL** - - :param enabled: *(Optional)* Whether to enable or disable automatic dark mode. If not specified, any existing override will be cleared. - ''' - session = get_session_context('emulation.set_auto_dark_mode_override') - return await session.execute(cdp.emulation.set_auto_dark_mode_override(enabled)) - - async def set_cpu_throttling_rate( rate: float ) -> None: @@ -120,8 +91,7 @@ async def set_device_metrics_override( position_y: typing.Optional[int] = None, dont_set_visible_size: typing.Optional[bool] = None, screen_orientation: typing.Optional[ScreenOrientation] = None, - viewport: typing.Optional[cdp.page.Viewport] = None, - display_feature: typing.Optional[DisplayFeature] = None + viewport: typing.Optional[cdp.page.Viewport] = None ) -> None: r''' Overrides the values of device screen dimensions (window.screen.width, window.screen.height, @@ -140,24 +110,9 @@ async def set_device_metrics_override( :param dont_set_visible_size: **(EXPERIMENTAL)** *(Optional)* Do not set visible view size, rely upon explicit setVisibleSize call. :param screen_orientation: *(Optional)* Screen orientation override. :param viewport: **(EXPERIMENTAL)** *(Optional)* If set, the visible area of the page will be overridden to this viewport. This viewport change is not observed by the page, e.g. viewport-relative elements do not change positions. - :param display_feature: **(EXPERIMENTAL)** *(Optional)* If set, the display feature of a multi-segment screen. If not set, multi-segment support is turned-off. ''' session = get_session_context('emulation.set_device_metrics_override') - return await session.execute(cdp.emulation.set_device_metrics_override(width, height, device_scale_factor, mobile, scale, screen_width, screen_height, position_x, position_y, dont_set_visible_size, screen_orientation, viewport, display_feature)) - - -async def set_disabled_image_types( - image_types: typing.List[DisabledImageType] - ) -> None: - r''' - - - **EXPERIMENTAL** - - :param image_types: Image types to disable. - ''' - session = get_session_context('emulation.set_disabled_image_types') - return await session.execute(cdp.emulation.set_disabled_image_types(image_types)) + return await session.execute(cdp.emulation.set_device_metrics_override(width, height, device_scale_factor, mobile, scale, screen_width, screen_height, position_x, position_y, dont_set_visible_size, screen_orientation, viewport)) async def set_document_cookie_disabled( @@ -191,31 +146,15 @@ async def set_emit_touch_events_for_mouse( async def set_emulated_media( - media: typing.Optional[str] = None, - features: typing.Optional[typing.List[MediaFeature]] = None + media: str ) -> None: r''' - Emulates the given media type or media feature for CSS media queries. + Emulates the given media for CSS media queries. - :param media: *(Optional)* Media type to emulate. Empty string disables the override. - :param features: *(Optional)* Media features to emulate. + :param media: Media type to emulate. Empty string disables the override. ''' session = get_session_context('emulation.set_emulated_media') - return await session.execute(cdp.emulation.set_emulated_media(media, features)) - - -async def set_emulated_vision_deficiency( - type_: str - ) -> None: - r''' - Emulates the given vision deficiency. - - **EXPERIMENTAL** - - :param type_: Vision deficiency to emulate. - ''' - session = get_session_context('emulation.set_emulated_vision_deficiency') - return await session.execute(cdp.emulation.set_emulated_vision_deficiency(type_)) + return await session.execute(cdp.emulation.set_emulated_media(media)) async def set_focus_emulation_enabled( @@ -249,36 +188,6 @@ async def set_geolocation_override( return await session.execute(cdp.emulation.set_geolocation_override(latitude, longitude, accuracy)) -async def set_idle_override( - is_user_active: bool, - is_screen_unlocked: bool - ) -> None: - r''' - Overrides the Idle state. - - **EXPERIMENTAL** - - :param is_user_active: Mock isUserActive - :param is_screen_unlocked: Mock isScreenUnlocked - ''' - session = get_session_context('emulation.set_idle_override') - return await session.execute(cdp.emulation.set_idle_override(is_user_active, is_screen_unlocked)) - - -async def set_locale_override( - locale: typing.Optional[str] = None - ) -> None: - r''' - Overrides default host system locale with the specified one. - - **EXPERIMENTAL** - - :param locale: *(Optional)* ICU style C locale (e.g. "en_US"). If not specified or empty, disables the override and restores default host system locale. - ''' - session = get_session_context('emulation.set_locale_override') - return await session.execute(cdp.emulation.set_locale_override(locale)) - - async def set_navigator_overrides( platform: str ) -> None: @@ -368,8 +277,7 @@ async def set_touch_emulation_enabled( async def set_user_agent_override( user_agent: str, accept_language: typing.Optional[str] = None, - platform: typing.Optional[str] = None, - user_agent_metadata: typing.Optional[UserAgentMetadata] = None + platform: typing.Optional[str] = None ) -> None: r''' Allows overriding user agent with the given string. @@ -377,10 +285,9 @@ async def set_user_agent_override( :param user_agent: User agent to use. :param accept_language: *(Optional)* Browser langugage to emulate. :param platform: *(Optional)* The platform navigator.platform should return. - :param user_agent_metadata: **(EXPERIMENTAL)** *(Optional)* To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData ''' session = get_session_context('emulation.set_user_agent_override') - return await session.execute(cdp.emulation.set_user_agent_override(user_agent, accept_language, platform, user_agent_metadata)) + return await session.execute(cdp.emulation.set_user_agent_override(user_agent, accept_language, platform)) async def set_virtual_time_policy( @@ -400,7 +307,7 @@ async def set_virtual_time_policy( :param budget: *(Optional)* If set, after this many virtual milliseconds have elapsed virtual time will be paused and a virtualTimeBudgetExpired event is sent. :param max_virtual_time_task_starvation_count: *(Optional)* If set this specifies the maximum number of tasks that can be run before virtual is forced forwards to prevent deadlock. :param wait_for_navigation: *(Optional)* If set the virtual time policy change should be deferred until any frame starts navigating. Note any previous deferred policy change is superseded. - :param initial_virtual_time: *(Optional)* If set, base::Time::Now will be overridden to initially return this value. + :param initial_virtual_time: *(Optional)* If set, base::Time::Now will be overriden to initially return this value. :returns: Absolute timestamp at which virtual time was first enabled (up time in milliseconds). ''' session = get_session_context('emulation.set_virtual_time_policy') diff --git a/trio_cdp/generated/event_breakpoints.py b/trio_cdp/generated/event_breakpoints.py deleted file mode 100644 index 6e2011c..0000000 --- a/trio_cdp/generated/event_breakpoints.py +++ /dev/null @@ -1,34 +0,0 @@ -# DO NOT EDIT THIS FILE! -# -# This code is generated off of PyCDP modules. If you need to make -# changes, edit the generator and regenerate all of the modules. - -from __future__ import annotations -import typing - -from ..context import get_connection_context, get_session_context - -import cdp.event_breakpoints - -async def remove_instrumentation_breakpoint( - event_name: str - ) -> None: - r''' - Removes breakpoint on particular native event. - - :param event_name: Instrumentation name to stop on. - ''' - session = get_session_context('event_breakpoints.remove_instrumentation_breakpoint') - return await session.execute(cdp.event_breakpoints.remove_instrumentation_breakpoint(event_name)) - - -async def set_instrumentation_breakpoint( - event_name: str - ) -> None: - r''' - Sets breakpoint on particular native event. - - :param event_name: Instrumentation name to stop on. - ''' - session = get_session_context('event_breakpoints.set_instrumentation_breakpoint') - return await session.execute(cdp.event_breakpoints.set_instrumentation_breakpoint(event_name)) diff --git a/trio_cdp/generated/fetch.py b/trio_cdp/generated/fetch.py index 539b1c0..3c48699 100644 --- a/trio_cdp/generated/fetch.py +++ b/trio_cdp/generated/fetch.py @@ -26,8 +26,7 @@ async def continue_request( url: typing.Optional[str] = None, method: typing.Optional[str] = None, post_data: typing.Optional[str] = None, - headers: typing.Optional[typing.List[HeaderEntry]] = None, - intercept_response: typing.Optional[bool] = None + headers: typing.Optional[typing.List[HeaderEntry]] = None ) -> None: r''' Continues the request, optionally modifying some of its parameters. @@ -35,36 +34,11 @@ async def continue_request( :param request_id: An id the client received in requestPaused event. :param url: *(Optional)* If set, the request url will be modified in a way that's not observable by page. :param method: *(Optional)* If set, the request method is overridden. - :param post_data: *(Optional)* If set, overrides the post data in the request. (Encoded as a base64 string when passed over JSON) - :param headers: *(Optional)* If set, overrides the request headers. - :param intercept_response: **(EXPERIMENTAL)** *(Optional)* If set, overrides response interception behavior for this request. + :param post_data: *(Optional)* If set, overrides the post data in the request. + :param headers: *(Optional)* If set, overrides the request headrts. ''' session = get_session_context('fetch.continue_request') - return await session.execute(cdp.fetch.continue_request(request_id, url, method, post_data, headers, intercept_response)) - - -async def continue_response( - request_id: RequestId, - response_code: typing.Optional[int] = None, - response_phrase: typing.Optional[str] = None, - response_headers: typing.Optional[typing.List[HeaderEntry]] = None, - binary_response_headers: typing.Optional[str] = None - ) -> None: - r''' - Continues loading of the paused response, optionally modifying the - response headers. If either responseCode or headers are modified, all of them - must be present. - - **EXPERIMENTAL** - - :param request_id: An id the client received in requestPaused event. - :param response_code: *(Optional)* An HTTP response code. If absent, original response code will be used. - :param response_phrase: *(Optional)* A textual representation of responseCode. If absent, a standard phrase matching responseCode is used. - :param response_headers: *(Optional)* Response headers. If absent, original response headers will be used. - :param binary_response_headers: *(Optional)* Alternative way of specifying response headers as a \0-separated series of name: value pairs. Prefer the above method unless you need to represent some non-UTF8 values that can't be transmitted over the protocol as text. (Encoded as a base64 string when passed over JSON) - ''' - session = get_session_context('fetch.continue_response') - return await session.execute(cdp.fetch.continue_response(request_id, response_code, response_phrase, response_headers, binary_response_headers)) + return await session.execute(cdp.fetch.continue_request(request_id, url, method, post_data, headers)) async def continue_with_auth( @@ -121,8 +95,7 @@ async def fail_request( async def fulfill_request( request_id: RequestId, response_code: int, - response_headers: typing.Optional[typing.List[HeaderEntry]] = None, - binary_response_headers: typing.Optional[str] = None, + response_headers: typing.List[HeaderEntry], body: typing.Optional[str] = None, response_phrase: typing.Optional[str] = None ) -> None: @@ -131,13 +104,12 @@ async def fulfill_request( :param request_id: An id the client received in requestPaused event. :param response_code: An HTTP response code. - :param response_headers: *(Optional)* Response headers. - :param binary_response_headers: *(Optional)* Alternative way of specifying response headers as a \0-separated series of name: value pairs. Prefer the above method unless you need to represent some non-UTF8 values that can't be transmitted over the protocol as text. (Encoded as a base64 string when passed over JSON) - :param body: *(Optional)* A response body. If absent, original response body will be used if the request is intercepted at the response stage and empty body will be used if the request is intercepted at the request stage. (Encoded as a base64 string when passed over JSON) - :param response_phrase: *(Optional)* A textual representation of responseCode. If absent, a standard phrase matching responseCode is used. + :param response_headers: Response headers. + :param body: *(Optional)* A response body. + :param response_phrase: *(Optional)* A textual representation of responseCode. If absent, a standard phrase mathcing responseCode is used. ''' session = get_session_context('fetch.fulfill_request') - return await session.execute(cdp.fetch.fulfill_request(request_id, response_code, response_headers, binary_response_headers, body, response_phrase)) + return await session.execute(cdp.fetch.fulfill_request(request_id, response_code, response_headers, body, response_phrase)) async def get_response_body( diff --git a/trio_cdp/generated/headless_experimental.py b/trio_cdp/generated/headless_experimental.py index 13c159b..efc3037 100644 --- a/trio_cdp/generated/headless_experimental.py +++ b/trio_cdp/generated/headless_experimental.py @@ -34,7 +34,7 @@ async def begin_frame( :returns: A tuple with the following items: 0. **hasDamage** - Whether the BeginFrame resulted in damage and, thus, a new frame was committed to the display. Reported for diagnostic uses, may be removed in the future. - 1. **screenshotData** - *(Optional)* Base64-encoded image data of the screenshot, if one was requested and successfully taken. (Encoded as a base64 string when passed over JSON) + 1. **screenshotData** - *(Optional)* Base64-encoded image data of the screenshot, if one was requested and successfully taken. ''' session = get_session_context('headless_experimental.begin_frame') return await session.execute(cdp.headless_experimental.begin_frame(frame_time_ticks, interval, no_display_updates, screenshot)) diff --git a/trio_cdp/generated/heap_profiler.py b/trio_cdp/generated/heap_profiler.py index d4674e3..b2ca05a 100644 --- a/trio_cdp/generated/heap_profiler.py +++ b/trio_cdp/generated/heap_profiler.py @@ -115,28 +115,20 @@ async def stop_sampling() -> SamplingHeapProfile: async def stop_tracking_heap_objects( - report_progress: typing.Optional[bool] = None, - treat_global_objects_as_roots: typing.Optional[bool] = None, - capture_numeric_value: typing.Optional[bool] = None + report_progress: typing.Optional[bool] = None ) -> None: r''' :param report_progress: *(Optional)* If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped. - :param treat_global_objects_as_roots: *(Optional)* - :param capture_numeric_value: *(Optional)* If true, numerical values are included in the snapshot ''' session = get_session_context('heap_profiler.stop_tracking_heap_objects') - return await session.execute(cdp.heap_profiler.stop_tracking_heap_objects(report_progress, treat_global_objects_as_roots, capture_numeric_value)) + return await session.execute(cdp.heap_profiler.stop_tracking_heap_objects(report_progress)) async def take_heap_snapshot( - report_progress: typing.Optional[bool] = None, - treat_global_objects_as_roots: typing.Optional[bool] = None, - capture_numeric_value: typing.Optional[bool] = None + report_progress: typing.Optional[bool] = None ) -> None: r''' :param report_progress: *(Optional)* If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. - :param treat_global_objects_as_roots: *(Optional)* If true, a raw snapshot without artificial roots will be generated - :param capture_numeric_value: *(Optional)* If true, numerical values are included in the snapshot ''' session = get_session_context('heap_profiler.take_heap_snapshot') - return await session.execute(cdp.heap_profiler.take_heap_snapshot(report_progress, treat_global_objects_as_roots, capture_numeric_value)) + return await session.execute(cdp.heap_profiler.take_heap_snapshot(report_progress)) diff --git a/trio_cdp/generated/input_.py b/trio_cdp/generated/input_.py index 9be1582..a2dc794 100644 --- a/trio_cdp/generated/input_.py +++ b/trio_cdp/generated/input_.py @@ -10,38 +10,12 @@ import cdp.input_ from cdp.input_ import ( - DragData, - DragDataItem, - DragIntercepted, GestureSourceType, - MouseButton, TimeSinceEpoch, TouchPoint ) -async def dispatch_drag_event( - type_: str, - x: float, - y: float, - data: DragData, - modifiers: typing.Optional[int] = None - ) -> None: - r''' - Dispatches a drag event into the page. - - **EXPERIMENTAL** - - :param type_: Type of the drag event. - :param x: X coordinate of the event relative to the main frame's viewport in CSS pixels. - :param y: Y coordinate of the event relative to the main frame's viewport in CSS pixels. 0 refers to the top of the viewport and Y increases as it proceeds towards the bottom of the viewport. - :param data: - :param modifiers: *(Optional)* Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 (default: 0). - ''' - session = get_session_context('input_.dispatch_drag_event') - return await session.execute(cdp.input_.dispatch_drag_event(type_, x, y, data, modifiers)) - - async def dispatch_key_event( type_: str, modifiers: typing.Optional[int] = None, @@ -56,8 +30,7 @@ async def dispatch_key_event( auto_repeat: typing.Optional[bool] = None, is_keypad: typing.Optional[bool] = None, is_system_key: typing.Optional[bool] = None, - location: typing.Optional[int] = None, - commands: typing.Optional[typing.List[str]] = None + location: typing.Optional[int] = None ) -> None: r''' Dispatches a key event to the page. @@ -65,7 +38,7 @@ async def dispatch_key_event( :param type_: Type of the key event. :param modifiers: *(Optional)* Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 (default: 0). :param timestamp: *(Optional)* Time at which the event occurred. - :param text: *(Optional)* Text as generated by processing a virtual key code with a keyboard layout. Not needed for for ```keyUp```` and ````rawKeyDown```` events (default: "") + :param text: *(Optional)* Text as generated by processing a virtual key code with a keyboard layout. Not needed for for ```keyUp```` and ````rawKeyDown``` events (default: "") :param unmodified_text: *(Optional)* Text that would have been generated by the keyboard if no modifiers were pressed (except for shift). Useful for shortcut (accelerator) key handling (default: ""). :param key_identifier: *(Optional)* Unique key identifier (e.g., 'U+0041') (default: ""). :param code: *(Optional)* Unique DOM defined string value for each physical key (e.g., 'KeyA') (default: ""). @@ -76,10 +49,9 @@ async def dispatch_key_event( :param is_keypad: *(Optional)* Whether the event was generated from the keypad (default: false). :param is_system_key: *(Optional)* Whether the event was a system key event (default: false). :param location: *(Optional)* Whether the event was from the left or right side of the keyboard. 1=Left, 2=Right (default: 0). - :param commands: **(EXPERIMENTAL)** *(Optional)* Editing commands to send with the key event (e.g., 'selectAll') (default: []). These are related to but not equal the command names used in ````document.execCommand``` and NSStandardKeyBindingResponding. See https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names. ''' session = get_session_context('input_.dispatch_key_event') - return await session.execute(cdp.input_.dispatch_key_event(type_, modifiers, timestamp, text, unmodified_text, key_identifier, code, key, windows_virtual_key_code, native_virtual_key_code, auto_repeat, is_keypad, is_system_key, location, commands)) + return await session.execute(cdp.input_.dispatch_key_event(type_, modifiers, timestamp, text, unmodified_text, key_identifier, code, key, windows_virtual_key_code, native_virtual_key_code, auto_repeat, is_keypad, is_system_key, location)) async def dispatch_mouse_event( @@ -88,14 +60,9 @@ async def dispatch_mouse_event( y: float, modifiers: typing.Optional[int] = None, timestamp: typing.Optional[TimeSinceEpoch] = None, - button: typing.Optional[MouseButton] = None, + button: typing.Optional[str] = None, buttons: typing.Optional[int] = None, click_count: typing.Optional[int] = None, - force: typing.Optional[float] = None, - tangential_pressure: typing.Optional[float] = None, - tilt_x: typing.Optional[int] = None, - tilt_y: typing.Optional[int] = None, - twist: typing.Optional[int] = None, delta_x: typing.Optional[float] = None, delta_y: typing.Optional[float] = None, pointer_type: typing.Optional[str] = None @@ -111,17 +78,12 @@ async def dispatch_mouse_event( :param button: *(Optional)* Mouse button (default: "none"). :param buttons: *(Optional)* A number indicating which buttons are pressed on the mouse when a mouse event is triggered. Left=1, Right=2, Middle=4, Back=8, Forward=16, None=0. :param click_count: *(Optional)* Number of times the mouse button was clicked (default: 0). - :param force: **(EXPERIMENTAL)** *(Optional)* The normalized pressure, which has a range of [0,1] (default: 0). - :param tangential_pressure: **(EXPERIMENTAL)** *(Optional)* The normalized tangential pressure, which has a range of [-1,1] (default: 0). - :param tilt_x: **(EXPERIMENTAL)** *(Optional)* The plane angle between the Y-Z plane and the plane containing both the stylus axis and the Y axis, in degrees of the range [-90,90], a positive tiltX is to the right (default: 0). - :param tilt_y: **(EXPERIMENTAL)** *(Optional)* The plane angle between the X-Z plane and the plane containing both the stylus axis and the X axis, in degrees of the range [-90,90], a positive tiltY is towards the user (default: 0). - :param twist: **(EXPERIMENTAL)** *(Optional)* The clockwise rotation of a pen stylus around its own major axis, in degrees in the range [0,359] (default: 0). :param delta_x: *(Optional)* X delta in CSS pixels for mouse wheel event (default: 0). :param delta_y: *(Optional)* Y delta in CSS pixels for mouse wheel event (default: 0). :param pointer_type: *(Optional)* Pointer type (default: "mouse"). ''' session = get_session_context('input_.dispatch_mouse_event') - return await session.execute(cdp.input_.dispatch_mouse_event(type_, x, y, modifiers, timestamp, button, buttons, click_count, force, tangential_pressure, tilt_x, tilt_y, twist, delta_x, delta_y, pointer_type)) + return await session.execute(cdp.input_.dispatch_mouse_event(type_, x, y, modifiers, timestamp, button, buttons, click_count, delta_x, delta_y, pointer_type)) async def dispatch_touch_event( @@ -146,7 +108,7 @@ async def emulate_touch_from_mouse_event( type_: str, x: int, y: int, - button: MouseButton, + button: str, timestamp: typing.Optional[TimeSinceEpoch] = None, delta_x: typing.Optional[float] = None, delta_y: typing.Optional[float] = None, @@ -161,7 +123,7 @@ async def emulate_touch_from_mouse_event( :param type_: Type of the mouse event. :param x: X coordinate of the mouse pointer in DIP. :param y: Y coordinate of the mouse pointer in DIP. - :param button: Mouse button. Only "none", "left", "right" are supported. + :param button: Mouse button. :param timestamp: *(Optional)* Time at which the event occurred (default: current time). :param delta_x: *(Optional)* X delta in DIP for mouse wheel event (default: 0). :param delta_y: *(Optional)* Y delta in DIP for mouse wheel event (default: 0). @@ -172,30 +134,6 @@ async def emulate_touch_from_mouse_event( return await session.execute(cdp.input_.emulate_touch_from_mouse_event(type_, x, y, button, timestamp, delta_x, delta_y, modifiers, click_count)) -async def ime_set_composition( - text: str, - selection_start: int, - selection_end: int, - replacement_start: typing.Optional[int] = None, - replacement_end: typing.Optional[int] = None - ) -> None: - r''' - This method sets the current candidate text for ime. - Use imeCommitComposition to commit the final text. - Use imeSetComposition with empty string as text to cancel composition. - - **EXPERIMENTAL** - - :param text: The text to insert - :param selection_start: selection start - :param selection_end: selection end - :param replacement_start: *(Optional)* replacement start - :param replacement_end: *(Optional)* replacement end - ''' - session = get_session_context('input_.ime_set_composition') - return await session.execute(cdp.input_.ime_set_composition(text, selection_start, selection_end, replacement_start, replacement_end)) - - async def insert_text( text: str ) -> None: @@ -223,21 +161,6 @@ async def set_ignore_input_events( return await session.execute(cdp.input_.set_ignore_input_events(ignore)) -async def set_intercept_drags( - enabled: bool - ) -> None: - r''' - Prevents default drag and drop behavior and instead emits ``Input.dragIntercepted`` events. - Drag and drop behavior can be directly controlled via ``Input.dispatchDragEvent``. - - **EXPERIMENTAL** - - :param enabled: - ''' - session = get_session_context('input_.set_intercept_drags') - return await session.execute(cdp.input_.set_intercept_drags(enabled)) - - async def synthesize_pinch_gesture( x: float, y: float, diff --git a/trio_cdp/generated/io.py b/trio_cdp/generated/io.py index 5c36394..2f53394 100644 --- a/trio_cdp/generated/io.py +++ b/trio_cdp/generated/io.py @@ -41,7 +41,7 @@ async def read( 0. **base64Encoded** - *(Optional)* Set if the data is base64-encoded 1. **data** - Data that were read. - 2. **eof** - Set if the end-of-file condition occurred while reading. + 2. **eof** - Set if the end-of-file condition occured while reading. ''' session = get_session_context('io.read') return await session.execute(cdp.io.read(handle, offset, size)) diff --git a/trio_cdp/generated/layer_tree.py b/trio_cdp/generated/layer_tree.py index 9202587..0bec676 100644 --- a/trio_cdp/generated/layer_tree.py +++ b/trio_cdp/generated/layer_tree.py @@ -24,15 +24,12 @@ async def compositing_reasons( layer_id: LayerId - ) -> typing.Tuple[typing.List[str], typing.List[str]]: + ) -> typing.List[str]: r''' Provides the reasons why the given layer was composited. :param layer_id: The id of the layer for which we want to get the reasons it was composited. - :returns: A tuple with the following items: - - 0. **compositingReasons** - A list of strings specifying reasons for the given layer to become composited. - 1. **compositingReasonIds** - A list of strings specifying reason IDs for the given layer to become composited. + :returns: A list of strings specifying reasons for the given layer to become composited. ''' session = get_session_context('layer_tree.compositing_reasons') return await session.execute(cdp.layer_tree.compositing_reasons(layer_id)) diff --git a/trio_cdp/generated/media.py b/trio_cdp/generated/media.py deleted file mode 100644 index ff6964e..0000000 --- a/trio_cdp/generated/media.py +++ /dev/null @@ -1,40 +0,0 @@ -# DO NOT EDIT THIS FILE! -# -# This code is generated off of PyCDP modules. If you need to make -# changes, edit the generator and regenerate all of the modules. - -from __future__ import annotations -import typing - -from ..context import get_connection_context, get_session_context - -import cdp.media -from cdp.media import ( - PlayerError, - PlayerErrorsRaised, - PlayerEvent, - PlayerEventsAdded, - PlayerId, - PlayerMessage, - PlayerMessagesLogged, - PlayerPropertiesChanged, - PlayerProperty, - PlayersCreated, - Timestamp -) - - -async def disable() -> None: - r''' - Disables the Media domain. - ''' - session = get_session_context('media.disable') - return await session.execute(cdp.media.disable()) - - -async def enable() -> None: - r''' - Enables the Media domain - ''' - session = get_session_context('media.enable') - return await session.execute(cdp.media.enable()) diff --git a/trio_cdp/generated/network.py b/trio_cdp/generated/network.py index debeac3..57343d9 100644 --- a/trio_cdp/generated/network.py +++ b/trio_cdp/generated/network.py @@ -17,45 +17,22 @@ BlockedSetCookieWithReason, CachedResource, CertificateTransparencyCompliance, - ClientSecurityState, - ConnectTiming, ConnectionType, - ContentEncoding, Cookie, CookieBlockedReason, CookieParam, - CookiePriority, CookieSameSite, - CookieSourceScheme, - CorsError, - CorsErrorStatus, - CrossOriginEmbedderPolicyStatus, - CrossOriginEmbedderPolicyValue, - CrossOriginOpenerPolicyStatus, - CrossOriginOpenerPolicyValue, DataReceived, ErrorReason, EventSourceMessageReceived, Headers, - IPAddressSpace, Initiator, InterceptionId, InterceptionStage, - LoadNetworkResourceOptions, - LoadNetworkResourcePageResult, LoaderId, LoadingFailed, LoadingFinished, MonotonicTime, - PostDataEntry, - PrivateNetworkRequestPolicy, - ReportId, - ReportStatus, - ReportingApiEndpoint, - ReportingApiEndpointsChangedForOrigin, - ReportingApiReport, - ReportingApiReportAdded, - ReportingApiReportUpdated, Request, RequestId, RequestIntercepted, @@ -71,8 +48,6 @@ ResponseReceived, ResponseReceivedExtraInfo, SecurityDetails, - SecurityIsolationStatus, - ServiceWorkerResponseSource, SetCookieBlockedReason, SignedCertificateTimestamp, SignedExchangeError, @@ -81,14 +56,7 @@ SignedExchangeInfo, SignedExchangeReceived, SignedExchangeSignature, - SubresourceWebBundleInnerResponseError, - SubresourceWebBundleInnerResponseParsed, - SubresourceWebBundleMetadataError, - SubresourceWebBundleMetadataReceived, TimeSinceEpoch, - TrustTokenOperationDone, - TrustTokenOperationType, - TrustTokenParams, WebSocketClosed, WebSocketCreated, WebSocketFrame, @@ -98,10 +66,7 @@ WebSocketHandshakeResponseReceived, WebSocketRequest, WebSocketResponse, - WebSocketWillSendHandshakeRequest, - WebTransportClosed, - WebTransportConnectionEstablished, - WebTransportCreated + WebSocketWillSendHandshakeRequest ) @@ -147,16 +112,6 @@ async def can_emulate_network_conditions() -> bool: return await session.execute(cdp.network.can_emulate_network_conditions()) -async def clear_accepted_encodings_override() -> None: - r''' - Clears accepted encodings set by setAcceptedEncodings - - **EXPERIMENTAL** - ''' - session = get_session_context('network.clear_accepted_encodings_override') - return await session.execute(cdp.network.clear_accepted_encodings_override()) - - async def clear_browser_cache() -> None: r''' Clears browser cache. @@ -196,7 +151,7 @@ async def continue_intercepted_request( :param interception_id: :param error_reason: *(Optional)* If set this causes the request to fail with the given reason. Passing ```Aborted```` for requests marked with ````isNavigationRequest``` also cancels the navigation. Must not be set in response to an authChallenge. -:param raw_response: *(Optional)* If set the requests completes using with the provided base64 encoded raw response, including HTTP status line and headers etc... Must not be set in response to an authChallenge. (Encoded as a base64 string when passed over JSON) +:param raw_response: *(Optional)* If set the requests completes using with the provided base64 encoded raw response, including HTTP status line and headers etc... Must not be set in response to an authChallenge. :param url: *(Optional)* If set the request url will be modified in a way that's not observable by page. Must not be set in response to an authChallenge. :param method: *(Optional)* If set this allows the request method to be overridden. Must not be set in response to an authChallenge. :param post_data: *(Optional)* If set this allows postData to be set. Must not be set in response to an authChallenge. @@ -271,21 +226,6 @@ async def enable( return await session.execute(cdp.network.enable(max_total_buffer_size, max_resource_buffer_size, max_post_data_size)) -async def enable_reporting_api( - enable: bool - ) -> None: - r''' - Enables tracking for the Reporting API, events generated by the Reporting API will now be delivered to the client. - Enabling triggers 'reportingApiReportAdded' for all existing reports. - - **EXPERIMENTAL** - - :param enable: Whether to enable or disable events for the Reporting API - ''' - session = get_session_context('network.enable_reporting_api') - return await session.execute(cdp.network.enable_reporting_api(enable)) - - async def get_all_cookies() -> typing.List[Cookie]: r''' Returns all browser cookies. Depending on the backend support, will return detailed cookie @@ -319,7 +259,7 @@ async def get_cookies( Returns all browser cookies for the current URL. Depending on the backend support, will return detailed cookie information in the ``cookies`` field. - :param urls: *(Optional)* The list of URLs for which applicable cookies will be fetched. If not specified, it's assumed to be set to the list containing the URLs of the page and all of its subframes. + :param urls: *(Optional)* The list of URLs for which applicable cookies will be fetched :returns: Array of cookie objects. ''' session = get_session_context('network.get_cookies') @@ -373,40 +313,6 @@ async def get_response_body_for_interception( return await session.execute(cdp.network.get_response_body_for_interception(interception_id)) -async def get_security_isolation_status( - frame_id: typing.Optional[cdp.page.FrameId] = None - ) -> SecurityIsolationStatus: - r''' - Returns information about the COEP/COOP isolation status. - - **EXPERIMENTAL** - - :param frame_id: *(Optional)* If no frameId is provided, the status of the target is provided. - :returns: - ''' - session = get_session_context('network.get_security_isolation_status') - return await session.execute(cdp.network.get_security_isolation_status(frame_id)) - - -async def load_network_resource( - url: str, - options: LoadNetworkResourceOptions, - frame_id: typing.Optional[cdp.page.FrameId] = None - ) -> LoadNetworkResourcePageResult: - r''' - Fetches the resource and returns the content. - - **EXPERIMENTAL** - - :param frame_id: *(Optional)* Frame id to get the resource for. Mandatory for frame targets, and should be omitted for worker targets. - :param url: URL of the resource to get content for. - :param options: Options for the request. - :returns: - ''' - session = get_session_context('network.load_network_resource') - return await session.execute(cdp.network.load_network_resource(url, options, frame_id)) - - async def replay_xhr( request_id: RequestId ) -> None: @@ -444,34 +350,6 @@ async def search_in_response_body( return await session.execute(cdp.network.search_in_response_body(request_id, query, case_sensitive, is_regex)) -async def set_accepted_encodings( - encodings: typing.List[ContentEncoding] - ) -> None: - r''' - Sets a list of content encodings that will be accepted. Empty list means no encoding is accepted. - - **EXPERIMENTAL** - - :param encodings: List of accepted content encodings. - ''' - session = get_session_context('network.set_accepted_encodings') - return await session.execute(cdp.network.set_accepted_encodings(encodings)) - - -async def set_attach_debug_stack( - enabled: bool - ) -> None: - r''' - Specifies whether to attach a page script stack id in requests - - **EXPERIMENTAL** - - :param enabled: Whether to attach a page script stack for debugging purpose. - ''' - session = get_session_context('network.set_attach_debug_stack') - return await session.execute(cdp.network.set_attach_debug_stack(enabled)) - - async def set_blocked_ur_ls( urls: typing.List[str] ) -> None: @@ -521,34 +399,24 @@ async def set_cookie( secure: typing.Optional[bool] = None, http_only: typing.Optional[bool] = None, same_site: typing.Optional[CookieSameSite] = None, - expires: typing.Optional[TimeSinceEpoch] = None, - priority: typing.Optional[CookiePriority] = None, - same_party: typing.Optional[bool] = None, - source_scheme: typing.Optional[CookieSourceScheme] = None, - source_port: typing.Optional[int] = None, - partition_key: typing.Optional[str] = None + expires: typing.Optional[TimeSinceEpoch] = None ) -> bool: r''' Sets a cookie with the given cookie data; may overwrite equivalent cookies if they exist. :param name: Cookie name. :param value: Cookie value. - :param url: *(Optional)* The request-URI to associate with the setting of the cookie. This value can affect the default domain, path, source port, and source scheme values of the created cookie. + :param url: *(Optional)* The request-URI to associate with the setting of the cookie. This value can affect the default domain and path values of the created cookie. :param domain: *(Optional)* Cookie domain. :param path: *(Optional)* Cookie path. :param secure: *(Optional)* True if cookie is secure. :param http_only: *(Optional)* True if cookie is http-only. :param same_site: *(Optional)* Cookie SameSite type. :param expires: *(Optional)* Cookie expiration date, session cookie if not set - :param priority: **(EXPERIMENTAL)** *(Optional)* Cookie Priority type. - :param same_party: **(EXPERIMENTAL)** *(Optional)* True if cookie is SameParty. - :param source_scheme: **(EXPERIMENTAL)** *(Optional)* Cookie source scheme type. - :param source_port: **(EXPERIMENTAL)** *(Optional)* Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. This is a temporary ability and it will be removed in the future. - :param partition_key: **(EXPERIMENTAL)** *(Optional)* Cookie partition key. The site of the top-level URL the browser was visiting at the start of the request to the endpoint that set the cookie. If not set, the cookie will be set as not partitioned. - :returns: Always set to true. If an error occurs, the response indicates protocol error. + :returns: True if successfully set cookie. ''' session = get_session_context('network.set_cookie') - return await session.execute(cdp.network.set_cookie(name, value, url, domain, path, secure, http_only, same_site, expires, priority, same_party, source_scheme, source_port, partition_key)) + return await session.execute(cdp.network.set_cookie(name, value, url, domain, path, secure, http_only, same_site, expires)) async def set_cookies( @@ -563,6 +431,22 @@ async def set_cookies( return await session.execute(cdp.network.set_cookies(cookies)) +async def set_data_size_limits_for_test( + max_total_size: int, + max_resource_size: int + ) -> None: + r''' + For testing. + + **EXPERIMENTAL** + + :param max_total_size: Maximum total buffer size. + :param max_resource_size: Maximum per-resource size. + ''' + session = get_session_context('network.set_data_size_limits_for_test') + return await session.execute(cdp.network.set_data_size_limits_for_test(max_total_size, max_resource_size)) + + async def set_extra_http_headers( headers: Headers ) -> None: @@ -597,8 +481,7 @@ async def set_request_interception( async def set_user_agent_override( user_agent: str, accept_language: typing.Optional[str] = None, - platform: typing.Optional[str] = None, - user_agent_metadata: typing.Optional[cdp.emulation.UserAgentMetadata] = None + platform: typing.Optional[str] = None ) -> None: r''' Allows overriding user agent with the given string. @@ -606,10 +489,9 @@ async def set_user_agent_override( :param user_agent: User agent to use. :param accept_language: *(Optional)* Browser langugage to emulate. :param platform: *(Optional)* The platform navigator.platform should return. - :param user_agent_metadata: **(EXPERIMENTAL)** *(Optional)* To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData ''' session = get_session_context('network.set_user_agent_override') - return await session.execute(cdp.network.set_user_agent_override(user_agent, accept_language, platform, user_agent_metadata)) + return await session.execute(cdp.network.set_user_agent_override(user_agent, accept_language, platform)) async def take_response_body_for_interception_as_stream( diff --git a/trio_cdp/generated/overlay.py b/trio_cdp/generated/overlay.py index a781349..3173bf2 100644 --- a/trio_cdp/generated/overlay.py +++ b/trio_cdp/generated/overlay.py @@ -10,29 +10,12 @@ import cdp.overlay from cdp.overlay import ( - BoxStyle, - ColorFormat, - ContainerQueryContainerHighlightConfig, - ContainerQueryHighlightConfig, - ContrastAlgorithm, - FlexContainerHighlightConfig, - FlexItemHighlightConfig, - FlexNodeHighlightConfig, - GridHighlightConfig, - GridNodeHighlightConfig, HighlightConfig, - HingeConfig, InspectMode, InspectModeCanceled, InspectNodeRequested, - IsolatedElementHighlightConfig, - IsolationModeHighlightConfig, - LineStyle, NodeHighlightRequested, - ScreenshotRequested, - ScrollSnapContainerHighlightConfig, - ScrollSnapHighlightConfig, - SourceOrderConfig + ScreenshotRequested ) @@ -52,25 +35,10 @@ async def enable() -> None: return await session.execute(cdp.overlay.enable()) -async def get_grid_highlight_objects_for_test( - node_ids: typing.List[cdp.dom.NodeId] - ) -> dict: - r''' - For Persistent Grid testing. - - :param node_ids: Ids of the node to get highlight object for. - :returns: Grid Highlight data for the node ids provided. - ''' - session = get_session_context('overlay.get_grid_highlight_objects_for_test') - return await session.execute(cdp.overlay.get_grid_highlight_objects_for_test(node_ids)) - - async def get_highlight_object_for_test( node_id: cdp.dom.NodeId, include_distance: typing.Optional[bool] = None, - include_style: typing.Optional[bool] = None, - color_format: typing.Optional[ColorFormat] = None, - show_accessibility_info: typing.Optional[bool] = None + include_style: typing.Optional[bool] = None ) -> dict: r''' For testing. @@ -78,25 +46,10 @@ async def get_highlight_object_for_test( :param node_id: Id of the node to get highlight object for. :param include_distance: *(Optional)* Whether to include distance info. :param include_style: *(Optional)* Whether to include style info. - :param color_format: *(Optional)* The color format to get config with (default: hex). - :param show_accessibility_info: *(Optional)* Whether to show accessibility info (default: true). :returns: Highlight data for the node. ''' session = get_session_context('overlay.get_highlight_object_for_test') - return await session.execute(cdp.overlay.get_highlight_object_for_test(node_id, include_distance, include_style, color_format, show_accessibility_info)) - - -async def get_source_order_highlight_object_for_test( - node_id: cdp.dom.NodeId - ) -> dict: - r''' - For Source Order Viewer testing. - - :param node_id: Id of the node to highlight. - :returns: Source order highlight data for the node id provided. - ''' - session = get_session_context('overlay.get_source_order_highlight_object_for_test') - return await session.execute(cdp.overlay.get_source_order_highlight_object_for_test(node_id)) + return await session.execute(cdp.overlay.get_highlight_object_for_test(node_id, include_distance, include_style)) async def hide_highlight() -> None: @@ -113,19 +66,12 @@ async def highlight_frame( content_outline_color: typing.Optional[cdp.dom.RGBA] = None ) -> None: r''' -Highlights owner element of the frame with given id. -Deprecated: Doesn't work reliablity and cannot be fixed due to process -separatation (the owner node might be in a different process). Determine -the owner node in the client and use highlightNode. - -.. deprecated:: 1.3 + Highlights owner element of the frame with given id. -:param frame_id: Identifier of the frame to highlight. -:param content_color: *(Optional)* The content box highlight fill color (default: transparent). -:param content_outline_color: *(Optional)* The content box highlight outline color (default: transparent). - -.. deprecated:: 1.3 -''' + :param frame_id: Identifier of the frame to highlight. + :param content_color: *(Optional)* The content box highlight fill color (default: transparent). + :param content_outline_color: *(Optional)* The content box highlight outline color (default: transparent). + ''' session = get_session_context('overlay.highlight_frame') return await session.execute(cdp.overlay.highlight_frame(frame_id, content_color, content_outline_color)) @@ -189,25 +135,6 @@ async def highlight_rect( return await session.execute(cdp.overlay.highlight_rect(x, y, width, height, color, outline_color)) -async def highlight_source_order( - source_order_config: SourceOrderConfig, - node_id: typing.Optional[cdp.dom.NodeId] = None, - backend_node_id: typing.Optional[cdp.dom.BackendNodeId] = None, - object_id: typing.Optional[cdp.runtime.RemoteObjectId] = None - ) -> None: - r''' - Highlights the source order of the children of the DOM node with given id or with the given - JavaScript object wrapper. Either nodeId or objectId must be specified. - - :param source_order_config: A descriptor for the appearance of the overlay drawing. - :param node_id: *(Optional)* Identifier of the node to highlight. - :param backend_node_id: *(Optional)* Identifier of the backend node to highlight. - :param object_id: *(Optional)* JavaScript object id of the node to be highlighted. - ''' - session = get_session_context('overlay.highlight_source_order') - return await session.execute(cdp.overlay.highlight_source_order(source_order_config, node_id, backend_node_id, object_id)) - - async def set_inspect_mode( mode: InspectMode, highlight_config: typing.Optional[HighlightConfig] = None @@ -245,16 +172,6 @@ async def set_show_ad_highlights( return await session.execute(cdp.overlay.set_show_ad_highlights(show)) -async def set_show_container_query_overlays( - container_query_highlight_configs: typing.List[ContainerQueryHighlightConfig] - ) -> None: - r''' - :param container_query_highlight_configs: An array of node identifiers and descriptors for the highlight appearance. - ''' - session = get_session_context('overlay.set_show_container_query_overlays') - return await session.execute(cdp.overlay.set_show_container_query_overlays(container_query_highlight_configs)) - - async def set_show_debug_borders( show: bool ) -> None: @@ -267,16 +184,6 @@ async def set_show_debug_borders( return await session.execute(cdp.overlay.set_show_debug_borders(show)) -async def set_show_flex_overlays( - flex_node_highlight_configs: typing.List[FlexNodeHighlightConfig] - ) -> None: - r''' - :param flex_node_highlight_configs: An array of node identifiers and descriptors for the highlight appearance. - ''' - session = get_session_context('overlay.set_show_flex_overlays') - return await session.execute(cdp.overlay.set_show_flex_overlays(flex_node_highlight_configs)) - - async def set_show_fps_counter( show: bool ) -> None: @@ -289,30 +196,6 @@ async def set_show_fps_counter( return await session.execute(cdp.overlay.set_show_fps_counter(show)) -async def set_show_grid_overlays( - grid_node_highlight_configs: typing.List[GridNodeHighlightConfig] - ) -> None: - r''' - Highlight multiple elements with the CSS Grid overlay. - - :param grid_node_highlight_configs: An array of node identifiers and descriptors for the highlight appearance. - ''' - session = get_session_context('overlay.set_show_grid_overlays') - return await session.execute(cdp.overlay.set_show_grid_overlays(grid_node_highlight_configs)) - - -async def set_show_hinge( - hinge_config: typing.Optional[HingeConfig] = None - ) -> None: - r''' - Add a dual screen device hinge - - :param hinge_config: *(Optional)* hinge data, null means hideHinge - ''' - session = get_session_context('overlay.set_show_hinge') - return await session.execute(cdp.overlay.set_show_hinge(hinge_config)) - - async def set_show_hit_test_borders( show: bool ) -> None: @@ -325,18 +208,6 @@ async def set_show_hit_test_borders( return await session.execute(cdp.overlay.set_show_hit_test_borders(show)) -async def set_show_isolated_elements( - isolated_element_highlight_configs: typing.List[IsolatedElementHighlightConfig] - ) -> None: - r''' - Show elements in isolation mode with overlays. - - :param isolated_element_highlight_configs: An array of node identifiers and descriptors for the highlight appearance. - ''' - session = get_session_context('overlay.set_show_isolated_elements') - return await session.execute(cdp.overlay.set_show_isolated_elements(isolated_element_highlight_configs)) - - async def set_show_layout_shift_regions( result: bool ) -> None: @@ -373,16 +244,6 @@ async def set_show_scroll_bottleneck_rects( return await session.execute(cdp.overlay.set_show_scroll_bottleneck_rects(show)) -async def set_show_scroll_snap_overlays( - scroll_snap_highlight_configs: typing.List[ScrollSnapHighlightConfig] - ) -> None: - r''' - :param scroll_snap_highlight_configs: An array of node identifiers and descriptors for the highlight appearance. - ''' - session = get_session_context('overlay.set_show_scroll_snap_overlays') - return await session.execute(cdp.overlay.set_show_scroll_snap_overlays(scroll_snap_highlight_configs)) - - async def set_show_viewport_size_on_resize( show: bool ) -> None: @@ -393,15 +254,3 @@ async def set_show_viewport_size_on_resize( ''' session = get_session_context('overlay.set_show_viewport_size_on_resize') return await session.execute(cdp.overlay.set_show_viewport_size_on_resize(show)) - - -async def set_show_web_vitals( - show: bool - ) -> None: - r''' - Request that backend shows an overlay with web vital metrics. - - :param show: - ''' - session = get_session_context('overlay.set_show_web_vitals') - return await session.execute(cdp.overlay.set_show_web_vitals(show)) diff --git a/trio_cdp/generated/page.py b/trio_cdp/generated/page.py index fbf8880..2f078ac 100644 --- a/trio_cdp/generated/page.py +++ b/trio_cdp/generated/page.py @@ -10,25 +10,11 @@ import cdp.page from cdp.page import ( - AdFrameExplanation, - AdFrameStatus, - AdFrameType, AppManifestError, - AppManifestParsedProperties, - BackForwardCacheNotRestoredExplanation, - BackForwardCacheNotRestoredExplanationTree, - BackForwardCacheNotRestoredReason, - BackForwardCacheNotRestoredReasonType, - BackForwardCacheNotUsed, - ClientNavigationDisposition, ClientNavigationReason, - CompilationCacheParams, CompilationCacheProduced, - CrossOriginIsolatedContextType, DialogType, - DocumentOpened, DomContentEventFired, - DownloadProgress, DownloadWillBegin, FileChooserOpened, FontFamilies, @@ -47,9 +33,6 @@ FrameStartedLoading, FrameStoppedLoading, FrameTree, - GatedAPIFeatures, - InstallabilityError, - InstallabilityErrorArgument, InterstitialHidden, InterstitialShown, JavascriptDialogClosed, @@ -59,23 +42,10 @@ LoadEventFired, NavigatedWithinDocument, NavigationEntry, - NavigationType, - OriginTrial, - OriginTrialStatus, - OriginTrialToken, - OriginTrialTokenStatus, - OriginTrialTokenWithStatus, - OriginTrialUsageRestriction, - PermissionsPolicyBlockLocator, - PermissionsPolicyBlockReason, - PermissionsPolicyFeature, - PermissionsPolicyFeatureState, - ReferrerPolicy, ScreencastFrame, ScreencastFrameMetadata, ScreencastVisibilityChanged, ScriptIdentifier, - SecureContextType, TransitionType, Viewport, VisualViewport, @@ -94,7 +64,7 @@ async def add_compilation_cache( **EXPERIMENTAL** :param url: - :param data: Base64-encoded data (Encoded as a base64 string when passed over JSON) + :param data: Base64-encoded data ''' session = get_session_context('page.add_compilation_cache') return await session.execute(cdp.page.add_compilation_cache(url, data)) @@ -121,19 +91,17 @@ async def add_script_to_evaluate_on_load( async def add_script_to_evaluate_on_new_document( source: str, - world_name: typing.Optional[str] = None, - include_command_line_api: typing.Optional[bool] = None + world_name: typing.Optional[str] = None ) -> ScriptIdentifier: r''' Evaluates given script in every frame upon creation (before loading frame's scripts). :param source: :param world_name: **(EXPERIMENTAL)** *(Optional)* If specified, creates an isolated world with the given name and evaluates given script in it. This world name will be used as the ExecutionContextDescription::name when the corresponding event is emitted. - :param include_command_line_api: **(EXPERIMENTAL)** *(Optional)* Specifies whether command line API should be available to the script, defaults to false. :returns: Identifier of the added script. ''' session = get_session_context('page.add_script_to_evaluate_on_new_document') - return await session.execute(cdp.page.add_script_to_evaluate_on_new_document(source, world_name, include_command_line_api)) + return await session.execute(cdp.page.add_script_to_evaluate_on_new_document(source, world_name)) async def bring_to_front() -> None: @@ -148,8 +116,7 @@ async def capture_screenshot( format_: typing.Optional[str] = None, quality: typing.Optional[int] = None, clip: typing.Optional[Viewport] = None, - from_surface: typing.Optional[bool] = None, - capture_beyond_viewport: typing.Optional[bool] = None + from_surface: typing.Optional[bool] = None ) -> str: r''' Capture page screenshot. @@ -158,11 +125,10 @@ async def capture_screenshot( :param quality: *(Optional)* Compression quality from range [0..100] (jpeg only). :param clip: *(Optional)* Capture the screenshot of a given region only. :param from_surface: **(EXPERIMENTAL)** *(Optional)* Capture the screenshot from the surface, rather than the view. Defaults to true. - :param capture_beyond_viewport: **(EXPERIMENTAL)** *(Optional)* Capture the screenshot beyond the viewport. Defaults to false. - :returns: Base64-encoded image data. (Encoded as a base64 string when passed over JSON) + :returns: Base64-encoded image data. ''' session = get_session_context('page.capture_screenshot') - return await session.execute(cdp.page.capture_screenshot(format_, quality, clip, from_surface, capture_beyond_viewport)) + return await session.execute(cdp.page.capture_screenshot(format_, quality, clip, from_surface)) async def capture_snapshot( @@ -193,7 +159,7 @@ async def clear_compilation_cache() -> None: async def clear_device_metrics_override() -> None: r''' -Clears the overridden device metrics. +Clears the overriden device metrics. .. deprecated:: 1.3 @@ -221,7 +187,7 @@ async def clear_device_orientation_override() -> None: async def clear_geolocation_override() -> None: r''' -Clears the overridden Geolocation Position and Error. +Clears the overriden Geolocation Position and Error. .. deprecated:: 1.3 @@ -320,23 +286,7 @@ async def generate_test_report( return await session.execute(cdp.page.generate_test_report(message, group)) -async def get_app_id() -> typing.Tuple[typing.Optional[str], typing.Optional[str]]: - r''' - Returns the unique (PWA) app id. - Only returns values if the feature flag 'WebAppEnableManifestId' is enabled - - **EXPERIMENTAL** - - :returns: A tuple with the following items: - - 0. **appId** - *(Optional)* App id, either from manifest's id attribute or computed from start_url - 1. **recommendedId** - *(Optional)* Recommendation for manifest's id attribute to match current id computed from start_url - ''' - session = get_session_context('page.get_app_id') - return await session.execute(cdp.page.get_app_id()) - - -async def get_app_manifest() -> typing.Tuple[str, typing.List[AppManifestError], typing.Optional[str], typing.Optional[AppManifestParsedProperties]]: +async def get_app_manifest() -> typing.Tuple[str, typing.List[AppManifestError], typing.Optional[str]]: r''' @@ -345,7 +295,6 @@ async def get_app_manifest() -> typing.Tuple[str, typing.List[AppManifestError], 0. **url** - Manifest location. 1. **errors** - 2. **data** - *(Optional)* Manifest content. - 3. **parsed** - *(Optional)* Parsed manifest properties ''' session = get_session_context('page.get_app_manifest') return await session.execute(cdp.page.get_app_manifest()) @@ -378,7 +327,7 @@ async def get_frame_tree() -> FrameTree: return await session.execute(cdp.page.get_frame_tree()) -async def get_installability_errors() -> typing.List[InstallabilityError]: +async def get_installability_errors() -> typing.List[str]: r''' @@ -390,35 +339,20 @@ async def get_installability_errors() -> typing.List[InstallabilityError]: return await session.execute(cdp.page.get_installability_errors()) -async def get_layout_metrics() -> typing.Tuple[LayoutViewport, VisualViewport, cdp.dom.Rect, LayoutViewport, VisualViewport, cdp.dom.Rect]: +async def get_layout_metrics() -> typing.Tuple[LayoutViewport, VisualViewport, cdp.dom.Rect]: r''' Returns metrics relating to the layouting of the page, such as viewport bounds/scale. :returns: A tuple with the following items: - 0. **layoutViewport** - Deprecated metrics relating to the layout viewport. Can be in DP or in CSS pixels depending on the ``enable-use-zoom-for-dsf`` flag. Use ``cssLayoutViewport`` instead. - 1. **visualViewport** - Deprecated metrics relating to the visual viewport. Can be in DP or in CSS pixels depending on the ``enable-use-zoom-for-dsf`` flag. Use ``cssVisualViewport`` instead. - 2. **contentSize** - Deprecated size of scrollable area. Can be in DP or in CSS pixels depending on the ``enable-use-zoom-for-dsf`` flag. Use ``cssContentSize`` instead. - 3. **cssLayoutViewport** - Metrics relating to the layout viewport in CSS pixels. - 4. **cssVisualViewport** - Metrics relating to the visual viewport in CSS pixels. - 5. **cssContentSize** - Size of scrollable area in CSS pixels. + 0. **layoutViewport** - Metrics relating to the layout viewport. + 1. **visualViewport** - Metrics relating to the visual viewport. + 2. **contentSize** - Size of scrollable area. ''' session = get_session_context('page.get_layout_metrics') return await session.execute(cdp.page.get_layout_metrics()) -async def get_manifest_icons() -> typing.Optional[str]: - r''' - - - **EXPERIMENTAL** - - :returns: - ''' - session = get_session_context('page.get_manifest_icons') - return await session.execute(cdp.page.get_manifest_icons()) - - async def get_navigation_history() -> typing.Tuple[int, typing.List[NavigationEntry]]: r''' Returns navigation history for the current page. @@ -432,36 +366,6 @@ async def get_navigation_history() -> typing.Tuple[int, typing.List[NavigationEn return await session.execute(cdp.page.get_navigation_history()) -async def get_origin_trials( - frame_id: FrameId - ) -> typing.List[OriginTrial]: - r''' - Get Origin Trials on given frame. - - **EXPERIMENTAL** - - :param frame_id: - :returns: - ''' - session = get_session_context('page.get_origin_trials') - return await session.execute(cdp.page.get_origin_trials(frame_id)) - - -async def get_permissions_policy_state( - frame_id: FrameId - ) -> typing.List[PermissionsPolicyFeatureState]: - r''' - Get Permissions Policy state on given frame. - - **EXPERIMENTAL** - - :param frame_id: - :returns: - ''' - session = get_session_context('page.get_permissions_policy_state') - return await session.execute(cdp.page.get_permissions_policy_state(frame_id)) - - async def get_resource_content( frame_id: FrameId, url: str @@ -494,6 +398,22 @@ async def get_resource_tree() -> FrameResourceTree: return await session.execute(cdp.page.get_resource_tree()) +async def handle_file_chooser( + action: str, + files: typing.Optional[typing.List[str]] = None + ) -> None: + r''' + Accepts or cancels an intercepted file chooser dialog. + + **EXPERIMENTAL** + + :param action: + :param files: *(Optional)* Array of absolute file paths to set, only respected with ```accept``` action. + ''' + session = get_session_context('page.handle_file_chooser') + return await session.execute(cdp.page.handle_file_chooser(action, files)) + + async def handle_java_script_dialog( accept: bool, prompt_text: typing.Optional[str] = None @@ -512,8 +432,7 @@ async def navigate( url: str, referrer: typing.Optional[str] = None, transition_type: typing.Optional[TransitionType] = None, - frame_id: typing.Optional[FrameId] = None, - referrer_policy: typing.Optional[ReferrerPolicy] = None + frame_id: typing.Optional[FrameId] = None ) -> typing.Tuple[FrameId, typing.Optional[cdp.network.LoaderId], typing.Optional[str]]: r''' Navigates current page to the given URL. @@ -522,7 +441,6 @@ async def navigate( :param referrer: *(Optional)* Referrer URL. :param transition_type: *(Optional)* Intended transition type. :param frame_id: *(Optional)* Frame id to navigate, if not specified navigates the top frame. - :param referrer_policy: **(EXPERIMENTAL)** *(Optional)* Referrer-policy used for the navigation. :returns: A tuple with the following items: 0. **frameId** - Frame id that has navigated (or failed to navigate) @@ -530,7 +448,7 @@ async def navigate( 2. **errorText** - *(Optional)* User friendly error message, present if and only if navigation has failed. ''' session = get_session_context('page.navigate') - return await session.execute(cdp.page.navigate(url, referrer, transition_type, frame_id, referrer_policy)) + return await session.execute(cdp.page.navigate(url, referrer, transition_type, frame_id)) async def navigate_to_history_entry( @@ -584,32 +502,13 @@ async def print_to_pdf( :param transfer_mode: **(EXPERIMENTAL)** *(Optional)* return as stream :returns: A tuple with the following items: - 0. **data** - Base64-encoded pdf data. Empty if `` returnAsStream` is specified. (Encoded as a base64 string when passed over JSON) + 0. **data** - Base64-encoded pdf data. Empty if `` returnAsStream` is specified. 1. **stream** - *(Optional)* A handle of the stream that holds resulting PDF data. ''' session = get_session_context('page.print_to_pdf') return await session.execute(cdp.page.print_to_pdf(landscape, display_header_footer, print_background, scale, paper_width, paper_height, margin_top, margin_bottom, margin_left, margin_right, page_ranges, ignore_invalid_page_ranges, header_template, footer_template, prefer_css_page_size, transfer_mode)) -async def produce_compilation_cache( - scripts: typing.List[CompilationCacheParams] - ) -> None: - r''' - Requests backend to produce compilation cache for the specified scripts. - ``scripts`` are appeneded to the list of scripts for which the cache - would be produced. The list may be reset during page navigation. - When script with a matching URL is encountered, the cache is optionally - produced upon backend discretion, based on internal heuristics. - See also: ``Page.compilationCacheProduced``. - - **EXPERIMENTAL** - - :param scripts: - ''' - session = get_session_context('page.produce_compilation_cache') - return await session.execute(cdp.page.produce_compilation_cache(scripts)) - - async def reload( ignore_cache: typing.Optional[bool] = None, script_to_evaluate_on_load: typing.Optional[str] = None @@ -810,17 +709,13 @@ async def set_download_behavior( download_path: typing.Optional[str] = None ) -> None: r''' -Set the behavior when downloading a file. - -.. deprecated:: 1.3 + Set the behavior when downloading a file. -**EXPERIMENTAL** - -:param behavior: Whether to allow all or deny all download requests, or use default Chrome behavior if available (otherwise deny). -:param download_path: *(Optional)* The default path to save downloaded files to. This is required if behavior is set to 'allow' + **EXPERIMENTAL** -.. deprecated:: 1.3 -''' + :param behavior: Whether to allow all or deny all download requests, or use default Chrome behavior if available (otherwise deny). + :param download_path: *(Optional)* The default path to save downloaded files to. This is requred if behavior is set to 'allow' + ''' session = get_session_context('page.set_download_behavior') return await session.execute(cdp.page.set_download_behavior(behavior, download_path)) @@ -881,6 +776,7 @@ async def set_intercept_file_chooser_dialog( Intercept file chooser requests and transfer control to protocol clients. When file chooser interception is enabled, native file chooser dialog is not shown. Instead, a protocol event ``Page.fileChooserOpened`` is emitted. + File chooser can be handled with ``page.handleFileChooser`` command. **EXPERIMENTAL** @@ -904,19 +800,18 @@ async def set_lifecycle_events_enabled( return await session.execute(cdp.page.set_lifecycle_events_enabled(enabled)) -async def set_spc_transaction_mode( - mode: str +async def set_produce_compilation_cache( + enabled: bool ) -> None: r''' - Sets the Secure Payment Confirmation transaction mode. - https://w3c.github.io/secure-payment-confirmation/#sctn-automation-set-spc-transaction-mode + Forces compilation cache to be generated for every subresource script. **EXPERIMENTAL** - :param mode: + :param enabled: ''' - session = get_session_context('page.set_spc_transaction_mode') - return await session.execute(cdp.page.set_spc_transaction_mode(mode)) + session = get_session_context('page.set_produce_compilation_cache') + return await session.execute(cdp.page.set_produce_compilation_cache(enabled)) async def set_touch_emulation_enabled( diff --git a/trio_cdp/generated/performance.py b/trio_cdp/generated/performance.py index 6284beb..f647ff1 100644 --- a/trio_cdp/generated/performance.py +++ b/trio_cdp/generated/performance.py @@ -23,16 +23,12 @@ async def disable() -> None: return await session.execute(cdp.performance.disable()) -async def enable( - time_domain: typing.Optional[str] = None - ) -> None: +async def enable() -> None: r''' Enable collecting and reporting metrics. - - :param time_domain: *(Optional)* Time domain to use for collecting and reporting duration metrics. ''' session = get_session_context('performance.enable') - return await session.execute(cdp.performance.enable(time_domain)) + return await session.execute(cdp.performance.enable()) async def get_metrics() -> typing.List[Metric]: @@ -49,17 +45,13 @@ async def set_time_domain( time_domain: str ) -> None: r''' -Sets time domain to use for collecting and reporting duration metrics. -Note that this must be called before enabling metrics collection. Calling -this method while metrics collection is enabled returns an error. - -.. deprecated:: 1.3 + Sets time domain to use for collecting and reporting duration metrics. + Note that this must be called before enabling metrics collection. Calling + this method while metrics collection is enabled returns an error. -**EXPERIMENTAL** + **EXPERIMENTAL** -:param time_domain: Time domain - -.. deprecated:: 1.3 -''' + :param time_domain: Time domain + ''' session = get_session_context('performance.set_time_domain') return await session.execute(cdp.performance.set_time_domain(time_domain)) diff --git a/trio_cdp/generated/performance_timeline.py b/trio_cdp/generated/performance_timeline.py deleted file mode 100644 index 8288632..0000000 --- a/trio_cdp/generated/performance_timeline.py +++ /dev/null @@ -1,31 +0,0 @@ -# DO NOT EDIT THIS FILE! -# -# This code is generated off of PyCDP modules. If you need to make -# changes, edit the generator and regenerate all of the modules. - -from __future__ import annotations -import typing - -from ..context import get_connection_context, get_session_context - -import cdp.performance_timeline -from cdp.performance_timeline import ( - LargestContentfulPaint, - LayoutShift, - LayoutShiftAttribution, - TimelineEvent, - TimelineEventAdded -) - - -async def enable( - event_types: typing.List[str] - ) -> None: - r''' - Previously buffered events would be reported before method returns. - See also: timelineEventAdded - - :param event_types: The types of event to report, as specified in https://w3c.github.io/performance-timeline/#dom-performanceentry-entrytype The specified filter overrides any previous filters, passing empty filter disables recording. Note that not all types exposed to the web platform are currently supported. - ''' - session = get_session_context('performance_timeline.enable') - return await session.execute(cdp.performance_timeline.enable(event_types)) diff --git a/trio_cdp/generated/profiler.py b/trio_cdp/generated/profiler.py index e38c863..4822602 100644 --- a/trio_cdp/generated/profiler.py +++ b/trio_cdp/generated/profiler.py @@ -15,7 +15,6 @@ CoverageRange, FunctionCoverage, PositionTickInfo, - PreciseCoverageDeltaUpdate, Profile, ProfileNode, ScriptCoverage, @@ -65,9 +64,8 @@ async def start() -> None: async def start_precise_coverage( call_count: typing.Optional[bool] = None, - detailed: typing.Optional[bool] = None, - allow_triggered_updates: typing.Optional[bool] = None - ) -> float: + detailed: typing.Optional[bool] = None + ) -> None: r''' Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution @@ -75,11 +73,9 @@ async def start_precise_coverage( :param call_count: *(Optional)* Collect accurate call counts beyond simple 'covered' or 'not covered'. :param detailed: *(Optional)* Collect block-based coverage. - :param allow_triggered_updates: *(Optional)* Allow the backend to send updates on its own initiative - :returns: Monotonically increasing time (in seconds) when the coverage update was taken in the backend. ''' session = get_session_context('profiler.start_precise_coverage') - return await session.execute(cdp.profiler.start_precise_coverage(call_count, detailed, allow_triggered_updates)) + return await session.execute(cdp.profiler.start_precise_coverage(call_count, detailed)) async def start_type_profile() -> None: @@ -121,15 +117,12 @@ async def stop_type_profile() -> None: return await session.execute(cdp.profiler.stop_type_profile()) -async def take_precise_coverage() -> typing.Tuple[typing.List[ScriptCoverage], float]: +async def take_precise_coverage() -> typing.List[ScriptCoverage]: r''' Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started. - :returns: A tuple with the following items: - - 0. **result** - Coverage data for the current isolate. - 1. **timestamp** - Monotonically increasing time (in seconds) when the coverage update was taken in the backend. + :returns: Coverage data for the current isolate. ''' session = get_session_context('profiler.take_precise_coverage') return await session.execute(cdp.profiler.take_precise_coverage()) diff --git a/trio_cdp/generated/runtime.py b/trio_cdp/generated/runtime.py index ecf0422..f1eeb50 100644 --- a/trio_cdp/generated/runtime.py +++ b/trio_cdp/generated/runtime.py @@ -44,13 +44,14 @@ async def add_binding( name: str, - execution_context_id: typing.Optional[ExecutionContextId] = None, - execution_context_name: typing.Optional[str] = None + execution_context_id: typing.Optional[ExecutionContextId] = None ) -> None: r''' If executionContextId is empty, adds binding with the given name on the global objects of all inspected contexts, including those created later, bindings survive reloads. + If executionContextId is specified, adds binding only on global object of + given execution context. Binding function takes exactly one argument, this argument should be string, in case of any other input, function throws an exception. Each binding function call produces Runtime.bindingCalled notification. @@ -58,11 +59,10 @@ async def add_binding( **EXPERIMENTAL** :param name: - :param execution_context_id: **(DEPRECATED)** *(Optional)* If specified, the binding would only be exposed to the specified execution context. If omitted and ```executionContextName```` is not set, the binding is exposed to all execution contexts of the target. This parameter is mutually exclusive with ````executionContextName````. Deprecated in favor of ````executionContextName```` due to an unclear use case and bugs in implementation (crbug.com/1169639). ````executionContextId```` will be removed in the future. - :param execution_context_name: **(EXPERIMENTAL)** *(Optional)* If specified, the binding is exposed to the executionContext with matching name, even for contexts created after the binding is added. See also ````ExecutionContext.name```` and ````worldName```` parameter to ````Page.addScriptToEvaluateOnNewDocument````. This parameter is mutually exclusive with ````executionContextId```. + :param execution_context_id: *(Optional)* ''' session = get_session_context('runtime.add_binding') - return await session.execute(cdp.runtime.add_binding(name, execution_context_id, execution_context_name)) + return await session.execute(cdp.runtime.add_binding(name, execution_context_id)) async def await_promise( @@ -95,8 +95,7 @@ async def call_function_on( user_gesture: typing.Optional[bool] = None, await_promise: typing.Optional[bool] = None, execution_context_id: typing.Optional[ExecutionContextId] = None, - object_group: typing.Optional[str] = None, - throw_on_side_effect: typing.Optional[bool] = None + object_group: typing.Optional[str] = None ) -> typing.Tuple[RemoteObject, typing.Optional[ExceptionDetails]]: r''' Calls function with given declaration on the given object. Object group of the result is @@ -112,14 +111,13 @@ async def call_function_on( :param await_promise: *(Optional)* Whether execution should ````await``` for resulting value and return once awaited promise is resolved. :param execution_context_id: *(Optional)* Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified. :param object_group: *(Optional)* Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object. - :param throw_on_side_effect: **(EXPERIMENTAL)** *(Optional)* Whether to throw an exception if side effect cannot be ruled out during evaluation. :returns: A tuple with the following items: 0. **result** - Call result. 1. **exceptionDetails** - *(Optional)* Exception details. ''' session = get_session_context('runtime.call_function_on') - return await session.execute(cdp.runtime.call_function_on(function_declaration, object_id, arguments, silent, return_by_value, generate_preview, user_gesture, await_promise, execution_context_id, object_group, throw_on_side_effect)) + return await session.execute(cdp.runtime.call_function_on(function_declaration, object_id, arguments, silent, return_by_value, generate_preview, user_gesture, await_promise, execution_context_id, object_group)) async def compile_script( @@ -181,11 +179,7 @@ async def evaluate( user_gesture: typing.Optional[bool] = None, await_promise: typing.Optional[bool] = None, throw_on_side_effect: typing.Optional[bool] = None, - timeout: typing.Optional[TimeDelta] = None, - disable_breaks: typing.Optional[bool] = None, - repl_mode: typing.Optional[bool] = None, - allow_unsafe_eval_blocked_by_csp: typing.Optional[bool] = None, - unique_context_id: typing.Optional[str] = None + timeout: typing.Optional[TimeDelta] = None ) -> typing.Tuple[RemoteObject, typing.Optional[ExceptionDetails]]: r''' Evaluates expression on global object. @@ -194,24 +188,20 @@ async def evaluate( :param object_group: *(Optional)* Symbolic group name that can be used to release multiple objects. :param include_command_line_api: *(Optional)* Determines whether Command Line API should be available during the evaluation. :param silent: *(Optional)* In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides ```setPauseOnException```` state. - :param context_id: *(Optional)* Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page. This is mutually exclusive with ````uniqueContextId````, which offers an alternative way to identify the execution context that is more reliable in a multi-process environment. + :param context_id: *(Optional)* Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page. :param return_by_value: *(Optional)* Whether the result is expected to be a JSON object that should be sent by value. :param generate_preview: **(EXPERIMENTAL)** *(Optional)* Whether preview should be generated for the result. :param user_gesture: *(Optional)* Whether execution should be treated as initiated by user in the UI. - :param await_promise: *(Optional)* Whether execution should ````await```` for resulting value and return once awaited promise is resolved. - :param throw_on_side_effect: **(EXPERIMENTAL)** *(Optional)* Whether to throw an exception if side effect cannot be ruled out during evaluation. This implies ````disableBreaks```` below. + :param await_promise: *(Optional)* Whether execution should ````await``` for resulting value and return once awaited promise is resolved. + :param throw_on_side_effect: **(EXPERIMENTAL)** *(Optional)* Whether to throw an exception if side effect cannot be ruled out during evaluation. :param timeout: **(EXPERIMENTAL)** *(Optional)* Terminate execution after timing out (number of milliseconds). - :param disable_breaks: **(EXPERIMENTAL)** *(Optional)* Disable breakpoints during execution. - :param repl_mode: **(EXPERIMENTAL)** *(Optional)* Setting this flag to true enables ````let```` re-declaration and top-level ````await````. Note that ````let```` variables can only be re-declared if they originate from ````replMode```` themselves. - :param allow_unsafe_eval_blocked_by_csp: **(EXPERIMENTAL)** *(Optional)* The Content Security Policy (CSP) for the target might block 'unsafe-eval' which includes eval(), Function(), setTimeout() and setInterval() when called with non-callable arguments. This flag bypasses CSP for this evaluation and allows unsafe-eval. Defaults to true. - :param unique_context_id: **(EXPERIMENTAL)** *(Optional)* An alternative way to specify the execution context to evaluate in. Compared to contextId that may be reused across processes, this is guaranteed to be system-unique, so it can be used to prevent accidental evaluation of the expression in context different than intended (e.g. as a result of navigation across process boundaries). This is mutually exclusive with ````contextId```. :returns: A tuple with the following items: 0. **result** - Evaluation result. 1. **exceptionDetails** - *(Optional)* Exception details. ''' session = get_session_context('runtime.evaluate') - return await session.execute(cdp.runtime.evaluate(expression, object_group, include_command_line_api, silent, context_id, return_by_value, generate_preview, user_gesture, await_promise, throw_on_side_effect, timeout, disable_breaks, repl_mode, allow_unsafe_eval_blocked_by_csp, unique_context_id)) + return await session.execute(cdp.runtime.evaluate(expression, object_group, include_command_line_api, silent, context_id, return_by_value, generate_preview, user_gesture, await_promise, throw_on_side_effect, timeout)) async def get_heap_usage() -> typing.Tuple[float, float]: @@ -246,8 +236,7 @@ async def get_properties( object_id: RemoteObjectId, own_properties: typing.Optional[bool] = None, accessor_properties_only: typing.Optional[bool] = None, - generate_preview: typing.Optional[bool] = None, - non_indexed_properties_only: typing.Optional[bool] = None + generate_preview: typing.Optional[bool] = None ) -> typing.Tuple[typing.List[PropertyDescriptor], typing.Optional[typing.List[InternalPropertyDescriptor]], typing.Optional[typing.List[PrivatePropertyDescriptor]], typing.Optional[ExceptionDetails]]: r''' Returns properties of a given object. Object group of the result is inherited from the target @@ -257,7 +246,6 @@ async def get_properties( :param own_properties: *(Optional)* If true, returns properties belonging only to the element itself, not to its prototype chain. :param accessor_properties_only: **(EXPERIMENTAL)** *(Optional)* If true, returns accessor properties (with getter/setter) only; internal properties are not returned either. :param generate_preview: **(EXPERIMENTAL)** *(Optional)* Whether preview should be generated for the results. - :param non_indexed_properties_only: **(EXPERIMENTAL)** *(Optional)* If true, returns non-indexed properties only. :returns: A tuple with the following items: 0. **result** - Object properties. @@ -266,7 +254,7 @@ async def get_properties( 3. **exceptionDetails** - *(Optional)* Exception details. ''' session = get_session_context('runtime.get_properties') - return await session.execute(cdp.runtime.get_properties(object_id, own_properties, accessor_properties_only, generate_preview, non_indexed_properties_only)) + return await session.execute(cdp.runtime.get_properties(object_id, own_properties, accessor_properties_only, generate_preview)) async def global_lexical_scope_names( diff --git a/trio_cdp/generated/security.py b/trio_cdp/generated/security.py index e2d79cf..755b60d 100644 --- a/trio_cdp/generated/security.py +++ b/trio_cdp/generated/security.py @@ -13,16 +13,11 @@ CertificateError, CertificateErrorAction, CertificateId, - CertificateSecurityState, InsecureContentStatus, MixedContentType, - SafetyTipInfo, - SafetyTipStatus, SecurityState, SecurityStateChanged, - SecurityStateExplanation, - VisibleSecurityState, - VisibleSecurityStateChanged + SecurityStateExplanation ) diff --git a/trio_cdp/generated/service_worker.py b/trio_cdp/generated/service_worker.py index d4838fd..6a550e5 100644 --- a/trio_cdp/generated/service_worker.py +++ b/trio_cdp/generated/service_worker.py @@ -41,20 +41,6 @@ async def disable() -> None: return await session.execute(cdp.service_worker.disable()) -async def dispatch_periodic_sync_event( - origin: str, - registration_id: RegistrationID, - tag: str - ) -> None: - r''' - :param origin: - :param registration_id: - :param tag: - ''' - session = get_session_context('service_worker.dispatch_periodic_sync_event') - return await session.execute(cdp.service_worker.dispatch_periodic_sync_event(origin, registration_id, tag)) - - async def dispatch_sync_event( origin: str, registration_id: RegistrationID, diff --git a/trio_cdp/generated/storage.py b/trio_cdp/generated/storage.py index 34af182..bdc55d8 100644 --- a/trio_cdp/generated/storage.py +++ b/trio_cdp/generated/storage.py @@ -15,23 +15,10 @@ IndexedDBContentUpdated, IndexedDBListUpdated, StorageType, - TrustTokens, UsageForType ) -async def clear_cookies( - browser_context_id: typing.Optional[cdp.browser.BrowserContextID] = None - ) -> None: - r''' - Clears cookies. - - :param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint. - ''' - session = get_session_context('storage.clear_cookies') - return await session.execute(cdp.storage.clear_cookies(browser_context_id)) - - async def clear_data_for_origin( origin: str, storage_types: str @@ -46,51 +33,9 @@ async def clear_data_for_origin( return await session.execute(cdp.storage.clear_data_for_origin(origin, storage_types)) -async def clear_trust_tokens( - issuer_origin: str - ) -> bool: - r''' - Removes all Trust Tokens issued by the provided issuerOrigin. - Leaves other stored data, including the issuer's Redemption Records, intact. - - **EXPERIMENTAL** - - :param issuer_origin: - :returns: True if any tokens were deleted, false otherwise. - ''' - session = get_session_context('storage.clear_trust_tokens') - return await session.execute(cdp.storage.clear_trust_tokens(issuer_origin)) - - -async def get_cookies( - browser_context_id: typing.Optional[cdp.browser.BrowserContextID] = None - ) -> typing.List[cdp.network.Cookie]: - r''' - Returns all browser cookies. - - :param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint. - :returns: Array of cookie objects. - ''' - session = get_session_context('storage.get_cookies') - return await session.execute(cdp.storage.get_cookies(browser_context_id)) - - -async def get_trust_tokens() -> typing.List[TrustTokens]: - r''' - Returns the number of stored Trust Tokens per issuer for the - current browsing context. - - **EXPERIMENTAL** - - :returns: - ''' - session = get_session_context('storage.get_trust_tokens') - return await session.execute(cdp.storage.get_trust_tokens()) - - async def get_usage_and_quota( origin: str - ) -> typing.Tuple[float, float, bool, typing.List[UsageForType]]: + ) -> typing.Tuple[float, float, typing.List[UsageForType]]: r''' Returns usage and quota in bytes. @@ -99,43 +44,12 @@ async def get_usage_and_quota( 0. **usage** - Storage usage (bytes). 1. **quota** - Storage quota (bytes). - 2. **overrideActive** - Whether or not the origin has an active storage quota override - 3. **usageBreakdown** - Storage usage per type (bytes). + 2. **usageBreakdown** - Storage usage per type (bytes). ''' session = get_session_context('storage.get_usage_and_quota') return await session.execute(cdp.storage.get_usage_and_quota(origin)) -async def override_quota_for_origin( - origin: str, - quota_size: typing.Optional[float] = None - ) -> None: - r''' - Override quota for the specified origin - - **EXPERIMENTAL** - - :param origin: Security origin. - :param quota_size: *(Optional)* The quota size (in bytes) to override the original quota with. If this is called multiple times, the overridden quota will be equal to the quotaSize provided in the final call. If this is called without specifying a quotaSize, the quota will be reset to the default value for the specified origin. If this is called multiple times with different origins, the override will be maintained for each origin until it is disabled (called without a quotaSize). - ''' - session = get_session_context('storage.override_quota_for_origin') - return await session.execute(cdp.storage.override_quota_for_origin(origin, quota_size)) - - -async def set_cookies( - cookies: typing.List[cdp.network.CookieParam], - browser_context_id: typing.Optional[cdp.browser.BrowserContextID] = None - ) -> None: - r''' - Sets given cookies. - - :param cookies: Cookies to be set. - :param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint. - ''' - session = get_session_context('storage.set_cookies') - return await session.execute(cdp.storage.set_cookies(cookies, browser_context_id)) - - async def track_cache_storage_for_origin( origin: str ) -> None: diff --git a/trio_cdp/generated/system_info.py b/trio_cdp/generated/system_info.py index 34dd008..11007ca 100644 --- a/trio_cdp/generated/system_info.py +++ b/trio_cdp/generated/system_info.py @@ -13,7 +13,6 @@ GPUDevice, GPUInfo, ImageDecodeAcceleratorCapability, - ImageType, ProcessInfo, Size, SubsamplingFormat, diff --git a/trio_cdp/generated/target.py b/trio_cdp/generated/target.py index 6c92a5f..457b47a 100644 --- a/trio_cdp/generated/target.py +++ b/trio_cdp/generated/target.py @@ -11,6 +11,7 @@ import cdp.target from cdp.target import ( AttachedToTarget, + BrowserContextID, DetachedFromTarget, ReceivedMessageFromTarget, RemoteLocation, @@ -56,33 +57,13 @@ async def attach_to_target( Attaches to the target with given id. :param target_id: - :param flatten: *(Optional)* Enables "flat" access to the session via specifying sessionId attribute in the commands. We plan to make this the default, deprecate non-flattened mode, and eventually retire it. See crbug.com/991325. + :param flatten: **(EXPERIMENTAL)** *(Optional)* Enables "flat" access to the session via specifying sessionId attribute in the commands. :returns: Id assigned to the session. ''' connection = get_connection_context('target.attach_to_target') return await connection.execute(cdp.target.attach_to_target(target_id, flatten)) -async def auto_attach_related( - target_id: TargetID, - wait_for_debugger_on_start: bool - ) -> None: - r''' - Adds the specified target to the list of targets that will be monitored for any related target - creation (such as child frames, child workers and new versions of service worker) and reported - through ``attachedToTarget``. The specified target is also auto-attached. - This cancels the effect of any previous ``setAutoAttach`` and is also cancelled by subsequent - ``setAutoAttach``. Only available at the Browser target. - - **EXPERIMENTAL** - - :param target_id: - :param wait_for_debugger_on_start: Whether to pause new targets when attaching to them. Use ```Runtime.runIfWaitingForDebugger``` to run paused targets. - ''' - connection = get_connection_context('target.auto_attach_related') - return await connection.execute(cdp.target.auto_attach_related(target_id, wait_for_debugger_on_start)) - - async def close_target( target_id: TargetID ) -> bool: @@ -90,39 +71,30 @@ async def close_target( Closes the target. If the target is a page that gets closed too. :param target_id: - :returns: Always set to true. If an error occurs, the response indicates protocol error. + :returns: ''' connection = get_connection_context('target.close_target') return await connection.execute(cdp.target.close_target(target_id)) -async def create_browser_context( - dispose_on_detach: typing.Optional[bool] = None, - proxy_server: typing.Optional[str] = None, - proxy_bypass_list: typing.Optional[str] = None, - origins_with_universal_network_access: typing.Optional[typing.List[str]] = None - ) -> cdp.browser.BrowserContextID: +async def create_browser_context() -> BrowserContextID: r''' Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than one. **EXPERIMENTAL** - :param dispose_on_detach: *(Optional)* If specified, disposes this context when debugging session disconnects. - :param proxy_server: *(Optional)* Proxy server, similar to the one passed to --proxy-server - :param proxy_bypass_list: *(Optional)* Proxy bypass list, similar to the one passed to --proxy-bypass-list - :param origins_with_universal_network_access: *(Optional)* An optional list of origins to grant unlimited cross-origin access to. Parts of the URL other than those constituting origin are ignored. :returns: The id of the context created. ''' connection = get_connection_context('target.create_browser_context') - return await connection.execute(cdp.target.create_browser_context(dispose_on_detach, proxy_server, proxy_bypass_list, origins_with_universal_network_access)) + return await connection.execute(cdp.target.create_browser_context()) async def create_target( url: str, width: typing.Optional[int] = None, height: typing.Optional[int] = None, - browser_context_id: typing.Optional[cdp.browser.BrowserContextID] = None, + browser_context_id: typing.Optional[BrowserContextID] = None, enable_begin_frame_control: typing.Optional[bool] = None, new_window: typing.Optional[bool] = None, background: typing.Optional[bool] = None @@ -130,10 +102,10 @@ async def create_target( r''' Creates a new page. - :param url: The initial URL the page will be navigated to. An empty string indicates about:blank. + :param url: The initial URL the page will be navigated to. :param width: *(Optional)* Frame width in DIP (headless chrome only). :param height: *(Optional)* Frame height in DIP (headless chrome only). - :param browser_context_id: **(EXPERIMENTAL)** *(Optional)* The browser context to create the page in. + :param browser_context_id: *(Optional)* The browser context to create the page in. :param enable_begin_frame_control: **(EXPERIMENTAL)** *(Optional)* Whether BeginFrames for this target will be controlled via DevTools (headless chrome only, not supported on MacOS yet, false by default). :param new_window: *(Optional)* Whether to create a new Window or Tab (chrome-only, false by default). :param background: *(Optional)* Whether to create the target in background or foreground (chrome-only, false by default). @@ -158,7 +130,7 @@ async def detach_from_target( async def dispose_browser_context( - browser_context_id: cdp.browser.BrowserContextID + browser_context_id: BrowserContextID ) -> None: r''' Deletes a BrowserContext. All the belonging pages will be closed without calling their @@ -195,7 +167,7 @@ async def expose_dev_tools_protocol( return await connection.execute(cdp.target.expose_dev_tools_protocol(target_id, binding_name)) -async def get_browser_contexts() -> typing.List[cdp.browser.BrowserContextID]: +async def get_browser_contexts() -> typing.List[BrowserContextID]: r''' Returns all browser contexts created with ``Target.createBrowserContext`` method. @@ -238,18 +210,12 @@ async def send_message_to_target( target_id: typing.Optional[TargetID] = None ) -> None: r''' -Sends protocol message over session with given id. -Consider using flat mode instead; see commands attachToTarget, setAutoAttach, -and crbug.com/991325. + Sends protocol message over session with given id. -.. deprecated:: 1.3 - -:param message: -:param session_id: *(Optional)* Identifier of the session. -:param target_id: **(DEPRECATED)** *(Optional)* Deprecated. - -.. deprecated:: 1.3 -''' + :param message: + :param session_id: *(Optional)* Identifier of the session. + :param target_id: **(DEPRECATED)** *(Optional)* Deprecated. + ''' connection = get_connection_context('target.send_message_to_target') return await connection.execute(cdp.target.send_message_to_target(message, session_id, target_id)) @@ -263,14 +229,12 @@ async def set_auto_attach( Controls whether to automatically attach to new targets which are considered to be related to this one. When turned on, attaches to all existing related targets as well. When turned off, automatically detaches from all currently attached targets. - This also clears all targets added by ``autoAttachRelated`` from the list of targets to watch - for creation of related targets. **EXPERIMENTAL** :param auto_attach: Whether to auto-attach to related targets. :param wait_for_debugger_on_start: Whether to pause new targets when attaching to them. Use ```Runtime.runIfWaitingForDebugger``` to run paused targets. - :param flatten: *(Optional)* Enables "flat" access to the session via specifying sessionId attribute in the commands. We plan to make this the default, deprecate non-flattened mode, and eventually retire it. See crbug.com/991325. + :param flatten: **(EXPERIMENTAL)** *(Optional)* Enables "flat" access to the session via specifying sessionId attribute in the commands. ''' connection = get_connection_context('target.set_auto_attach') return await connection.execute(cdp.target.set_auto_attach(auto_attach, wait_for_debugger_on_start, flatten)) diff --git a/trio_cdp/generated/tracing.py b/trio_cdp/generated/tracing.py index c305995..c694add 100644 --- a/trio_cdp/generated/tracing.py +++ b/trio_cdp/generated/tracing.py @@ -13,11 +13,9 @@ BufferUsage, DataCollected, MemoryDumpConfig, - MemoryDumpLevelOfDetail, StreamCompression, StreamFormat, TraceConfig, - TracingBackend, TracingComplete ) @@ -52,22 +50,17 @@ async def record_clock_sync_marker( return await session.execute(cdp.tracing.record_clock_sync_marker(sync_id)) -async def request_memory_dump( - deterministic: typing.Optional[bool] = None, - level_of_detail: typing.Optional[MemoryDumpLevelOfDetail] = None - ) -> typing.Tuple[str, bool]: +async def request_memory_dump() -> typing.Tuple[str, bool]: r''' Request a global memory dump. - :param deterministic: *(Optional)* Enables more deterministic results by forcing garbage collection - :param level_of_detail: *(Optional)* Specifies level of details in memory dump. Defaults to "detailed". :returns: A tuple with the following items: 0. **dumpGuid** - GUID of the resulting global memory dump. 1. **success** - True iff the global memory dump succeeded. ''' session = get_session_context('tracing.request_memory_dump') - return await session.execute(cdp.tracing.request_memory_dump(deterministic, level_of_detail)) + return await session.execute(cdp.tracing.request_memory_dump()) async def start( @@ -77,9 +70,7 @@ async def start( transfer_mode: typing.Optional[str] = None, stream_format: typing.Optional[StreamFormat] = None, stream_compression: typing.Optional[StreamCompression] = None, - trace_config: typing.Optional[TraceConfig] = None, - perfetto_config: typing.Optional[str] = None, - tracing_backend: typing.Optional[TracingBackend] = None + trace_config: typing.Optional[TraceConfig] = None ) -> None: r''' Start trace events collection. @@ -89,10 +80,8 @@ async def start( :param buffer_usage_reporting_interval: *(Optional)* If set, the agent will issue bufferUsage events at this interval, specified in milliseconds :param transfer_mode: *(Optional)* Whether to report trace events as series of dataCollected events or to save trace to a stream (defaults to ```ReportEvents````). :param stream_format: *(Optional)* Trace data format to use. This only applies when using ````ReturnAsStream```` transfer mode (defaults to ````json````). - :param stream_compression: *(Optional)* Compression format to use. This only applies when using ````ReturnAsStream```` transfer mode (defaults to ````none````) + :param stream_compression: *(Optional)* Compression format to use. This only applies when using ````ReturnAsStream```` transfer mode (defaults to ````none```) :param trace_config: *(Optional)* - :param perfetto_config: *(Optional)* Base64-encoded serialized perfetto.protos.TraceConfig protobuf message When specified, the parameters ````categories````, ````options````, ````traceConfig```` are ignored. (Encoded as a base64 string when passed over JSON) - :param tracing_backend: *(Optional)* Backend type (defaults to ````auto```) ''' session = get_session_context('tracing.start') - return await session.execute(cdp.tracing.start(categories, options, buffer_usage_reporting_interval, transfer_mode, stream_format, stream_compression, trace_config, perfetto_config, tracing_backend)) + return await session.execute(cdp.tracing.start(categories, options, buffer_usage_reporting_interval, transfer_mode, stream_format, stream_compression, trace_config)) diff --git a/trio_cdp/generated/web_audio.py b/trio_cdp/generated/web_audio.py index 28f19b4..846c001 100644 --- a/trio_cdp/generated/web_audio.py +++ b/trio_cdp/generated/web_audio.py @@ -10,32 +10,14 @@ import cdp.web_audio from cdp.web_audio import ( - AudioListener, - AudioListenerCreated, - AudioListenerWillBeDestroyed, - AudioNode, - AudioNodeCreated, - AudioNodeWillBeDestroyed, - AudioParam, - AudioParamCreated, - AudioParamWillBeDestroyed, - AutomationRate, BaseAudioContext, - ChannelCountMode, - ChannelInterpretation, ContextChanged, ContextCreated, + ContextDestroyed, + ContextId, ContextRealtimeData, ContextState, - ContextType, - ContextWillBeDestroyed, - GraphObjectId, - NodeParamConnected, - NodeParamDisconnected, - NodeType, - NodesConnected, - NodesDisconnected, - ParamType + ContextType ) @@ -56,7 +38,7 @@ async def enable() -> None: async def get_realtime_data( - context_id: GraphObjectId + context_id: ContextId ) -> ContextRealtimeData: r''' Fetch the realtime data from the registered contexts. diff --git a/trio_cdp/generated/web_authn.py b/trio_cdp/generated/web_authn.py index 7e3e182..ad47947 100644 --- a/trio_cdp/generated/web_authn.py +++ b/trio_cdp/generated/web_authn.py @@ -14,7 +14,6 @@ AuthenticatorProtocol, AuthenticatorTransport, Credential, - Ctap2Version, VirtualAuthenticatorOptions ) @@ -75,22 +74,6 @@ async def enable() -> None: return await session.execute(cdp.web_authn.enable()) -async def get_credential( - authenticator_id: AuthenticatorId, - credential_id: str - ) -> Credential: - r''' - Returns a single credential stored in the given virtual authenticator that - matches the credential ID. - - :param authenticator_id: - :param credential_id: - :returns: - ''' - session = get_session_context('web_authn.get_credential') - return await session.execute(cdp.web_authn.get_credential(authenticator_id, credential_id)) - - async def get_credentials( authenticator_id: AuthenticatorId ) -> typing.List[Credential]: @@ -104,20 +87,6 @@ async def get_credentials( return await session.execute(cdp.web_authn.get_credentials(authenticator_id)) -async def remove_credential( - authenticator_id: AuthenticatorId, - credential_id: str - ) -> None: - r''' - Removes a credential from the authenticator. - - :param authenticator_id: - :param credential_id: - ''' - session = get_session_context('web_authn.remove_credential') - return await session.execute(cdp.web_authn.remove_credential(authenticator_id, credential_id)) - - async def remove_virtual_authenticator( authenticator_id: AuthenticatorId ) -> None: @@ -130,21 +99,6 @@ async def remove_virtual_authenticator( return await session.execute(cdp.web_authn.remove_virtual_authenticator(authenticator_id)) -async def set_automatic_presence_simulation( - authenticator_id: AuthenticatorId, - enabled: bool - ) -> None: - r''' - Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator. - The default is true. - - :param authenticator_id: - :param enabled: - ''' - session = get_session_context('web_authn.set_automatic_presence_simulation') - return await session.execute(cdp.web_authn.set_automatic_presence_simulation(authenticator_id, enabled)) - - async def set_user_verified( authenticator_id: AuthenticatorId, is_user_verified: bool