From 4e8d60d32bce63638482cba5dd06c486cfa58170 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 13 Sep 2024 08:14:54 +0000 Subject: [PATCH 01/73] [no ci]: 1.0.1 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 502110af..0ebf83cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.0" +version = "1.0.1" description = "" authors = [ "Rambier Estelle ", From 39ab7ec83f370baf3bfd2c3fdb845d5d4d65eaef Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 13 Sep 2024 10:40:35 +0200 Subject: [PATCH 02/73] refacto: dataframe loop with itertuples to spot memory leak (#238) --- quotaclimat/data_processing/mediatree/api_import.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/api_import.py b/quotaclimat/data_processing/mediatree/api_import.py index 6334c26a..d84119ae 100644 --- a/quotaclimat/data_processing/mediatree/api_import.py +++ b/quotaclimat/data_processing/mediatree/api_import.py @@ -103,16 +103,17 @@ async def get_and_save_api_data(exit_event): try: programs_for_this_day = get_programs_for_this_day(day, channel, df_programs) - for index, program in programs_for_this_day.iterrows(): - start_epoch = program['start'] - end_epoch = program['end'] - channel_program = str(program['program_name']) - channel_program_type = str(program['program_type']) + for program in programs_for_this_day.itertuples(index=False): + start_epoch = program.start + end_epoch = program.end + channel_program = str(program.program_name) + channel_program_type = str(program.program_type) logging.info(f"Querying API for {channel} - {channel_program} - {channel_program_type} - {start_epoch} - {end_epoch}") df = extract_api_sub(token, channel, type_sub, start_epoch,end_epoch, channel_program,channel_program_type) if(df is not None): logging.debug(f"Memory df {df.memory_usage()}") save_to_pg(df, keywords_table, conn) + del df else: logging.info("Nothing to save to Postgresql") gc.collect() From 9cbc67b72a339264ab968d38cba395c6ab671761 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 13 Sep 2024 08:41:10 +0000 Subject: [PATCH 03/73] [no ci]: 1.0.2 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0ebf83cc..5f955733 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.1" +version = "1.0.2" description = "" authors = [ "Rambier Estelle ", From a1641ab9a5c57ec4dcc4273c7a1a4fe7ef011845 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 13 Sep 2024 10:56:45 +0200 Subject: [PATCH 04/73] chores: dep (#239) --- poetry.lock | 1611 ++++++++++++++++++++++++++------------------------- 1 file changed, 821 insertions(+), 790 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3b38e1d0..999ca3f7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -286,13 +286,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "build" -version = "1.2.1" +version = "1.2.2" description = "A simple, correct Python build frontend" optional = false python-versions = ">=3.8" files = [ - {file = "build-1.2.1-py3-none-any.whl", hash = "sha256:75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4"}, - {file = "build-1.2.1.tar.gz", hash = "sha256:526263f4870c26f26c433545579475377b2b7588b6f1eac76a001e873ae3e19d"}, + {file = "build-1.2.2-py3-none-any.whl", hash = "sha256:277ccc71619d98afdd841a0e96ac9fe1593b823af481d3b0cea748e8894e0613"}, + {file = "build-1.2.2.tar.gz", hash = "sha256:119b2fb462adef986483438377a13b2f42064a2a3a4161f24a0cca698a07ac8c"}, ] [package.dependencies] @@ -330,89 +330,89 @@ redis = ["redis (>=2.10.5)"] [[package]] name = "certifi" -version = "2024.7.4" +version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] [[package]] name = "cffi" -version = "1.17.0" +version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"}, - {file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"}, - {file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"}, - {file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"}, - {file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"}, - {file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"}, - {file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"}, - {file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"}, - {file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"}, - {file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"}, - {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"}, - {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"}, - {file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"}, - {file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"}, - {file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"}, - {file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"}, - {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"}, - {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"}, - {file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"}, - {file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"}, - {file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"}, - {file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"}, - {file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"}, - {file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"}, - {file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"}, - {file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"}, - {file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"}, - {file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [package.dependencies] @@ -687,38 +687,38 @@ files = [ [[package]] name = "cryptography" -version = "43.0.0" +version = "43.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, - {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, - {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, - {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, - {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, - {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, - {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, + {file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"}, + {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"}, + {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"}, + {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"}, + {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"}, + {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"}, + {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"}, ] [package.dependencies] @@ -731,7 +731,7 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -747,13 +747,13 @@ files = [ [[package]] name = "dask" -version = "2024.8.1" +version = "2024.8.2" description = "Parallel PyData with Task Scheduling" optional = false python-versions = ">=3.10" files = [ - {file = "dask-2024.8.1-py3-none-any.whl", hash = "sha256:b8b58cba91dc9c057c8676dcc80b8bc321602b4dfd21529d33b03b55d428e2c3"}, - {file = "dask-2024.8.1.tar.gz", hash = "sha256:4254e43ac8c3affad2b22952f126b00a00f52c87caae91c068d8e395a4ad1a72"}, + {file = "dask-2024.8.2-py3-none-any.whl", hash = "sha256:484c317ee870140dbeccc759a91fd98821bba98d71a43eda7856fc9e859b03a1"}, + {file = "dask-2024.8.2.tar.gz", hash = "sha256:1d05e09166ac7927a54401e998aa1599e86aac666edbdaeb3096bf4b957029e0"}, ] [package.dependencies] @@ -762,7 +762,7 @@ cloudpickle = ">=3.0.0" dask-expr = {version = ">=1.1,<1.2", optional = true, markers = "extra == \"dataframe\""} fsspec = ">=2021.09.0" importlib-metadata = {version = ">=4.13.0", markers = "python_version < \"3.12\""} -numpy = {version = ">=1.21", optional = true, markers = "extra == \"array\""} +numpy = {version = ">=1.24", optional = true, markers = "extra == \"array\""} packaging = ">=20.0" pandas = {version = ">=2.0", optional = true, markers = "extra == \"dataframe\""} partd = ">=1.4.0" @@ -770,28 +770,28 @@ pyyaml = ">=5.3.1" toolz = ">=0.10.0" [package.extras] -array = ["numpy (>=1.21)"] -complete = ["dask[array,dataframe,diagnostics,distributed]", "lz4 (>=4.3.2)", "pyarrow (>=7.0)", "pyarrow-hotfix"] +array = ["numpy (>=1.24)"] +complete = ["dask[array,dataframe,diagnostics,distributed]", "lz4 (>=4.3.2)", "pyarrow (>=14.0.1)"] dataframe = ["dask-expr (>=1.1,<1.2)", "dask[array]", "pandas (>=2.0)"] diagnostics = ["bokeh (>=2.4.2)", "jinja2 (>=2.10.3)"] -distributed = ["distributed (==2024.8.1)"] +distributed = ["distributed (==2024.8.2)"] test = ["pandas[test]", "pre-commit", "pytest", "pytest-cov", "pytest-rerunfailures", "pytest-timeout", "pytest-xdist"] [[package]] name = "dask-expr" -version = "1.1.11" +version = "1.1.13" description = "High Level Expressions for Dask" optional = false python-versions = ">=3.10" files = [ - {file = "dask_expr-1.1.11-py3-none-any.whl", hash = "sha256:b9222b3d430152e3af4a1777f66bcee88651f510876cb57c720107d123d9ba63"}, - {file = "dask_expr-1.1.11.tar.gz", hash = "sha256:275689c269f9c30dbaf9d8d7e9d3b5ac5438ea6db73fdbf95b3f4bfb1381bc5a"}, + {file = "dask_expr-1.1.13-py3-none-any.whl", hash = "sha256:0a68a8d18cae72b172ee3afc3f33253f065becbf8fbf9f3ee43e665ec5499112"}, + {file = "dask_expr-1.1.13.tar.gz", hash = "sha256:7e00b2c6538e6c633e22db262abfe3aeb6dc65c1de4a8eadcb2bbf44ad8729da"}, ] [package.dependencies] -dask = "2024.8.1" +dask = "2024.8.2" pandas = ">=2" -pyarrow = ">=7.0.0" +pyarrow = ">=14.0.1" [package.extras] analyze = ["crick", "distributed"] @@ -932,19 +932,19 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.15.4" +version = "3.16.0" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, - {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, + {file = "filelock-3.16.0-py3-none-any.whl", hash = "sha256:f6ed4c963184f4c84dd5557ce8fece759a3724b37b80c6c4f20a2f63a4dc6609"}, + {file = "filelock-3.16.0.tar.gz", hash = "sha256:81de9eb8453c769b63369f87f11131a7ab04e367f8d97ad39dc230daa07e3bec"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] -typing = ["typing-extensions (>=4.8)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.1.1)", "pytest (>=8.3.2)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.3)"] +typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "flake8" @@ -1050,13 +1050,13 @@ files = [ [[package]] name = "fsspec" -version = "2024.6.1" +version = "2024.9.0" description = "File-system specification" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2024.6.1-py3-none-any.whl", hash = "sha256:3cb443f8bcd2efb31295a5b9fdb02aee81d8452c80d28f97a6d0959e6cee101e"}, - {file = "fsspec-2024.6.1.tar.gz", hash = "sha256:fad7d7e209dd4c1208e3bbfda706620e0da5142bebbd9c384afb95b07e798e49"}, + {file = "fsspec-2024.9.0-py3-none-any.whl", hash = "sha256:a0947d552d8a6efa72cc2c730b12c41d043509156966cca4fb157b0f2a0c574b"}, + {file = "fsspec-2024.9.0.tar.gz", hash = "sha256:4b0afb90c2f21832df142f292649035d80b421f60a9e1c027802e5a0da2b04e8"}, ] [package.extras] @@ -1089,69 +1089,77 @@ tqdm = ["tqdm"] [[package]] name = "greenlet" -version = "3.0.3" +version = "3.1.0" description = "Lightweight in-process concurrent programming" optional = false python-versions = ">=3.7" files = [ - {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, - {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, - {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, - {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, - {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, - {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, - {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, - {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, - {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, - {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, - {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, - {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, - {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, - {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, - {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, - {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, + {file = "greenlet-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a814dc3100e8a046ff48faeaa909e80cdb358411a3d6dd5293158425c684eda8"}, + {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a771dc64fa44ebe58d65768d869fcfb9060169d203446c1d446e844b62bdfdca"}, + {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0e49a65d25d7350cca2da15aac31b6f67a43d867448babf997fe83c7505f57bc"}, + {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd8518eade968bc52262d8c46727cfc0826ff4d552cf0430b8d65aaf50bb91d"}, + {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76dc19e660baea5c38e949455c1181bc018893f25372d10ffe24b3ed7341fb25"}, + {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c0a5b1c22c82831f56f2f7ad9bbe4948879762fe0d59833a4a71f16e5fa0f682"}, + {file = "greenlet-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2651dfb006f391bcb240635079a68a261b227a10a08af6349cba834a2141efa1"}, + {file = "greenlet-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3e7e6ef1737a819819b1163116ad4b48d06cfdd40352d813bb14436024fcda99"}, + {file = "greenlet-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:ffb08f2a1e59d38c7b8b9ac8083c9c8b9875f0955b1e9b9b9a965607a51f8e54"}, + {file = "greenlet-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9730929375021ec90f6447bff4f7f5508faef1c02f399a1953870cdb78e0c345"}, + {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:713d450cf8e61854de9420fb7eea8ad228df4e27e7d4ed465de98c955d2b3fa6"}, + {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c3446937be153718250fe421da548f973124189f18fe4575a0510b5c928f0cc"}, + {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ddc7bcedeb47187be74208bc652d63d6b20cb24f4e596bd356092d8000da6d6"}, + {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44151d7b81b9391ed759a2f2865bbe623ef00d648fed59363be2bbbd5154656f"}, + {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cea1cca3be76c9483282dc7760ea1cc08a6ecec1f0b6ca0a94ea0d17432da19"}, + {file = "greenlet-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:619935a44f414274a2c08c9e74611965650b730eb4efe4b2270f91df5e4adf9a"}, + {file = "greenlet-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:221169d31cada333a0c7fd087b957c8f431c1dba202c3a58cf5a3583ed973e9b"}, + {file = "greenlet-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:01059afb9b178606b4b6e92c3e710ea1635597c3537e44da69f4531e111dd5e9"}, + {file = "greenlet-3.1.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:24fc216ec7c8be9becba8b64a98a78f9cd057fd2dc75ae952ca94ed8a893bf27"}, + {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d07c28b85b350564bdff9f51c1c5007dfb2f389385d1bc23288de51134ca303"}, + {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:243a223c96a4246f8a30ea470c440fe9db1f5e444941ee3c3cd79df119b8eebf"}, + {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26811df4dc81271033a7836bc20d12cd30938e6bd2e9437f56fa03da81b0f8fc"}, + {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9d86401550b09a55410f32ceb5fe7efcd998bd2dad9e82521713cb148a4a15f"}, + {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:26d9c1c4f1748ccac0bae1dbb465fb1a795a75aba8af8ca871503019f4285e2a"}, + {file = "greenlet-3.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:cd468ec62257bb4544989402b19d795d2305eccb06cde5da0eb739b63dc04665"}, + {file = "greenlet-3.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a53dfe8f82b715319e9953330fa5c8708b610d48b5c59f1316337302af5c0811"}, + {file = "greenlet-3.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:28fe80a3eb673b2d5cc3b12eea468a5e5f4603c26aa34d88bf61bba82ceb2f9b"}, + {file = "greenlet-3.1.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:76b3e3976d2a452cba7aa9e453498ac72240d43030fdc6d538a72b87eaff52fd"}, + {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655b21ffd37a96b1e78cc48bf254f5ea4b5b85efaf9e9e2a526b3c9309d660ca"}, + {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6f4c2027689093775fd58ca2388d58789009116844432d920e9147f91acbe64"}, + {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76e5064fd8e94c3f74d9fd69b02d99e3cdb8fc286ed49a1f10b256e59d0d3a0b"}, + {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a4bf607f690f7987ab3291406e012cd8591a4f77aa54f29b890f9c331e84989"}, + {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:037d9ac99540ace9424cb9ea89f0accfaff4316f149520b4ae293eebc5bded17"}, + {file = "greenlet-3.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:90b5bbf05fe3d3ef697103850c2ce3374558f6fe40fd57c9fac1bf14903f50a5"}, + {file = "greenlet-3.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:726377bd60081172685c0ff46afbc600d064f01053190e4450857483c4d44484"}, + {file = "greenlet-3.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:d46d5069e2eeda111d6f71970e341f4bd9aeeee92074e649ae263b834286ecc0"}, + {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81eeec4403a7d7684b5812a8aaa626fa23b7d0848edb3a28d2eb3220daddcbd0"}, + {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a3dae7492d16e85ea6045fd11cb8e782b63eac8c8d520c3a92c02ac4573b0a6"}, + {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b5ea3664eed571779403858d7cd0a9b0ebf50d57d2cdeafc7748e09ef8cd81a"}, + {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22f4e26400f7f48faef2d69c20dc055a1f3043d330923f9abe08ea0aecc44df"}, + {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13ff8c8e54a10472ce3b2a2da007f915175192f18e6495bad50486e87c7f6637"}, + {file = "greenlet-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f9671e7282d8c6fcabc32c0fb8d7c0ea8894ae85cee89c9aadc2d7129e1a9954"}, + {file = "greenlet-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:184258372ae9e1e9bddce6f187967f2e08ecd16906557c4320e3ba88a93438c3"}, + {file = "greenlet-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:a0409bc18a9f85321399c29baf93545152d74a49d92f2f55302f122007cfda00"}, + {file = "greenlet-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9eb4a1d7399b9f3c7ac68ae6baa6be5f9195d1d08c9ddc45ad559aa6b556bce6"}, + {file = "greenlet-3.1.0-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:a8870983af660798dc1b529e1fd6f1cefd94e45135a32e58bd70edd694540f33"}, + {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfcfb73aed40f550a57ea904629bdaf2e562c68fa1164fa4588e752af6efdc3f"}, + {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9482c2ed414781c0af0b35d9d575226da6b728bd1a720668fa05837184965b7"}, + {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d58ec349e0c2c0bc6669bf2cd4982d2f93bf067860d23a0ea1fe677b0f0b1e09"}, + {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd65695a8df1233309b701dec2539cc4b11e97d4fcc0f4185b4a12ce54db0491"}, + {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:665b21e95bc0fce5cab03b2e1d90ba9c66c510f1bb5fdc864f3a377d0f553f6b"}, + {file = "greenlet-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3c59a06c2c28a81a026ff11fbf012081ea34fb9b7052f2ed0366e14896f0a1d"}, + {file = "greenlet-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415b9494ff6240b09af06b91a375731febe0090218e2898d2b85f9b92abcda0"}, + {file = "greenlet-3.1.0-cp38-cp38-win32.whl", hash = "sha256:1544b8dd090b494c55e60c4ff46e238be44fdc472d2589e943c241e0169bcea2"}, + {file = "greenlet-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:7f346d24d74c00b6730440f5eb8ec3fe5774ca8d1c9574e8e57c8671bb51b910"}, + {file = "greenlet-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:db1b3ccb93488328c74e97ff888604a8b95ae4f35f4f56677ca57a4fc3a4220b"}, + {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44cd313629ded43bb3b98737bba2f3e2c2c8679b55ea29ed73daea6b755fe8e7"}, + {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fad7a051e07f64e297e6e8399b4d6a3bdcad3d7297409e9a06ef8cbccff4f501"}, + {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3967dcc1cd2ea61b08b0b276659242cbce5caca39e7cbc02408222fb9e6ff39"}, + {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d45b75b0f3fd8d99f62eb7908cfa6d727b7ed190737dec7fe46d993da550b81a"}, + {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2d004db911ed7b6218ec5c5bfe4cf70ae8aa2223dffbb5b3c69e342bb253cb28"}, + {file = "greenlet-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9505a0c8579899057cbefd4ec34d865ab99852baf1ff33a9481eb3924e2da0b"}, + {file = "greenlet-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fd6e94593f6f9714dbad1aaba734b5ec04593374fa6638df61592055868f8b8"}, + {file = "greenlet-3.1.0-cp39-cp39-win32.whl", hash = "sha256:d0dd943282231480aad5f50f89bdf26690c995e8ff555f26d8a5b9887b559bcc"}, + {file = "greenlet-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:ac0adfdb3a21dc2a24ed728b61e72440d297d0fd3a577389df566651fcd08f97"}, + {file = "greenlet-3.1.0.tar.gz", hash = "sha256:b395121e9bbe8d02a750886f108d540abe66075e61e22f7353d9acb0b81be0f0"}, ] [package.extras] @@ -1199,22 +1207,26 @@ files = [ [[package]] name = "importlib-metadata" -version = "8.4.0" +version = "8.5.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-8.4.0-py3-none-any.whl", hash = "sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1"}, - {file = "importlib_metadata-8.4.0.tar.gz", hash = "sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5"}, + {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, + {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, ] [package.dependencies] -zipp = ">=0.5" +zipp = ">=3.20" [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] [[package]] name = "incremental" @@ -1704,177 +1716,187 @@ spreadsheet = ["modin-spreadsheet (>=0.1.0)"] [[package]] name = "more-itertools" -version = "10.4.0" +version = "10.5.0" description = "More routines for operating on iterables, beyond itertools" optional = false python-versions = ">=3.8" files = [ - {file = "more-itertools-10.4.0.tar.gz", hash = "sha256:fe0e63c4ab068eac62410ab05cccca2dc71ec44ba8ef29916a0090df061cf923"}, - {file = "more_itertools-10.4.0-py3-none-any.whl", hash = "sha256:0f7d9f83a0a8dcfa8a2694a770590d98a67ea943e3d9f5298309a484758c4e27"}, + {file = "more-itertools-10.5.0.tar.gz", hash = "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6"}, + {file = "more_itertools-10.5.0-py3-none-any.whl", hash = "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef"}, ] [[package]] name = "msgpack" -version = "1.0.8" +version = "1.1.0" description = "MessagePack serializer" optional = false python-versions = ">=3.8" files = [ - {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868"}, - {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c"}, - {file = "msgpack-1.0.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:376081f471a2ef24828b83a641a02c575d6103a3ad7fd7dade5486cad10ea659"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e390971d082dba073c05dbd56322427d3280b7cc8b53484c9377adfbae67dc2"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e073efcba9ea99db5acef3959efa45b52bc67b61b00823d2a1a6944bf45982"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82d92c773fbc6942a7a8b520d22c11cfc8fd83bba86116bfcf962c2f5c2ecdaa"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ee32dcb8e531adae1f1ca568822e9b3a738369b3b686d1477cbc643c4a9c128"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e3aa7e51d738e0ec0afbed661261513b38b3014754c9459508399baf14ae0c9d"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69284049d07fce531c17404fcba2bb1df472bc2dcdac642ae71a2d079d950653"}, - {file = "msgpack-1.0.8-cp310-cp310-win32.whl", hash = "sha256:13577ec9e247f8741c84d06b9ece5f654920d8365a4b636ce0e44f15e07ec693"}, - {file = "msgpack-1.0.8-cp310-cp310-win_amd64.whl", hash = "sha256:e532dbd6ddfe13946de050d7474e3f5fb6ec774fbb1a188aaf469b08cf04189a"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9517004e21664f2b5a5fd6333b0731b9cf0817403a941b393d89a2f1dc2bd836"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d16a786905034e7e34098634b184a7d81f91d4c3d246edc6bd7aefb2fd8ea6ad"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2872993e209f7ed04d963e4b4fbae72d034844ec66bc4ca403329db2074377b"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c330eace3dd100bdb54b5653b966de7f51c26ec4a7d4e87132d9b4f738220ba"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b5c044f3eff2a6534768ccfd50425939e7a8b5cf9a7261c385de1e20dcfc85"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1876b0b653a808fcd50123b953af170c535027bf1d053b59790eebb0aeb38950"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dfe1f0f0ed5785c187144c46a292b8c34c1295c01da12e10ccddfc16def4448a"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3528807cbbb7f315bb81959d5961855e7ba52aa60a3097151cb21956fbc7502b"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e2f879ab92ce502a1e65fce390eab619774dda6a6ff719718069ac94084098ce"}, - {file = "msgpack-1.0.8-cp311-cp311-win32.whl", hash = "sha256:26ee97a8261e6e35885c2ecd2fd4a6d38252246f94a2aec23665a4e66d066305"}, - {file = "msgpack-1.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:eadb9f826c138e6cf3c49d6f8de88225a3c0ab181a9b4ba792e006e5292d150e"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:114be227f5213ef8b215c22dde19532f5da9652e56e8ce969bf0a26d7c419fee"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d661dc4785affa9d0edfdd1e59ec056a58b3dbb9f196fa43587f3ddac654ac7b"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d56fd9f1f1cdc8227d7b7918f55091349741904d9520c65f0139a9755952c9e8"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0726c282d188e204281ebd8de31724b7d749adebc086873a59efb8cf7ae27df3"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8db8e423192303ed77cff4dce3a4b88dbfaf43979d280181558af5e2c3c71afc"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99881222f4a8c2f641f25703963a5cefb076adffd959e0558dc9f803a52d6a58"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b5505774ea2a73a86ea176e8a9a4a7c8bf5d521050f0f6f8426afe798689243f"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ef254a06bcea461e65ff0373d8a0dd1ed3aa004af48839f002a0c994a6f72d04"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e1dd7839443592d00e96db831eddb4111a2a81a46b028f0facd60a09ebbdd543"}, - {file = "msgpack-1.0.8-cp312-cp312-win32.whl", hash = "sha256:64d0fcd436c5683fdd7c907eeae5e2cbb5eb872fafbc03a43609d7941840995c"}, - {file = "msgpack-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ceea77719d45c839fd73abcb190b8390412a890df2f83fb8cf49b2a4b5c2f40"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ab0bbcd4d1f7b6991ee7c753655b481c50084294218de69365f8f1970d4c151"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1cce488457370ffd1f953846f82323cb6b2ad2190987cd4d70b2713e17268d24"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3923a1778f7e5ef31865893fdca12a8d7dc03a44b33e2a5f3295416314c09f5d"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22e47578b30a3e199ab067a4d43d790249b3c0587d9a771921f86250c8435db"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd739c9251d01e0279ce729e37b39d49a08c0420d3fee7f2a4968c0576678f77"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3420522057ebab1728b21ad473aa950026d07cb09da41103f8e597dfbfaeb13"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5845fdf5e5d5b78a49b826fcdc0eb2e2aa7191980e3d2cfd2a30303a74f212e2"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a0e76621f6e1f908ae52860bdcb58e1ca85231a9b0545e64509c931dd34275a"}, - {file = "msgpack-1.0.8-cp38-cp38-win32.whl", hash = "sha256:374a8e88ddab84b9ada695d255679fb99c53513c0a51778796fcf0944d6c789c"}, - {file = "msgpack-1.0.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3709997b228685fe53e8c433e2df9f0cdb5f4542bd5114ed17ac3c0129b0480"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f51bab98d52739c50c56658cc303f190785f9a2cd97b823357e7aeae54c8f68a"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:73ee792784d48aa338bba28063e19a27e8d989344f34aad14ea6e1b9bd83f596"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e75753aeda0ddc4c28dce4c32ba2f6ec30b1b02f6c0b14e547841ba5b24f753f"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5dbf059fb4b7c240c873c1245ee112505be27497e90f7c6591261c7d3c3a8228"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4916727e31c28be8beaf11cf117d6f6f188dcc36daae4e851fee88646f5b6b18"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7938111ed1358f536daf311be244f34df7bf3cdedb3ed883787aca97778b28d8"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:493c5c5e44b06d6c9268ce21b302c9ca055c1fd3484c25ba41d34476c76ee746"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"}, - {file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"}, - {file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"}, - {file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, + {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, + {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, + {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, + {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, + {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, + {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, + {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, + {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, + {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, + {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, + {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, + {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, + {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, ] [[package]] name = "multidict" -version = "6.0.5" +version = "6.1.0" description = "multidict implementation" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, - {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, - {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, - {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, - {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, - {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, - {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, - {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, - {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, - {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, - {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, - {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, - {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, - {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, - {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, - {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, - {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, - {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, - {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, - {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, - {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, - {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, - {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, - {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, - {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, - {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, - {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, - {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, - {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, - {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, ] [[package]] @@ -2134,19 +2156,19 @@ testing = ["pytest", "pytest-cov", "wheel"] [[package]] name = "platformdirs" -version = "4.2.2" +version = "4.3.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, + {file = "platformdirs-4.3.2-py3-none-any.whl", hash = "sha256:eb1c8582560b34ed4ba105009a4badf7f6f85768b30126f351328507b2beb617"}, + {file = "platformdirs-4.3.2.tar.gz", hash = "sha256:9e5e27a08aa095dd127b9f2e764d74254f482fef22b0970773bfba79d091ab8c"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] name = "pluggy" @@ -2271,22 +2293,22 @@ files = [ [[package]] name = "protobuf" -version = "5.27.3" +version = "5.28.1" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-5.27.3-cp310-abi3-win32.whl", hash = "sha256:dcb307cd4ef8fec0cf52cb9105a03d06fbb5275ce6d84a6ae33bc6cf84e0a07b"}, - {file = "protobuf-5.27.3-cp310-abi3-win_amd64.whl", hash = "sha256:16ddf3f8c6c41e1e803da7abea17b1793a97ef079a912e42351eabb19b2cffe7"}, - {file = "protobuf-5.27.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:68248c60d53f6168f565a8c76dc58ba4fa2ade31c2d1ebdae6d80f969cdc2d4f"}, - {file = "protobuf-5.27.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:b8a994fb3d1c11156e7d1e427186662b64694a62b55936b2b9348f0a7c6625ce"}, - {file = "protobuf-5.27.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:a55c48f2a2092d8e213bd143474df33a6ae751b781dd1d1f4d953c128a415b25"}, - {file = "protobuf-5.27.3-cp38-cp38-win32.whl", hash = "sha256:043853dcb55cc262bf2e116215ad43fa0859caab79bb0b2d31b708f128ece035"}, - {file = "protobuf-5.27.3-cp38-cp38-win_amd64.whl", hash = "sha256:c2a105c24f08b1e53d6c7ffe69cb09d0031512f0b72f812dd4005b8112dbe91e"}, - {file = "protobuf-5.27.3-cp39-cp39-win32.whl", hash = "sha256:c84eee2c71ed83704f1afbf1a85c3171eab0fd1ade3b399b3fad0884cbcca8bf"}, - {file = "protobuf-5.27.3-cp39-cp39-win_amd64.whl", hash = "sha256:af7c0b7cfbbb649ad26132e53faa348580f844d9ca46fd3ec7ca48a1ea5db8a1"}, - {file = "protobuf-5.27.3-py3-none-any.whl", hash = "sha256:8572c6533e544ebf6899c360e91d6bcbbee2549251643d32c52cf8a5de295ba5"}, - {file = "protobuf-5.27.3.tar.gz", hash = "sha256:82460903e640f2b7e34ee81a947fdaad89de796d324bcbc38ff5430bcdead82c"}, + {file = "protobuf-5.28.1-cp310-abi3-win32.whl", hash = "sha256:fc063acaf7a3d9ca13146fefb5b42ac94ab943ec6e978f543cd5637da2d57957"}, + {file = "protobuf-5.28.1-cp310-abi3-win_amd64.whl", hash = "sha256:4c7f5cb38c640919791c9f74ea80c5b82314c69a8409ea36f2599617d03989af"}, + {file = "protobuf-5.28.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4304e4fceb823d91699e924a1fdf95cde0e066f3b1c28edb665bda762ecde10f"}, + {file = "protobuf-5.28.1-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:0dfd86d2b5edf03d91ec2a7c15b4e950258150f14f9af5f51c17fa224ee1931f"}, + {file = "protobuf-5.28.1-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:51f09caab818707ab91cf09cc5c156026599cf05a4520779ccbf53c1b352fb25"}, + {file = "protobuf-5.28.1-cp38-cp38-win32.whl", hash = "sha256:1b04bde117a10ff9d906841a89ec326686c48ececeb65690f15b8cabe7149495"}, + {file = "protobuf-5.28.1-cp38-cp38-win_amd64.whl", hash = "sha256:cabfe43044ee319ad6832b2fda332646f9ef1636b0130186a3ae0a52fc264bb4"}, + {file = "protobuf-5.28.1-cp39-cp39-win32.whl", hash = "sha256:4b4b9a0562a35773ff47a3df823177ab71a1f5eb1ff56d8f842b7432ecfd7fd2"}, + {file = "protobuf-5.28.1-cp39-cp39-win_amd64.whl", hash = "sha256:f24e5d70e6af8ee9672ff605d5503491635f63d5db2fffb6472be78ba62efd8f"}, + {file = "protobuf-5.28.1-py3-none-any.whl", hash = "sha256:c529535e5c0effcf417682563719e5d8ac8d2b93de07a56108b4c2d436d7a29a"}, + {file = "protobuf-5.28.1.tar.gz", hash = "sha256:42597e938f83bb7f3e4b35f03aa45208d49ae8d5bcb4bc10b9fc825e0ab5e423"}, ] [[package]] @@ -2463,24 +2485,24 @@ test = ["cffi", "hypothesis", "pandas", "pytest", "pytz"] [[package]] name = "pyasn1" -version = "0.6.0" +version = "0.6.1" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" optional = false python-versions = ">=3.8" files = [ - {file = "pyasn1-0.6.0-py2.py3-none-any.whl", hash = "sha256:cca4bb0f2df5504f02f6f8a775b6e416ff9b0b3b16f7ee80b5a3153d9b804473"}, - {file = "pyasn1-0.6.0.tar.gz", hash = "sha256:3a35ab2c4b5ef98e17dfdec8ab074046fbda76e281c5a706ccd82328cfc8f64c"}, + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, ] [[package]] name = "pyasn1-modules" -version = "0.4.0" +version = "0.4.1" description = "A collection of ASN.1-based protocols modules" optional = false python-versions = ">=3.8" files = [ - {file = "pyasn1_modules-0.4.0-py3-none-any.whl", hash = "sha256:be04f15b66c206eed667e0bb5ab27e2b1855ea54a842e5037738099e8ca4ae0b"}, - {file = "pyasn1_modules-0.4.0.tar.gz", hash = "sha256:831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6"}, + {file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"}, + {file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"}, ] [package.dependencies] @@ -2510,119 +2532,120 @@ files = [ [[package]] name = "pydantic" -version = "2.8.2" +version = "2.9.1" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, - {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, + {file = "pydantic-2.9.1-py3-none-any.whl", hash = "sha256:7aff4db5fdf3cf573d4b3c30926a510a10e19a0774d38fc4967f78beb6deb612"}, + {file = "pydantic-2.9.1.tar.gz", hash = "sha256:1363c7d975c7036df0db2b4a61f2e062fbc0aa5ab5f2772e0ffc7191a4f4bce2"}, ] [package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.20.1" +annotated-types = ">=0.6.0" +pydantic-core = "2.23.3" typing-extensions = {version = ">=4.6.1", markers = "python_version < \"3.13\""} [package.extras] email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.20.1" +version = "2.23.3" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, - {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, - {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, - {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, - {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, - {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, - {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, - {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, - {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, - {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, - {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, - {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, - {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, - {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, + {file = "pydantic_core-2.23.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7f10a5d1b9281392f1bf507d16ac720e78285dfd635b05737c3911637601bae6"}, + {file = "pydantic_core-2.23.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c09a7885dd33ee8c65266e5aa7fb7e2f23d49d8043f089989726391dd7350c5"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6470b5a1ec4d1c2e9afe928c6cb37eb33381cab99292a708b8cb9aa89e62429b"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9172d2088e27d9a185ea0a6c8cebe227a9139fd90295221d7d495944d2367700"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86fc6c762ca7ac8fbbdff80d61b2c59fb6b7d144aa46e2d54d9e1b7b0e780e01"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0cb80fd5c2df4898693aa841425ea1727b1b6d2167448253077d2a49003e0ed"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03667cec5daf43ac4995cefa8aaf58f99de036204a37b889c24a80927b629cec"}, + {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:047531242f8e9c2db733599f1c612925de095e93c9cc0e599e96cf536aaf56ba"}, + {file = "pydantic_core-2.23.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5499798317fff7f25dbef9347f4451b91ac2a4330c6669821c8202fd354c7bee"}, + {file = "pydantic_core-2.23.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bbb5e45eab7624440516ee3722a3044b83fff4c0372efe183fd6ba678ff681fe"}, + {file = "pydantic_core-2.23.3-cp310-none-win32.whl", hash = "sha256:8b5b3ed73abb147704a6e9f556d8c5cb078f8c095be4588e669d315e0d11893b"}, + {file = "pydantic_core-2.23.3-cp310-none-win_amd64.whl", hash = "sha256:2b603cde285322758a0279995b5796d64b63060bfbe214b50a3ca23b5cee3e83"}, + {file = "pydantic_core-2.23.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c889fd87e1f1bbeb877c2ee56b63bb297de4636661cc9bbfcf4b34e5e925bc27"}, + {file = "pydantic_core-2.23.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea85bda3189fb27503af4c45273735bcde3dd31c1ab17d11f37b04877859ef45"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7f7f72f721223f33d3dc98a791666ebc6a91fa023ce63733709f4894a7dc611"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b2b55b0448e9da68f56b696f313949cda1039e8ec7b5d294285335b53104b61"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c24574c7e92e2c56379706b9a3f07c1e0c7f2f87a41b6ee86653100c4ce343e5"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2b05e6ccbee333a8f4b8f4d7c244fdb7a979e90977ad9c51ea31261e2085ce0"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2c409ce1c219c091e47cb03feb3c4ed8c2b8e004efc940da0166aaee8f9d6c8"}, + {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d965e8b325f443ed3196db890d85dfebbb09f7384486a77461347f4adb1fa7f8"}, + {file = "pydantic_core-2.23.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f56af3a420fb1ffaf43ece3ea09c2d27c444e7c40dcb7c6e7cf57aae764f2b48"}, + {file = "pydantic_core-2.23.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b01a078dd4f9a52494370af21aa52964e0a96d4862ac64ff7cea06e0f12d2c5"}, + {file = "pydantic_core-2.23.3-cp311-none-win32.whl", hash = "sha256:560e32f0df04ac69b3dd818f71339983f6d1f70eb99d4d1f8e9705fb6c34a5c1"}, + {file = "pydantic_core-2.23.3-cp311-none-win_amd64.whl", hash = "sha256:c744fa100fdea0d000d8bcddee95213d2de2e95b9c12be083370b2072333a0fa"}, + {file = "pydantic_core-2.23.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e0ec50663feedf64d21bad0809f5857bac1ce91deded203efc4a84b31b2e4305"}, + {file = "pydantic_core-2.23.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db6e6afcb95edbe6b357786684b71008499836e91f2a4a1e55b840955b341dbb"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98ccd69edcf49f0875d86942f4418a4e83eb3047f20eb897bffa62a5d419c8fa"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a678c1ac5c5ec5685af0133262103defb427114e62eafeda12f1357a12140162"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01491d8b4d8db9f3391d93b0df60701e644ff0894352947f31fff3e52bd5c801"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fcf31facf2796a2d3b7fe338fe8640aa0166e4e55b4cb108dbfd1058049bf4cb"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7200fd561fb3be06827340da066df4311d0b6b8eb0c2116a110be5245dceb326"}, + {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc1636770a809dee2bd44dd74b89cc80eb41172bcad8af75dd0bc182c2666d4c"}, + {file = "pydantic_core-2.23.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:67a5def279309f2e23014b608c4150b0c2d323bd7bccd27ff07b001c12c2415c"}, + {file = "pydantic_core-2.23.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:748bdf985014c6dd3e1e4cc3db90f1c3ecc7246ff5a3cd4ddab20c768b2f1dab"}, + {file = "pydantic_core-2.23.3-cp312-none-win32.whl", hash = "sha256:255ec6dcb899c115f1e2a64bc9ebc24cc0e3ab097775755244f77360d1f3c06c"}, + {file = "pydantic_core-2.23.3-cp312-none-win_amd64.whl", hash = "sha256:40b8441be16c1e940abebed83cd006ddb9e3737a279e339dbd6d31578b802f7b"}, + {file = "pydantic_core-2.23.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6daaf5b1ba1369a22c8b050b643250e3e5efc6a78366d323294aee54953a4d5f"}, + {file = "pydantic_core-2.23.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d015e63b985a78a3d4ccffd3bdf22b7c20b3bbd4b8227809b3e8e75bc37f9cb2"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3fc572d9b5b5cfe13f8e8a6e26271d5d13f80173724b738557a8c7f3a8a3791"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f6bd91345b5163ee7448bee201ed7dd601ca24f43f439109b0212e296eb5b423"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc379c73fd66606628b866f661e8785088afe2adaba78e6bbe80796baf708a63"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbdce4b47592f9e296e19ac31667daed8753c8367ebb34b9a9bd89dacaa299c9"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc3cf31edf405a161a0adad83246568647c54404739b614b1ff43dad2b02e6d5"}, + {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e22b477bf90db71c156f89a55bfe4d25177b81fce4aa09294d9e805eec13855"}, + {file = "pydantic_core-2.23.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0a0137ddf462575d9bce863c4c95bac3493ba8e22f8c28ca94634b4a1d3e2bb4"}, + {file = "pydantic_core-2.23.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:203171e48946c3164fe7691fc349c79241ff8f28306abd4cad5f4f75ed80bc8d"}, + {file = "pydantic_core-2.23.3-cp313-none-win32.whl", hash = "sha256:76bdab0de4acb3f119c2a4bff740e0c7dc2e6de7692774620f7452ce11ca76c8"}, + {file = "pydantic_core-2.23.3-cp313-none-win_amd64.whl", hash = "sha256:37ba321ac2a46100c578a92e9a6aa33afe9ec99ffa084424291d84e456f490c1"}, + {file = "pydantic_core-2.23.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d063c6b9fed7d992bcbebfc9133f4c24b7a7f215d6b102f3e082b1117cddb72c"}, + {file = "pydantic_core-2.23.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6cb968da9a0746a0cf521b2b5ef25fc5a0bee9b9a1a8214e0a1cfaea5be7e8a4"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edbefe079a520c5984e30e1f1f29325054b59534729c25b874a16a5048028d16"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cbaaf2ef20d282659093913da9d402108203f7cb5955020bd8d1ae5a2325d1c4"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb539d7e5dc4aac345846f290cf504d2fd3c1be26ac4e8b5e4c2b688069ff4cf"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e6f33503c5495059148cc486867e1d24ca35df5fc064686e631e314d959ad5b"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04b07490bc2f6f2717b10c3969e1b830f5720b632f8ae2f3b8b1542394c47a8e"}, + {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:03795b9e8a5d7fda05f3873efc3f59105e2dcff14231680296b87b80bb327295"}, + {file = "pydantic_core-2.23.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c483dab0f14b8d3f0df0c6c18d70b21b086f74c87ab03c59250dbf6d3c89baba"}, + {file = "pydantic_core-2.23.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b2682038e255e94baf2c473dca914a7460069171ff5cdd4080be18ab8a7fd6e"}, + {file = "pydantic_core-2.23.3-cp38-none-win32.whl", hash = "sha256:f4a57db8966b3a1d1a350012839c6a0099f0898c56512dfade8a1fe5fb278710"}, + {file = "pydantic_core-2.23.3-cp38-none-win_amd64.whl", hash = "sha256:13dd45ba2561603681a2676ca56006d6dee94493f03d5cadc055d2055615c3ea"}, + {file = "pydantic_core-2.23.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:82da2f4703894134a9f000e24965df73cc103e31e8c31906cc1ee89fde72cbd8"}, + {file = "pydantic_core-2.23.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dd9be0a42de08f4b58a3cc73a123f124f65c24698b95a54c1543065baca8cf0e"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89b731f25c80830c76fdb13705c68fef6a2b6dc494402987c7ea9584fe189f5d"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c6de1ec30c4bb94f3a69c9f5f2182baeda5b809f806676675e9ef6b8dc936f28"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb68b41c3fa64587412b104294b9cbb027509dc2f6958446c502638d481525ef"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c3980f2843de5184656aab58698011b42763ccba11c4a8c35936c8dd6c7068c"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94f85614f2cba13f62c3c6481716e4adeae48e1eaa7e8bac379b9d177d93947a"}, + {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:510b7fb0a86dc8f10a8bb43bd2f97beb63cffad1203071dc434dac26453955cd"}, + {file = "pydantic_core-2.23.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1eba2f7ce3e30ee2170410e2171867ea73dbd692433b81a93758ab2de6c64835"}, + {file = "pydantic_core-2.23.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4b259fd8409ab84b4041b7b3f24dcc41e4696f180b775961ca8142b5b21d0e70"}, + {file = "pydantic_core-2.23.3-cp39-none-win32.whl", hash = "sha256:40d9bd259538dba2f40963286009bf7caf18b5112b19d2b55b09c14dde6db6a7"}, + {file = "pydantic_core-2.23.3-cp39-none-win_amd64.whl", hash = "sha256:5a8cd3074a98ee70173a8633ad3c10e00dcb991ecec57263aacb4095c5efb958"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f399e8657c67313476a121a6944311fab377085ca7f490648c9af97fc732732d"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6b5547d098c76e1694ba85f05b595720d7c60d342f24d5aad32c3049131fa5c4"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0dda0290a6f608504882d9f7650975b4651ff91c85673341789a476b1159f211"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b6e5da855e9c55a0c67f4db8a492bf13d8d3316a59999cfbaf98cc6e401961"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:09e926397f392059ce0afdcac920df29d9c833256354d0c55f1584b0b70cf07e"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:87cfa0ed6b8c5bd6ae8b66de941cece179281239d482f363814d2b986b79cedc"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e61328920154b6a44d98cabcb709f10e8b74276bc709c9a513a8c37a18786cc4"}, + {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce3317d155628301d649fe5e16a99528d5680af4ec7aa70b90b8dacd2d725c9b"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e89513f014c6be0d17b00a9a7c81b1c426f4eb9224b15433f3d98c1a071f8433"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:4f62c1c953d7ee375df5eb2e44ad50ce2f5aff931723b398b8bc6f0ac159791a"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2718443bc671c7ac331de4eef9b673063b10af32a0bb385019ad61dcf2cc8f6c"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d90e08b2727c5d01af1b5ef4121d2f0c99fbee692c762f4d9d0409c9da6541"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b676583fc459c64146debea14ba3af54e540b61762dfc0613dc4e98c3f66eeb"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:50e4661f3337977740fdbfbae084ae5693e505ca2b3130a6d4eb0f2281dc43b8"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:68f4cf373f0de6abfe599a38307f4417c1c867ca381c03df27c873a9069cda25"}, + {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:59d52cf01854cb26c46958552a21acb10dd78a52aa34c86f284e66b209db8cab"}, + {file = "pydantic_core-2.23.3.tar.gz", hash = "sha256:3cb0f65d8b4121c1b015c60104a685feb929a29d7cf204387c7f2688c7974690"}, ] [package.dependencies] @@ -2694,13 +2717,13 @@ files = [ [[package]] name = "pytest" -version = "8.3.2" +version = "8.3.3" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, - {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, ] [package.dependencies] @@ -2764,13 +2787,13 @@ six = ">=1.5" [[package]] name = "pytz" -version = "2024.1" +version = "2024.2" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, ] [[package]] @@ -2859,119 +2882,119 @@ files = [ [[package]] name = "rapidfuzz" -version = "3.9.6" +version = "3.9.7" description = "rapid fuzzy string matching" optional = false python-versions = ">=3.8" files = [ - {file = "rapidfuzz-3.9.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7ed0d0b9c85720f0ae33ac5efc8dc3f60c1489dad5c29d735fbdf2f66f0431f"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f3deff6ab7017ed21b9aec5874a07ad13e6b2a688af055837f88b743c7bfd947"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3f9fc060160507b2704f7d1491bd58453d69689b580cbc85289335b14fe8ca"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e86c2b3827fa6169ad6e7d4b790ce02a20acefb8b78d92fa4249589bbc7a2c"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f982e1aafb4bd8207a5e073b1efef9e68a984e91330e1bbf364f9ed157ed83f0"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9196a51d0ec5eaaaf5bca54a85b7b1e666fc944c332f68e6427503af9fb8c49e"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb5a514064e02585b1cc09da2fe406a6dc1a7e5f3e92dd4f27c53e5f1465ec81"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3a4244f65dbc3580b1275480118c3763f9dc29fc3dd96610560cb5e140a4d4a"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f6ebb910a702e41641e1e1dada3843bc11ba9107a33c98daef6945a885a40a07"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:624fbe96115fb39addafa288d583b5493bc76dab1d34d0ebba9987d6871afdf9"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1c59f1c1507b7a557cf3c410c76e91f097460da7d97e51c985343798e9df7a3c"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f6f0256cb27b6a0fb2e1918477d1b56473cd04acfa245376a342e7c15806a396"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-win32.whl", hash = "sha256:24d473d00d23a30a85802b502b417a7f5126019c3beec91a6739fe7b95388b24"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-win_amd64.whl", hash = "sha256:248f6d2612e661e2b5f9a22bbd5862a1600e720da7bb6ad8a55bb1548cdfa423"}, - {file = "rapidfuzz-3.9.6-cp310-cp310-win_arm64.whl", hash = "sha256:e03fdf0e74f346ed7e798135df5f2a0fb8d6b96582b00ebef202dcf2171e1d1d"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:52e4675f642fbc85632f691b67115a243cd4d2a47bdcc4a3d9a79e784518ff97"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1f93a2f13038700bd245b927c46a2017db3dcd4d4ff94687d74b5123689b873b"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b70500bca460264b8141d8040caee22e9cf0418c5388104ff0c73fb69ee28f"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1e037fb89f714a220f68f902fc6300ab7a33349f3ce8ffae668c3b3a40b0b06"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6792f66d59b86ccfad5e247f2912e255c85c575789acdbad8e7f561412ffed8a"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68d9cffe710b67f1969cf996983608cee4490521d96ea91d16bd7ea5dc80ea98"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63daaeeea76da17fa0bbe7fb05cba8ed8064bb1a0edf8360636557f8b6511961"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d214e063bffa13e3b771520b74f674b22d309b5720d4df9918ff3e0c0f037720"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ed443a2062460f44c0346cb9d269b586496b808c2419bbd6057f54061c9b9c75"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5b0c9b227ee0076fb2d58301c505bb837a290ae99ee628beacdb719f0626d749"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:82c9722b7dfaa71e8b61f8c89fed0482567fb69178e139fe4151fc71ed7df782"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c18897c95c0a288347e29537b63608a8f63a5c3cb6da258ac46fcf89155e723e"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-win32.whl", hash = "sha256:3e910cf08944da381159587709daaad9e59d8ff7bca1f788d15928f3c3d49c2a"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-win_amd64.whl", hash = "sha256:59c4a61fab676d37329fc3a671618a461bfeef53a4d0b8b12e3bc24a14e166f8"}, - {file = "rapidfuzz-3.9.6-cp311-cp311-win_arm64.whl", hash = "sha256:8b4afea244102332973377fddbe54ce844d0916e1c67a5123432291717f32ffa"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:70591b28b218fff351b88cdd7f2359a01a71f9f7f5a2e465ce3715ed4b3c422b"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee2d8355c7343c631a03e57540ea06e8717c19ecf5ff64ea07e0498f7f161457"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:708fb675de0f47b9635d1cc6fbbf80d52cb710d0a1abbfae5c84c46e3abbddc3"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d66c247c2d3bb7a9b60567c395a15a929d0ebcc5f4ceedb55bfa202c38c6e0c"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:15146301b32e6e3d2b7e8146db1a26747919d8b13690c7f83a4cb5dc111b3a08"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7a03da59b6c7c97e657dd5cd4bcaab5fe4a2affd8193958d6f4d938bee36679"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d2c2fe19e392dbc22695b6c3b2510527e2b774647e79936bbde49db7742d6f1"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:91aaee4c94cb45930684f583ffc4e7c01a52b46610971cede33586cf8a04a12e"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3f5702828c10768f9281180a7ff8597da1e5002803e1304e9519dd0f06d79a85"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ccd1763b608fb4629a0b08f00b3c099d6395e67c14e619f6341b2c8429c2f310"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc7a0d4b2cb166bc46d02c8c9f7551cde8e2f3c9789df3827309433ee9771163"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7496f53d40560a58964207b52586783633f371683834a8f719d6d965d223a2eb"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-win32.whl", hash = "sha256:5eb1a9272ca71bc72be5415c2fa8448a6302ea4578e181bb7da9db855b367df0"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-win_amd64.whl", hash = "sha256:0d21fc3c0ca507a1180152a6dbd129ebaef48facde3f943db5c1055b6e6be56a"}, - {file = "rapidfuzz-3.9.6-cp312-cp312-win_arm64.whl", hash = "sha256:43bb27a57c29dc5fa754496ba6a1a508480d21ae99ac0d19597646c16407e9f3"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:83a5ac6547a9d6eedaa212975cb8f2ce2aa07e6e30833b40e54a52b9f9999aa4"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:10f06139142ecde67078ebc9a745965446132b998f9feebffd71acdf218acfcc"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74720c3f24597f76c7c3e2c4abdff55f1664f4766ff5b28aeaa689f8ffba5fab"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce2bce52b5c150878e558a0418c2b637fb3dbb6eb38e4eb27d24aa839920483e"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1611199f178793ca9a060c99b284e11f6d7d124998191f1cace9a0245334d219"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0308b2ad161daf502908a6e21a57c78ded0258eba9a8f5e2545e2dafca312507"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3eda91832201b86e3b70835f91522587725bec329ec68f2f7faf5124091e5ca7"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ece873c093aedd87fc07c2a7e333d52e458dc177016afa1edaf157e82b6914d8"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d97d3c9d209d5c30172baea5966f2129e8a198fec4a1aeb2f92abb6e82a2edb1"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6c4550d0db4931f5ebe9f0678916d1b06f06f5a99ba0b8a48b9457fd8959a7d4"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b6b8dd4af6324fc325d9483bec75ecf9be33e590928c9202d408e4eafff6a0a6"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:16122ae448bc89e2bea9d81ce6cb0f751e4e07da39bd1e70b95cae2493857853"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-win32.whl", hash = "sha256:71cc168c305a4445109cd0d4925406f6e66bcb48fde99a1835387c58af4ecfe9"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-win_amd64.whl", hash = "sha256:59ee78f2ecd53fef8454909cda7400fe2cfcd820f62b8a5d4dfe930102268054"}, - {file = "rapidfuzz-3.9.6-cp313-cp313-win_arm64.whl", hash = "sha256:58b4ce83f223605c358ae37e7a2d19a41b96aa65b1fede99cc664c9053af89ac"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9f469dbc9c4aeaac7dd005992af74b7dff94aa56a3ea063ce64e4b3e6736dd2f"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a9ed7ad9adb68d0fe63a156fe752bbf5f1403ed66961551e749641af2874da92"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39ffe48ffbeedf78d120ddfb9d583f2ca906712159a4e9c3c743c9f33e7b1775"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8502ccdea9084d54b6f737d96a3b60a84e3afed9d016686dc979b49cdac71613"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6a4bec4956e06b170ca896ba055d08d4c457dac745548172443982956a80e118"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2c0488b1c273be39e109ff885ccac0448b2fa74dea4c4dc676bcf756c15f16d6"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0542c036cb6acf24edd2c9e0411a67d7ba71e29e4d3001a082466b86fc34ff30"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0a96b52c9f26857bf009e270dcd829381e7a634f7ddd585fa29b87d4c82146d9"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:6edd3cd7c4aa8c68c716d349f531bd5011f2ca49ddade216bb4429460151559f"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:50b2fb55d7ed58c66d49c9f954acd8fc4a3f0e9fd0ff708299bd8abb68238d0e"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:32848dfe54391636b84cda1823fd23e5a6b1dbb8be0e9a1d80e4ee9903820994"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:29146cb7a1bf69c87e928b31bffa54f066cb65639d073b36e1425f98cccdebc6"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-win32.whl", hash = "sha256:aed13e5edacb0ecadcc304cc66e93e7e77ff24f059c9792ee602c0381808e10c"}, - {file = "rapidfuzz-3.9.6-cp38-cp38-win_amd64.whl", hash = "sha256:af440e36b828922256d0b4d79443bf2cbe5515fc4b0e9e96017ec789b36bb9fc"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:efa674b407424553024522159296690d99d6e6b1192cafe99ca84592faff16b4"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0b40ff76ee19b03ebf10a0a87938f86814996a822786c41c3312d251b7927849"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16a6c7997cb5927ced6f617122eb116ba514ec6b6f60f4803e7925ef55158891"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3f42504bdc8d770987fc3d99964766d42b2a03e4d5b0f891decdd256236bae0"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9462aa2be9f60b540c19a083471fdf28e7cf6434f068b631525b5e6251b35e"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1629698e68f47609a73bf9e73a6da3a4cac20bc710529215cbdf111ab603665b"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68bc7621843d8e9a7fd1b1a32729465bf94b47b6fb307d906da168413331f8d6"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c6254c50f15bc2fcc33cb93a95a81b702d9e6590f432a7f7822b8c7aba9ae288"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7e535a114fa575bc143e175e4ca386a467ec8c42909eff500f5f0f13dc84e3e0"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d50acc0e9d67e4ba7a004a14c42d1b1e8b6ca1c515692746f4f8e7948c673167"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fa742ec60bec53c5a211632cf1d31b9eb5a3c80f1371a46a23ac25a1fa2ab209"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c256fa95d29cbe5aa717db790b231a9a5b49e5983d50dc9df29d364a1db5e35b"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-win32.whl", hash = "sha256:89acbf728b764421036c173a10ada436ecca22999851cdc01d0aa904c70d362d"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-win_amd64.whl", hash = "sha256:c608fcba8b14d86c04cb56b203fed31a96e8a1ebb4ce99e7b70313c5bf8cf497"}, - {file = "rapidfuzz-3.9.6-cp39-cp39-win_arm64.whl", hash = "sha256:d41c00ded0e22e9dba88ff23ebe0dc9d2a5f21ba2f88e185ea7374461e61daa9"}, - {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a65c2f63218ea2dedd56fc56361035e189ca123bd9c9ce63a9bef6f99540d681"}, - {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:680dc78a5f889d3b89f74824b89fe357f49f88ad10d2c121e9c3ad37bac1e4eb"}, - {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8ca862927a0b05bd825e46ddf82d0724ea44b07d898ef639386530bf9b40f15"}, - {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2116fa1fbff21fa52cd46f3cfcb1e193ba1d65d81f8b6e123193451cd3d6c15e"}, - {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dcb7d9afd740370a897c15da61d3d57a8d54738d7c764a99cedb5f746d6a003"}, - {file = "rapidfuzz-3.9.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1a5bd6401bb489e14cbb5981c378d53ede850b7cc84b2464cad606149cc4e17d"}, - {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:29fda70b9d03e29df6fc45cc27cbcc235534b1b0b2900e0a3ae0b43022aaeef5"}, - {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:88144f5f52ae977df9352029488326afadd7a7f42c6779d486d1f82d43b2b1f2"}, - {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:715aeaabafba2709b9dd91acb2a44bad59d60b4616ef90c08f4d4402a3bbca60"}, - {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af26ebd3714224fbf9bebbc27bdbac14f334c15f5d7043699cd694635050d6ca"}, - {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101bd2df438861a005ed47c032631b7857dfcdb17b82beeeb410307983aac61d"}, - {file = "rapidfuzz-3.9.6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2185e8e29809b97ad22a7f99281d1669a89bdf5fa1ef4ef1feca36924e675367"}, - {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9e53c72d08f0e9c6e4a369e52df5971f311305b4487690c62e8dd0846770260c"}, - {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a0cb157162f0cdd62e538c7bd298ff669847fc43a96422811d5ab933f4c16c3a"}, - {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bb5ff2bd48132ed5e7fbb8f619885facb2e023759f2519a448b2c18afe07e5d"}, - {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dc37f601865e8407e3a8037ffbc3afe0b0f837b2146f7632bd29d087385babe"}, - {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a657eee4b94668faf1fa2703bdd803654303f7e468eb9ba10a664d867ed9e779"}, - {file = "rapidfuzz-3.9.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:51be6ab5b1d5bb32abd39718f2a5e3835502e026a8272d139ead295c224a6f5e"}, - {file = "rapidfuzz-3.9.6.tar.gz", hash = "sha256:5cf2a7d621e4515fee84722e93563bf77ff2cbe832a77a48b81f88f9e23b9e8d"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ccf68e30b80e903f2309f90a438dbd640dd98e878eeb5ad361a288051ee5b75c"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:696a79018ef989bf1c9abd9005841cee18005ccad4748bad8a4c274c47b6241a"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4eebf6c93af0ae866c22b403a84747580bb5c10f0d7b51c82a87f25405d4dcb"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e9125377fa3d21a8abd4fbdbcf1c27be73e8b1850f0b61b5b711364bf3b59db"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c12d180b17a22d107c8747de9c68d0b9c1d15dcda5445ff9bf9f4ccfb67c3e16"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1318d42610c26dcd68bd3279a1bf9e3605377260867c9a8ed22eafc1bd93a7c"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5fa6e3c6e0333051c1f3a49f0807b3366f4131c8d6ac8c3e05fd0d0ce3755c"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fcf79b686962d7bec458a0babc904cb4fa319808805e036b9d5a531ee6b9b835"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8b01153c7466d0bad48fba77a303d5a768e66f24b763853469f47220b3de4661"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:94baaeea0b4f8632a6da69348b1e741043eba18d4e3088d674d3f76586b6223d"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6c5b32875646cb7f60c193ade99b2e4b124f19583492115293cd00f6fb198b17"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:110b6294396bc0a447648627479c9320f095c2034c0537f687592e0f58622638"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-win32.whl", hash = "sha256:3445a35c4c8d288f2b2011eb61bce1227c633ce85a3154e727170f37c0266bb2"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-win_amd64.whl", hash = "sha256:0d1415a732ee75e74a90af12020b77a0b396b36c60afae1bde3208a78cd2c9fc"}, + {file = "rapidfuzz-3.9.7-cp310-cp310-win_arm64.whl", hash = "sha256:836f4d88b8bd0fff2ebe815dcaab8aa6c8d07d1d566a7e21dd137cf6fe11ed5b"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d098ce6162eb5e48fceb0745455bc950af059df6113eec83e916c129fca11408"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:048d55d36c02c6685a2b2741688503c3d15149694506655b6169dcfd3b6c2585"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c33211cfff9aec425bb1bfedaf94afcf337063aa273754f22779d6dadebef4c2"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6d9db2fa4e9be171e9bb31cf2d2575574774966b43f5b951062bb2e67885852"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4e049d5ad61448c9a020d1061eba20944c4887d720c4069724beb6ea1692507"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cfa74aac64c85898b93d9c80bb935a96bf64985e28d4ee0f1a3d1f3bf11a5106"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:965693c2e9efd425b0f059f5be50ef830129f82892fa1858e220e424d9d0160f"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8501000a5eb8037c4b56857724797fe5a8b01853c363de91c8d0d0ad56bef319"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d92c552c6b7577402afdd547dcf5d31ea6c8ae31ad03f78226e055cfa37f3c6"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1ee2086f490cb501d86b7e386c1eb4e3a0ccbb0c99067089efaa8c79012c8952"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1de91e7fd7f525e10ea79a6e62c559d1b0278ec097ad83d9da378b6fab65a265"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a4da514d13f4433e16960a17f05b67e0af30ac771719c9a9fb877e5004f74477"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-win32.whl", hash = "sha256:a40184c67db8252593ec518e17fb8a6e86d7259dc9f2d6c0bf4ff4db8cf1ad4b"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-win_amd64.whl", hash = "sha256:c4f28f1930b09a2c300357d8465b388cecb7e8b2f454a5d5425561710b7fd07f"}, + {file = "rapidfuzz-3.9.7-cp311-cp311-win_arm64.whl", hash = "sha256:675b75412a943bb83f1f53e2e54fd18c80ef15ed642dc6eb0382d1949419d904"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1ef6a1a8f0b12f8722f595f15c62950c9a02d5abc64742561299ffd49f6c6944"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:32532af1d70c6ec02ea5ac7ee2766dfff7c8ae8c761abfe8da9e527314e634e8"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae1a38bade755aa9dd95a81cda949e1bf9cd92b79341ccc5e2189c9e7bdfc5ec"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d73ee2df41224c87336448d279b5b6a3a75f36e41dd3dcf538c0c9cce36360d8"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be3a1fc3e2ab3bdf93dc0c83c00acca8afd2a80602297d96cf4a0ba028333cdf"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:603f48f621272a448ff58bb556feb4371252a02156593303391f5c3281dfaeac"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:268f8e1ca50fc61c0736f3fe9d47891424adf62d96ed30196f30f4bd8216b41f"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f8bf3f0d02935751d8660abda6044821a861f6229f7d359f98bcdcc7e66c39b"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b997ff3b39d4cee9fb025d6c46b0a24bd67595ce5a5b652a97fb3a9d60beb651"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ca66676c8ef6557f9b81c5b2b519097817a7c776a6599b8d6fcc3e16edd216fe"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:35d3044cb635ca6b1b2b7b67b3597bd19f34f1753b129eb6d2ae04cf98cd3945"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5a93c9e60904cb76e7aefef67afffb8b37c4894f81415ed513db090f29d01101"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-win32.whl", hash = "sha256:579d107102c0725f7c79b4e79f16d3cf4d7c9208f29c66b064fa1fd4641d5155"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-win_amd64.whl", hash = "sha256:953b3780765c8846866faf891ee4290f6a41a6dacf4fbcd3926f78c9de412ca6"}, + {file = "rapidfuzz-3.9.7-cp312-cp312-win_arm64.whl", hash = "sha256:7c20c1474b068c4bd45bf2fd0ad548df284f74e9a14a68b06746c56e3aa8eb70"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fde81b1da9a947f931711febe2e2bee694e891f6d3e6aa6bc02c1884702aea19"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:47e92c155a14f44511ea8ebcc6bc1535a1fe8d0a7d67ad3cc47ba61606df7bcf"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8772b745668260c5c4d069c678bbaa68812e6c69830f3771eaad521af7bc17f8"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:578302828dd97ee2ba507d2f71d62164e28d2fc7bc73aad0d2d1d2afc021a5d5"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc3e6081069eea61593f1d6839029da53d00c8c9b205c5534853eaa3f031085c"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0b1c2d504eddf97bc0f2eba422c8915576dbf025062ceaca2d68aecd66324ad9"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb76e5a21034f0307c51c5a2fc08856f698c53a4c593b17d291f7d6e9d09ca3"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d4ba2318ef670ce505f42881a5d2af70f948124646947341a3c6ccb33cd70369"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:057bb03f39e285047d7e9412e01ecf31bb2d42b9466a5409d715d587460dd59b"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a8feac9006d5c9758438906f093befffc4290de75663dbb2098461df7c7d28dd"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95b8292383e717e10455f2c917df45032b611141e43d1adf70f71b1566136b11"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e9fbf659537d246086d0297628b3795dc3e4a384101ecc01e5791c827b8d7345"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-win32.whl", hash = "sha256:1dc516ac6d32027be2b0196bedf6d977ac26debd09ca182376322ad620460feb"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-win_amd64.whl", hash = "sha256:b4f86e09d3064dca0b014cd48688964036a904a2d28048f00c8f4640796d06a8"}, + {file = "rapidfuzz-3.9.7-cp313-cp313-win_arm64.whl", hash = "sha256:19c64d8ddb2940b42a4567b23f1681af77f50a5ff6c9b8e85daba079c210716e"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fbda3dd68d8b28ccb20ffb6f756fefd9b5ba570a772bedd7643ed441f5793308"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2379e0b2578ad3ac7004f223251550f08bca873ff76c169b09410ec562ad78d8"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d1eff95362f993b0276fd3839aee48625b09aac8938bb0c23b40d219cba5dc5"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd9360e30041690912525a210e48a897b49b230768cc8af1c702e5395690464f"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a93cd834b3c315ab437f0565ee3a2f42dd33768dc885ccbabf9710b131cf70d2"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff196996240db7075f62c7bc4506f40a3c80cd4ae3ab0e79ac6892283a90859"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948dcee7aaa1cd14358b2a7ef08bf0be42bf89049c3a906669874a715fc2c937"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d95751f505a301af1aaf086c19f34536056d6c8efa91b2240de532a3db57b543"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:90db86fa196eecf96cb6db09f1083912ea945c50c57188039392d810d0b784e1"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:3171653212218a162540a3c8eb8ae7d3dcc8548540b69eaecaf3b47c14d89c90"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:36dd6e820379c37a1ffefc8a52b648758e867cd9d78ee5b5dc0c9a6a10145378"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:7b702de95666a1f7d5c6b47eacadfe2d2794af3742d63d2134767d13e5d1c713"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-win32.whl", hash = "sha256:9030e7238c0df51aed5c9c5ed8eee2bdd47a2ae788e562c1454af2851c3d1906"}, + {file = "rapidfuzz-3.9.7-cp38-cp38-win_amd64.whl", hash = "sha256:f847fb0fbfb72482b1c05c59cbb275c58a55b73708a7f77a83f8035ee3c86497"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:97f2ce529d2a70a60c290f6ab269a2bbf1d3b47b9724dccc84339b85f7afb044"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e2957fdad10bb83b1982b02deb3604a3f6911a5e545f518b59c741086f92d152"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d5262383634626eb45c536017204b8163a03bc43bda880cf1bdd7885db9a163"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:364587827d7cbd41afa0782adc2d2d19e3f07d355b0750a02a8e33ad27a9c368"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecc24af7f905f3d6efb371a01680116ffea8d64e266618fb9ad1602a9b4f7934"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9dc86aa6b29d174713c5f4caac35ffb7f232e3e649113e8d13812b35ab078228"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3dcfbe7266e74a707173a12a7b355a531f2dcfbdb32f09468e664330da14874"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b23806fbdd6b510ba9ac93bb72d503066263b0fba44b71b835be9f063a84025f"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5551d68264c1bb6943f542da83a4dc8940ede52c5847ef158698799cc28d14f5"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:13d8675a1fa7e2b19650ca7ef9a6ec01391d4bb12ab9e0793e8eb024538b4a34"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9b6a5de507b9be6de688dae40143b656f7a93b10995fb8bd90deb555e7875c60"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:111a20a3c090cf244d9406e60500b6c34b2375ba3a5009e2b38fd806fe38e337"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-win32.whl", hash = "sha256:22589c0b8ccc6c391ce7f776c93a8c92c96ab8d34e1a19f1bd2b12a235332632"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-win_amd64.whl", hash = "sha256:6f83221db5755b8f34222e40607d87f1176a8d5d4dbda4a55a0f0b67d588a69c"}, + {file = "rapidfuzz-3.9.7-cp39-cp39-win_arm64.whl", hash = "sha256:3665b92e788578c3bb334bd5b5fa7ee1a84bafd68be438e3110861d1578c63a0"}, + {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7df9c2194c7ec930b33c991c55dbd0c10951bd25800c0b7a7b571994ebbced5"}, + {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:68bd888eafd07b09585dcc8bc2716c5ecdb7eed62827470664d25588982b2873"}, + {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1230e0f9026851a6a432beaa0ce575dda7b39fe689b576f99a0704fbb81fc9c"}, + {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3b36e1c61b796ae1777f3e9e11fd39898b09d351c9384baf6e3b7e6191d8ced"}, + {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dba13d86806fcf3fe9c9919f58575e0090eadfb89c058bde02bcc7ab24e4548"}, + {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1f1a33e84056b7892c721d84475d3bde49a145126bc4c6efe0d6d0d59cb31c29"}, + {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3492c7a42b7fa9f0051d7fcce9893e95ed91c97c9ec7fb64346f3e070dd318ed"}, + {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:ece45eb2af8b00f90d10f7419322e8804bd42fb1129026f9bfe712c37508b514"}, + {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcd14cf4876f04b488f6e54a7abd3e9b31db5f5a6aba0ce90659917aaa8c088"}, + {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:521c58c72ed8a612b25cda378ff10dee17e6deb4ee99a070b723519a345527b9"}, + {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18669bb6cdf7d40738526d37e550df09ba065b5a7560f3d802287988b6cb63cf"}, + {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:7abe2dbae81120a64bb4f8d3fcafe9122f328c9f86d7f327f174187a5af4ed86"}, + {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a3c0783910911f4f24655826d007c9f4360f08107410952c01ee3df98c713eb2"}, + {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:03126f9a040ff21d2a110610bfd6b93b79377ce8b4121edcb791d61b7df6eec5"}, + {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:591908240f4085e2ade5b685c6e8346e2ed44932cffeaac2fb32ddac95b55c7f"}, + {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9012d86c6397edbc9da4ac0132de7f8ee9d6ce857f4194d5684c4ddbcdd1c5c"}, + {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df596ddd3db38aa513d4c0995611267b3946e7cbe5a8761b50e9306dfec720ee"}, + {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3ed5adb752f4308fcc8f4fb6f8eb7aa4082f9d12676fda0a74fa5564242a8107"}, + {file = "rapidfuzz-3.9.7.tar.gz", hash = "sha256:f1c7296534c1afb6f495aa95871f14ccdc197c6db42965854e483100df313030"}, ] [package.extras] @@ -2979,31 +3002,31 @@ full = ["numpy"] [[package]] name = "ray" -version = "2.34.0" +version = "2.35.0" description = "Ray provides a simple, universal API for building distributed applications." optional = false python-versions = ">=3.8" files = [ - {file = "ray-2.34.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:fb994a9f45aacb6edac32d97327f145a99c0db0b576c6c2217902b44e8fd8565"}, - {file = "ray-2.34.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6acb3d712e3f001ed8e3c0e1403f65e550adc8b558098f188d43b427e1f024c8"}, - {file = "ray-2.34.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a2e909445fdddc7e9f318894aa3d9b5a9e79d3b4320e9c84b3703d1df908d359"}, - {file = "ray-2.34.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:76715a92dc10d7f090bdfb490f6e6d497cc8d212da78174d0de516ba7021cee4"}, - {file = "ray-2.34.0-cp310-cp310-win_amd64.whl", hash = "sha256:3ca22ebb25f483bff60f2b64d1b33c4f156754d73c1c183808e0380c515f0ff9"}, - {file = "ray-2.34.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:bb869c717057fa23010ced7be0bdfda3b260583dfd9fe969e7de3ccd3bee1e03"}, - {file = "ray-2.34.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:590d0676bedd72111e7df78bb71eef93826a86de0d4675739471080ffd463d02"}, - {file = "ray-2.34.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:2315ca4eeb2c87264a7be38acf128803dffb2af2476e6322acd3f889129e4575"}, - {file = "ray-2.34.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:b608d6865600cbd3516882a19bb3b713b6f161b150ce1ee31d92084d09408b9a"}, - {file = "ray-2.34.0-cp311-cp311-win_amd64.whl", hash = "sha256:5125d325f6c3605de16182e60ccb4cd6a102a812665c119a71f19d07f20080d8"}, - {file = "ray-2.34.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:d1f8b03f7be489104c32731a3898eae41ffe1fd29c1303bbd77805e1961a1324"}, - {file = "ray-2.34.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a332323d986d3faa9c539c3c979aa936bc252a0da9b20bdb48a6f634a1ff5200"}, - {file = "ray-2.34.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:230eef15981cec90e868eff32ad5756e4fee53c2855c890a2d1243617df73c8e"}, - {file = "ray-2.34.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:aeaac5ce06572b15947c995b6d65a6c8706a1b2336eebed5b98e9073fe94abe0"}, - {file = "ray-2.34.0-cp312-cp312-win_amd64.whl", hash = "sha256:9c48fcf7cf7b3d0886f846d45c1f73de91d70486d52d10e0f0ec017660613fec"}, - {file = "ray-2.34.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:93dfab2256e8bab153a10d4af8e82d124afe9a950ac5435c5d33a4637ed0cbb8"}, - {file = "ray-2.34.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:37c4840e3953bff40900a189fcf2a866581fd5c11e72b8c532a593a200450bb4"}, - {file = "ray-2.34.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:42df897f2bf368fa1d74c6672f36a9fae4ebcf7f1495716f9cca445415c51f55"}, - {file = "ray-2.34.0-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:7c11a58daf074093d5b5a31de62f3dc0e55a7649edcc16a902eed6dc16fc6a4f"}, - {file = "ray-2.34.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cbf7b38b97f80f95ca1c841d783a577f1618c15c6fbf32574dd0efa4e4b12bd"}, + {file = "ray-2.35.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1e7e2d2e987be728a81821b6fd2bccb23e4d8a6cca8417db08b24f06a08d8476"}, + {file = "ray-2.35.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8bd48be4c362004d31e5df072fd58b929efc67adfefc0adece41483b15f84539"}, + {file = "ray-2.35.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ef41e9254f3e18a90a8cf13fac9e35ac086eb778079ab6c76a37d3a6059186c5"}, + {file = "ray-2.35.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:1994aaf9996ffc45019856545e817d527ad572762f1af76ad669ae4e786fcfd6"}, + {file = "ray-2.35.0-cp310-cp310-win_amd64.whl", hash = "sha256:d3b7a7d73f818e249064460ffa95402ebd852bf97d9ec6167b8b0d95be03da9f"}, + {file = "ray-2.35.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:e29754fac4b69a9cb0d089841af59ec6fb10b5d4a248b7c579d319ca2ed1c96f"}, + {file = "ray-2.35.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7a606c8ca53c64fc496703e9fd15d1a1ffb50e6b457a33d3622be2f13fc30a5"}, + {file = "ray-2.35.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:ac561e20a62ce941b74d02a0b92b7765c6ba87cc22e24f34f64ded2c454ba64e"}, + {file = "ray-2.35.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:587af570cbe5f6cedca854f15107740e63c67207bee900713cb2ee38f6ebf20f"}, + {file = "ray-2.35.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e406cce41679790146d4d2b1b0cb0b413ca35276e43b68ee796366169c1dbde"}, + {file = "ray-2.35.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:eb86355a3a0e794e2f1dbd5a84805dddfca64921ad0999b7fa5276e40d243692"}, + {file = "ray-2.35.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7b746913268d5ea5e19bff0eb6bdc7e0538036892a8b57c08411787481195df2"}, + {file = "ray-2.35.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:e2ccfd144180f03d38b02a81afdac2b437f27e46736bf2653a1f0e8d67ea56cd"}, + {file = "ray-2.35.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:2ca1a0de41d4462fd764598a5981cf55fc955599f38f9a1ae10868e94c6dd80d"}, + {file = "ray-2.35.0-cp312-cp312-win_amd64.whl", hash = "sha256:c5600f745bb0e4df840a5cd51e82b1acf517f73505df9869fe3e369966956129"}, + {file = "ray-2.35.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:5e98d2bac394b806109782f316740c5b3c3f10a50117c8e28200a528df734928"}, + {file = "ray-2.35.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c395b46efd0dd871424b1b8d6baf99f91983946fbe351ff66ea34e8919daff29"}, + {file = "ray-2.35.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:4e6314bfdb8c73abcac13f41cc3d935dd1a8ad94c65005a4bfdc4861dc8b070d"}, + {file = "ray-2.35.0-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:70a154e3071cbb4d7a9b68f2dcf491b96b760be0ec6e2ef11a766071ac6acfef"}, + {file = "ray-2.35.0-cp39-cp39-win_amd64.whl", hash = "sha256:dd8bdf9d16989684486db9ebcd23679140e2d6769fcdaadc05e8cac6b373023e"}, ] [package.dependencies] @@ -3019,10 +3042,12 @@ pyyaml = "*" requests = "*" [package.extras] +adag = ["cupy-cuda12x"] air = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "fastapi", "fsspec", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "memray", "numpy (>=1.20)", "opencensus", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "requests", "smart-open", "starlette", "tensorboardX (>=1.9)", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] -all = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "dm-tree", "fastapi", "fsspec", "grpcio (!=1.56.0)", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "gymnasium (==0.28.1)", "lz4", "memray", "numpy (>=1.20)", "opencensus", "opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "pyyaml", "ray-cpp (==2.34.0)", "requests", "rich", "scikit-image", "scipy", "smart-open", "starlette", "tensorboardX (>=1.9)", "typer", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] +all = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "cupy-cuda12x", "dm-tree", "fastapi", "fsspec", "grpcio (!=1.56.0)", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "gymnasium (==0.28.1)", "lz4", "memray", "numpy (>=1.20)", "opencensus", "opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "pyyaml", "requests", "rich", "scikit-image", "scipy", "smart-open", "starlette", "tensorboardX (>=1.9)", "typer", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] +all-cpp = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "cupy-cuda12x", "dm-tree", "fastapi", "fsspec", "grpcio (!=1.56.0)", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "gymnasium (==0.28.1)", "lz4", "memray", "numpy (>=1.20)", "opencensus", "opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "pyyaml", "ray-cpp (==2.35.0)", "requests", "rich", "scikit-image", "scipy", "smart-open", "starlette", "tensorboardX (>=1.9)", "typer", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] client = ["grpcio (!=1.56.0)"] -cpp = ["ray-cpp (==2.34.0)"] +cpp = ["ray-cpp (==2.35.0)"] data = ["fsspec", "numpy (>=1.20)", "pandas (>=1.3)", "pyarrow (>=6.0.1)"] default = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "memray", "opencensus", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "requests", "smart-open", "virtualenv (>=20.0.24,!=20.21.1)"] observability = ["opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk"] @@ -3275,13 +3300,13 @@ jeepney = ">=0.6" [[package]] name = "sentry-sdk" -version = "2.13.0" +version = "2.14.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" files = [ - {file = "sentry_sdk-2.13.0-py2.py3-none-any.whl", hash = "sha256:6beede8fc2ab4043da7f69d95534e320944690680dd9a963178a49de71d726c6"}, - {file = "sentry_sdk-2.13.0.tar.gz", hash = "sha256:8d4a576f7a98eb2fdb40e13106e41f330e5c79d72a68be1316e7852cf4995260"}, + {file = "sentry_sdk-2.14.0-py2.py3-none-any.whl", hash = "sha256:b8bc3dc51d06590df1291b7519b85c75e2ced4f28d9ea655b6d54033503b5bf4"}, + {file = "sentry_sdk-2.14.0.tar.gz", hash = "sha256:1e0e2eaf6dad918c7d1e0edac868a7bf20017b177f242cefe2a6bcd47955961d"}, ] [package.dependencies] @@ -3350,19 +3375,23 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] [[package]] name = "setuptools" -version = "73.0.1" +version = "74.1.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-73.0.1-py3-none-any.whl", hash = "sha256:b208925fcb9f7af924ed2dc04708ea89791e24bde0d3020b27df0e116088b34e"}, - {file = "setuptools-73.0.1.tar.gz", hash = "sha256:d59a3e788ab7e012ab2c4baed1b376da6366883ee20d7a5fc426816e3d7b1193"}, + {file = "setuptools-74.1.2-py3-none-any.whl", hash = "sha256:5f4c08aa4d3ebcb57a50c33b1b07e94315d7fc7230f7115e47fc99776c8ce308"}, + {file = "setuptools-74.1.2.tar.gz", hash = "sha256:95b40ed940a1c67eb70fc099094bd6e99c6ee7c23aa2306f4d2697ba7916f9c6"}, ] [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] [[package]] name = "shellingham" @@ -3399,60 +3428,60 @@ files = [ [[package]] name = "sqlalchemy" -version = "2.0.32" +version = "2.0.34" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.32-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0c9045ecc2e4db59bfc97b20516dfdf8e41d910ac6fb667ebd3a79ea54084619"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1467940318e4a860afd546ef61fefb98a14d935cd6817ed07a228c7f7c62f389"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5954463675cb15db8d4b521f3566a017c8789222b8316b1e6934c811018ee08b"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:167e7497035c303ae50651b351c28dc22a40bb98fbdb8468cdc971821b1ae533"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b27dfb676ac02529fb6e343b3a482303f16e6bc3a4d868b73935b8792edb52d0"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bf2360a5e0f7bd75fa80431bf8ebcfb920c9f885e7956c7efde89031695cafb8"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-win32.whl", hash = "sha256:306fe44e754a91cd9d600a6b070c1f2fadbb4a1a257b8781ccf33c7067fd3e4d"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-win_amd64.whl", hash = "sha256:99db65e6f3ab42e06c318f15c98f59a436f1c78179e6a6f40f529c8cc7100b22"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:21b053be28a8a414f2ddd401f1be8361e41032d2ef5884b2f31d31cb723e559f"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b178e875a7a25b5938b53b006598ee7645172fccafe1c291a706e93f48499ff5"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723a40ee2cc7ea653645bd4cf024326dea2076673fc9d3d33f20f6c81db83e1d"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:295ff8689544f7ee7e819529633d058bd458c1fd7f7e3eebd0f9268ebc56c2a0"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49496b68cd190a147118af585173ee624114dfb2e0297558c460ad7495f9dfe2"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:acd9b73c5c15f0ec5ce18128b1fe9157ddd0044abc373e6ecd5ba376a7e5d961"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-win32.whl", hash = "sha256:9365a3da32dabd3e69e06b972b1ffb0c89668994c7e8e75ce21d3e5e69ddef28"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-win_amd64.whl", hash = "sha256:8bd63d051f4f313b102a2af1cbc8b80f061bf78f3d5bd0843ff70b5859e27924"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6bab3db192a0c35e3c9d1560eb8332463e29e5507dbd822e29a0a3c48c0a8d92"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:19d98f4f58b13900d8dec4ed09dd09ef292208ee44cc9c2fe01c1f0a2fe440e9"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd33c61513cb1b7371fd40cf221256456d26a56284e7d19d1f0b9f1eb7dd7e8"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d6ba0497c1d066dd004e0f02a92426ca2df20fac08728d03f67f6960271feec"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2b6be53e4fde0065524f1a0a7929b10e9280987b320716c1509478b712a7688c"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:916a798f62f410c0b80b63683c8061f5ebe237b0f4ad778739304253353bc1cb"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-win32.whl", hash = "sha256:31983018b74908ebc6c996a16ad3690301a23befb643093fcfe85efd292e384d"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-win_amd64.whl", hash = "sha256:4363ed245a6231f2e2957cccdda3c776265a75851f4753c60f3004b90e69bfeb"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b8afd5b26570bf41c35c0121801479958b4446751a3971fb9a480c1afd85558e"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c750987fc876813f27b60d619b987b057eb4896b81117f73bb8d9918c14f1cad"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada0102afff4890f651ed91120c1120065663506b760da4e7823913ebd3258be"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:78c03d0f8a5ab4f3034c0e8482cfcc415a3ec6193491cfa1c643ed707d476f16"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:3bd1cae7519283ff525e64645ebd7a3e0283f3c038f461ecc1c7b040a0c932a1"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-win32.whl", hash = "sha256:01438ebcdc566d58c93af0171c74ec28efe6a29184b773e378a385e6215389da"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-win_amd64.whl", hash = "sha256:4979dc80fbbc9d2ef569e71e0896990bc94df2b9fdbd878290bd129b65ab579c"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c742be912f57586ac43af38b3848f7688863a403dfb220193a882ea60e1ec3a"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:62e23d0ac103bcf1c5555b6c88c114089587bc64d048fef5bbdb58dfd26f96da"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:251f0d1108aab8ea7b9aadbd07fb47fb8e3a5838dde34aa95a3349876b5a1f1d"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef18a84e5116340e38eca3e7f9eeaaef62738891422e7c2a0b80feab165905f"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3eb6a97a1d39976f360b10ff208c73afb6a4de86dd2a6212ddf65c4a6a2347d5"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0c1c9b673d21477cec17ab10bc4decb1322843ba35b481585facd88203754fc5"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-win32.whl", hash = "sha256:c41a2b9ca80ee555decc605bd3c4520cc6fef9abde8fd66b1cf65126a6922d65"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-win_amd64.whl", hash = "sha256:8a37e4d265033c897892279e8adf505c8b6b4075f2b40d77afb31f7185cd6ecd"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:52fec964fba2ef46476312a03ec8c425956b05c20220a1a03703537824b5e8e1"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:328429aecaba2aee3d71e11f2477c14eec5990fb6d0e884107935f7fb6001632"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85a01b5599e790e76ac3fe3aa2f26e1feba56270023d6afd5550ed63c68552b3"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aaf04784797dcdf4c0aa952c8d234fa01974c4729db55c45732520ce12dd95b4"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4488120becf9b71b3ac718f4138269a6be99a42fe023ec457896ba4f80749525"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:14e09e083a5796d513918a66f3d6aedbc131e39e80875afe81d98a03312889e6"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-win32.whl", hash = "sha256:0d322cc9c9b2154ba7e82f7bf25ecc7c36fbe2d82e2933b3642fc095a52cfc78"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-win_amd64.whl", hash = "sha256:7dd8583df2f98dea28b5cd53a1beac963f4f9d087888d75f22fcc93a07cf8d84"}, - {file = "SQLAlchemy-2.0.32-py3-none-any.whl", hash = "sha256:e567a8793a692451f706b363ccf3c45e056b67d90ead58c3bc9471af5d212202"}, - {file = "SQLAlchemy-2.0.32.tar.gz", hash = "sha256:c1b88cc8b02b6a5f0efb0345a03672d4c897dc7d92585176f88c67346f565ea8"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:95d0b2cf8791ab5fb9e3aa3d9a79a0d5d51f55b6357eecf532a120ba3b5524db"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:243f92596f4fd4c8bd30ab8e8dd5965afe226363d75cab2468f2c707f64cd83b"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ea54f7300553af0a2a7235e9b85f4204e1fc21848f917a3213b0e0818de9a24"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:173f5f122d2e1bff8fbd9f7811b7942bead1f5e9f371cdf9e670b327e6703ebd"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:196958cde924a00488e3e83ff917be3b73cd4ed8352bbc0f2989333176d1c54d"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd90c221ed4e60ac9d476db967f436cfcecbd4ef744537c0f2d5291439848768"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-win32.whl", hash = "sha256:3166dfff2d16fe9be3241ee60ece6fcb01cf8e74dd7c5e0b64f8e19fab44911b"}, + {file = "SQLAlchemy-2.0.34-cp310-cp310-win_amd64.whl", hash = "sha256:6831a78bbd3c40f909b3e5233f87341f12d0b34a58f14115c9e94b4cdaf726d3"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7db3db284a0edaebe87f8f6642c2b2c27ed85c3e70064b84d1c9e4ec06d5d84"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:430093fce0efc7941d911d34f75a70084f12f6ca5c15d19595c18753edb7c33b"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79cb400c360c7c210097b147c16a9e4c14688a6402445ac848f296ade6283bbc"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1b30f31a36c7f3fee848391ff77eebdd3af5750bf95fbf9b8b5323edfdb4ec"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fddde2368e777ea2a4891a3fb4341e910a056be0bb15303bf1b92f073b80c02"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80bd73ea335203b125cf1d8e50fef06be709619eb6ab9e7b891ea34b5baa2287"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-win32.whl", hash = "sha256:6daeb8382d0df526372abd9cb795c992e18eed25ef2c43afe518c73f8cccb721"}, + {file = "SQLAlchemy-2.0.34-cp311-cp311-win_amd64.whl", hash = "sha256:5bc08e75ed11693ecb648b7a0a4ed80da6d10845e44be0c98c03f2f880b68ff4"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:53e68b091492c8ed2bd0141e00ad3089bcc6bf0e6ec4142ad6505b4afe64163e"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bcd18441a49499bf5528deaa9dee1f5c01ca491fc2791b13604e8f972877f812"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:165bbe0b376541092bf49542bd9827b048357f4623486096fc9aaa6d4e7c59a2"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3330415cd387d2b88600e8e26b510d0370db9b7eaf984354a43e19c40df2e2b"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97b850f73f8abbffb66ccbab6e55a195a0eb655e5dc74624d15cff4bfb35bd74"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee4c6917857fd6121ed84f56d1dc78eb1d0e87f845ab5a568aba73e78adf83"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-win32.whl", hash = "sha256:fbb034f565ecbe6c530dff948239377ba859420d146d5f62f0271407ffb8c580"}, + {file = "SQLAlchemy-2.0.34-cp312-cp312-win_amd64.whl", hash = "sha256:707c8f44931a4facd4149b52b75b80544a8d824162602b8cd2fe788207307f9a"}, + {file = "SQLAlchemy-2.0.34-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:24af3dc43568f3780b7e1e57c49b41d98b2d940c1fd2e62d65d3928b6f95f021"}, + {file = "SQLAlchemy-2.0.34-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e60ed6ef0a35c6b76b7640fe452d0e47acc832ccbb8475de549a5cc5f90c2c06"}, + {file = "SQLAlchemy-2.0.34-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:413c85cd0177c23e32dee6898c67a5f49296640041d98fddb2c40888fe4daa2e"}, + {file = "SQLAlchemy-2.0.34-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:25691f4adfb9d5e796fd48bf1432272f95f4bbe5f89c475a788f31232ea6afba"}, + {file = "SQLAlchemy-2.0.34-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:526ce723265643dbc4c7efb54f56648cc30e7abe20f387d763364b3ce7506c82"}, + {file = "SQLAlchemy-2.0.34-cp37-cp37m-win32.whl", hash = "sha256:13be2cc683b76977a700948411a94c67ad8faf542fa7da2a4b167f2244781cf3"}, + {file = "SQLAlchemy-2.0.34-cp37-cp37m-win_amd64.whl", hash = "sha256:e54ef33ea80d464c3dcfe881eb00ad5921b60f8115ea1a30d781653edc2fd6a2"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:43f28005141165edd11fbbf1541c920bd29e167b8bbc1fb410d4fe2269c1667a"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b68094b165a9e930aedef90725a8fcfafe9ef95370cbb54abc0464062dbf808f"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1e03db964e9d32f112bae36f0cc1dcd1988d096cfd75d6a588a3c3def9ab2b"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:203d46bddeaa7982f9c3cc693e5bc93db476ab5de9d4b4640d5c99ff219bee8c"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ae92bebca3b1e6bd203494e5ef919a60fb6dfe4d9a47ed2453211d3bd451b9f5"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9661268415f450c95f72f0ac1217cc6f10256f860eed85c2ae32e75b60278ad8"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-win32.whl", hash = "sha256:895184dfef8708e15f7516bd930bda7e50ead069280d2ce09ba11781b630a434"}, + {file = "SQLAlchemy-2.0.34-cp38-cp38-win_amd64.whl", hash = "sha256:6e7cde3a2221aa89247944cafb1b26616380e30c63e37ed19ff0bba5e968688d"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dbcdf987f3aceef9763b6d7b1fd3e4ee210ddd26cac421d78b3c206d07b2700b"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ce119fc4ce0d64124d37f66a6f2a584fddc3c5001755f8a49f1ca0a177ef9796"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a17d8fac6df9835d8e2b4c5523666e7051d0897a93756518a1fe101c7f47f2f0"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ebc11c54c6ecdd07bb4efbfa1554538982f5432dfb8456958b6d46b9f834bb7"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e6965346fc1491a566e019a4a1d3dfc081ce7ac1a736536367ca305da6472a8"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:220574e78ad986aea8e81ac68821e47ea9202b7e44f251b7ed8c66d9ae3f4278"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-win32.whl", hash = "sha256:b75b00083e7fe6621ce13cfce9d4469c4774e55e8e9d38c305b37f13cf1e874c"}, + {file = "SQLAlchemy-2.0.34-cp39-cp39-win_amd64.whl", hash = "sha256:c29d03e0adf3cc1a8c3ec62d176824972ae29b67a66cbb18daff3062acc6faa8"}, + {file = "SQLAlchemy-2.0.34-py3-none-any.whl", hash = "sha256:7286c353ee6475613d8beff83167374006c6b3e3f0e6491bfe8ca610eb1dec0f"}, + {file = "sqlalchemy-2.0.34.tar.gz", hash = "sha256:10d8f36990dd929690666679b0f42235c159a7051534adb135728ee52828dd22"}, ] [package.dependencies] @@ -3595,13 +3624,13 @@ telegram = ["requests"] [[package]] name = "trove-classifiers" -version = "2024.7.2" +version = "2024.9.12" description = "Canonical source for classifiers on PyPI (pypi.org)." optional = false python-versions = "*" files = [ - {file = "trove_classifiers-2024.7.2-py3-none-any.whl", hash = "sha256:ccc57a33717644df4daca018e7ec3ef57a835c48e96a1e71fc07eb7edac67af6"}, - {file = "trove_classifiers-2024.7.2.tar.gz", hash = "sha256:8328f2ac2ce3fd773cbb37c765a0ed7a83f89dc564c7d452f039b69249d0ac35"}, + {file = "trove_classifiers-2024.9.12-py3-none-any.whl", hash = "sha256:f88a27a892891c87c5f8bbdf110710ae9e0a4725ea8e0fb45f1bcadf088a491f"}, + {file = "trove_classifiers-2024.9.12.tar.gz", hash = "sha256:4b46b3e134a4d01999ac5bc6e528afcc10cc48f0f724f185f267e276005768f4"}, ] [[package]] @@ -3678,13 +3707,13 @@ files = [ [[package]] name = "urllib3" -version = "2.2.2" +version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] @@ -3695,13 +3724,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.3" +version = "20.26.4" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, - {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, + {file = "virtualenv-20.26.4-py3-none-any.whl", hash = "sha256:48f2695d9809277003f30776d155615ffc11328e6a0a8c1f0ec80188d7874a55"}, + {file = "virtualenv-20.26.4.tar.gz", hash = "sha256:c17f4e0f3e6036e9f26700446f85c76ab11df65ff6d8a9cbfad9f71aabfcf23c"}, ] [package.dependencies] @@ -3810,101 +3839,103 @@ files = [ [[package]] name = "yarl" -version = "1.9.4" +version = "1.11.1" description = "Yet another URL library" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, - {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, - {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, - {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, - {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, - {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, - {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, - {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, - {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, - {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, - {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"}, - {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"}, - {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"}, - {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"}, - {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"}, - {file = "yarl-1.9.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434"}, - {file = "yarl-1.9.4-cp37-cp37m-win32.whl", hash = "sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749"}, - {file = "yarl-1.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2"}, - {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be"}, - {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f"}, - {file = "yarl-1.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3"}, - {file = "yarl-1.9.4-cp38-cp38-win32.whl", hash = "sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece"}, - {file = "yarl-1.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b"}, - {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"}, - {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"}, - {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"}, - {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"}, - {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"}, - {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, - {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, + {file = "yarl-1.11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:400cd42185f92de559d29eeb529e71d80dfbd2f45c36844914a4a34297ca6f00"}, + {file = "yarl-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8258c86f47e080a258993eed877d579c71da7bda26af86ce6c2d2d072c11320d"}, + {file = "yarl-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2164cd9725092761fed26f299e3f276bb4b537ca58e6ff6b252eae9631b5c96e"}, + {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08ea567c16f140af8ddc7cb58e27e9138a1386e3e6e53982abaa6f2377b38cc"}, + {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:768ecc550096b028754ea28bf90fde071c379c62c43afa574edc6f33ee5daaec"}, + {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2909fa3a7d249ef64eeb2faa04b7957e34fefb6ec9966506312349ed8a7e77bf"}, + {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01a8697ec24f17c349c4f655763c4db70eebc56a5f82995e5e26e837c6eb0e49"}, + {file = "yarl-1.11.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e286580b6511aac7c3268a78cdb861ec739d3e5a2a53b4809faef6b49778eaff"}, + {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4179522dc0305c3fc9782549175c8e8849252fefeb077c92a73889ccbcd508ad"}, + {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:27fcb271a41b746bd0e2a92182df507e1c204759f460ff784ca614e12dd85145"}, + {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f61db3b7e870914dbd9434b560075e0366771eecbe6d2b5561f5bc7485f39efd"}, + {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:c92261eb2ad367629dc437536463dc934030c9e7caca861cc51990fe6c565f26"}, + {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d95b52fbef190ca87d8c42f49e314eace4fc52070f3dfa5f87a6594b0c1c6e46"}, + {file = "yarl-1.11.1-cp310-cp310-win32.whl", hash = "sha256:489fa8bde4f1244ad6c5f6d11bb33e09cf0d1d0367edb197619c3e3fc06f3d91"}, + {file = "yarl-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:476e20c433b356e16e9a141449f25161e6b69984fb4cdbd7cd4bd54c17844998"}, + {file = "yarl-1.11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:946eedc12895873891aaceb39bceb484b4977f70373e0122da483f6c38faaa68"}, + {file = "yarl-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:21a7c12321436b066c11ec19c7e3cb9aec18884fe0d5b25d03d756a9e654edfe"}, + {file = "yarl-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c35f493b867912f6fda721a59cc7c4766d382040bdf1ddaeeaa7fa4d072f4675"}, + {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25861303e0be76b60fddc1250ec5986c42f0a5c0c50ff57cc30b1be199c00e63"}, + {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4b53f73077e839b3f89c992223f15b1d2ab314bdbdf502afdc7bb18e95eae27"}, + {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:327c724b01b8641a1bf1ab3b232fb638706e50f76c0b5bf16051ab65c868fac5"}, + {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4307d9a3417eea87715c9736d050c83e8c1904e9b7aada6ce61b46361b733d92"}, + {file = "yarl-1.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a28bed68ab8fb7e380775f0029a079f08a17799cb3387a65d14ace16c12e2b"}, + {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:067b961853c8e62725ff2893226fef3d0da060656a9827f3f520fb1d19b2b68a"}, + {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8215f6f21394d1f46e222abeb06316e77ef328d628f593502d8fc2a9117bde83"}, + {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:498442e3af2a860a663baa14fbf23fb04b0dd758039c0e7c8f91cb9279799bff"}, + {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:69721b8effdb588cb055cc22f7c5105ca6fdaa5aeb3ea09021d517882c4a904c"}, + {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e969fa4c1e0b1a391f3fcbcb9ec31e84440253325b534519be0d28f4b6b533e"}, + {file = "yarl-1.11.1-cp311-cp311-win32.whl", hash = "sha256:7d51324a04fc4b0e097ff8a153e9276c2593106a811704025bbc1d6916f45ca6"}, + {file = "yarl-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:15061ce6584ece023457fb8b7a7a69ec40bf7114d781a8c4f5dcd68e28b5c53b"}, + {file = "yarl-1.11.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a4264515f9117be204935cd230fb2a052dd3792789cc94c101c535d349b3dab0"}, + {file = "yarl-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f41fa79114a1d2eddb5eea7b912d6160508f57440bd302ce96eaa384914cd265"}, + {file = "yarl-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:02da8759b47d964f9173c8675710720b468aa1c1693be0c9c64abb9d8d9a4867"}, + {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9361628f28f48dcf8b2f528420d4d68102f593f9c2e592bfc842f5fb337e44fd"}, + {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b91044952da03b6f95fdba398d7993dd983b64d3c31c358a4c89e3c19b6f7aef"}, + {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:74db2ef03b442276d25951749a803ddb6e270d02dda1d1c556f6ae595a0d76a8"}, + {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e975a2211952a8a083d1b9d9ba26472981ae338e720b419eb50535de3c02870"}, + {file = "yarl-1.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aef97ba1dd2138112890ef848e17d8526fe80b21f743b4ee65947ea184f07a2"}, + {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a7915ea49b0c113641dc4d9338efa9bd66b6a9a485ffe75b9907e8573ca94b84"}, + {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:504cf0d4c5e4579a51261d6091267f9fd997ef58558c4ffa7a3e1460bd2336fa"}, + {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3de5292f9f0ee285e6bd168b2a77b2a00d74cbcfa420ed078456d3023d2f6dff"}, + {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a34e1e30f1774fa35d37202bbeae62423e9a79d78d0874e5556a593479fdf239"}, + {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66b63c504d2ca43bf7221a1f72fbe981ff56ecb39004c70a94485d13e37ebf45"}, + {file = "yarl-1.11.1-cp312-cp312-win32.whl", hash = "sha256:a28b70c9e2213de425d9cba5ab2e7f7a1c8ca23a99c4b5159bf77b9c31251447"}, + {file = "yarl-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:17b5a386d0d36fb828e2fb3ef08c8829c1ebf977eef88e5367d1c8c94b454639"}, + {file = "yarl-1.11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1fa2e7a406fbd45b61b4433e3aa254a2c3e14c4b3186f6e952d08a730807fa0c"}, + {file = "yarl-1.11.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:750f656832d7d3cb0c76be137ee79405cc17e792f31e0a01eee390e383b2936e"}, + {file = "yarl-1.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b8486f322d8f6a38539136a22c55f94d269addb24db5cb6f61adc61eabc9d93"}, + {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fce4da3703ee6048ad4138fe74619c50874afe98b1ad87b2698ef95bf92c96d"}, + {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed653638ef669e0efc6fe2acb792275cb419bf9cb5c5049399f3556995f23c7"}, + {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18ac56c9dd70941ecad42b5a906820824ca72ff84ad6fa18db33c2537ae2e089"}, + {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:688654f8507464745ab563b041d1fb7dab5d9912ca6b06e61d1c4708366832f5"}, + {file = "yarl-1.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4973eac1e2ff63cf187073cd4e1f1148dcd119314ab79b88e1b3fad74a18c9d5"}, + {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:964a428132227edff96d6f3cf261573cb0f1a60c9a764ce28cda9525f18f7786"}, + {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6d23754b9939cbab02c63434776df1170e43b09c6a517585c7ce2b3d449b7318"}, + {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c2dc4250fe94d8cd864d66018f8344d4af50e3758e9d725e94fecfa27588ff82"}, + {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09696438cb43ea6f9492ef237761b043f9179f455f405279e609f2bc9100212a"}, + {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:999bfee0a5b7385a0af5ffb606393509cfde70ecca4f01c36985be6d33e336da"}, + {file = "yarl-1.11.1-cp313-cp313-win32.whl", hash = "sha256:ce928c9c6409c79e10f39604a7e214b3cb69552952fbda8d836c052832e6a979"}, + {file = "yarl-1.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:501c503eed2bb306638ccb60c174f856cc3246c861829ff40eaa80e2f0330367"}, + {file = "yarl-1.11.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dae7bd0daeb33aa3e79e72877d3d51052e8b19c9025ecf0374f542ea8ec120e4"}, + {file = "yarl-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3ff6b1617aa39279fe18a76c8d165469c48b159931d9b48239065767ee455b2b"}, + {file = "yarl-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3257978c870728a52dcce8c2902bf01f6c53b65094b457bf87b2644ee6238ddc"}, + {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f351fa31234699d6084ff98283cb1e852270fe9e250a3b3bf7804eb493bd937"}, + {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8aef1b64da41d18026632d99a06b3fefe1d08e85dd81d849fa7c96301ed22f1b"}, + {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7175a87ab8f7fbde37160a15e58e138ba3b2b0e05492d7351314a250d61b1591"}, + {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba444bdd4caa2a94456ef67a2f383710928820dd0117aae6650a4d17029fa25e"}, + {file = "yarl-1.11.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ea9682124fc062e3d931c6911934a678cb28453f957ddccf51f568c2f2b5e05"}, + {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8418c053aeb236b20b0ab8fa6bacfc2feaaf7d4683dd96528610989c99723d5f"}, + {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:61a5f2c14d0a1adfdd82258f756b23a550c13ba4c86c84106be4c111a3a4e413"}, + {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f3a6d90cab0bdf07df8f176eae3a07127daafcf7457b997b2bf46776da2c7eb7"}, + {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:077da604852be488c9a05a524068cdae1e972b7dc02438161c32420fb4ec5e14"}, + {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:15439f3c5c72686b6c3ff235279630d08936ace67d0fe5c8d5bbc3ef06f5a420"}, + {file = "yarl-1.11.1-cp38-cp38-win32.whl", hash = "sha256:238a21849dd7554cb4d25a14ffbfa0ef380bb7ba201f45b144a14454a72ffa5a"}, + {file = "yarl-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:67459cf8cf31da0e2cbdb4b040507e535d25cfbb1604ca76396a3a66b8ba37a6"}, + {file = "yarl-1.11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:884eab2ce97cbaf89f264372eae58388862c33c4f551c15680dd80f53c89a269"}, + {file = "yarl-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a336eaa7ee7e87cdece3cedb395c9657d227bfceb6781295cf56abcd3386a26"}, + {file = "yarl-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87f020d010ba80a247c4abc335fc13421037800ca20b42af5ae40e5fd75e7909"}, + {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:637c7ddb585a62d4469f843dac221f23eec3cbad31693b23abbc2c366ad41ff4"}, + {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:48dfd117ab93f0129084577a07287376cc69c08138694396f305636e229caa1a"}, + {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e0ae31fb5ccab6eda09ba1494e87eb226dcbd2372dae96b87800e1dcc98804"}, + {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f46f81501160c28d0c0b7333b4f7be8983dbbc161983b6fb814024d1b4952f79"}, + {file = "yarl-1.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04293941646647b3bfb1719d1d11ff1028e9c30199509a844da3c0f5919dc520"}, + {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:250e888fa62d73e721f3041e3a9abf427788a1934b426b45e1b92f62c1f68366"}, + {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e8f63904df26d1a66aabc141bfd258bf738b9bc7bc6bdef22713b4f5ef789a4c"}, + {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:aac44097d838dda26526cffb63bdd8737a2dbdf5f2c68efb72ad83aec6673c7e"}, + {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:267b24f891e74eccbdff42241c5fb4f974de2d6271dcc7d7e0c9ae1079a560d9"}, + {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6907daa4b9d7a688063ed098c472f96e8181733c525e03e866fb5db480a424df"}, + {file = "yarl-1.11.1-cp39-cp39-win32.whl", hash = "sha256:14438dfc5015661f75f85bc5adad0743678eefee266ff0c9a8e32969d5d69f74"}, + {file = "yarl-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:94d0caaa912bfcdc702a4204cd5e2bb01eb917fc4f5ea2315aa23962549561b0"}, + {file = "yarl-1.11.1-py3-none-any.whl", hash = "sha256:72bf26f66456baa0584eff63e44545c9f0eaed9b73cb6601b647c91f14c11f38"}, + {file = "yarl-1.11.1.tar.gz", hash = "sha256:1bb2d9e212fb7449b8fb73bc461b51eaa17cc8430b4a87d87be7b25052d92f53"}, ] [package.dependencies] @@ -3932,45 +3963,45 @@ type = ["pytest-mypy"] [[package]] name = "zope-interface" -version = "7.0.2" +version = "7.0.3" description = "Interfaces for Python" optional = false python-versions = ">=3.8" files = [ - {file = "zope.interface-7.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:093ab9a2c5105d826755c43a76770b69353dbe95ec27a0b5e88ab4f63d7744b8"}, - {file = "zope.interface-7.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3246cccb9e4ce34c9b32ad55a53098043af5e7185623bf5de8e6ec5d8e71415e"}, - {file = "zope.interface-7.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:375258373bc3879a6c509281487063cf14add7129fc867eb1c287c0db46ca007"}, - {file = "zope.interface-7.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bf2746931a6f83370fdc4005dbea4e39e3a3d0333da42897040698c1ff282e9c"}, - {file = "zope.interface-7.0.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:deac72b653817a68b96079c1428ae84860c76f653af03668a02f97b74f8a465b"}, - {file = "zope.interface-7.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:9da2fb807a20cd4fe381e23e2f906f0a0f4acece6d9abac65d5fc0a1f8383ed8"}, - {file = "zope.interface-7.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f5e39373952e1d689476b6e43d779553b165ce332d0fde9c36d9b095f28d052"}, - {file = "zope.interface-7.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:13aacff95c59000ecd562d9717a87eca8211f6bc74bea6b8ca68e742d1f8f13d"}, - {file = "zope.interface-7.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67e0ff3f2e02d6131535956b22795be2ec5af6762f4fe682f67eb723fbc16273"}, - {file = "zope.interface-7.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c47a5068df03f0c9215d3525b166c9d8d4f6d03cbe4e60339818f8c393e3e3e"}, - {file = "zope.interface-7.0.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceaf7ee95735b0d6ac3f5bba0209d056e686999732dc32bd463a53d4488ccdb"}, - {file = "zope.interface-7.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:dd28ba1e2deb0c339881ee7755db649433347bdf3c4f3d885f029fcf10aacdf7"}, - {file = "zope.interface-7.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4b671f943d6487d6f1a6bbdce3faffae35e4f74f98ac9b865d2b7370cb6b0bd3"}, - {file = "zope.interface-7.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b76f6048c1a334e26e5d46fdb4f327d9e7e6b348ad607ee9fdce9c7325b5a635"}, - {file = "zope.interface-7.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40beb36330ef00d2cd50d212a0c74ecd57042b8c8b2b6ebd6247cc98f9808824"}, - {file = "zope.interface-7.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0821efcbdeaf48e12c66b0d19a1f9edec2ed22697ab8885d322c8f82fe5bc892"}, - {file = "zope.interface-7.0.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9ab785a7af39c6968385a9d39b712d2263661fa3780bd38efec0cefdbb84036"}, - {file = "zope.interface-7.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:e299f672cfad3392b097af885a552a51e60d3b44e8572f1401e87f863f8986b4"}, - {file = "zope.interface-7.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e5bf8de5a51aaeddd5e1d1c0ac0ca4f995a4f5a832abdc08bb8fbae25ac660"}, - {file = "zope.interface-7.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:185ef3a7a01fac1151622579a08995aab66590711c1a4f9b605f88129229dba1"}, - {file = "zope.interface-7.0.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91bb6b5e1a158b751e12458d5618c1af42eb3dc8472b87a613d543d9fb7660e0"}, - {file = "zope.interface-7.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f77d58cfc3af86d062b8cfa7194db74ca78a615d66bbd23b251bad1b1ecf9818"}, - {file = "zope.interface-7.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3ab142cebe69e0f72bf892da040af97f61fd03c09a23ae2fc7de3ab576c5d4cd"}, - {file = "zope.interface-7.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba16bb2214f671e29b75f16d7b8b0bb1f75cdc8bce06979fdbf638edf6531586"}, - {file = "zope.interface-7.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28f29dd42819d99682e46a8d3cc2ee60461a77554d4320e0e8a37363f04208e0"}, - {file = "zope.interface-7.0.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:797510df26b82cf619a894dac4ff4036d11f6340bec0287c89cecb0b1b1c429e"}, - {file = "zope.interface-7.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:b9d865209cc9795d0f9f4f63b87a86e7a9e032d3cbbb10b1c13bf27343a4fc54"}, - {file = "zope.interface-7.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:08d86319fd7542984d4c0ef7865759dab58616154cb237a5a1ce758687255de0"}, - {file = "zope.interface-7.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:22c93492e5d2f09100a4a23cf709b20f0305cdbbad14f9af2f6e9311742bed8e"}, - {file = "zope.interface-7.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d20fa14f0f8682ad37a6552712e4493cfb35d66c5fb4f8052af3a50ae6cd4f77"}, - {file = "zope.interface-7.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:356a9c1c8cfece776f54806157057be759d812168395762f47f046b40901e974"}, - {file = "zope.interface-7.0.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:738de1c72390a2caf543247013f617ed15d272e4c19731a998e81dd5a2379f1c"}, - {file = "zope.interface-7.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:8eab70e404c2416176b4630914cda275ca95678529e54e66ea45d1a0be422994"}, - {file = "zope.interface-7.0.2.tar.gz", hash = "sha256:f1146bb27a411d0d40cc0e88182a6b0e979d68ab526c8e5ae9e27c06506ed017"}, + {file = "zope.interface-7.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9b9369671a20b8d039b8e5a1a33abd12e089e319a3383b4cc0bf5c67bd05fe7b"}, + {file = "zope.interface-7.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db6237e8fa91ea4f34d7e2d16d74741187e9105a63bbb5686c61fea04cdbacca"}, + {file = "zope.interface-7.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53d678bb1c3b784edbfb0adeebfeea6bf479f54da082854406a8f295d36f8386"}, + {file = "zope.interface-7.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3aa8fcbb0d3c2be1bfd013a0f0acd636f6ed570c287743ae2bbd467ee967154d"}, + {file = "zope.interface-7.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6195c3c03fef9f87c0dbee0b3b6451df6e056322463cf35bca9a088e564a3c58"}, + {file = "zope.interface-7.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:11fa1382c3efb34abf16becff8cb214b0b2e3144057c90611621f2d186b7e1b7"}, + {file = "zope.interface-7.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:af94e429f9d57b36e71ef4e6865182090648aada0cb2d397ae2b3f7fc478493a"}, + {file = "zope.interface-7.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dd647fcd765030638577fe6984284e0ebba1a1008244c8a38824be096e37fe3"}, + {file = "zope.interface-7.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bee1b722077d08721005e8da493ef3adf0b7908e0cd85cc7dc836ac117d6f32"}, + {file = "zope.interface-7.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2545d6d7aac425d528cd9bf0d9e55fcd47ab7fd15f41a64b1c4bf4c6b24946dc"}, + {file = "zope.interface-7.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d04b11ea47c9c369d66340dbe51e9031df2a0de97d68f442305ed7625ad6493"}, + {file = "zope.interface-7.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:064ade95cb54c840647205987c7b557f75d2b2f7d1a84bfab4cf81822ef6e7d1"}, + {file = "zope.interface-7.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3fcdc76d0cde1c09c37b7c6b0f8beba2d857d8417b055d4f47df9c34ec518bdd"}, + {file = "zope.interface-7.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3d4b91821305c8d8f6e6207639abcbdaf186db682e521af7855d0bea3047c8ca"}, + {file = "zope.interface-7.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35062d93bc49bd9b191331c897a96155ffdad10744ab812485b6bad5b588d7e4"}, + {file = "zope.interface-7.0.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c96b3e6b0d4f6ddfec4e947130ec30bd2c7b19db6aa633777e46c8eecf1d6afd"}, + {file = "zope.interface-7.0.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e0c151a6c204f3830237c59ee4770cc346868a7a1af6925e5e38650141a7f05"}, + {file = "zope.interface-7.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:3de1d553ce72868b77a7e9d598c9bff6d3816ad2b4cc81c04f9d8914603814f3"}, + {file = "zope.interface-7.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab985c566a99cc5f73bc2741d93f1ed24a2cc9da3890144d37b9582965aff996"}, + {file = "zope.interface-7.0.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d976fa7b5faf5396eb18ce6c132c98e05504b52b60784e3401f4ef0b2e66709b"}, + {file = "zope.interface-7.0.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a207c6b2c58def5011768140861a73f5240f4f39800625072ba84e76c9da0b"}, + {file = "zope.interface-7.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:382d31d1e68877061daaa6499468e9eb38eb7625d4369b1615ac08d3860fe896"}, + {file = "zope.interface-7.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c4316a30e216f51acbd9fb318aa5af2e362b716596d82cbb92f9101c8f8d2e7"}, + {file = "zope.interface-7.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e6e58078ad2799130c14a1d34ec89044ada0e1495329d72ee0407b9ae5100d"}, + {file = "zope.interface-7.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:799ef7a444aebbad5a145c3b34bff012b54453cddbde3332d47ca07225792ea4"}, + {file = "zope.interface-7.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3b7ce6d46fb0e60897d62d1ff370790ce50a57d40a651db91a3dde74f73b738"}, + {file = "zope.interface-7.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:f418c88f09c3ba159b95a9d1cfcdbe58f208443abb1f3109f4b9b12fd60b187c"}, + {file = "zope.interface-7.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:84f8794bd59ca7d09d8fce43ae1b571be22f52748169d01a13d3ece8394d8b5b"}, + {file = "zope.interface-7.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7d92920416f31786bc1b2f34cc4fc4263a35a407425319572cbf96b51e835cd3"}, + {file = "zope.interface-7.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95e5913ec718010dc0e7c215d79a9683b4990e7026828eedfda5268e74e73e11"}, + {file = "zope.interface-7.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eeeb92cb7d95c45e726e3c1afe7707919370addae7ed14f614e22217a536958"}, + {file = "zope.interface-7.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecd32f30f40bfd8511b17666895831a51b532e93fc106bfa97f366589d3e4e0e"}, + {file = "zope.interface-7.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:5112c530fa8aa2108a3196b9c2f078f5738c1c37cfc716970edc0df0414acda8"}, + {file = "zope.interface-7.0.3.tar.gz", hash = "sha256:cd2690d4b08ec9eaf47a85914fe513062b20da78d10d6d789a792c0b20307fb1"}, ] [package.dependencies] From 0d1c262847c17035b0aa85a6aea33d6ad7a623bd Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 13 Sep 2024 08:57:18 +0000 Subject: [PATCH 05/73] [no ci]: 1.0.3 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5f955733..84f7c315 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.2" +version = "1.0.3" description = "" authors = [ "Rambier Estelle ", From 56df0dfb88e838a1a19bf8a8217c8bcbe6cf9faf Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 13 Sep 2024 11:11:26 +0200 Subject: [PATCH 06/73] chores: update program metadata with script --- postgres/program_metadata.json | 476 ++++++++++++++++----------------- 1 file changed, 238 insertions(+), 238 deletions(-) diff --git a/postgres/program_metadata.json b/postgres/program_metadata.json index a1971f5d..ed334f8c 100644 --- a/postgres/program_metadata.json +++ b/postgres/program_metadata.json @@ -480,238 +480,238 @@ "start": "6:00", "end": "6:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "34b4df7794f49a9ea1fd743f65433f244ec9693eee6883693affe4d297ebd7e5" }, { "channel_name": "rfi", "start": "7:00", "end": "7:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "86e7bd912a07b939386a52e6f256c468593abf4f7917caefdd4a30552376e096" }, { "channel_name": "rfi", "start": "8:00", "end": "8:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "bd05db24a8c58fdaf392a3954a4fc3d377451abdf97925fd21d477cb49953590" }, { "channel_name": "rfi", "start": "9:00", "end": "9:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "5f5a0e44bb06413a97fea101cfa0654ac3fd01c8d3a4ef1ef97dec117969f19b" }, { "channel_name": "rfi", "start": "10:00", "end": "10:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "8ed0baa51e3977bb930e19c3f3c8cc0a5ed676d01b63c6a29e2c5d39f280a378" }, { "channel_name": "rfi", "start": "11:00", "end": "11:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "46228b020bd50da59da2fa8cf3e12d761e8da25584c5ff51a2e1c1cf3b088858" }, { "channel_name": "rfi", "start": "12:00", "end": "12:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "59494ff0912469000bdc7c509d8602932a64c3eaec50208d907c3006b39af952" }, { "channel_name": "rfi", "start": "13:00", "end": "13:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "6a2d8ee4521878fb9b073cec262e268831553e5871cba279b9bd1a983cb4aecc" }, { "channel_name": "rfi", "start": "14:00", "end": "14:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "dc90268c20d61655e1bbda9d30f44658e75fe65bb26d3797c48f04bed0883095" }, { "channel_name": "rfi", "start": "15:00", "end": "15:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "b751f1bea92e516174d3d0c2bf9b1deb2cf82e7fa4393e57f18bb286246a0196" }, { "channel_name": "rfi", "start": "16:00", "end": "16:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "a266f2a4994d00d7c22d7bbe5ac43904aea4bb38e98f6b249dc6243e13a6aabd" }, { "channel_name": "rfi", "start": "17:00", "end": "17:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "35bfdec9fe01a16efb3a1f79380d9e5c2a6eb01b77ca024c76780a340f7f6811" }, { "channel_name": "rfi", "start": "18:00", "end": "18:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "514032349d14cfc8160ba57e82043fe6d5aa226b433caad39c387fe11006f59c" }, { "channel_name": "rfi", "start": "19:00", "end": "19:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "72303c4a5bc9522a8ec884409253b74df4b7c3137784406a5b169699b2f60c2a" }, { "channel_name": "rfi", "start": "20:00", "end": "20:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "39b89a22bb3f37d64ff7c3cdf665333e10bdd9dd3325347b31c8e8bcc4fd7f17" }, { "channel_name": "rfi", "start": "21:00", "end": "21:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "94efb7cc62bcf972e7319ad3257d4ec3449f08eaf0326852209be0319600002b" }, { "channel_name": "rfi", "start": "22:00", "end": "22:10", "weekday": 1, - "program_name": "Journal", + "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "3170ad34dcb836517bdd46315955132bd7ee9d0d077dd62c896f2adfc9783514" + "id": "2df1236753c12c9e19779fe48503dbd86096cdcd9d49ac098fddcfacdd06d74d" }, { "channel_name": "rmc", @@ -1376,238 +1376,238 @@ "start": "6:00", "end": "6:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "63f215f293c6647f3f483ede195cb21fce68052700bf197fd0ea10d9a8349b65" }, { "channel_name": "rfi", "start": "7:00", "end": "7:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "5463bad01ffb03e7ef1b3a42a50163076ddfbd7ed85d81f75522f64b87dbc9b3" }, { "channel_name": "rfi", "start": "8:00", "end": "8:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "31542520b5fc8b2d4f174daf8b764c1cca7b122ca1518478c500e6dde11c3029" }, { "channel_name": "rfi", "start": "9:00", "end": "9:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "8a8c5006d56cc4201776b386f7383ad0ab7067efe8b6af8d399234021675fdb0" }, { "channel_name": "rfi", "start": "10:00", "end": "10:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "765b8bef1badee86031bd05ab6f4be481d767c7b80f682c0dccc16fea313b217" }, { "channel_name": "rfi", "start": "11:00", "end": "11:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "67a520155eab073a9e4aac4631ab5daf32d819d3a023fab6535dc1d5f35f6cca" }, { "channel_name": "rfi", "start": "12:00", "end": "12:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "fe17db373fc6740f35b875c2acd67e323e37d452e69878ff9c391d12428ad621" }, { "channel_name": "rfi", "start": "13:00", "end": "13:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "f1285394c859c1177b553191c9555e4981560dbde824a4fab4aefa6ac4037fae" }, { "channel_name": "rfi", "start": "14:00", "end": "14:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "928770bdc8726b4023c65433b0f358ca245b6c8a1edd99d80d2045b6fa6aa7ae" }, { "channel_name": "rfi", "start": "15:00", "end": "15:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "3685a722a3fc11e871a3e0920d620adee37a46efc66ae98b337c185a12ad84c6" }, { "channel_name": "rfi", "start": "16:00", "end": "16:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "193c9ca33764175f4f8820f8d09a95ef7e12b3a9b9dd3176fb4f4383230af116" }, { "channel_name": "rfi", "start": "17:00", "end": "17:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "ec4a004143f51c160df19d819a5ebca50a8ff3fffc7a3fe55a02c2211743123a" }, { "channel_name": "rfi", "start": "18:00", "end": "18:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "60c5f1501ce27e1559d3622354121df21bb50ba0385c4e0a5ccc96493f4832ad" }, { "channel_name": "rfi", "start": "19:00", "end": "19:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "b2e471218e25ae501b2f89cc16a949e4d1bee8a0444a4c3f58c7f96fd884eff5" }, { "channel_name": "rfi", "start": "20:00", "end": "20:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "466a5f397e45ab3575e418b6197e746f69e2b65c71ace86682c51911116add29" }, { "channel_name": "rfi", "start": "21:00", "end": "21:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "182988ee6c7194c4a3dee6a72634d95241f38176724429ba50d9184aa26717bc" }, { "channel_name": "rfi", "start": "22:00", "end": "22:10", "weekday": 2, - "program_name": "Journal", + "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "235218b0da6ab524aef3a17f9ec960d8233553f0cf08b43efdfa8bb1be717b85" + "id": "66f25056cb0bfc4f76d0d75cd0c594eb112f1035b5eaf1b08cd8f6378eb2cd3d" }, { "channel_name": "rmc", @@ -2272,238 +2272,238 @@ "start": "6:00", "end": "6:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "a07e2fef171fafdcb9d73e76ba29d827cd690e1862b2e2919ee1c3d704834e92" }, { "channel_name": "rfi", "start": "7:00", "end": "7:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "e531a9cfd3e124478ed521b11a847b6190404233724ace2ec98ef26278f37229" }, { "channel_name": "rfi", "start": "8:00", "end": "8:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "f47066f1ab4db3ed555d655027b5c0d050a24c5ae2fca2ce80934555a2bb8136" }, { "channel_name": "rfi", "start": "9:00", "end": "9:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "29cca21791a9dce046ab8ac60df1c004558e02dbb98cc4af674f61a28dd3a58e" }, { "channel_name": "rfi", "start": "10:00", "end": "10:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "0dd5f4c51cbfa66493e53c91942b339a62513a408e1f7ba3677ccf28f4bc1e6b" }, { "channel_name": "rfi", "start": "11:00", "end": "11:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "6c2bef07e80c27dc33ed8cd7bd7f4b12e80b7cadf02f7d2e3d1b39a80a2f9db3" }, { "channel_name": "rfi", "start": "12:00", "end": "12:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "f0be71b46a04941aa4983f059c9ca09dec9f8cc9b476e8b040121a72c2e3d94f" }, { "channel_name": "rfi", "start": "13:00", "end": "13:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "cd8570b0a67463393a08e9046fe3f6e3b6bf8e89b544d34ebc423b795530e6a1" }, { "channel_name": "rfi", "start": "14:00", "end": "14:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "e9ef876055f709ba3f9a763b12b39ab83dae2709df35fba54624ebf7eefefdb2" }, { "channel_name": "rfi", "start": "15:00", "end": "15:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "2011a54561e398805cde9385c0277af033906c180fc9c8a97348184dbd1e086b" }, { "channel_name": "rfi", "start": "16:00", "end": "16:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "c8d34b9e6343ff081ed263010b1f66a45d5467a29d1633486f78a3547d3e80ce" }, { "channel_name": "rfi", "start": "17:00", "end": "17:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "82bbd481b2cff57c45c7cc0a9f80f33871875b6661bac25fe985be6149ca2b53" }, { "channel_name": "rfi", "start": "18:00", "end": "18:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "6470b14ebec63f40cc76dd4863205fb0a0e4ef4fc75fcf17397f3a775aed20d6" }, { "channel_name": "rfi", "start": "19:00", "end": "19:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "1897e298618b6749b4b1d1497273350ab257037719478d7f99b5e034528911ee" }, { "channel_name": "rfi", "start": "20:00", "end": "20:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "cbbc9630a6df8792e074c9e946ea97022516aae4585bcf018222f57d824e6256" }, { "channel_name": "rfi", "start": "21:00", "end": "21:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "4b5fa08da3fadc254a102c74a50eaa0a4355b09eb1f6ca8573c03f8c57723cb9" }, { "channel_name": "rfi", "start": "22:00", "end": "22:10", "weekday": 3, - "program_name": "Journal", + "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "bfb430ce91a7033dd11a3eb73ce0989079992d82d50f3fe6dbcc44be5a19a5de" + "id": "e8092fc76b50f7945ee7572c7fddb3ecc466f16c55a1c30ca5917edf8269fd8a" }, { "channel_name": "rmc", @@ -3182,238 +3182,238 @@ "start": "6:00", "end": "6:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "ad8703459a8bc53c3b772f5624fc25830386e471c91e54d093bb2cc4cd3414ae" }, { "channel_name": "rfi", "start": "7:00", "end": "7:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "cec9d0bd30ac584916cf0adc8a815f0e1d07c71e8de991d119c9f3887363cd98" }, { "channel_name": "rfi", "start": "8:00", "end": "8:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "1932a9e8a19b0804b5cc42f5355db70e06446d5ee88fa34d6e6478fb454dcb43" }, { "channel_name": "rfi", "start": "9:00", "end": "9:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "216140c8de1531641efe6a8e00fe9e42d5a7d9dfcb96dcc29105fc126c7a58af" }, { "channel_name": "rfi", "start": "10:00", "end": "10:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "f466d3b5f6901af1f085e7bb1c1da324a975c0558a03fec9b5bf988e90bb1af9" }, { "channel_name": "rfi", "start": "11:00", "end": "11:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "5067ba812c9328209b90cd3504a0072e3abb6480cf2fc87d8f96650c090777cb" }, { "channel_name": "rfi", "start": "12:00", "end": "12:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "48e4762130f33786dadc5debe0e0e75fea53fe1cdb5aa1c201a7d7cf8bcf05bf" }, { "channel_name": "rfi", "start": "13:00", "end": "13:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "38608079cd439f30ae650e2b49b9454264971c4f0d995d278b97ed5032a5b2f3" }, { "channel_name": "rfi", "start": "14:00", "end": "14:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "b979ce7157cd49c1abd9f06f0b0447c1ed391944201d14652382a0edb30e837c" }, { "channel_name": "rfi", "start": "15:00", "end": "15:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "7e56e47e484f0ed2fd6fd8411b92ad3f3506128fa73725e6c1800b9f7b382f4a" }, { "channel_name": "rfi", "start": "16:00", "end": "16:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "9f98ce0baa97426005bdd9915e0fc3c3b92afc6cd36bc7c6ad35289d41fbdd8b" }, { "channel_name": "rfi", "start": "17:00", "end": "17:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "2b6da0536828fd9904639de0acc321932d578819268d7180fda4e5f36fc0e487" }, { "channel_name": "rfi", "start": "18:00", "end": "18:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "61d325980bf5beecdf07d370289d235015038cd22715c3e5e48a92a945f8f9f1" }, { "channel_name": "rfi", "start": "19:00", "end": "19:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "34783d006b4f1dfebd23efcef6076d748a5721b24a194e7dc892a3523e246c37" }, { "channel_name": "rfi", "start": "20:00", "end": "20:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "a002195ca66a332923c8204e05a9fbcfc9373d7454133ba4662514500cf70d6d" }, { "channel_name": "rfi", "start": "21:00", "end": "21:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "cb15d711889d9916ac7a8ed0ba8a2e75e2cd0a049237dcbfbf8e7910fe37718e" }, { "channel_name": "rfi", "start": "22:00", "end": "22:10", "weekday": 4, - "program_name": "Journal", + "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "cb9cdfe21d77603250d0fe2c19640a688d9f41f0ddc5e5d8a2f6237e5cbd1bad" + "id": "3c21fb2977f87c473a57938403d397527f3d096ec1155255ac8d8c358c63d450" }, { "channel_name": "rmc", @@ -4064,238 +4064,238 @@ "start": "6:00", "end": "6:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "47009adf43d6f64a4b711cae53356f285d0abec3bc3b61502e6dd8da22a50615" }, { "channel_name": "rfi", "start": "7:00", "end": "7:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "b0eca0205f7985c05ceb2df9b103e02259d8320c08b9e48cf4dd8f9b2c7126fa" }, { "channel_name": "rfi", "start": "8:00", "end": "8:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "86982b9c367b940a7031622a94ae564048a19b68b247ed920597df68f0e72d39" }, { "channel_name": "rfi", "start": "9:00", "end": "9:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "37fd2332f1179a034a0ea1b3dde26e3a71f00fa044d2d91badfc3e11a8fe2146" }, { "channel_name": "rfi", "start": "10:00", "end": "10:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "667b443e8a1453729440072dce8fe111668a23bd8f51aee4128b489f5a57fb1e" }, { "channel_name": "rfi", "start": "11:00", "end": "11:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "f1035271e1cbc5b36e38d2829b9603c86c97b45b421dcc13dad86957e0dfc7e7" }, { "channel_name": "rfi", "start": "12:00", "end": "12:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "0250e8ffdfeeeef5bdf55e58f7512a9deb434f986db7b48b3682a8919fa6f354" }, { "channel_name": "rfi", "start": "13:00", "end": "13:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "058c8c9693ed3f40a69494d8a9ae1fbedfc6af0fafffbe15df5510c315154a8f" }, { "channel_name": "rfi", "start": "14:00", "end": "14:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "721f4f6029f988a36a3500d774f22b3a1c1f3cca5b847112335c55fe53ee2f44" }, { "channel_name": "rfi", "start": "15:00", "end": "15:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "b823ce09ea9b4233a587710050ddffab39c24a5dad3c2465ecf6d1ad30499a65" }, { "channel_name": "rfi", "start": "16:00", "end": "16:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "7e4c3811e05b93cc108e1b104a920dea59fe8d63c0d5e1b39acd62dd894063e0" }, { "channel_name": "rfi", "start": "17:00", "end": "17:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "d95c5192d741dc2dd2cca2a83ea8e8ae427f006777d2aff77be52418ee7c2348" }, { "channel_name": "rfi", "start": "18:00", "end": "18:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "ddbe1df9fda143906432ea69d9f58eb89fd1673cb931b3ad1e39c3fc7a5f8f02" }, { "channel_name": "rfi", "start": "19:00", "end": "19:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "82760b3a9495f60d6faabec543006440f6c95df6641171da404c4f1f03589b97" }, { "channel_name": "rfi", "start": "20:00", "end": "20:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "e0376f5ac50373a054e1673b76adbcd088597f1ade9edfc624893b2ee566be8c" }, { "channel_name": "rfi", "start": "21:00", "end": "21:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "34461fcfba7f8ca293eb65f5f1ccdb768cb91c47d4e789f3fcfb93805224081d" }, { "channel_name": "rfi", "start": "22:00", "end": "22:10", "weekday": 5, - "program_name": "Journal", + "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "c9db7ac515cd6a17ca3cec15f65137a36cc9c20567117b08906ec302dae69cce" + "id": "f38cf77e337eb35331d10ed0bb02093df148e1196627adfabcec79c03265ef8c" }, { "channel_name": "rmc", @@ -4876,238 +4876,238 @@ "start": "6:00", "end": "6:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "db21ab40d7bbfb77fc35d6a79aa3680dcddd0ad3e252f7fc6146532378d2d3f7" }, { "channel_name": "rfi", "start": "7:00", "end": "7:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "c41c9007be1f619b26d8abcd4478f9a538c138eabbc809de5c92b1d296882de7" }, { "channel_name": "rfi", "start": "8:00", "end": "8:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "37afea5b706d30d29d8232c7a9dd5424ce12425e9aaa9446df040c028dfa2b79" }, { "channel_name": "rfi", "start": "9:00", "end": "9:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "23885ad817ebe492f61bbd79a798068a1e6ca8fde55e03947572fbf249848a8b" }, { "channel_name": "rfi", "start": "10:00", "end": "10:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "676ace8df342cbabe7ccc7329cea2a1f6b0503f0a0b310a66e6c30b8929fd73d" }, { "channel_name": "rfi", "start": "11:00", "end": "11:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "09617dad855090723f390d726f07d1507cb8e6b4a59e008a05697078c3de5082" }, { "channel_name": "rfi", "start": "12:00", "end": "12:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "bffcae4259c7e75a353836f04b5671a37aa7fb161b05e1d987d6917c0ea45a7f" }, { "channel_name": "rfi", "start": "13:00", "end": "13:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "ebe10977616df601492cb2f67a1a91fb5199d738a05c9a96e2c2360a67530c59" }, { "channel_name": "rfi", "start": "14:00", "end": "14:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "a6f13e84e9ac12ceaf99ce1d6b00b93904dae1b5aeeac980ca1fc95d2d984b1e" }, { "channel_name": "rfi", "start": "15:00", "end": "15:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "d8372c8b3cbc4f729388662afe9a99fc9f27cba5c0a1e10b7170f1aafedda677" }, { "channel_name": "rfi", "start": "16:00", "end": "16:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "6f295acfdef0468f4453452c24b134456b499c78a135dcda7e66fc31c434493b" }, { "channel_name": "rfi", "start": "17:00", "end": "17:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "18c5b5e5bc98209fb459282985324f71f99314125fcea873dde8c285ce692f39" }, { "channel_name": "rfi", "start": "18:00", "end": "18:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "b0e60aae751232b95a32f6b82a78b9a65c8d35a8001a85d4e58094d03d2ceee2" }, { "channel_name": "rfi", "start": "19:00", "end": "19:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "86aa20fd63799dc2949041f57b19d798c70bb3ad352bdd4edeb5a87537e61156" }, { "channel_name": "rfi", "start": "20:00", "end": "20:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "1bb0e496d7f0977038c5ddcbc75a3c5c7b57391e55a6291d469a08e45bc5c569" }, { "channel_name": "rfi", "start": "21:00", "end": "21:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "f92f1510608bc8793bf59da7895d0ba93b12b261f2a6aa09fb51652323ca4465" }, { "channel_name": "rfi", "start": "22:00", "end": "22:10", "weekday": 6, - "program_name": "Journal", + "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "02f6e1473f6a4052869e4d29d40b684ead7d9cbc7b4b643f2a056512a529a5bb" + "id": "3d798919a3bb473563a8fe786559f7999df5b7f0a1a9363ec0b15ff019be00eb" }, { "channel_name": "rmc", @@ -5618,238 +5618,238 @@ "start": "6:00", "end": "6:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "96efb662eed84ad65444752af43bed81474b8b95c118600f0f99dd15de7d6c34" }, { "channel_name": "rfi", "start": "7:00", "end": "7:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "4d985c6da084dfba490a82f19703782ac5e6163205d871d3d7971dabb22653f9" }, { "channel_name": "rfi", "start": "8:00", "end": "8:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "44dc3b38c16eb9c939df435ecc66c4730066989c26bed6865ab79999ddc7b510" }, { "channel_name": "rfi", "start": "9:00", "end": "9:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "27e262fd4845aeeca2fb67233f150b727d01ae603188493e4d256463961833c3" }, { "channel_name": "rfi", "start": "10:00", "end": "10:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "74f5b7707120cda2c171eb47b84f5ccd5669d9987ec54a72c306ea241c07457f" }, { "channel_name": "rfi", "start": "11:00", "end": "11:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "cc2c416751b2d5c1217a3dfdd9800798898786649c266ada9021a16bbc544fe6" }, { "channel_name": "rfi", "start": "12:00", "end": "12:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "cf0cd912306b6c3c0a2db2519cbcc8ec8791b0842a8e4e9e35590baf42b5dd07" }, { "channel_name": "rfi", "start": "13:00", "end": "13:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "ffd63f24a781829bf0cab96a44c73122d6eb7ff4e7ea1d631573ea461f2de0de" }, { "channel_name": "rfi", "start": "14:00", "end": "14:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "45ee1341fa9e1bf20cd4912f35a0f27ff909f9e153d848bbd83325cc2e9e3426" }, { "channel_name": "rfi", "start": "15:00", "end": "15:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "8c9db178e1fa7a705f0b23b8c26c030347a3fd4bb9f74847572b9e4d4f15f1d4" }, { "channel_name": "rfi", "start": "16:00", "end": "16:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "4b65e9311ec2ecabf5b9084bece64482f9504b3aa65a04c71e2345699d852087" }, { "channel_name": "rfi", "start": "17:00", "end": "17:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "efb341abfb074178c20816b3ad769fa389383b23c29a9378e0674dc0240d0890" }, { "channel_name": "rfi", "start": "18:00", "end": "18:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "836cd8d69e38f2332db80be1d70654f777643ac8ca293d398e4172700b861b5c" }, { "channel_name": "rfi", "start": "19:00", "end": "19:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "0b2a83b58b78b0210c16232e27d202a3234143268ece83c6b4afc9e1aebf3787" }, { "channel_name": "rfi", "start": "20:00", "end": "20:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "ffdf62ad13dd99cd87ea4962ec5f89b4db13eb240c6606ac76e77934958628df" }, { "channel_name": "rfi", "start": "21:00", "end": "21:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "8db201c13971e83d258164a4304e7e4298d708ab0326fa36bc29ba6a596e409f" }, { "channel_name": "rfi", "start": "22:00", "end": "22:10", "weekday": 7, - "program_name": "Journal", + "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, "channel_title": "RFI", "public": true, "infocontinue": false, "radio": true, - "id": "65e52b3cb7d78da039c4addc3c824d00550ded2a31d55805fb0566dc7c8f6292" + "id": "1f181df4e9e0ddd2e59e6f7798401e72f72ba245d994b3346de1eec11e59ffd5" }, { "channel_name": "rmc", From c14e47a534444b8d5b9da4a114c2be303fd753df Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 13 Sep 2024 09:12:41 +0000 Subject: [PATCH 07/73] [no ci]: 1.0.4 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 84f7c315..ee042b23 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.3" +version = "1.0.4" description = "" authors = [ "Rambier Estelle ", From f8ea865ab191f5c5b1db45d044ef50816683f2a7 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 13 Sep 2024 11:49:37 +0200 Subject: [PATCH 08/73] refacto: remove deepcopy (#240) --- .../mediatree/detect_keywords.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/detect_keywords.py b/quotaclimat/data_processing/mediatree/detect_keywords.py index c7a64f17..ee8455af 100644 --- a/quotaclimat/data_processing/mediatree/detect_keywords.py +++ b/quotaclimat/data_processing/mediatree/detect_keywords.py @@ -201,25 +201,31 @@ def get_themes_keywords_duration(plaintext: str, subtitle_duration: List[str], s return [None] * number_of_elements_in_array def get_keywords_with_timestamp_with_false_positive(keywords_with_timestamp, start, duration_seconds: int = 15): - logging.debug(f"using duration_seconds {duration_seconds}") - keywords_with_timestamp_copy = copy.deepcopy(keywords_with_timestamp) + logging.debug(f"Using duration_seconds {duration_seconds}") + + # Shallow copy to avoid unnecessary deep copying (wip: for memory leak) + keywords_with_timestamp_copy = [item.copy() for item in keywords_with_timestamp] + keywords_with_timestamp_copy = tag_wanted_duration_second_window_number(keywords_with_timestamp_copy, start, duration_seconds=duration_seconds) keywords_with_timestamp_copy = transform_false_positive_keywords_to_positive(keywords_with_timestamp_copy, start) keywords_with_timestamp_copy = filter_keyword_with_same_timestamp(keywords_with_timestamp_copy) + return keywords_with_timestamp_copy def get_themes(keywords_with_timestamp: List[dict]) -> List[str]: return list(set([kw['theme'] for kw in keywords_with_timestamp])) -def clean_metadata(keywords_with_timestamp): - keywords_with_timestamp_copy = copy.deepcopy(keywords_with_timestamp) # immutable - if( len(keywords_with_timestamp_copy)) > 0: - for item in keywords_with_timestamp_copy: - item.pop('window_number', None) +def clean_metadata(keywords_with_timestamp): + if not keywords_with_timestamp: + return keywords_with_timestamp - return keywords_with_timestamp_copy - else: - return keywords_with_timestamp_copy + # Shallow copy instead of deep copy (wip: for memory leak) + keywords_with_timestamp_copy = [item.copy() for item in keywords_with_timestamp] + + for item in keywords_with_timestamp_copy: + item.pop('window_number', None) + + return keywords_with_timestamp_copy def log_min_max_date(df): max_date = max(df['start']) From 21a3606861221573983a0b4ddf02f4f68dffe569 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 13 Sep 2024 09:50:10 +0000 Subject: [PATCH 09/73] [no ci]: 1.0.5 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ee042b23..14f9973f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.4" +version = "1.0.5" description = "" authors = [ "Rambier Estelle ", From f2762e0fd580b5c4676d3e9cb78f49c432eb30ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 17:28:03 +0200 Subject: [PATCH 10/73] build(deps): bump modin from 0.31.0 to 0.32.0 (#241) Bumps [modin](https://github.com/modin-project/modin) from 0.31.0 to 0.32.0. - [Release notes](https://github.com/modin-project/modin/releases) - [Changelog](https://github.com/modin-project/modin/blob/main/docs/release-procedure.md) - [Commits](https://github.com/modin-project/modin/compare/0.31.0...0.32.0) --- updated-dependencies: - dependency-name: modin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 999ca3f7..8cd7ff70 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1688,13 +1688,13 @@ files = [ [[package]] name = "modin" -version = "0.31.0" +version = "0.32.0" description = "Modin: Make your pandas code run faster by changing one line of code." optional = false python-versions = ">=3.9" files = [ - {file = "modin-0.31.0-py3-none-any.whl", hash = "sha256:d97378709efb883fd6148be40c9b1a039922ac04f4f7db4208c57a2bee344de9"}, - {file = "modin-0.31.0.tar.gz", hash = "sha256:bb11c3b2943d74bf2911fab2acb87d0c45d16becc03708be3392f7a1f5736000"}, + {file = "modin-0.32.0-py3-none-any.whl", hash = "sha256:3f61e9ca286a1bea7296a6f70ce66f39c7fc7673c2b3e87ea34d6a499d1aebfa"}, + {file = "modin-0.32.0.tar.gz", hash = "sha256:9f68557add5e92617d006eb98bfd93d298e7d4d9932a0cd48a5e38ee4f30a134"}, ] [package.dependencies] @@ -4015,4 +4015,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.11.0,<3.13.0" -content-hash = "3ba5d5869d6550cb84515dbaa06e483050984031215811169a598f246334774e" +content-hash = "9f8c9468bb387d26c46347240894d49d27ad1392dd5214378c7106f349906bdb" diff --git a/pyproject.toml b/pyproject.toml index 14f9973f..36268ddf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ pytest-asyncio = "^0.23.5" swifter = "^1.4.0" tenacity = "^8.2.3" sentry-sdk = "^2.13.0" -modin = {extras = ["ray"], version = "^0.31.0"} +modin = {extras = ["ray"], version = "^0.32.0"} numpy = "1.26.4" openpyxl = "^3.1.5" [build-system] From 9de1fabdab9cb0927db9fe6dd6d5e5efee22968c Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Mon, 16 Sep 2024 15:28:42 +0000 Subject: [PATCH 11/73] [no ci]: 1.0.6 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 36268ddf..738e4127 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.5" +version = "1.0.6" description = "" authors = [ "Rambier Estelle ", From 331d1a82c341a1a943160055886a5e84936617b3 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Tue, 17 Sep 2024 10:59:37 +0200 Subject: [PATCH 12/73] Feat/update only one channel (#242) * wip: update with only one channel * wip: test * wip: readme * wip * fix: test * test: only program with only channel --- README.md | 2 + .../data_processing/mediatree/api_import.py | 5 +- .../mediatree/update_pg_keywords.py | 40 +- test/sitemap/test_main_import_api.py | 3 +- test/sitemap/test_update_pg_keywords.py | 481 +++++++++++++++--- 5 files changed, 431 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index 956ee1fb..1bb2d81b 100644 --- a/README.md +++ b/README.md @@ -313,6 +313,8 @@ We can adjust batch update with these env variables (as in the docker-compose.ym ``` BATCH_SIZE: 50000 # number of records to update in one batch ``` +### Update only one channel +Use env variable `CHANNEL` like in docker compose (string: tf1) with `UPDATE` to true ### Batch program data `UPDATE_PROGRAM_ONLY` to true will only update program metadata, otherwise, it will update program metadata and all theme/keywords calculations. diff --git a/quotaclimat/data_processing/mediatree/api_import.py b/quotaclimat/data_processing/mediatree/api_import.py index d84119ae..07ebc43c 100644 --- a/quotaclimat/data_processing/mediatree/api_import.py +++ b/quotaclimat/data_processing/mediatree/api_import.py @@ -55,15 +55,16 @@ async def update_pg_data(exit_event): end_date = os.environ.get("END_DATE", tmp_end_date) batch_size = int(os.environ.get("BATCH_SIZE", 50000)) program_only = os.environ.get("UPDATE_PROGRAM_ONLY", "false") == "true" + channel = os.environ.get("CHANNEL", "") if(program_only): logging.warning("Update : Program only mode activated - UPDATE_PROGRAM_ONLY") else: logging.warning("Update : programs will not be updated for performance issue - use UPDATE_PROGRAM_ONLY to true for this") - logging.warning(f"Updating already saved data from Postgresql from date {start_date} - env variable START_DATE_UPDATE until {end_date} - you can use END_DATE to set it (optional)") + logging.warning(f"Updating already saved data for channel {channel} from Postgresql from date {start_date} - env variable START_DATE_UPDATE until {end_date} - you can use END_DATE to set it (optional)") try: session = get_db_session() - update_keywords(session, batch_size=batch_size, start_date=start_date, program_only=program_only, end_date=end_date) + update_keywords(session, batch_size=batch_size, start_date=start_date, program_only=program_only, end_date=end_date, channel=channel) exit_event.set() except Exception as err: logging.error("Could update_pg_data %s:(%s)" % (type(err).__name__, err)) diff --git a/quotaclimat/data_processing/mediatree/update_pg_keywords.py b/quotaclimat/data_processing/mediatree/update_pg_keywords.py index 8bc78059..9681d880 100644 --- a/quotaclimat/data_processing/mediatree/update_pg_keywords.py +++ b/quotaclimat/data_processing/mediatree/update_pg_keywords.py @@ -10,8 +10,8 @@ from quotaclimat.data_processing.mediatree.channel_program import get_programs, get_a_program_with_start_timestamp, get_channel_title_for_name from sqlalchemy import func, select, and_, func -def update_keywords(session: Session, batch_size: int = 50000, start_date : str = "2023-04-01", program_only=False, end_date: str = "2023-04-30") -> list: - total_updates = get_total_count_saved_keywords(session, start_date, end_date) +def update_keywords(session: Session, batch_size: int = 50000, start_date : str = "2023-04-01", program_only=False, end_date: str = "2023-04-30", channel: str = "") -> list: + total_updates = get_total_count_saved_keywords(session, start_date, end_date, channel) if total_updates == 0: logging.error("No rows to update - change your START_DATE_UPDATE") @@ -20,15 +20,15 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str logging.info(f"Fixing batch size ({batch_size}) to {total_updates} because too high compared to saved elements") batch_size = total_updates - logging.info(f"Updating {total_updates} saved keywords from {start_date} date to {end_date} - batch size {batch_size} - totals rows") + logging.info(f"Updating {total_updates} saved keywords from {start_date} date to {end_date} for channel {channel} - batch size {batch_size} - totals rows") df_programs = get_programs() logging.debug("Got channel programs") for i in range(0, total_updates, batch_size): - current_batch_saved_keywords = get_keywords_columns(session, i, batch_size, start_date, end_date) + current_batch_saved_keywords = get_keywords_columns(session, i, batch_size, start_date, end_date, channel) logging.info(f"Updating {len(current_batch_saved_keywords)} elements from {i} offsets - batch size {batch_size} - until offset {total_updates}") for keyword_id, plaintext, keywords_with_timestamp, number_of_keywords, start, srt, theme, channel_name, channel_title in current_batch_saved_keywords: if channel_title is None: - logging.debug("channel_title none, set it using channel_name") + logging.warning(f"channel_title none, set it using channel_name {channel_name}") channel_title = get_channel_title_for_name(channel_name) if(not program_only): @@ -93,6 +93,7 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str ,keyword_id ,channel_program=program_name ,channel_program_type=program_name_type + ,channel_title=channel_title ) logging.info(f"bulk update done {i} out of {total_updates} - (max offset {total_updates})") session.commit() @@ -100,10 +101,9 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str logging.info("updated all keywords") -def get_keywords_columns(session: Session, offset: int = 0, batch_size: int = 50000, start_date: str = "2023-04-01", end_date: str = "2023-04-30") -> list: +def get_keywords_columns(session: Session, offset: int = 0, batch_size: int = 50000, start_date: str = "2023-04-01", end_date: str = "2023-04-30", channel: str = "") -> list: logging.debug(f"Getting {batch_size} elements from offset {offset}") - return ( - session.query( + query = session.query( Keywords.id, Keywords.plaintext, Keywords.keywords_with_timestamp, @@ -113,15 +113,21 @@ def get_keywords_columns(session: Session, offset: int = 0, batch_size: int = 50 Keywords.theme, Keywords.channel_name, Keywords.channel_title, + ).filter( + and_( + func.date(Keywords.start) >= start_date, + func.date(Keywords.start) <= end_date ) - .filter(and_(func.date(Keywords.start) >= start_date, func.date(Keywords.start) <= end_date)) - .order_by(Keywords.start, Keywords.channel_name, Keywords.plaintext) - .offset(offset) - .limit(batch_size) + ).order_by(Keywords.start, Keywords.channel_name, Keywords.plaintext) + + if channel != "": + query = query.filter(Keywords.channel_name == channel) + + return query.offset(offset) \ + .limit(batch_size) \ .all() - ) -def get_total_count_saved_keywords(session: Session, start_date : str, end_date : str) -> int: +def get_total_count_saved_keywords(session: Session, start_date : str, end_date : str, channel: str) -> int: statement = select(func.count()).filter( and_(func.date(Keywords.start) >= start_date, func.date(Keywords.start) <= end_date) ).select_from(Keywords) @@ -180,11 +186,13 @@ def update_keyword_row(session: Session, def update_keyword_row_program(session: Session, keyword_id: int, channel_program: str, - channel_program_type: str): + channel_program_type: str, + channel_title: str): session.query(Keywords).filter(Keywords.id == keyword_id).update( { Keywords.channel_program: channel_program, - Keywords.channel_program_type: channel_program_type + Keywords.channel_program_type: channel_program_type, + Keywords.channel_title: channel_title, }, synchronize_session=False ) \ No newline at end of file diff --git a/test/sitemap/test_main_import_api.py b/test/sitemap/test_main_import_api.py index 8dcb5b84..b1b877b4 100644 --- a/test/sitemap/test_main_import_api.py +++ b/test/sitemap/test_main_import_api.py @@ -77,5 +77,4 @@ def test_third_row_api_import(): ]) - assert specific_keyword.number_of_keywords == 1 - + assert specific_keyword.number_of_keywords == 1 \ No newline at end of file diff --git a/test/sitemap/test_update_pg_keywords.py b/test/sitemap/test_update_pg_keywords.py index 1ccbbe60..e166a897 100644 --- a/test/sitemap/test_update_pg_keywords.py +++ b/test/sitemap/test_update_pg_keywords.py @@ -17,6 +17,82 @@ start = pd.to_datetime("2024-01-26 12:18:54", utc=True).tz_convert('Europe/Paris') create_tables() +plaintext = "cheese pizza habitabilité de la planète conditions de vie sur terre animal digue" +srt = [{ + "duration_ms": 34, + "cts_in_ms": original_timestamp + 6, + "text": "habitabilité" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 10, + "text": "de" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 11, + "text": "la" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 12, + "text": "planète" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 15000, + "text": "conditions" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 15000 + 10, + "text": "de" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 15000 + 15, + "text": "vie" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 15000 + 20, + "text": "sur" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 15000 + 25, + "text": "terre" + }, + { + "duration_ms": 34, + "cts_in_ms": original_timestamp + 32000, + "text": "digue" + } +] + +keywords_with_timestamp = [ + { + "keyword": "conditions de vie sur terre", + "timestamp": 1706437094004, + "theme": "changement_climatique_constat" + }, + { + "keyword": "habitabilité de la planète", + "timestamp": 1706444334006, + "theme": "changement_climatique_constat" + }, + { + "keyword": "digue", + "timestamp": 1706444366000, + "theme": "adaptation_climatique_solutions_indirectes" + } +] +themes = [ + "changement_climatique_constat", + "adaptation_climatique_solutions", + "ressources" # should be removed +] + def test_delete_keywords(): conn = connect_to_db() primary_key = "delete_me" @@ -81,81 +157,7 @@ def test_first_update_keywords(): wrong_value = 0 # insert data primary_key = "test_save_to_pg_keyword" - plaintext = "cheese pizza habitabilité de la planète conditions de vie sur terre animal digue" - srt = [{ - "duration_ms": 34, - "cts_in_ms": original_timestamp + 6, - "text": "habitabilité" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 10, - "text": "de" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 11, - "text": "la" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 12, - "text": "planète" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 15000, - "text": "conditions" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 15000 + 10, - "text": "de" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 15000 + 15, - "text": "vie" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 15000 + 20, - "text": "sur" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 15000 + 25, - "text": "terre" - }, - { - "duration_ms": 34, - "cts_in_ms": original_timestamp + 32000, - "text": "digue" - } - ] - - keywords_with_timestamp = [ - { - "keyword": "conditions de vie sur terre", - "timestamp": 1706437094004, - "theme": "changement_climatique_constat" - }, - { - "keyword": "habitabilité de la planète", - "timestamp": 1706444334006, - "theme": "changement_climatique_constat" - }, - { - "keyword": "digue", - "timestamp": 1706444366000, - "theme": "adaptation_climatique_solutions_indirectes" - } - ] - themes = [ - "changement_climatique_constat", - "adaptation_climatique_solutions", - "ressources" # should be removed - ] + channel_name = "m6" df = pd.DataFrame([{ "id" : primary_key, @@ -210,11 +212,6 @@ def test_first_update_keywords(): ,number_of_keywords_biodiversite \ ,number_of_keywords_ressources = get_themes_keywords_duration(plaintext, srt, start) - expected_keywords_with_timestamp = [ - {'category': 'Ecosystème', 'keyword': 'conditions de vie sur terre', 'timestamp': original_timestamp + 15000, 'theme': 'changement_climatique_constat'}, - {'category': 'Ecosystème','keyword': 'habitabilité de la planète', 'timestamp': original_timestamp + 6, 'theme': 'changement_climatique_constat'}, - {'category': 'General','keyword': 'digue', 'timestamp': original_timestamp + 32000, 'theme': 'adaptation_climatique_solutions'} - ] assert result_after_update.id == result_before_update.id # theme @@ -263,3 +260,327 @@ def test_first_update_keywords(): # number_of_keywords_climat assert result_after_update.number_of_keywords_climat == number_of_keywords_climat +def test_update_only_one_channel(): + conn = connect_to_db() + + wrong_value = 0 + # insert data + primary_key_m6 = "test_save_to_pg_keyword_m6" + primary_key_tf1 = "test_save_to_pg_keyword_tf1" + m6 = "m6" + tf1 = "tf1" + df = pd.DataFrame([{ + "id" : primary_key_m6, + "start": start, + "plaintext": plaintext, + "channel_name": m6, + "channel_radio": False, + "theme": themes, + "keywords_with_timestamp": keywords_with_timestamp, + "srt": srt, + "number_of_keywords": wrong_value, # wrong data to reapply our custom logic for "new_value" + "number_of_changement_climatique_constat": wrong_value, + "number_of_changement_climatique_causes_directes": wrong_value, + "number_of_changement_climatique_consequences": wrong_value, + "number_of_attenuation_climatique_solutions_directes": wrong_value, + "number_of_adaptation_climatique_solutions_directes": wrong_value, + "number_of_ressources": wrong_value, + "number_of_ressources_solutions": wrong_value, + "number_of_biodiversite_concepts_generaux": wrong_value, + "number_of_biodiversite_causes_directes": wrong_value, + "number_of_biodiversite_consequences": wrong_value, + "number_of_biodiversite_solutions_directes" : wrong_value, + "channel_program_type": "to change", + "channel_program":"to change" + ,"channel_title":None + ,"number_of_keywords_climat": wrong_value + ,"number_of_keywords_biodiversite": wrong_value + ,"number_of_keywords_ressources": wrong_value + }, { + "id" : primary_key_tf1, + "start": start, + "plaintext": plaintext, + "channel_name": tf1, + "channel_radio": False, + "theme": themes, + "keywords_with_timestamp": keywords_with_timestamp, + "srt": srt, + "number_of_keywords": wrong_value, # wrong data to reapply our custom logic for "new_value" + "number_of_changement_climatique_constat": wrong_value, + "number_of_changement_climatique_causes_directes": wrong_value, + "number_of_changement_climatique_consequences": wrong_value, + "number_of_attenuation_climatique_solutions_directes": wrong_value, + "number_of_adaptation_climatique_solutions_directes": wrong_value, + "number_of_ressources": wrong_value, + "number_of_ressources_solutions": wrong_value, + "number_of_biodiversite_concepts_generaux": wrong_value, + "number_of_biodiversite_causes_directes": wrong_value, + "number_of_biodiversite_consequences": wrong_value, + "number_of_biodiversite_solutions_directes" : wrong_value, + "channel_program_type": "to change", + "channel_program":"to change" + ,"channel_title":None + ,"number_of_keywords_climat": wrong_value + ,"number_of_keywords_biodiversite": wrong_value + ,"number_of_keywords_ressources": wrong_value + }]) + + assert save_to_pg(df, keywords_table, conn) == 2 + + # check the value is well existing + result_before_update_m6 = get_keyword(primary_key_m6) + result_before_update_tf1 = get_keyword(primary_key_tf1) + + session = get_db_session(conn) + # Should only update tf1 because channel=tf1) + update_keywords(session, batch_size=50, start_date="2024-01-01", end_date="2024-01-30", channel=tf1) + result_after_update_m6 = get_keyword(primary_key_m6) + result_after_update_tf1 = get_keyword(primary_key_tf1) + + new_theme, new_keywords_with_timestamp, new_value \ + ,number_of_changement_climatique_constat \ + ,number_of_changement_climatique_causes_directes \ + ,number_of_changement_climatique_consequences \ + ,number_of_attenuation_climatique_solutions_directes \ + ,number_of_adaptation_climatique_solutions_directes \ + ,number_of_ressources \ + ,number_of_ressources_solutions \ + ,number_of_biodiversite_concepts_generaux \ + ,number_of_biodiversite_causes_directes \ + ,number_of_biodiversite_consequences \ + ,number_of_biodiversite_solutions_directes \ + ,number_of_keywords_climat \ + ,number_of_keywords_biodiversite \ + ,number_of_keywords_ressources = get_themes_keywords_duration(plaintext, srt, start) + + assert result_after_update_tf1.id == result_before_update_tf1.id + assert result_after_update_m6.id == result_before_update_m6.id + + # theme + assert set(new_theme) == set(["adaptation_climatique_solutions", "changement_climatique_constat"]) + assert set(result_after_update_tf1.theme) == set(["adaptation_climatique_solutions", "changement_climatique_constat"]) + + # keywords_with_timestamp + assert len(result_after_update_tf1.keywords_with_timestamp) == len(new_keywords_with_timestamp) + + # number_of_keywords + assert new_value == number_of_changement_climatique_constat + number_of_adaptation_climatique_solutions_directes + assert result_after_update_tf1.number_of_keywords == new_value + assert result_before_update_tf1.number_of_keywords == wrong_value + + # number_of_changement_climatique_constat + assert number_of_changement_climatique_constat == 2 + assert result_after_update_tf1.number_of_changement_climatique_constat == 2 + + # number_of_adaptation_climatique_solutions_directes + assert number_of_adaptation_climatique_solutions_directes == 1 + assert result_after_update_tf1.number_of_adaptation_climatique_solutions_directes == 1 + + + assert number_of_ressources == 0 + + assert number_of_changement_climatique_causes_directes == 0 + assert number_of_changement_climatique_consequences == 0 + assert number_of_attenuation_climatique_solutions_directes == 0 + + assert number_of_ressources_solutions == 0 + assert number_of_biodiversite_concepts_generaux == 0 + assert number_of_biodiversite_causes_directes == 0 + assert number_of_biodiversite_consequences == 0 + assert number_of_biodiversite_solutions_directes == 0 + + #channel_title + assert result_after_update_tf1.channel_title == "TF1" + assert result_after_update_m6.channel_title == None # M6 was NOT updated because of parameter channel + + # number_of_keywords_climat + assert result_after_update_tf1.number_of_keywords_climat == number_of_keywords_climat + +def test_update_only_program(): + conn = connect_to_db() + + wrong_value = 0 + # insert data + primary_key_m6 = "test_save_to_pg_keyword_only_program_m6" + + m6 = "m6" + df = pd.DataFrame([{ + "id" : primary_key_m6, + "start": start, + "plaintext": plaintext, + "channel_name": m6, + "channel_radio": False, + "theme": themes, + "keywords_with_timestamp": keywords_with_timestamp, + "srt": srt, + "number_of_keywords": wrong_value, # wrong data to reapply our custom logic for "new_value" + "number_of_changement_climatique_constat": wrong_value, + "number_of_changement_climatique_causes_directes": wrong_value, + "number_of_changement_climatique_consequences": wrong_value, + "number_of_attenuation_climatique_solutions_directes": wrong_value, + "number_of_adaptation_climatique_solutions_directes": wrong_value, + "number_of_ressources": wrong_value, + "number_of_ressources_solutions": wrong_value, + "number_of_biodiversite_concepts_generaux": wrong_value, + "number_of_biodiversite_causes_directes": wrong_value, + "number_of_biodiversite_consequences": wrong_value, + "number_of_biodiversite_solutions_directes" : wrong_value, + "channel_program_type": "to change", + "channel_program":"to change" + ,"channel_title":None + ,"number_of_keywords_climat": wrong_value + ,"number_of_keywords_biodiversite": wrong_value + ,"number_of_keywords_ressources": wrong_value + }]) + + assert save_to_pg(df, keywords_table, conn) == 1 + + # check the value is well existing + result_before_update_m6 = get_keyword(primary_key_m6) + + session = get_db_session(conn) + # Should only update programs because program_only = True) + update_keywords(session, batch_size=50, start_date="2024-01-01", program_only = True, end_date="2024-01-30") + result_after_update_m6 = get_keyword(primary_key_m6) + + assert result_after_update_m6.id == result_before_update_m6.id + + # theme - not updated because of program only + assert set(result_after_update_m6.theme) == set(themes) + + # number_of_keywords - not updated because of program only + assert result_after_update_m6.number_of_keywords == wrong_value + assert result_before_update_m6.number_of_keywords == wrong_value + + # number_of_changement_climatique_constat - not updated because of program only + assert result_after_update_m6.number_of_changement_climatique_constat == wrong_value + + # number_of_adaptation_climatique_solutions_directes + assert result_after_update_m6.number_of_adaptation_climatique_solutions_directes == wrong_value + + # program - only when UPDATE_PROGRAM_ONLY for speed issues + assert result_after_update_m6.channel_program == "1245 le mag" + assert result_before_update_m6.channel_program == "to change" + assert result_after_update_m6.channel_program_type == "Information - Magazine" + assert result_before_update_m6.channel_program_type == "to change" + + #channel_title + assert result_after_update_m6.channel_title == "M6" + + # number_of_keywords_climat + assert result_after_update_m6.number_of_keywords_climat == wrong_value + +def test_update_only_program_with_only_one_channel(): + conn = connect_to_db() + + wrong_value = 0 + # insert data + primary_key_m6 = "test_save_to_pg_keyword_only_program_m6" + primary_key_tf1 = "test_save_to_pg_keyword_only_program_tf1" + m6 = "m6" + tf1 = "tf1" + df = pd.DataFrame([{ + "id" : primary_key_m6, + "start": start, + "plaintext": plaintext, + "channel_name": m6, + "channel_radio": False, + "theme": themes, + "keywords_with_timestamp": keywords_with_timestamp, + "srt": srt, + "number_of_keywords": wrong_value, # wrong data to reapply our custom logic for "new_value" + "number_of_changement_climatique_constat": wrong_value, + "number_of_changement_climatique_causes_directes": wrong_value, + "number_of_changement_climatique_consequences": wrong_value, + "number_of_attenuation_climatique_solutions_directes": wrong_value, + "number_of_adaptation_climatique_solutions_directes": wrong_value, + "number_of_ressources": wrong_value, + "number_of_ressources_solutions": wrong_value, + "number_of_biodiversite_concepts_generaux": wrong_value, + "number_of_biodiversite_causes_directes": wrong_value, + "number_of_biodiversite_consequences": wrong_value, + "number_of_biodiversite_solutions_directes" : wrong_value, + "channel_program_type": "to change", + "channel_program":"to change" + ,"channel_title":None + ,"number_of_keywords_climat": wrong_value + ,"number_of_keywords_biodiversite": wrong_value + ,"number_of_keywords_ressources": wrong_value + }, { + "id" : primary_key_tf1, + "start": start, + "plaintext": plaintext, + "channel_name": tf1, + "channel_radio": False, + "theme": themes, + "keywords_with_timestamp": keywords_with_timestamp, + "srt": srt, + "number_of_keywords": wrong_value, # wrong data to reapply our custom logic for "new_value" + "number_of_changement_climatique_constat": wrong_value, + "number_of_changement_climatique_causes_directes": wrong_value, + "number_of_changement_climatique_consequences": wrong_value, + "number_of_attenuation_climatique_solutions_directes": wrong_value, + "number_of_adaptation_climatique_solutions_directes": wrong_value, + "number_of_ressources": wrong_value, + "number_of_ressources_solutions": wrong_value, + "number_of_biodiversite_concepts_generaux": wrong_value, + "number_of_biodiversite_causes_directes": wrong_value, + "number_of_biodiversite_consequences": wrong_value, + "number_of_biodiversite_solutions_directes" : wrong_value, + "channel_program_type": "to change", + "channel_program":"to change" + ,"channel_title":None + ,"number_of_keywords_climat": wrong_value + ,"number_of_keywords_biodiversite": wrong_value + ,"number_of_keywords_ressources": wrong_value + }]) + + assert save_to_pg(df, keywords_table, conn) == 2 + + # check the value is well existing + result_before_update_m6 = get_keyword(primary_key_m6) + result_before_update_tf1 = get_keyword(primary_key_tf1) + + session = get_db_session(conn) + # Should only update programs because program_only = True and channel=tf1) + update_keywords(session, batch_size=50, start_date="2024-01-01", program_only = True, end_date="2024-01-30", channel=tf1) + result_after_update_m6 = get_keyword(primary_key_m6) + result_after_update_tf1 = get_keyword(primary_key_tf1) + + assert result_after_update_m6.id == result_before_update_m6.id + assert result_after_update_tf1.id == result_before_update_tf1.id + + # theme - not updated because of program only + assert set(result_after_update_m6.theme) == set(themes) + assert set(result_after_update_tf1.theme) == set(themes) + + # number_of_keywords - not updated because of program only + assert result_after_update_m6.number_of_keywords == wrong_value + assert result_after_update_tf1.number_of_keywords == wrong_value + + # number_of_changement_climatique_constat - not updated because of program only + assert result_after_update_m6.number_of_changement_climatique_constat == wrong_value + assert result_after_update_tf1.number_of_changement_climatique_constat == wrong_value + + # number_of_adaptation_climatique_solutions_directes + assert result_after_update_m6.number_of_adaptation_climatique_solutions_directes == wrong_value + assert result_after_update_tf1.number_of_adaptation_climatique_solutions_directes == wrong_value + + # program - only when UPDATE_PROGRAM_ONLY for speed issues + assert result_after_update_m6.channel_program == "to change" + assert result_before_update_m6.channel_program == "to change" + assert result_after_update_m6.channel_program_type == "to change" + assert result_before_update_m6.channel_program_type == "to change" + ## TF1 should have changed because of channel=tf1 + assert result_after_update_tf1.channel_program == "JT 13h" + assert result_before_update_tf1.channel_program == "to change" + assert result_after_update_tf1.channel_program_type == "Information - Journal" + assert result_before_update_tf1.channel_program_type == "to change" + + #channel_title + assert result_after_update_m6.channel_title == None + assert result_after_update_tf1.channel_title == "TF1" + + # number_of_keywords_climat + assert result_after_update_m6.number_of_keywords_climat == wrong_value + assert result_after_update_tf1.number_of_keywords_climat == wrong_value From 5aec98e09085b1780e1e410b27aba7fcc7173474 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Tue, 17 Sep 2024 09:00:15 +0000 Subject: [PATCH 13/73] [no ci]: 1.0.7 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 738e4127..6779bca3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.6" +version = "1.0.7" description = "" authors = [ "Rambier Estelle ", From ac926b9b2f30e71f24b8bdbc6df3aa8b03fe6424 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Tue, 17 Sep 2024 12:11:41 +0200 Subject: [PATCH 14/73] fix: timezone when updating --- quotaclimat/data_processing/mediatree/api_import.py | 4 +++- quotaclimat/data_processing/mediatree/channel_program.py | 2 +- .../data_processing/mediatree/update_pg_keywords.py | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/api_import.py b/quotaclimat/data_processing/mediatree/api_import.py index 07ebc43c..8881516b 100644 --- a/quotaclimat/data_processing/mediatree/api_import.py +++ b/quotaclimat/data_processing/mediatree/api_import.py @@ -67,7 +67,9 @@ async def update_pg_data(exit_event): update_keywords(session, batch_size=batch_size, start_date=start_date, program_only=program_only, end_date=end_date, channel=channel) exit_event.set() except Exception as err: - logging.error("Could update_pg_data %s:(%s)" % (type(err).__name__, err)) + logging.fatal("Could not update_pg_data %s:(%s)" % (type(err).__name__, err)) + ray.shutdown() + sys.exit(1) def get_channels(): if(os.environ.get("ENV") == "docker" or os.environ.get("CHANNEL") is not None): diff --git a/quotaclimat/data_processing/mediatree/channel_program.py b/quotaclimat/data_processing/mediatree/channel_program.py index 2e60d0a5..68457b29 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.py +++ b/quotaclimat/data_processing/mediatree/channel_program.py @@ -116,7 +116,7 @@ def get_a_program_with_start_timestamp(df_program: pd.DataFrame, start_time: pd. logging.debug(f"matching_rows {matching_rows}") return matching_rows.iloc[0]['program_name'], matching_rows.iloc[0]['program_type'] else: - logging.info(f"no programs found for {channel_name} - {start_time}") + logging.warning(f"no programs found for {channel_name} - {start_time}") return "", "" def process_subtitle(row, df_program): diff --git a/quotaclimat/data_processing/mediatree/update_pg_keywords.py b/quotaclimat/data_processing/mediatree/update_pg_keywords.py index 9681d880..91e390a1 100644 --- a/quotaclimat/data_processing/mediatree/update_pg_keywords.py +++ b/quotaclimat/data_processing/mediatree/update_pg_keywords.py @@ -88,7 +88,13 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str ,number_of_keywords_ressources=new_number_of_keywords_ressources ) else: - program_name, program_name_type = get_a_program_with_start_timestamp(df_programs, pd.Timestamp(start).tz_convert('Europe/Paris'), channel_name) + logging.info(f"Updating program for keyword {keyword_id} - {channel_name} - original tz : {start}") + if(os.environ.get("ENV") == "prod"): # weird bug i don't want to know about + start_tz = pd.Timestamp(start).tz_localize("UTC").tz_convert("Europe/Paris") + else: + start_tz = pd.Timestamp(start).tz_convert("Europe/Paris") + logging.info(f"Updating program for keyword {keyword_id} - {channel_name} - converted tz : {start_tz}") + program_name, program_name_type = get_a_program_with_start_timestamp(df_programs, start_tz, channel_name) update_keyword_row_program(session ,keyword_id ,channel_program=program_name From a0df74ba09b7fe68515decb89ebf3c2a2e7025bd Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Tue, 17 Sep 2024 10:12:27 +0000 Subject: [PATCH 15/73] [no ci]: 1.0.8 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6779bca3..1d8d3ec4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.7" +version = "1.0.8" description = "" authors = [ "Rambier Estelle ", From 14cf9b840b3c56ad3c9453c10df421a0542222a2 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 19 Sep 2024 10:19:59 +0200 Subject: [PATCH 16/73] fix: use margin when updating program name (#243) --- .../data_processing/mediatree/api_import.py | 7 +++--- .../mediatree/channel_program.py | 22 ++++++++++++----- .../mediatree/update_pg_keywords.py | 8 +++---- .../data_processing/mediatree/utils.py | 1 + test/sitemap/test_program_metadata.py | 24 ++++++++++++++++++- 5 files changed, 47 insertions(+), 15 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/api_import.py b/quotaclimat/data_processing/mediatree/api_import.py index 8881516b..fb511b2e 100644 --- a/quotaclimat/data_processing/mediatree/api_import.py +++ b/quotaclimat/data_processing/mediatree/api_import.py @@ -152,12 +152,12 @@ def get_auth_token(password=password, user_name=USER): # see : https://keywords.mediatree.fr/docs/#api-Subtitle-SubtitleList def get_param_api(token, type_sub, start_epoch, channel, end_epoch): - epoch_5min_margin = 300 + return { "channel": channel, "token": token, - "start_gte": int(start_epoch) - epoch_5min_margin, - "start_lte": int(end_epoch) + epoch_5min_margin, + "start_gte": int(start_epoch) - EPOCH__5MIN_MARGIN, + "start_lte": int(end_epoch) + EPOCH__5MIN_MARGIN, "type": type_sub, "size": "1000" # range 1-1000 } @@ -309,4 +309,3 @@ async def main(): asyncio.run(main()) sys.exit(0) - diff --git a/quotaclimat/data_processing/mediatree/channel_program.py b/quotaclimat/data_processing/mediatree/channel_program.py index 68457b29..63837145 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.py +++ b/quotaclimat/data_processing/mediatree/channel_program.py @@ -3,7 +3,7 @@ import os from datetime import datetime import json -from quotaclimat.data_processing.mediatree.utils import get_epoch_from_datetime +from quotaclimat.data_processing.mediatree.utils import get_epoch_from_datetime, EPOCH__5MIN_MARGIN def format_hour_minute(time: str) -> pd.Timestamp: date_str = "1970-01-01" @@ -80,10 +80,17 @@ def get_day_of_week(time: pd.Timestamp) -> int: def get_matching_program_hour(df_program: pd.DataFrame, start_time: pd.Timestamp): start_time = get_hour_minute(start_time) - return df_program[ - (df_program['start'] <= start_time) & - (df_program['end'] > start_time) # stricly > to avoid overlapping programs + matching_rows = df_program[ + (df_program['start'] <= (start_time + pd.Timedelta(seconds=EPOCH__5MIN_MARGIN))) & + (df_program['end'] > (start_time - pd.Timedelta(seconds=EPOCH__5MIN_MARGIN))) # stricly > to avoid overlapping programs ] + if(len(matching_rows) > 1): # no margin necessary because programs are next to each others + return df_program[ + (df_program['start'] <= (start_time)) & + (df_program['end'] > (start_time)) # stricly > to avoid overlapping programs + ] + else: + return matching_rows def get_matching_program_weekday(df_program: pd.DataFrame, start_time: pd.Timestamp, channel_name: str): logging.debug(f"get_matching_program_weekday {start_time} {channel_name}") @@ -106,12 +113,15 @@ def get_matching_program_weekday(df_program: pd.DataFrame, start_time: pd.Timest return matching_rows +def get_closest_program_between_2_with_margin(channel_name: str,start_time: pd.Timestamp, matching_rows): + logging.info(f"Several programs name for the same channel and time {channel_name} and {start_time} - {matching_rows} - returning the first match") + matching_rows["start"] + return matching_rows.iloc[0]['program_name'], matching_rows.iloc[0]['program_type'] + def get_a_program_with_start_timestamp(df_program: pd.DataFrame, start_time: pd.Timestamp, channel_name: str): matching_rows = get_matching_program_weekday(df_program, start_time, channel_name) matching_rows = get_matching_program_hour(matching_rows, start_time) - if(len(matching_rows) > 1): - logging.error(f"Several programs name for the same channel and time {channel_name} and {start_time} - {matching_rows}") if not matching_rows.empty: logging.debug(f"matching_rows {matching_rows}") return matching_rows.iloc[0]['program_name'], matching_rows.iloc[0]['program_type'] diff --git a/quotaclimat/data_processing/mediatree/update_pg_keywords.py b/quotaclimat/data_processing/mediatree/update_pg_keywords.py index 91e390a1..94e104cc 100644 --- a/quotaclimat/data_processing/mediatree/update_pg_keywords.py +++ b/quotaclimat/data_processing/mediatree/update_pg_keywords.py @@ -96,10 +96,10 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str logging.info(f"Updating program for keyword {keyword_id} - {channel_name} - converted tz : {start_tz}") program_name, program_name_type = get_a_program_with_start_timestamp(df_programs, start_tz, channel_name) update_keyword_row_program(session - ,keyword_id - ,channel_program=program_name - ,channel_program_type=program_name_type - ,channel_title=channel_title + ,keyword_id + ,channel_program=program_name + ,channel_program_type=program_name_type + ,channel_title=channel_title ) logging.info(f"bulk update done {i} out of {total_updates} - (max offset {total_updates})") session.commit() diff --git a/quotaclimat/data_processing/mediatree/utils.py b/quotaclimat/data_processing/mediatree/utils.py index 26aca80e..24b0e7ad 100644 --- a/quotaclimat/data_processing/mediatree/utils.py +++ b/quotaclimat/data_processing/mediatree/utils.py @@ -8,6 +8,7 @@ from pandas.tseries.offsets import MonthEnd timezone='Europe/Paris' +EPOCH__5MIN_MARGIN = 300 def get_keyword_time_separation_ms(duration_seconds: int = 15): return duration_seconds * 1000 diff --git a/test/sitemap/test_program_metadata.py b/test/sitemap/test_program_metadata.py index 8a18440d..53f922d5 100644 --- a/test/sitemap/test_program_metadata.py +++ b/test/sitemap/test_program_metadata.py @@ -195,7 +195,9 @@ def test_get_a_program_with_start_timestamp(): def test_get_13h_program_with_start_timestamp(): df_programs = get_programs() saturday_13h18 = 1717240693 - program_name, program_type = get_a_program_with_start_timestamp(df_programs, pd.to_datetime(saturday_13h18, unit='s', utc=True).tz_convert('Europe/Paris'), channel_name) + program_name, program_type = get_a_program_with_start_timestamp(df_programs, \ + pd.to_datetime(saturday_13h18, unit='s', utc=True).tz_convert('Europe/Paris'),\ + channel_name) assert program_name == "13h15 le samedi" assert program_type == "Information - Journal" @@ -206,6 +208,26 @@ def test_get_13h_monday_program_with_start_timestamp(): assert program_name == "JT 13h" assert program_type == "Information - Journal" +def test_get_13h_monday_rfi_program_with_start_timestamp(): + df_programs = get_programs() + monday_13h05 = 1726398337 + program_name, program_type = get_a_program_with_start_timestamp(df_programs,\ + pd.to_datetime(monday_13h05, unit='s', utc=True).tz_convert('Europe/Paris'),\ + "rfi") + assert program_name == "Journal - 13h" + assert program_type == "Information - Journal" + + +def test_get_13h_monday_rfi_with_margin_program_with_start_timestamp(): + df_programs = get_programs() + monday_13h12 = 1726398730 + program_name, program_type = get_a_program_with_start_timestamp(df_programs,\ + pd.to_datetime(monday_13h12, unit='s', utc=True).tz_convert('Europe/Paris'),\ + "rfi") + assert program_name == "Journal - 13h" + assert program_type == "Information - Journal" + + def test_compare_weekday_string(): assert compare_weekday('*', 0) == True assert compare_weekday('*', 3) == True From 77cd062040364a78e1ea512435ca36a495dcd16c Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 19 Sep 2024 08:20:34 +0000 Subject: [PATCH 17/73] [no ci]: 1.0.9 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1d8d3ec4..f374271f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.8" +version = "1.0.9" description = "" authors = [ "Rambier Estelle ", From 332c92fd2d0607bf354c7b04b5d47bcb3d2575c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:44:34 +0200 Subject: [PATCH 18/73] build(deps): bump sqlalchemy from 2.0.34 to 2.0.35 (#245) Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.34 to 2.0.35. - [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases) - [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst) - [Commits](https://github.com/sqlalchemy/sqlalchemy/commits) --- updated-dependencies: - dependency-name: sqlalchemy dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 102 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8cd7ff70..f19efdba 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3428,60 +3428,60 @@ files = [ [[package]] name = "sqlalchemy" -version = "2.0.34" +version = "2.0.35" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.34-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:95d0b2cf8791ab5fb9e3aa3d9a79a0d5d51f55b6357eecf532a120ba3b5524db"}, - {file = "SQLAlchemy-2.0.34-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:243f92596f4fd4c8bd30ab8e8dd5965afe226363d75cab2468f2c707f64cd83b"}, - {file = "SQLAlchemy-2.0.34-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ea54f7300553af0a2a7235e9b85f4204e1fc21848f917a3213b0e0818de9a24"}, - {file = "SQLAlchemy-2.0.34-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:173f5f122d2e1bff8fbd9f7811b7942bead1f5e9f371cdf9e670b327e6703ebd"}, - {file = "SQLAlchemy-2.0.34-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:196958cde924a00488e3e83ff917be3b73cd4ed8352bbc0f2989333176d1c54d"}, - {file = "SQLAlchemy-2.0.34-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd90c221ed4e60ac9d476db967f436cfcecbd4ef744537c0f2d5291439848768"}, - {file = "SQLAlchemy-2.0.34-cp310-cp310-win32.whl", hash = "sha256:3166dfff2d16fe9be3241ee60ece6fcb01cf8e74dd7c5e0b64f8e19fab44911b"}, - {file = "SQLAlchemy-2.0.34-cp310-cp310-win_amd64.whl", hash = "sha256:6831a78bbd3c40f909b3e5233f87341f12d0b34a58f14115c9e94b4cdaf726d3"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7db3db284a0edaebe87f8f6642c2b2c27ed85c3e70064b84d1c9e4ec06d5d84"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:430093fce0efc7941d911d34f75a70084f12f6ca5c15d19595c18753edb7c33b"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79cb400c360c7c210097b147c16a9e4c14688a6402445ac848f296ade6283bbc"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb1b30f31a36c7f3fee848391ff77eebdd3af5750bf95fbf9b8b5323edfdb4ec"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fddde2368e777ea2a4891a3fb4341e910a056be0bb15303bf1b92f073b80c02"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80bd73ea335203b125cf1d8e50fef06be709619eb6ab9e7b891ea34b5baa2287"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-win32.whl", hash = "sha256:6daeb8382d0df526372abd9cb795c992e18eed25ef2c43afe518c73f8cccb721"}, - {file = "SQLAlchemy-2.0.34-cp311-cp311-win_amd64.whl", hash = "sha256:5bc08e75ed11693ecb648b7a0a4ed80da6d10845e44be0c98c03f2f880b68ff4"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:53e68b091492c8ed2bd0141e00ad3089bcc6bf0e6ec4142ad6505b4afe64163e"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bcd18441a49499bf5528deaa9dee1f5c01ca491fc2791b13604e8f972877f812"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:165bbe0b376541092bf49542bd9827b048357f4623486096fc9aaa6d4e7c59a2"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3330415cd387d2b88600e8e26b510d0370db9b7eaf984354a43e19c40df2e2b"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97b850f73f8abbffb66ccbab6e55a195a0eb655e5dc74624d15cff4bfb35bd74"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee4c6917857fd6121ed84f56d1dc78eb1d0e87f845ab5a568aba73e78adf83"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-win32.whl", hash = "sha256:fbb034f565ecbe6c530dff948239377ba859420d146d5f62f0271407ffb8c580"}, - {file = "SQLAlchemy-2.0.34-cp312-cp312-win_amd64.whl", hash = "sha256:707c8f44931a4facd4149b52b75b80544a8d824162602b8cd2fe788207307f9a"}, - {file = "SQLAlchemy-2.0.34-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:24af3dc43568f3780b7e1e57c49b41d98b2d940c1fd2e62d65d3928b6f95f021"}, - {file = "SQLAlchemy-2.0.34-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e60ed6ef0a35c6b76b7640fe452d0e47acc832ccbb8475de549a5cc5f90c2c06"}, - {file = "SQLAlchemy-2.0.34-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:413c85cd0177c23e32dee6898c67a5f49296640041d98fddb2c40888fe4daa2e"}, - {file = "SQLAlchemy-2.0.34-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:25691f4adfb9d5e796fd48bf1432272f95f4bbe5f89c475a788f31232ea6afba"}, - {file = "SQLAlchemy-2.0.34-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:526ce723265643dbc4c7efb54f56648cc30e7abe20f387d763364b3ce7506c82"}, - {file = "SQLAlchemy-2.0.34-cp37-cp37m-win32.whl", hash = "sha256:13be2cc683b76977a700948411a94c67ad8faf542fa7da2a4b167f2244781cf3"}, - {file = "SQLAlchemy-2.0.34-cp37-cp37m-win_amd64.whl", hash = "sha256:e54ef33ea80d464c3dcfe881eb00ad5921b60f8115ea1a30d781653edc2fd6a2"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:43f28005141165edd11fbbf1541c920bd29e167b8bbc1fb410d4fe2269c1667a"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b68094b165a9e930aedef90725a8fcfafe9ef95370cbb54abc0464062dbf808f"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1e03db964e9d32f112bae36f0cc1dcd1988d096cfd75d6a588a3c3def9ab2b"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:203d46bddeaa7982f9c3cc693e5bc93db476ab5de9d4b4640d5c99ff219bee8c"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ae92bebca3b1e6bd203494e5ef919a60fb6dfe4d9a47ed2453211d3bd451b9f5"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9661268415f450c95f72f0ac1217cc6f10256f860eed85c2ae32e75b60278ad8"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-win32.whl", hash = "sha256:895184dfef8708e15f7516bd930bda7e50ead069280d2ce09ba11781b630a434"}, - {file = "SQLAlchemy-2.0.34-cp38-cp38-win_amd64.whl", hash = "sha256:6e7cde3a2221aa89247944cafb1b26616380e30c63e37ed19ff0bba5e968688d"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dbcdf987f3aceef9763b6d7b1fd3e4ee210ddd26cac421d78b3c206d07b2700b"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ce119fc4ce0d64124d37f66a6f2a584fddc3c5001755f8a49f1ca0a177ef9796"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a17d8fac6df9835d8e2b4c5523666e7051d0897a93756518a1fe101c7f47f2f0"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ebc11c54c6ecdd07bb4efbfa1554538982f5432dfb8456958b6d46b9f834bb7"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e6965346fc1491a566e019a4a1d3dfc081ce7ac1a736536367ca305da6472a8"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:220574e78ad986aea8e81ac68821e47ea9202b7e44f251b7ed8c66d9ae3f4278"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-win32.whl", hash = "sha256:b75b00083e7fe6621ce13cfce9d4469c4774e55e8e9d38c305b37f13cf1e874c"}, - {file = "SQLAlchemy-2.0.34-cp39-cp39-win_amd64.whl", hash = "sha256:c29d03e0adf3cc1a8c3ec62d176824972ae29b67a66cbb18daff3062acc6faa8"}, - {file = "SQLAlchemy-2.0.34-py3-none-any.whl", hash = "sha256:7286c353ee6475613d8beff83167374006c6b3e3f0e6491bfe8ca610eb1dec0f"}, - {file = "sqlalchemy-2.0.34.tar.gz", hash = "sha256:10d8f36990dd929690666679b0f42235c159a7051534adb135728ee52828dd22"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:67219632be22f14750f0d1c70e62f204ba69d28f62fd6432ba05ab295853de9b"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4668bd8faf7e5b71c0319407b608f278f279668f358857dbfd10ef1954ac9f90"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8bea573863762bbf45d1e13f87c2d2fd32cee2dbd50d050f83f87429c9e1ea"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f552023710d4b93d8fb29a91fadf97de89c5926c6bd758897875435f2a939f33"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:016b2e665f778f13d3c438651dd4de244214b527a275e0acf1d44c05bc6026a9"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7befc148de64b6060937231cbff8d01ccf0bfd75aa26383ffdf8d82b12ec04ff"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-win32.whl", hash = "sha256:22b83aed390e3099584b839b93f80a0f4a95ee7f48270c97c90acd40ee646f0b"}, + {file = "SQLAlchemy-2.0.35-cp310-cp310-win_amd64.whl", hash = "sha256:a29762cd3d116585278ffb2e5b8cc311fb095ea278b96feef28d0b423154858e"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e21f66748ab725ade40fa7af8ec8b5019c68ab00b929f6643e1b1af461eddb60"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8a6219108a15fc6d24de499d0d515c7235c617b2540d97116b663dade1a54d62"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:042622a5306c23b972192283f4e22372da3b8ddf5f7aac1cc5d9c9b222ab3ff6"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:627dee0c280eea91aed87b20a1f849e9ae2fe719d52cbf847c0e0ea34464b3f7"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4fdcd72a789c1c31ed242fd8c1bcd9ea186a98ee8e5408a50e610edfef980d71"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89b64cd8898a3a6f642db4eb7b26d1b28a497d4022eccd7717ca066823e9fb01"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-win32.whl", hash = "sha256:6a93c5a0dfe8d34951e8a6f499a9479ffb9258123551fa007fc708ae2ac2bc5e"}, + {file = "SQLAlchemy-2.0.35-cp311-cp311-win_amd64.whl", hash = "sha256:c68fe3fcde03920c46697585620135b4ecfdfc1ed23e75cc2c2ae9f8502c10b8"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:eb60b026d8ad0c97917cb81d3662d0b39b8ff1335e3fabb24984c6acd0c900a2"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6921ee01caf375363be5e9ae70d08ce7ca9d7e0e8983183080211a062d299468"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cdf1a0dbe5ced887a9b127da4ffd7354e9c1a3b9bb330dce84df6b70ccb3a8d"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93a71c8601e823236ac0e5d087e4f397874a421017b3318fd92c0b14acf2b6db"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e04b622bb8a88f10e439084486f2f6349bf4d50605ac3e445869c7ea5cf0fa8c"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1b56961e2d31389aaadf4906d453859f35302b4eb818d34a26fab72596076bb8"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-win32.whl", hash = "sha256:0f9f3f9a3763b9c4deb8c5d09c4cc52ffe49f9876af41cc1b2ad0138878453cf"}, + {file = "SQLAlchemy-2.0.35-cp312-cp312-win_amd64.whl", hash = "sha256:25b0f63e7fcc2a6290cb5f7f5b4fc4047843504983a28856ce9b35d8f7de03cc"}, + {file = "SQLAlchemy-2.0.35-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f021d334f2ca692523aaf7bbf7592ceff70c8594fad853416a81d66b35e3abf9"}, + {file = "SQLAlchemy-2.0.35-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05c3f58cf91683102f2f0265c0db3bd3892e9eedabe059720492dbaa4f922da1"}, + {file = "SQLAlchemy-2.0.35-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:032d979ce77a6c2432653322ba4cbeabf5a6837f704d16fa38b5a05d8e21fa00"}, + {file = "SQLAlchemy-2.0.35-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:2e795c2f7d7249b75bb5f479b432a51b59041580d20599d4e112b5f2046437a3"}, + {file = "SQLAlchemy-2.0.35-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:cc32b2990fc34380ec2f6195f33a76b6cdaa9eecf09f0c9404b74fc120aef36f"}, + {file = "SQLAlchemy-2.0.35-cp37-cp37m-win32.whl", hash = "sha256:9509c4123491d0e63fb5e16199e09f8e262066e58903e84615c301dde8fa2e87"}, + {file = "SQLAlchemy-2.0.35-cp37-cp37m-win_amd64.whl", hash = "sha256:3655af10ebcc0f1e4e06c5900bb33e080d6a1fa4228f502121f28a3b1753cde5"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4c31943b61ed8fdd63dfd12ccc919f2bf95eefca133767db6fbbd15da62078ec"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a62dd5d7cc8626a3634208df458c5fe4f21200d96a74d122c83bc2015b333bc1"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0630774b0977804fba4b6bbea6852ab56c14965a2b0c7fc7282c5f7d90a1ae72"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d625eddf7efeba2abfd9c014a22c0f6b3796e0ffb48f5d5ab106568ef01ff5a"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ada603db10bb865bbe591939de854faf2c60f43c9b763e90f653224138f910d9"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c41411e192f8d3ea39ea70e0fae48762cd11a2244e03751a98bd3c0ca9a4e936"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-win32.whl", hash = "sha256:d299797d75cd747e7797b1b41817111406b8b10a4f88b6e8fe5b5e59598b43b0"}, + {file = "SQLAlchemy-2.0.35-cp38-cp38-win_amd64.whl", hash = "sha256:0375a141e1c0878103eb3d719eb6d5aa444b490c96f3fedab8471c7f6ffe70ee"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ccae5de2a0140d8be6838c331604f91d6fafd0735dbdcee1ac78fc8fbaba76b4"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2a275a806f73e849e1c309ac11108ea1a14cd7058577aba962cd7190e27c9e3c"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:732e026240cdd1c1b2e3ac515c7a23820430ed94292ce33806a95869c46bd139"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:890da8cd1941fa3dab28c5bac3b9da8502e7e366f895b3b8e500896f12f94d11"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0d8326269dbf944b9201911b0d9f3dc524d64779a07518199a58384c3d37a44"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b76d63495b0508ab9fc23f8152bac63205d2a704cd009a2b0722f4c8e0cba8e0"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-win32.whl", hash = "sha256:69683e02e8a9de37f17985905a5eca18ad651bf592314b4d3d799029797d0eb3"}, + {file = "SQLAlchemy-2.0.35-cp39-cp39-win_amd64.whl", hash = "sha256:aee110e4ef3c528f3abbc3c2018c121e708938adeeff9006428dd7c8555e9b3f"}, + {file = "SQLAlchemy-2.0.35-py3-none-any.whl", hash = "sha256:2ab3f0336c0387662ce6221ad30ab3a5e6499aab01b9790879b6578fd9b8faa1"}, + {file = "sqlalchemy-2.0.35.tar.gz", hash = "sha256:e11d7ea4d24f0a262bccf9a7cd6284c976c5369dac21db237cff59586045ab9f"}, ] [package.dependencies] @@ -4015,4 +4015,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.11.0,<3.13.0" -content-hash = "9f8c9468bb387d26c46347240894d49d27ad1392dd5214378c7106f349906bdb" +content-hash = "3e55e466eadb7528c0160d5d7534e3f72c076926dcf73b05f85048d159f46b57" diff --git a/pyproject.toml b/pyproject.toml index f374271f..cf21d204 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ python = ">=3.11.0,<3.13.0" pandas = "^2.2.0" advertools = "^0.14.1" xmltodict = "^0.13.0" -sqlalchemy = "^2.0.29" +sqlalchemy = "^2.0.35" psycopg2-binary = "^2.9.5" alembic = "^1.13.1" beautifulsoup4 = "^4.11.1" From 50e792dfc6eb50df228321f7161724fd6bb7bfc1 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Mon, 23 Sep 2024 19:45:10 +0000 Subject: [PATCH 19/73] [no ci]: 1.0.10 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index cf21d204..89cef249 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.9" +version = "1.0.10" description = "" authors = [ "Rambier Estelle ", From c994ded6fe678f6734d3f63679448d3c4ee0ef2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:53:10 +0200 Subject: [PATCH 20/73] build(deps): bump pandas from 2.2.2 to 2.2.3 (#246) Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.2.2 to 2.2.3. - [Release notes](https://github.com/pandas-dev/pandas/releases) - [Commits](https://github.com/pandas-dev/pandas/compare/v2.2.2...v2.2.3) --- updated-dependencies: - dependency-name: pandas dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 75 +++++++++++++++++++++++++++++--------------------- pyproject.toml | 2 +- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/poetry.lock b/poetry.lock index f19efdba..66ec734a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2009,40 +2009,53 @@ files = [ [[package]] name = "pandas" -version = "2.2.2" +version = "2.2.3" description = "Powerful data structures for data analysis, time series, and statistics" optional = false python-versions = ">=3.9" files = [ - {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, - {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, - {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, - {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, - {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, - {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, - {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, ] [package.dependencies] @@ -4015,4 +4028,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.11.0,<3.13.0" -content-hash = "3e55e466eadb7528c0160d5d7534e3f72c076926dcf73b05f85048d159f46b57" +content-hash = "7916d9e6f5d36ca186454b40492ef18ab3dd207b2be345a65b695dbedacd1955" diff --git a/pyproject.toml b/pyproject.toml index 89cef249..de877711 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ log_cli_level = "INFO" [tool.poetry.dependencies] python = ">=3.11.0,<3.13.0" -pandas = "^2.2.0" +pandas = "^2.2.3" advertools = "^0.14.1" xmltodict = "^0.13.0" sqlalchemy = "^2.0.35" From 9cd8967b5fac705785a803fe73bff1a0fcfb8ae0 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Mon, 23 Sep 2024 19:53:45 +0000 Subject: [PATCH 21/73] [no ci]: 1.0.11 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index de877711..4b3a4bb5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.10" +version = "1.0.11" description = "" authors = [ "Rambier Estelle ", From ff9f5bb7eaacbeb0f2d94e0164154d08492fc8ae Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 26 Sep 2024 11:11:45 +0200 Subject: [PATCH 22/73] fix: program name can be null when margin is not enough (#247) --- quotaclimat/data_processing/mediatree/channel_program.py | 6 +++--- quotaclimat/data_processing/mediatree/utils.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/channel_program.py b/quotaclimat/data_processing/mediatree/channel_program.py index 63837145..efb895d8 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.py +++ b/quotaclimat/data_processing/mediatree/channel_program.py @@ -3,7 +3,7 @@ import os from datetime import datetime import json -from quotaclimat.data_processing.mediatree.utils import get_epoch_from_datetime, EPOCH__5MIN_MARGIN +from quotaclimat.data_processing.mediatree.utils import get_epoch_from_datetime, EPOCH__5MIN_MARGIN, EPOCH__1MIN_MARGIN def format_hour_minute(time: str) -> pd.Timestamp: date_str = "1970-01-01" @@ -81,8 +81,8 @@ def get_day_of_week(time: pd.Timestamp) -> int: def get_matching_program_hour(df_program: pd.DataFrame, start_time: pd.Timestamp): start_time = get_hour_minute(start_time) matching_rows = df_program[ - (df_program['start'] <= (start_time + pd.Timedelta(seconds=EPOCH__5MIN_MARGIN))) & - (df_program['end'] > (start_time - pd.Timedelta(seconds=EPOCH__5MIN_MARGIN))) # stricly > to avoid overlapping programs + (df_program['start'] <= (start_time + pd.Timedelta(seconds=EPOCH__5MIN_MARGIN + EPOCH__1MIN_MARGIN))) & + (df_program['end'] > (start_time - pd.Timedelta(seconds=EPOCH__5MIN_MARGIN + EPOCH__1MIN_MARGIN))) ] if(len(matching_rows) > 1): # no margin necessary because programs are next to each others return df_program[ diff --git a/quotaclimat/data_processing/mediatree/utils.py b/quotaclimat/data_processing/mediatree/utils.py index 24b0e7ad..8344659b 100644 --- a/quotaclimat/data_processing/mediatree/utils.py +++ b/quotaclimat/data_processing/mediatree/utils.py @@ -9,6 +9,7 @@ timezone='Europe/Paris' EPOCH__5MIN_MARGIN = 300 +EPOCH__1MIN_MARGIN = 60 # to add margin for program def get_keyword_time_separation_ms(duration_seconds: int = 15): return duration_seconds * 1000 From 306eb04d4541e192bbdb953923869b8e2c9a8ddb Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 26 Sep 2024 09:12:30 +0000 Subject: [PATCH 23/73] [no ci]: 1.0.12 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4b3a4bb5..6908eb96 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.11" +version = "1.0.12" description = "" authors = [ "Rambier Estelle ", From faa948b28bf47fd9fca44e85a9ea1f35bcde6ab5 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 26 Sep 2024 14:59:04 +0200 Subject: [PATCH 24/73] feat: update only empty program (#249) --- README.md | 2 + .../data_processing/mediatree/api_import.py | 6 +- .../mediatree/update_pg_keywords.py | 32 ++++-- test/sitemap/test_update_pg_keywords.py | 98 ++++++++++++++++++- 4 files changed, 124 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 1bb2d81b..199fd15f 100644 --- a/README.md +++ b/README.md @@ -319,6 +319,8 @@ Use env variable `CHANNEL` like in docker compose (string: tf1) with `UPDATE` to ### Batch program data `UPDATE_PROGRAM_ONLY` to true will only update program metadata, otherwise, it will update program metadata and all theme/keywords calculations. +`UPDATE_PROGRAM_CHANNEL_EMPTY_ONLY` to true will only update program metadata with empty value : "". + ### Batch update from an offset With +1 millions rows, we can update from an offset to fix a custom logic by using `START_DATE_UPDATE` (YYYY-MM-DD), the default will use the end of the month otherwise you can specify`END_DATE` (optional) (YYYY-MM-DD) to batch update PG from a date range. diff --git a/quotaclimat/data_processing/mediatree/api_import.py b/quotaclimat/data_processing/mediatree/api_import.py index fb511b2e..bace803c 100644 --- a/quotaclimat/data_processing/mediatree/api_import.py +++ b/quotaclimat/data_processing/mediatree/api_import.py @@ -55,16 +55,18 @@ async def update_pg_data(exit_event): end_date = os.environ.get("END_DATE", tmp_end_date) batch_size = int(os.environ.get("BATCH_SIZE", 50000)) program_only = os.environ.get("UPDATE_PROGRAM_ONLY", "false") == "true" + empty_program_only = os.environ.get("UPDATE_PROGRAM_CHANNEL_EMPTY_ONLY", "false") == "true" channel = os.environ.get("CHANNEL", "") if(program_only): - logging.warning("Update : Program only mode activated - UPDATE_PROGRAM_ONLY") + logging.warning(f"Update : Program only mode activated - UPDATE_PROGRAM_ONLY with UPDATE_PROGRAM_CHANNEL_EMPTY_ONLY set to {empty_program_only}") else: logging.warning("Update : programs will not be updated for performance issue - use UPDATE_PROGRAM_ONLY to true for this") logging.warning(f"Updating already saved data for channel {channel} from Postgresql from date {start_date} - env variable START_DATE_UPDATE until {end_date} - you can use END_DATE to set it (optional)") try: session = get_db_session() - update_keywords(session, batch_size=batch_size, start_date=start_date, program_only=program_only, end_date=end_date, channel=channel) + update_keywords(session, batch_size=batch_size, start_date=start_date, program_only=program_only, end_date=end_date,\ + channel=channel, empty_program_only=empty_program_only) exit_event.set() except Exception as err: logging.fatal("Could not update_pg_data %s:(%s)" % (type(err).__name__, err)) diff --git a/quotaclimat/data_processing/mediatree/update_pg_keywords.py b/quotaclimat/data_processing/mediatree/update_pg_keywords.py index 94e104cc..d4fe0e89 100644 --- a/quotaclimat/data_processing/mediatree/update_pg_keywords.py +++ b/quotaclimat/data_processing/mediatree/update_pg_keywords.py @@ -8,10 +8,11 @@ from postgres.schemas.models import Keywords from quotaclimat.data_processing.mediatree.detect_keywords import * from quotaclimat.data_processing.mediatree.channel_program import get_programs, get_a_program_with_start_timestamp, get_channel_title_for_name -from sqlalchemy import func, select, and_, func +from sqlalchemy import func, select, and_, func, or_ -def update_keywords(session: Session, batch_size: int = 50000, start_date : str = "2023-04-01", program_only=False, end_date: str = "2023-04-30", channel: str = "") -> list: - total_updates = get_total_count_saved_keywords(session, start_date, end_date, channel) +def update_keywords(session: Session, batch_size: int = 50000, start_date : str = "2023-04-01", program_only=False, \ + end_date: str = "2023-04-30", channel: str = "", empty_program_only=False) -> list: + total_updates = get_total_count_saved_keywords(session, start_date, end_date, channel, empty_program_only) if total_updates == 0: logging.error("No rows to update - change your START_DATE_UPDATE") @@ -22,9 +23,9 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str logging.info(f"Updating {total_updates} saved keywords from {start_date} date to {end_date} for channel {channel} - batch size {batch_size} - totals rows") df_programs = get_programs() - logging.debug("Got channel programs") + for i in range(0, total_updates, batch_size): - current_batch_saved_keywords = get_keywords_columns(session, i, batch_size, start_date, end_date, channel) + current_batch_saved_keywords = get_keywords_columns(session, i, batch_size, start_date, end_date, channel, empty_program_only) logging.info(f"Updating {len(current_batch_saved_keywords)} elements from {i} offsets - batch size {batch_size} - until offset {total_updates}") for keyword_id, plaintext, keywords_with_timestamp, number_of_keywords, start, srt, theme, channel_name, channel_title in current_batch_saved_keywords: if channel_title is None: @@ -87,7 +88,7 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str ,number_of_keywords_biodiversite=new_number_of_keywords_biodiversite ,number_of_keywords_ressources=new_number_of_keywords_ressources ) - else: + else: # Program only mode logging.info(f"Updating program for keyword {keyword_id} - {channel_name} - original tz : {start}") if(os.environ.get("ENV") == "prod"): # weird bug i don't want to know about start_tz = pd.Timestamp(start).tz_localize("UTC").tz_convert("Europe/Paris") @@ -107,7 +108,8 @@ def update_keywords(session: Session, batch_size: int = 50000, start_date : str logging.info("updated all keywords") -def get_keywords_columns(session: Session, offset: int = 0, batch_size: int = 50000, start_date: str = "2023-04-01", end_date: str = "2023-04-30", channel: str = "") -> list: +def get_keywords_columns(session: Session, offset: int = 0, batch_size: int = 50000, start_date: str = "2023-04-01", end_date: str = "2023-04-30",\ + channel: str = "", empty_program_only: bool = False) -> list: logging.debug(f"Getting {batch_size} elements from offset {offset}") query = session.query( Keywords.id, @@ -129,15 +131,29 @@ def get_keywords_columns(session: Session, offset: int = 0, batch_size: int = 50 if channel != "": query = query.filter(Keywords.channel_name == channel) + if empty_program_only: + query = query.filter(Keywords.channel_program == "") + return query.offset(offset) \ .limit(batch_size) \ .all() -def get_total_count_saved_keywords(session: Session, start_date : str, end_date : str, channel: str) -> int: +def get_total_count_saved_keywords(session: Session, start_date : str, end_date : str, channel: str, empty_program_only: bool) -> int: statement = select(func.count()).filter( and_(func.date(Keywords.start) >= start_date, func.date(Keywords.start) <= end_date) ).select_from(Keywords) + if channel != "": + statement = statement.filter(Keywords.channel_name == channel) + + if empty_program_only: + statement = statement.filter( + or_( + Keywords.channel_program.is_(None), + Keywords.channel_program == "" + ) + ) + return session.execute(statement).scalar() def update_keyword_row(session: Session, diff --git a/test/sitemap/test_update_pg_keywords.py b/test/sitemap/test_update_pg_keywords.py index e166a897..d82ca288 100644 --- a/test/sitemap/test_update_pg_keywords.py +++ b/test/sitemap/test_update_pg_keywords.py @@ -17,6 +17,8 @@ start = pd.to_datetime("2024-01-26 12:18:54", utc=True).tz_convert('Europe/Paris') create_tables() +wrong_value = 0 +m6 = "m6" plaintext = "cheese pizza habitabilité de la planète conditions de vie sur terre animal digue" srt = [{ "duration_ms": 34, @@ -398,12 +400,10 @@ def test_update_only_one_channel(): def test_update_only_program(): conn = connect_to_db() - - wrong_value = 0 + # insert data primary_key_m6 = "test_save_to_pg_keyword_only_program_m6" - m6 = "m6" df = pd.DataFrame([{ "id" : primary_key_m6, "start": start, @@ -477,7 +477,6 @@ def test_update_only_program_with_only_one_channel(): # insert data primary_key_m6 = "test_save_to_pg_keyword_only_program_m6" primary_key_tf1 = "test_save_to_pg_keyword_only_program_tf1" - m6 = "m6" tf1 = "tf1" df = pd.DataFrame([{ "id" : primary_key_m6, @@ -584,3 +583,94 @@ def test_update_only_program_with_only_one_channel(): # number_of_keywords_climat assert result_after_update_m6.number_of_keywords_climat == wrong_value assert result_after_update_tf1.number_of_keywords_climat == wrong_value + +def test_update_only_empty_program(): + conn = connect_to_db() + + wrong_value = 0 + # insert data + primary_key_m6 = "test_save_to_pg_keyword_only_program_m6" + + primary_key_m6 = "test_save_to_pg_keyword_only_program_m6" + primary_key_tf1 = "test_save_to_pg_keyword_only_program_tf1" + tf1 = "tf1" + df = pd.DataFrame([{ + "id" : primary_key_m6, + "start": start, + "plaintext": plaintext, + "channel_name": m6, + "channel_radio": False, + "theme": themes, + "keywords_with_timestamp": keywords_with_timestamp, + "srt": srt, + "number_of_keywords": wrong_value, # wrong data to reapply our custom logic for "new_value" + "number_of_changement_climatique_constat": wrong_value, + "number_of_changement_climatique_causes_directes": wrong_value, + "number_of_changement_climatique_consequences": wrong_value, + "number_of_attenuation_climatique_solutions_directes": wrong_value, + "number_of_adaptation_climatique_solutions_directes": wrong_value, + "number_of_ressources": wrong_value, + "number_of_ressources_solutions": wrong_value, + "number_of_biodiversite_concepts_generaux": wrong_value, + "number_of_biodiversite_causes_directes": wrong_value, + "number_of_biodiversite_consequences": wrong_value, + "number_of_biodiversite_solutions_directes" : wrong_value, + "channel_program_type": "", + "channel_program":"" # Empty --> it's going to change + ,"channel_title":None + ,"number_of_keywords_climat": wrong_value + ,"number_of_keywords_biodiversite": wrong_value + ,"number_of_keywords_ressources": wrong_value + }, { + "id" : primary_key_tf1, + "start": start, + "plaintext": plaintext, + "channel_name": tf1, + "channel_radio": False, + "theme": themes, + "keywords_with_timestamp": keywords_with_timestamp, + "srt": srt, + "number_of_keywords": wrong_value, # wrong data to reapply our custom logic for "new_value" + "number_of_changement_climatique_constat": wrong_value, + "number_of_changement_climatique_causes_directes": wrong_value, + "number_of_changement_climatique_consequences": wrong_value, + "number_of_attenuation_climatique_solutions_directes": wrong_value, + "number_of_adaptation_climatique_solutions_directes": wrong_value, + "number_of_ressources": wrong_value, + "number_of_ressources_solutions": wrong_value, + "number_of_biodiversite_concepts_generaux": wrong_value, + "number_of_biodiversite_causes_directes": wrong_value, + "number_of_biodiversite_consequences": wrong_value, + "number_of_biodiversite_solutions_directes" : wrong_value, + "channel_program_type": "to change", + "channel_program":"to change" + ,"channel_title":None + ,"number_of_keywords_climat": wrong_value + ,"number_of_keywords_biodiversite": wrong_value + ,"number_of_keywords_ressources": wrong_value + }]) + + assert save_to_pg(df, keywords_table, conn) == 2 + + # check the value is well existing + result_before_update_m6 = get_keyword(primary_key_m6) + result_before_update_tf1 = get_keyword(primary_key_tf1) + + session = get_db_session(conn) + # Should only update programs because program_only = True) + update_keywords(session, batch_size=50, start_date="2024-01-01", program_only = True, end_date="2024-01-30",\ + empty_program_only=True + ) + result_after_update_m6 = get_keyword(primary_key_m6) + result_after_update_tf1 = get_keyword(primary_key_tf1) + # program - only + assert result_after_update_m6.channel_program == "1245 le mag" + assert result_before_update_m6.channel_program == "" + assert result_after_update_m6.channel_program_type == "Information - Magazine" + assert result_before_update_m6.channel_program_type == "" + + ## TF1 should NOT changed because it has a value + assert result_after_update_tf1.channel_program == "to change" + assert result_before_update_tf1.channel_program == "to change" + assert result_after_update_tf1.channel_program_type == "to change" + assert result_before_update_tf1.channel_program_type == "to change" \ No newline at end of file From cce680158a540af14e6f6f1146de76fb6f714362 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 26 Sep 2024 12:59:37 +0000 Subject: [PATCH 25/73] [no ci]: 1.0.13 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6908eb96..2bf2fd01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.12" +version = "1.0.13" description = "" authors = [ "Rambier Estelle ", From 7e736fdbd228d7f039c1300e02b0f78260388f4b Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 26 Sep 2024 15:50:30 +0200 Subject: [PATCH 26/73] Fix/program name margin with close programs (#250) * fix: when 2 programs are super close but with a margin, pick the first one * fix: edge case --- .../mediatree/channel_program.py | 30 ++++++++++++------- test/sitemap/test_program_metadata.py | 9 ++++++ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/channel_program.py b/quotaclimat/data_processing/mediatree/channel_program.py index efb895d8..11bd58e1 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.py +++ b/quotaclimat/data_processing/mediatree/channel_program.py @@ -19,7 +19,7 @@ def get_programs(): with open(json_file_path, 'r') as file: json_data = json.load(file) df_programs = pd.DataFrame(json_data) - logging.info(df_programs.dtypes) + df_programs[['start', 'end']] = df_programs.apply(lambda x: pd.Series({ 'start': format_hour_minute(x['start']), 'end': format_hour_minute(x['end']) @@ -79,16 +79,31 @@ def get_day_of_week(time: pd.Timestamp) -> int: return start_weekday def get_matching_program_hour(df_program: pd.DataFrame, start_time: pd.Timestamp): + number_of_rows_to_filter = len(df_program) + logging.debug(f"df_program {df_program['start']}") + logging.debug(f"{start_time + pd.Timedelta(seconds=EPOCH__5MIN_MARGIN + EPOCH__1MIN_MARGIN)}") + logging.debug(f"df_program {df_program['end']}") + logging.debug(f"number_of_rows_to_filter {number_of_rows_to_filter}") start_time = get_hour_minute(start_time) matching_rows = df_program[ (df_program['start'] <= (start_time + pd.Timedelta(seconds=EPOCH__5MIN_MARGIN + EPOCH__1MIN_MARGIN))) & (df_program['end'] > (start_time - pd.Timedelta(seconds=EPOCH__5MIN_MARGIN + EPOCH__1MIN_MARGIN))) ] - if(len(matching_rows) > 1): # no margin necessary because programs are next to each others - return df_program[ + + number_of_result = len(matching_rows) + logging.info(f"matching_rows {matching_rows}") + if(number_of_result > 1): # no margin necessary because programs are next to each others + closest_result = df_program[ (df_program['start'] <= (start_time)) & (df_program['end'] > (start_time)) # stricly > to avoid overlapping programs ] + if(len(closest_result) == 0): + return matching_rows.head(1) + else: + return closest_result + elif(number_of_result == 0 & number_of_rows_to_filter > 0): + logging.warning("No results from hour filter") + return None else: return matching_rows @@ -99,12 +114,12 @@ def get_matching_program_weekday(df_program: pd.DataFrame, start_time: pd.Timest if "weekday_mask" in df_program.columns: df_program.drop(columns=["weekday_mask"], inplace=True) df_program["weekday_mask"] = df_program['weekday'].apply(lambda x: compare_weekday(x, start_weekday), axis=1) - logging.debug("weekday_mask done") + matching_rows = df_program[ (df_program['channel_name'] == channel_name) & (df_program["weekday_mask"] == True) ] - logging.debug("matching_rows done") + matching_rows.drop(columns=['weekday_mask'], inplace=True) matching_rows.drop(columns=['weekday'], inplace=True) @@ -113,11 +128,6 @@ def get_matching_program_weekday(df_program: pd.DataFrame, start_time: pd.Timest return matching_rows -def get_closest_program_between_2_with_margin(channel_name: str,start_time: pd.Timestamp, matching_rows): - logging.info(f"Several programs name for the same channel and time {channel_name} and {start_time} - {matching_rows} - returning the first match") - matching_rows["start"] - return matching_rows.iloc[0]['program_name'], matching_rows.iloc[0]['program_type'] - def get_a_program_with_start_timestamp(df_program: pd.DataFrame, start_time: pd.Timestamp, channel_name: str): matching_rows = get_matching_program_weekday(df_program, start_time, channel_name) matching_rows = get_matching_program_hour(matching_rows, start_time) diff --git a/test/sitemap/test_program_metadata.py b/test/sitemap/test_program_metadata.py index 53f922d5..4d3cc9cd 100644 --- a/test/sitemap/test_program_metadata.py +++ b/test/sitemap/test_program_metadata.py @@ -228,6 +228,15 @@ def test_get_13h_monday_rfi_with_margin_program_with_start_timestamp(): assert program_type == "Information - Journal" +def test_get_6h26_friday_fr2_with_margin_program_with_start_timestamp(): + df_programs = get_programs() + friday_6h26 = 1726719981 + program_name, program_type = get_a_program_with_start_timestamp(df_programs,\ + pd.to_datetime(friday_6h26, unit='s', utc=True).tz_convert('Europe/Paris'),\ + "france2") + assert program_name == "Le 6h Info" + assert program_type == "Information - Journal" + def test_compare_weekday_string(): assert compare_weekday('*', 0) == True assert compare_weekday('*', 3) == True From 572dac2960879300096bd966b909f8a9abb82731 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 26 Sep 2024 13:51:10 +0000 Subject: [PATCH 27/73] [no ci]: 1.0.14 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2bf2fd01..b5a3d955 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.13" +version = "1.0.14" description = "" authors = [ "Rambier Estelle ", From 4931047cbff78baee1d556ae8f6bc6134151e5c5 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Tue, 1 Oct 2024 12:23:01 +0200 Subject: [PATCH 28/73] chores: update stop words panneaux solaires --- .../data_processing/mediatree/keyword/stop_words.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index 3b6abc60..7299d09a 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -24,6 +24,14 @@ ,"installateur de panneaux photovoltaïques" ,"installateur de panneaux solaires" ,"installateurs de panneaux solaires" + ,"verlaine installation de panneaux solaires" + ,"votre expert en panneaux solaires" # mon kits solaires point fr + ,"le top des panneaux solaires" + ,"panneaux solaires garantie à vie" + ,"économies d' énergie impact environnemental des vies" + ,"économies d' énergie l' impact environnemental des vies" + ,"ou des entreprises font des économies d' énergie ou l' impact environnemental des vies" + ,"font des économies d' énergie ou l' impact environnemental" ,"pompes entretien à pour chaleur pompes et à photovoltaïque" ,"panneaux solaires groupe" ,"pour réduire votre facture d' électricité en installant des panneaux solaires" From d7da7cbf841077c8e9ec167c2c6a74a0507b48c9 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Tue, 1 Oct 2024 10:23:40 +0000 Subject: [PATCH 29/73] [no ci]: 1.0.15 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b5a3d955..89e4d022 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.14" +version = "1.0.15" description = "" authors = [ "Rambier Estelle ", From 29bc704e1aefa178d4689d524d4fda99bf3c3648 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Oct 2024 10:47:12 +0200 Subject: [PATCH 30/73] build(deps): bump aiohttp from 3.10.5 to 3.10.8 (#251) Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.10.5 to 3.10.8. - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](https://github.com/aio-libs/aiohttp/compare/v3.10.5...v3.10.8) --- updated-dependencies: - dependency-name: aiohttp dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 374 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 188 insertions(+), 188 deletions(-) diff --git a/poetry.lock b/poetry.lock index 66ec734a..6ab441b0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -31,102 +31,102 @@ files = [ [[package]] name = "aiohttp" -version = "3.10.5" +version = "3.10.8" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" files = [ - {file = "aiohttp-3.10.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:18a01eba2574fb9edd5f6e5fb25f66e6ce061da5dab5db75e13fe1558142e0a3"}, - {file = "aiohttp-3.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:94fac7c6e77ccb1ca91e9eb4cb0ac0270b9fb9b289738654120ba8cebb1189c6"}, - {file = "aiohttp-3.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f1f1c75c395991ce9c94d3e4aa96e5c59c8356a15b1c9231e783865e2772699"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f7acae3cf1a2a2361ec4c8e787eaaa86a94171d2417aae53c0cca6ca3118ff6"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:94c4381ffba9cc508b37d2e536b418d5ea9cfdc2848b9a7fea6aebad4ec6aac1"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c31ad0c0c507894e3eaa843415841995bf8de4d6b2d24c6e33099f4bc9fc0d4f"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0912b8a8fadeb32ff67a3ed44249448c20148397c1ed905d5dac185b4ca547bb"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d93400c18596b7dc4794d48a63fb361b01a0d8eb39f28800dc900c8fbdaca91"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d00f3c5e0d764a5c9aa5a62d99728c56d455310bcc288a79cab10157b3af426f"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d742c36ed44f2798c8d3f4bc511f479b9ceef2b93f348671184139e7d708042c"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:814375093edae5f1cb31e3407997cf3eacefb9010f96df10d64829362ae2df69"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8224f98be68a84b19f48e0bdc14224b5a71339aff3a27df69989fa47d01296f3"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d9a487ef090aea982d748b1b0d74fe7c3950b109df967630a20584f9a99c0683"}, - {file = "aiohttp-3.10.5-cp310-cp310-win32.whl", hash = "sha256:d9ef084e3dc690ad50137cc05831c52b6ca428096e6deb3c43e95827f531d5ef"}, - {file = "aiohttp-3.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:66bf9234e08fe561dccd62083bf67400bdbf1c67ba9efdc3dac03650e97c6088"}, - {file = "aiohttp-3.10.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c6a4e5e40156d72a40241a25cc226051c0a8d816610097a8e8f517aeacd59a2"}, - {file = "aiohttp-3.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c634a3207a5445be65536d38c13791904fda0748b9eabf908d3fe86a52941cf"}, - {file = "aiohttp-3.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4aff049b5e629ef9b3e9e617fa6e2dfeda1bf87e01bcfecaf3949af9e210105e"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1942244f00baaacaa8155eca94dbd9e8cc7017deb69b75ef67c78e89fdad3c77"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e04a1f2a65ad2f93aa20f9ff9f1b672bf912413e5547f60749fa2ef8a644e061"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7f2bfc0032a00405d4af2ba27f3c429e851d04fad1e5ceee4080a1c570476697"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:424ae21498790e12eb759040bbb504e5e280cab64693d14775c54269fd1d2bb7"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:975218eee0e6d24eb336d0328c768ebc5d617609affaca5dbbd6dd1984f16ed0"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4120d7fefa1e2d8fb6f650b11489710091788de554e2b6f8347c7a20ceb003f5"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b90078989ef3fc45cf9221d3859acd1108af7560c52397ff4ace8ad7052a132e"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ba5a8b74c2a8af7d862399cdedce1533642fa727def0b8c3e3e02fcb52dca1b1"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:02594361128f780eecc2a29939d9dfc870e17b45178a867bf61a11b2a4367277"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8fb4fc029e135859f533025bc82047334e24b0d489e75513144f25408ecaf058"}, - {file = "aiohttp-3.10.5-cp311-cp311-win32.whl", hash = "sha256:e1ca1ef5ba129718a8fc827b0867f6aa4e893c56eb00003b7367f8a733a9b072"}, - {file = "aiohttp-3.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:349ef8a73a7c5665cca65c88ab24abe75447e28aa3bc4c93ea5093474dfdf0ff"}, - {file = "aiohttp-3.10.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:305be5ff2081fa1d283a76113b8df7a14c10d75602a38d9f012935df20731487"}, - {file = "aiohttp-3.10.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3a1c32a19ee6bbde02f1cb189e13a71b321256cc1d431196a9f824050b160d5a"}, - {file = "aiohttp-3.10.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:61645818edd40cc6f455b851277a21bf420ce347baa0b86eaa41d51ef58ba23d"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c225286f2b13bab5987425558baa5cbdb2bc925b2998038fa028245ef421e75"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ba01ebc6175e1e6b7275c907a3a36be48a2d487549b656aa90c8a910d9f3178"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8eaf44ccbc4e35762683078b72bf293f476561d8b68ec8a64f98cf32811c323e"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c43eb1ab7cbf411b8e387dc169acb31f0ca0d8c09ba63f9eac67829585b44f"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de7a5299827253023c55ea549444e058c0eb496931fa05d693b95140a947cb73"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4790f0e15f00058f7599dab2b206d3049d7ac464dc2e5eae0e93fa18aee9e7bf"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44b324a6b8376a23e6ba25d368726ee3bc281e6ab306db80b5819999c737d820"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0d277cfb304118079e7044aad0b76685d30ecb86f83a0711fc5fb257ffe832ca"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:54d9ddea424cd19d3ff6128601a4a4d23d54a421f9b4c0fff740505813739a91"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4f1c9866ccf48a6df2b06823e6ae80573529f2af3a0992ec4fe75b1a510df8a6"}, - {file = "aiohttp-3.10.5-cp312-cp312-win32.whl", hash = "sha256:dc4826823121783dccc0871e3f405417ac116055bf184ac04c36f98b75aacd12"}, - {file = "aiohttp-3.10.5-cp312-cp312-win_amd64.whl", hash = "sha256:22c0a23a3b3138a6bf76fc553789cb1a703836da86b0f306b6f0dc1617398abc"}, - {file = "aiohttp-3.10.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7f6b639c36734eaa80a6c152a238242bedcee9b953f23bb887e9102976343092"}, - {file = "aiohttp-3.10.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f29930bc2921cef955ba39a3ff87d2c4398a0394ae217f41cb02d5c26c8b1b77"}, - {file = "aiohttp-3.10.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f489a2c9e6455d87eabf907ac0b7d230a9786be43fbe884ad184ddf9e9c1e385"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:123dd5b16b75b2962d0fff566effb7a065e33cd4538c1692fb31c3bda2bfb972"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b98e698dc34966e5976e10bbca6d26d6724e6bdea853c7c10162a3235aba6e16"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3b9162bab7e42f21243effc822652dc5bb5e8ff42a4eb62fe7782bcbcdfacf6"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1923a5c44061bffd5eebeef58cecf68096e35003907d8201a4d0d6f6e387ccaa"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d55f011da0a843c3d3df2c2cf4e537b8070a419f891c930245f05d329c4b0689"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:afe16a84498441d05e9189a15900640a2d2b5e76cf4efe8cbb088ab4f112ee57"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8112fb501b1e0567a1251a2fd0747baae60a4ab325a871e975b7bb67e59221f"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1e72589da4c90337837fdfe2026ae1952c0f4a6e793adbbfbdd40efed7c63599"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:4d46c7b4173415d8e583045fbc4daa48b40e31b19ce595b8d92cf639396c15d5"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:33e6bc4bab477c772a541f76cd91e11ccb6d2efa2b8d7d7883591dfb523e5987"}, - {file = "aiohttp-3.10.5-cp313-cp313-win32.whl", hash = "sha256:c58c6837a2c2a7cf3133983e64173aec11f9c2cd8e87ec2fdc16ce727bcf1a04"}, - {file = "aiohttp-3.10.5-cp313-cp313-win_amd64.whl", hash = "sha256:38172a70005252b6893088c0f5e8a47d173df7cc2b2bd88650957eb84fcf5022"}, - {file = "aiohttp-3.10.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f6f18898ace4bcd2d41a122916475344a87f1dfdec626ecde9ee802a711bc569"}, - {file = "aiohttp-3.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5ede29d91a40ba22ac1b922ef510aab871652f6c88ef60b9dcdf773c6d32ad7a"}, - {file = "aiohttp-3.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:673f988370f5954df96cc31fd99c7312a3af0a97f09e407399f61583f30da9bc"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58718e181c56a3c02d25b09d4115eb02aafe1a732ce5714ab70326d9776457c3"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b38b1570242fbab8d86a84128fb5b5234a2f70c2e32f3070143a6d94bc854cf"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:074d1bff0163e107e97bd48cad9f928fa5a3eb4b9d33366137ffce08a63e37fe"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd31f176429cecbc1ba499d4aba31aaccfea488f418d60376b911269d3b883c5"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7384d0b87d4635ec38db9263e6a3f1eb609e2e06087f0aa7f63b76833737b471"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8989f46f3d7ef79585e98fa991e6ded55d2f48ae56d2c9fa5e491a6e4effb589"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c83f7a107abb89a227d6c454c613e7606c12a42b9a4ca9c5d7dad25d47c776ae"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:cde98f323d6bf161041e7627a5fd763f9fd829bcfcd089804a5fdce7bb6e1b7d"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:676f94c5480d8eefd97c0c7e3953315e4d8c2b71f3b49539beb2aa676c58272f"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2d21ac12dc943c68135ff858c3a989f2194a709e6e10b4c8977d7fcd67dfd511"}, - {file = "aiohttp-3.10.5-cp38-cp38-win32.whl", hash = "sha256:17e997105bd1a260850272bfb50e2a328e029c941c2708170d9d978d5a30ad9a"}, - {file = "aiohttp-3.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:1c19de68896747a2aa6257ae4cf6ef59d73917a36a35ee9d0a6f48cff0f94db8"}, - {file = "aiohttp-3.10.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7e2fe37ac654032db1f3499fe56e77190282534810e2a8e833141a021faaab0e"}, - {file = "aiohttp-3.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5bf3ead3cb66ab990ee2561373b009db5bc0e857549b6c9ba84b20bc462e172"}, - {file = "aiohttp-3.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1b2c16a919d936ca87a3c5f0e43af12a89a3ce7ccbce59a2d6784caba945b68b"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad146dae5977c4dd435eb31373b3fe9b0b1bf26858c6fc452bf6af394067e10b"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c5c6fa16412b35999320f5c9690c0f554392dc222c04e559217e0f9ae244b92"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:95c4dc6f61d610bc0ee1edc6f29d993f10febfe5b76bb470b486d90bbece6b22"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da452c2c322e9ce0cfef392e469a26d63d42860f829026a63374fde6b5c5876f"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:898715cf566ec2869d5cb4d5fb4be408964704c46c96b4be267442d265390f32"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:391cc3a9c1527e424c6865e087897e766a917f15dddb360174a70467572ac6ce"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:380f926b51b92d02a34119d072f178d80bbda334d1a7e10fa22d467a66e494db"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce91db90dbf37bb6fa0997f26574107e1b9d5ff939315247b7e615baa8ec313b"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9093a81e18c45227eebe4c16124ebf3e0d893830c6aca7cc310bfca8fe59d857"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ee40b40aa753d844162dcc80d0fe256b87cba48ca0054f64e68000453caead11"}, - {file = "aiohttp-3.10.5-cp39-cp39-win32.whl", hash = "sha256:03f2645adbe17f274444953bdea69f8327e9d278d961d85657cb0d06864814c1"}, - {file = "aiohttp-3.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:d17920f18e6ee090bdd3d0bfffd769d9f2cb4c8ffde3eb203777a3895c128862"}, - {file = "aiohttp-3.10.5.tar.gz", hash = "sha256:f071854b47d39591ce9a17981c46790acb30518e2f83dfca8db2dfa091178691"}, + {file = "aiohttp-3.10.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a1ba7bc139592339ddeb62c06486d0fa0f4ca61216e14137a40d626c81faf10c"}, + {file = "aiohttp-3.10.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85e4d7bd05d18e4b348441e7584c681eff646e3bf38f68b2626807f3add21aa2"}, + {file = "aiohttp-3.10.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:69de056022e7abf69cb9fec795515973cc3eeaff51e3ea8d72a77aa933a91c52"}, + {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee3587506898d4a404b33bd19689286ccf226c3d44d7a73670c8498cd688e42c"}, + {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fe285a697c851734285369614443451462ce78aac2b77db23567507484b1dc6f"}, + {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10c7932337285a6bfa3a5fe1fd4da90b66ebfd9d0cbd1544402e1202eb9a8c3e"}, + {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd9716ef0224fe0d0336997eb242f40619f9f8c5c57e66b525a1ebf9f1d8cebe"}, + {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceacea31f8a55cdba02bc72c93eb2e1b77160e91f8abd605969c168502fd71eb"}, + {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9721554bfa9e15f6e462da304374c2f1baede3cb06008c36c47fa37ea32f1dc4"}, + {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:22cdeb684d8552490dd2697a5138c4ecb46f844892df437aaf94f7eea99af879"}, + {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e56bb7e31c4bc79956b866163170bc89fd619e0581ce813330d4ea46921a4881"}, + {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:3a95d2686bc4794d66bd8de654e41b5339fab542b2bca9238aa63ed5f4f2ce82"}, + {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d82404a0e7b10e0d7f022cf44031b78af8a4f99bd01561ac68f7c24772fed021"}, + {file = "aiohttp-3.10.8-cp310-cp310-win32.whl", hash = "sha256:4e10b04542d27e21538e670156e88766543692a0a883f243ba8fad9ddea82e53"}, + {file = "aiohttp-3.10.8-cp310-cp310-win_amd64.whl", hash = "sha256:680dbcff5adc7f696ccf8bf671d38366a1f620b5616a1d333d0cb33956065395"}, + {file = "aiohttp-3.10.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:33a68011a38020ed4ff41ae0dbf4a96a202562ecf2024bdd8f65385f1d07f6ef"}, + {file = "aiohttp-3.10.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c7efa6616a95e3bd73b8a69691012d2ef1f95f9ea0189e42f338fae080c2fc6"}, + {file = "aiohttp-3.10.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ddb9b9764cfb4459acf01c02d2a59d3e5066b06a846a364fd1749aa168efa2be"}, + {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7f270f4ca92760f98a42c45a58674fff488e23b144ec80b1cc6fa2effed377"}, + {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6984dda9d79064361ab58d03f6c1e793ea845c6cfa89ffe1a7b9bb400dfd56bd"}, + {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f6d47e392c27206701565c8df4cac6ebed28fdf6dcaea5b1eea7a4631d8e6db"}, + {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a72f89aea712c619b2ca32c6f4335c77125ede27530ad9705f4f349357833695"}, + {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36074b26f3263879ba8e4dbd33db2b79874a3392f403a70b772701363148b9f"}, + {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e32148b4a745e70a255a1d44b5664de1f2e24fcefb98a75b60c83b9e260ddb5b"}, + {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5aa1a073514cf59c81ad49a4ed9b5d72b2433638cd53160fd2f3a9cfa94718db"}, + {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d3a79200a9d5e621c4623081ddb25380b713c8cf5233cd11c1aabad990bb9381"}, + {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e45fdfcb2d5bcad83373e4808825b7512953146d147488114575780640665027"}, + {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f78e2a78432c537ae876a93013b7bc0027ba5b93ad7b3463624c4b6906489332"}, + {file = "aiohttp-3.10.8-cp311-cp311-win32.whl", hash = "sha256:f8179855a4e4f3b931cb1764ec87673d3fbdcca2af496c8d30567d7b034a13db"}, + {file = "aiohttp-3.10.8-cp311-cp311-win_amd64.whl", hash = "sha256:ef9b484604af05ca745b6108ca1aaa22ae1919037ae4f93aaf9a37ba42e0b835"}, + {file = "aiohttp-3.10.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ab2d6523575fc98896c80f49ac99e849c0b0e69cc80bf864eed6af2ae728a52b"}, + {file = "aiohttp-3.10.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f5d5d5401744dda50b943d8764508d0e60cc2d3305ac1e6420935861a9d544bc"}, + {file = "aiohttp-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de23085cf90911600ace512e909114385026b16324fa203cc74c81f21fd3276a"}, + {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4618f0d2bf523043866a9ff8458900d8eb0a6d4018f251dae98e5f1fb699f3a8"}, + {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21c1925541ca84f7b5e0df361c0a813a7d6a56d3b0030ebd4b220b8d232015f9"}, + {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:497a7d20caea8855c5429db3cdb829385467217d7feb86952a6107e033e031b9"}, + {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c887019dbcb4af58a091a45ccf376fffe800b5531b45c1efccda4bedf87747ea"}, + {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40d2d719c3c36a7a65ed26400e2b45b2d9ed7edf498f4df38b2ae130f25a0d01"}, + {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:57359785f27394a8bcab0da6dcd46706d087dfebf59a8d0ad2e64a4bc2f6f94f"}, + {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a961ee6f2cdd1a2be4735333ab284691180d40bad48f97bb598841bfcbfb94ec"}, + {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:fe3d79d6af839ffa46fdc5d2cf34295390894471e9875050eafa584cb781508d"}, + {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a281cba03bdaa341c70b7551b2256a88d45eead149f48b75a96d41128c240b3"}, + {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c6769d71bfb1ed60321363a9bc05e94dcf05e38295ef41d46ac08919e5b00d19"}, + {file = "aiohttp-3.10.8-cp312-cp312-win32.whl", hash = "sha256:a3081246bab4d419697ee45e555cef5cd1def7ac193dff6f50be761d2e44f194"}, + {file = "aiohttp-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:ab1546fc8e00676febc81c548a876c7bde32f881b8334b77f84719ab2c7d28dc"}, + {file = "aiohttp-3.10.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b1a012677b8e0a39e181e218de47d6741c5922202e3b0b65e412e2ce47c39337"}, + {file = "aiohttp-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2df786c96c57cd6b87156ba4c5f166af7b88f3fc05f9d592252fdc83d8615a3c"}, + {file = "aiohttp-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8885ca09d3a9317219c0831276bfe26984b17b2c37b7bf70dd478d17092a4772"}, + {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dbf252ac19860e0ab56cd480d2805498f47c5a2d04f5995d8d8a6effd04b48c"}, + {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2036479b6b94afaaca7d07b8a68dc0e67b0caf5f6293bb6a5a1825f5923000"}, + {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:365783e1b7c40b59ed4ce2b5a7491bae48f41cd2c30d52647a5b1ee8604c68ad"}, + {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:270e653b5a4b557476a1ed40e6b6ce82f331aab669620d7c95c658ef976c9c5e"}, + {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8960fabc20bfe4fafb941067cda8e23c8c17c98c121aa31c7bf0cdab11b07842"}, + {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f21e8f2abed9a44afc3d15bba22e0dfc71e5fa859bea916e42354c16102b036f"}, + {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fecd55e7418fabd297fd836e65cbd6371aa4035a264998a091bbf13f94d9c44d"}, + {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:badb51d851358cd7535b647bb67af4854b64f3c85f0d089c737f75504d5910ec"}, + {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e860985f30f3a015979e63e7ba1a391526cdac1b22b7b332579df7867848e255"}, + {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:71462f8eeca477cbc0c9700a9464e3f75f59068aed5e9d4a521a103692da72dc"}, + {file = "aiohttp-3.10.8-cp313-cp313-win32.whl", hash = "sha256:177126e971782769b34933e94fddd1089cef0fe6b82fee8a885e539f5b0f0c6a"}, + {file = "aiohttp-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:98a4eb60e27033dee9593814ca320ee8c199489fbc6b2699d0f710584db7feb7"}, + {file = "aiohttp-3.10.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ffef3d763e4c8fc97e740da5b4d0f080b78630a3914f4e772a122bbfa608c1db"}, + {file = "aiohttp-3.10.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:597128cb7bc5f068181b49a732961f46cb89f85686206289d6ccb5e27cb5fbe2"}, + {file = "aiohttp-3.10.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f23a6c1d09de5de89a33c9e9b229106cb70dcfdd55e81a3a3580eaadaa32bc92"}, + {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da57af0c54a302b7c655fa1ccd5b1817a53739afa39924ef1816e7b7c8a07ccb"}, + {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e7a6af57091056a79a35104d6ec29d98ec7f1fb7270ad9c6fff871b678d1ff8"}, + {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32710d6b3b6c09c60c794d84ca887a3a2890131c0b02b3cefdcc6709a2260a7c"}, + {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b91f4f62ad39a8a42d511d66269b46cb2fb7dea9564c21ab6c56a642d28bff5"}, + {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:471a8c47344b9cc309558b3fcc469bd2c12b49322b4b31eb386c4a2b2d44e44a"}, + {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc0e7f91705445d79beafba9bb3057dd50830e40fe5417017a76a214af54e122"}, + {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:85431c9131a9a0f65260dc7a65c800ca5eae78c4c9931618f18c8e0933a0e0c1"}, + {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:b91557ee0893da52794b25660d4f57bb519bcad8b7df301acd3898f7197c5d81"}, + {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:4954e6b06dd0be97e1a5751fc606be1f9edbdc553c5d9b57d72406a8fbd17f9d"}, + {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a087c84b4992160ffef7afd98ef24177c8bd4ad61c53607145a8377457385100"}, + {file = "aiohttp-3.10.8-cp38-cp38-win32.whl", hash = "sha256:e1f0f7b27171b2956a27bd8f899751d0866ddabdd05cbddf3520f945130a908c"}, + {file = "aiohttp-3.10.8-cp38-cp38-win_amd64.whl", hash = "sha256:c4916070e12ae140110aa598031876c1bf8676a36a750716ea0aa5bd694aa2e7"}, + {file = "aiohttp-3.10.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5284997e3d88d0dfb874c43e51ae8f4a6f4ca5b90dcf22995035187253d430db"}, + {file = "aiohttp-3.10.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9443d9ebc5167ce1fbb552faf2d666fb22ef5716a8750be67efd140a7733738c"}, + {file = "aiohttp-3.10.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b667e2a03407d79a76c618dc30cedebd48f082d85880d0c9c4ec2faa3e10f43e"}, + {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98fae99d5c2146f254b7806001498e6f9ffb0e330de55a35e72feb7cb2fa399b"}, + {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8296edd99d0dd9d0eb8b9e25b3b3506eef55c1854e9cc230f0b3f885f680410b"}, + {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ce46dfb49cfbf9e92818be4b761d4042230b1f0e05ffec0aad15b3eb162b905"}, + {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c38cfd355fd86c39b2d54651bd6ed7d63d4fe3b5553f364bae3306e2445f847"}, + {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:713dff3f87ceec3bde4f3f484861464e722cf7533f9fa6b824ec82bb5a9010a7"}, + {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:21a72f4a9c69a8567a0aca12042f12bba25d3139fd5dd8eeb9931f4d9e8599cd"}, + {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6d1ad868624f6cea77341ef2877ad4e71f7116834a6cd7ec36ec5c32f94ee6ae"}, + {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a78ba86d5a08207d1d1ad10b97aed6ea48b374b3f6831d02d0b06545ac0f181e"}, + {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:aff048793d05e1ce05b62e49dccf81fe52719a13f4861530706619506224992b"}, + {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d088ca05381fd409793571d8e34eca06daf41c8c50a05aeed358d2d340c7af81"}, + {file = "aiohttp-3.10.8-cp39-cp39-win32.whl", hash = "sha256:ee97c4e54f457c366e1f76fbbf3e8effee9de57dae671084a161c00f481106ce"}, + {file = "aiohttp-3.10.8-cp39-cp39-win_amd64.whl", hash = "sha256:d95ae4420669c871667aad92ba8cce6251d61d79c1a38504621094143f94a8b4"}, + {file = "aiohttp-3.10.8.tar.gz", hash = "sha256:21f8225f7dc187018e8433c9326be01477fb2810721e048b33ac49091b19fb4a"}, ] [package.dependencies] @@ -135,7 +135,7 @@ aiosignal = ">=1.1.2" attrs = ">=17.3.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" -yarl = ">=1.0,<2.0" +yarl = ">=1.12.0,<2.0" [package.extras] speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] @@ -3852,103 +3852,103 @@ files = [ [[package]] name = "yarl" -version = "1.11.1" +version = "1.13.1" description = "Yet another URL library" optional = false python-versions = ">=3.8" files = [ - {file = "yarl-1.11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:400cd42185f92de559d29eeb529e71d80dfbd2f45c36844914a4a34297ca6f00"}, - {file = "yarl-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8258c86f47e080a258993eed877d579c71da7bda26af86ce6c2d2d072c11320d"}, - {file = "yarl-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2164cd9725092761fed26f299e3f276bb4b537ca58e6ff6b252eae9631b5c96e"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08ea567c16f140af8ddc7cb58e27e9138a1386e3e6e53982abaa6f2377b38cc"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:768ecc550096b028754ea28bf90fde071c379c62c43afa574edc6f33ee5daaec"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2909fa3a7d249ef64eeb2faa04b7957e34fefb6ec9966506312349ed8a7e77bf"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01a8697ec24f17c349c4f655763c4db70eebc56a5f82995e5e26e837c6eb0e49"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e286580b6511aac7c3268a78cdb861ec739d3e5a2a53b4809faef6b49778eaff"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4179522dc0305c3fc9782549175c8e8849252fefeb077c92a73889ccbcd508ad"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:27fcb271a41b746bd0e2a92182df507e1c204759f460ff784ca614e12dd85145"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f61db3b7e870914dbd9434b560075e0366771eecbe6d2b5561f5bc7485f39efd"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:c92261eb2ad367629dc437536463dc934030c9e7caca861cc51990fe6c565f26"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d95b52fbef190ca87d8c42f49e314eace4fc52070f3dfa5f87a6594b0c1c6e46"}, - {file = "yarl-1.11.1-cp310-cp310-win32.whl", hash = "sha256:489fa8bde4f1244ad6c5f6d11bb33e09cf0d1d0367edb197619c3e3fc06f3d91"}, - {file = "yarl-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:476e20c433b356e16e9a141449f25161e6b69984fb4cdbd7cd4bd54c17844998"}, - {file = "yarl-1.11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:946eedc12895873891aaceb39bceb484b4977f70373e0122da483f6c38faaa68"}, - {file = "yarl-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:21a7c12321436b066c11ec19c7e3cb9aec18884fe0d5b25d03d756a9e654edfe"}, - {file = "yarl-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c35f493b867912f6fda721a59cc7c4766d382040bdf1ddaeeaa7fa4d072f4675"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25861303e0be76b60fddc1250ec5986c42f0a5c0c50ff57cc30b1be199c00e63"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4b53f73077e839b3f89c992223f15b1d2ab314bdbdf502afdc7bb18e95eae27"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:327c724b01b8641a1bf1ab3b232fb638706e50f76c0b5bf16051ab65c868fac5"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4307d9a3417eea87715c9736d050c83e8c1904e9b7aada6ce61b46361b733d92"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a28bed68ab8fb7e380775f0029a079f08a17799cb3387a65d14ace16c12e2b"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:067b961853c8e62725ff2893226fef3d0da060656a9827f3f520fb1d19b2b68a"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8215f6f21394d1f46e222abeb06316e77ef328d628f593502d8fc2a9117bde83"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:498442e3af2a860a663baa14fbf23fb04b0dd758039c0e7c8f91cb9279799bff"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:69721b8effdb588cb055cc22f7c5105ca6fdaa5aeb3ea09021d517882c4a904c"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e969fa4c1e0b1a391f3fcbcb9ec31e84440253325b534519be0d28f4b6b533e"}, - {file = "yarl-1.11.1-cp311-cp311-win32.whl", hash = "sha256:7d51324a04fc4b0e097ff8a153e9276c2593106a811704025bbc1d6916f45ca6"}, - {file = "yarl-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:15061ce6584ece023457fb8b7a7a69ec40bf7114d781a8c4f5dcd68e28b5c53b"}, - {file = "yarl-1.11.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a4264515f9117be204935cd230fb2a052dd3792789cc94c101c535d349b3dab0"}, - {file = "yarl-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f41fa79114a1d2eddb5eea7b912d6160508f57440bd302ce96eaa384914cd265"}, - {file = "yarl-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:02da8759b47d964f9173c8675710720b468aa1c1693be0c9c64abb9d8d9a4867"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9361628f28f48dcf8b2f528420d4d68102f593f9c2e592bfc842f5fb337e44fd"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b91044952da03b6f95fdba398d7993dd983b64d3c31c358a4c89e3c19b6f7aef"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:74db2ef03b442276d25951749a803ddb6e270d02dda1d1c556f6ae595a0d76a8"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e975a2211952a8a083d1b9d9ba26472981ae338e720b419eb50535de3c02870"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aef97ba1dd2138112890ef848e17d8526fe80b21f743b4ee65947ea184f07a2"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a7915ea49b0c113641dc4d9338efa9bd66b6a9a485ffe75b9907e8573ca94b84"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:504cf0d4c5e4579a51261d6091267f9fd997ef58558c4ffa7a3e1460bd2336fa"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3de5292f9f0ee285e6bd168b2a77b2a00d74cbcfa420ed078456d3023d2f6dff"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a34e1e30f1774fa35d37202bbeae62423e9a79d78d0874e5556a593479fdf239"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66b63c504d2ca43bf7221a1f72fbe981ff56ecb39004c70a94485d13e37ebf45"}, - {file = "yarl-1.11.1-cp312-cp312-win32.whl", hash = "sha256:a28b70c9e2213de425d9cba5ab2e7f7a1c8ca23a99c4b5159bf77b9c31251447"}, - {file = "yarl-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:17b5a386d0d36fb828e2fb3ef08c8829c1ebf977eef88e5367d1c8c94b454639"}, - {file = "yarl-1.11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1fa2e7a406fbd45b61b4433e3aa254a2c3e14c4b3186f6e952d08a730807fa0c"}, - {file = "yarl-1.11.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:750f656832d7d3cb0c76be137ee79405cc17e792f31e0a01eee390e383b2936e"}, - {file = "yarl-1.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b8486f322d8f6a38539136a22c55f94d269addb24db5cb6f61adc61eabc9d93"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fce4da3703ee6048ad4138fe74619c50874afe98b1ad87b2698ef95bf92c96d"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed653638ef669e0efc6fe2acb792275cb419bf9cb5c5049399f3556995f23c7"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18ac56c9dd70941ecad42b5a906820824ca72ff84ad6fa18db33c2537ae2e089"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:688654f8507464745ab563b041d1fb7dab5d9912ca6b06e61d1c4708366832f5"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4973eac1e2ff63cf187073cd4e1f1148dcd119314ab79b88e1b3fad74a18c9d5"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:964a428132227edff96d6f3cf261573cb0f1a60c9a764ce28cda9525f18f7786"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6d23754b9939cbab02c63434776df1170e43b09c6a517585c7ce2b3d449b7318"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c2dc4250fe94d8cd864d66018f8344d4af50e3758e9d725e94fecfa27588ff82"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09696438cb43ea6f9492ef237761b043f9179f455f405279e609f2bc9100212a"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:999bfee0a5b7385a0af5ffb606393509cfde70ecca4f01c36985be6d33e336da"}, - {file = "yarl-1.11.1-cp313-cp313-win32.whl", hash = "sha256:ce928c9c6409c79e10f39604a7e214b3cb69552952fbda8d836c052832e6a979"}, - {file = "yarl-1.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:501c503eed2bb306638ccb60c174f856cc3246c861829ff40eaa80e2f0330367"}, - {file = "yarl-1.11.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dae7bd0daeb33aa3e79e72877d3d51052e8b19c9025ecf0374f542ea8ec120e4"}, - {file = "yarl-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3ff6b1617aa39279fe18a76c8d165469c48b159931d9b48239065767ee455b2b"}, - {file = "yarl-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3257978c870728a52dcce8c2902bf01f6c53b65094b457bf87b2644ee6238ddc"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f351fa31234699d6084ff98283cb1e852270fe9e250a3b3bf7804eb493bd937"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8aef1b64da41d18026632d99a06b3fefe1d08e85dd81d849fa7c96301ed22f1b"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7175a87ab8f7fbde37160a15e58e138ba3b2b0e05492d7351314a250d61b1591"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba444bdd4caa2a94456ef67a2f383710928820dd0117aae6650a4d17029fa25e"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ea9682124fc062e3d931c6911934a678cb28453f957ddccf51f568c2f2b5e05"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8418c053aeb236b20b0ab8fa6bacfc2feaaf7d4683dd96528610989c99723d5f"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:61a5f2c14d0a1adfdd82258f756b23a550c13ba4c86c84106be4c111a3a4e413"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f3a6d90cab0bdf07df8f176eae3a07127daafcf7457b997b2bf46776da2c7eb7"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:077da604852be488c9a05a524068cdae1e972b7dc02438161c32420fb4ec5e14"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:15439f3c5c72686b6c3ff235279630d08936ace67d0fe5c8d5bbc3ef06f5a420"}, - {file = "yarl-1.11.1-cp38-cp38-win32.whl", hash = "sha256:238a21849dd7554cb4d25a14ffbfa0ef380bb7ba201f45b144a14454a72ffa5a"}, - {file = "yarl-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:67459cf8cf31da0e2cbdb4b040507e535d25cfbb1604ca76396a3a66b8ba37a6"}, - {file = "yarl-1.11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:884eab2ce97cbaf89f264372eae58388862c33c4f551c15680dd80f53c89a269"}, - {file = "yarl-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a336eaa7ee7e87cdece3cedb395c9657d227bfceb6781295cf56abcd3386a26"}, - {file = "yarl-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87f020d010ba80a247c4abc335fc13421037800ca20b42af5ae40e5fd75e7909"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:637c7ddb585a62d4469f843dac221f23eec3cbad31693b23abbc2c366ad41ff4"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:48dfd117ab93f0129084577a07287376cc69c08138694396f305636e229caa1a"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e0ae31fb5ccab6eda09ba1494e87eb226dcbd2372dae96b87800e1dcc98804"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f46f81501160c28d0c0b7333b4f7be8983dbbc161983b6fb814024d1b4952f79"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04293941646647b3bfb1719d1d11ff1028e9c30199509a844da3c0f5919dc520"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:250e888fa62d73e721f3041e3a9abf427788a1934b426b45e1b92f62c1f68366"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e8f63904df26d1a66aabc141bfd258bf738b9bc7bc6bdef22713b4f5ef789a4c"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:aac44097d838dda26526cffb63bdd8737a2dbdf5f2c68efb72ad83aec6673c7e"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:267b24f891e74eccbdff42241c5fb4f974de2d6271dcc7d7e0c9ae1079a560d9"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6907daa4b9d7a688063ed098c472f96e8181733c525e03e866fb5db480a424df"}, - {file = "yarl-1.11.1-cp39-cp39-win32.whl", hash = "sha256:14438dfc5015661f75f85bc5adad0743678eefee266ff0c9a8e32969d5d69f74"}, - {file = "yarl-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:94d0caaa912bfcdc702a4204cd5e2bb01eb917fc4f5ea2315aa23962549561b0"}, - {file = "yarl-1.11.1-py3-none-any.whl", hash = "sha256:72bf26f66456baa0584eff63e44545c9f0eaed9b73cb6601b647c91f14c11f38"}, - {file = "yarl-1.11.1.tar.gz", hash = "sha256:1bb2d9e212fb7449b8fb73bc461b51eaa17cc8430b4a87d87be7b25052d92f53"}, + {file = "yarl-1.13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:82e692fb325013a18a5b73a4fed5a1edaa7c58144dc67ad9ef3d604eccd451ad"}, + {file = "yarl-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df4e82e68f43a07735ae70a2d84c0353e58e20add20ec0af611f32cd5ba43fb4"}, + {file = "yarl-1.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ec9dd328016d8d25702a24ee274932aebf6be9787ed1c28d021945d264235b3c"}, + {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5820bd4178e6a639b3ef1db8b18500a82ceab6d8b89309e121a6859f56585b05"}, + {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86c438ce920e089c8c2388c7dcc8ab30dfe13c09b8af3d306bcabb46a053d6f7"}, + {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3de86547c820e4f4da4606d1c8ab5765dd633189791f15247706a2eeabc783ae"}, + {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca53632007c69ddcdefe1e8cbc3920dd88825e618153795b57e6ebcc92e752a"}, + {file = "yarl-1.13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4ee1d240b84e2f213565f0ec08caef27a0e657d4c42859809155cf3a29d1735"}, + {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c49f3e379177f4477f929097f7ed4b0622a586b0aa40c07ac8c0f8e40659a1ac"}, + {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5c5e32fef09ce101fe14acd0f498232b5710effe13abac14cd95de9c274e689e"}, + {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ab9524e45ee809a083338a749af3b53cc7efec458c3ad084361c1dbf7aaf82a2"}, + {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:b1481c048fe787f65e34cb06f7d6824376d5d99f1231eae4778bbe5c3831076d"}, + {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:31497aefd68036d8e31bfbacef915826ca2e741dbb97a8d6c7eac66deda3b606"}, + {file = "yarl-1.13.1-cp310-cp310-win32.whl", hash = "sha256:1fa56f34b2236f5192cb5fceba7bbb09620e5337e0b6dfe2ea0ddbd19dd5b154"}, + {file = "yarl-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:1bbb418f46c7f7355084833051701b2301092e4611d9e392360c3ba2e3e69f88"}, + {file = "yarl-1.13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:216a6785f296169ed52cd7dcdc2612f82c20f8c9634bf7446327f50398732a51"}, + {file = "yarl-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40c6e73c03a6befb85b72da213638b8aaa80fe4136ec8691560cf98b11b8ae6e"}, + {file = "yarl-1.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2430cf996113abe5aee387d39ee19529327205cda975d2b82c0e7e96e5fdabdc"}, + {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fb4134cc6e005b99fa29dbc86f1ea0a298440ab6b07c6b3ee09232a3b48f495"}, + {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309c104ecf67626c033845b860d31594a41343766a46fa58c3309c538a1e22b2"}, + {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f90575e9fe3aae2c1e686393a9689c724cd00045275407f71771ae5d690ccf38"}, + {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d2e1626be8712333a9f71270366f4a132f476ffbe83b689dd6dc0d114796c74"}, + {file = "yarl-1.13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b66c87da3c6da8f8e8b648878903ca54589038a0b1e08dde2c86d9cd92d4ac9"}, + {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cf1ad338620249f8dd6d4b6a91a69d1f265387df3697ad5dc996305cf6c26fb2"}, + {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9915300fe5a0aa663c01363db37e4ae8e7c15996ebe2c6cce995e7033ff6457f"}, + {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:703b0f584fcf157ef87816a3c0ff868e8c9f3c370009a8b23b56255885528f10"}, + {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1d8e3ca29f643dd121f264a7c89f329f0fcb2e4461833f02de6e39fef80f89da"}, + {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7055bbade838d68af73aea13f8c86588e4bcc00c2235b4b6d6edb0dbd174e246"}, + {file = "yarl-1.13.1-cp311-cp311-win32.whl", hash = "sha256:a3442c31c11088e462d44a644a454d48110f0588de830921fd201060ff19612a"}, + {file = "yarl-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:81bad32c8f8b5897c909bf3468bf601f1b855d12f53b6af0271963ee67fff0d2"}, + {file = "yarl-1.13.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f452cc1436151387d3d50533523291d5f77c6bc7913c116eb985304abdbd9ec9"}, + {file = "yarl-1.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9cec42a20eae8bebf81e9ce23fb0d0c729fc54cf00643eb251ce7c0215ad49fe"}, + {file = "yarl-1.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d959fe96e5c2712c1876d69af0507d98f0b0e8d81bee14cfb3f6737470205419"}, + {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8c837ab90c455f3ea8e68bee143472ee87828bff19ba19776e16ff961425b57"}, + {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:94a993f976cdcb2dc1b855d8b89b792893220db8862d1a619efa7451817c836b"}, + {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2442a415a5f4c55ced0fade7b72123210d579f7d950e0b5527fc598866e62c"}, + {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fdbf0418489525231723cdb6c79e7738b3cbacbaed2b750cb033e4ea208f220"}, + {file = "yarl-1.13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b7f6e699304717fdc265a7e1922561b02a93ceffdaefdc877acaf9b9f3080b8"}, + {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bcd5bf4132e6a8d3eb54b8d56885f3d3a38ecd7ecae8426ecf7d9673b270de43"}, + {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2a93a4557f7fc74a38ca5a404abb443a242217b91cd0c4840b1ebedaad8919d4"}, + {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:22b739f99c7e4787922903f27a892744189482125cc7b95b747f04dd5c83aa9f"}, + {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2db874dd1d22d4c2c657807562411ffdfabec38ce4c5ce48b4c654be552759dc"}, + {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4feaaa4742517eaceafcbe74595ed335a494c84634d33961214b278126ec1485"}, + {file = "yarl-1.13.1-cp312-cp312-win32.whl", hash = "sha256:bbf9c2a589be7414ac4a534d54e4517d03f1cbb142c0041191b729c2fa23f320"}, + {file = "yarl-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:d07b52c8c450f9366c34aa205754355e933922c79135125541daae6cbf31c799"}, + {file = "yarl-1.13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:95c6737f28069153c399d875317f226bbdea939fd48a6349a3b03da6829fb550"}, + {file = "yarl-1.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cd66152561632ed4b2a9192e7f8e5a1d41e28f58120b4761622e0355f0fe034c"}, + {file = "yarl-1.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6a2acde25be0cf9be23a8f6cbd31734536a264723fca860af3ae5e89d771cd71"}, + {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18595e6a2ee0826bf7dfdee823b6ab55c9b70e8f80f8b77c37e694288f5de1"}, + {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a31d21089894942f7d9a8df166b495101b7258ff11ae0abec58e32daf8088813"}, + {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45f209fb4bbfe8630e3d2e2052535ca5b53d4ce2d2026bed4d0637b0416830da"}, + {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f722f30366474a99745533cc4015b1781ee54b08de73260b2bbe13316079851"}, + {file = "yarl-1.13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3bf60444269345d712838bb11cc4eadaf51ff1a364ae39ce87a5ca8ad3bb2c8"}, + {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:942c80a832a79c3707cca46bd12ab8aa58fddb34b1626d42b05aa8f0bcefc206"}, + {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:44b07e1690f010c3c01d353b5790ec73b2f59b4eae5b0000593199766b3f7a5c"}, + {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:396e59b8de7e4d59ff5507fb4322d2329865b909f29a7ed7ca37e63ade7f835c"}, + {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3bb83a0f12701c0b91112a11148b5217617982e1e466069d0555be9b372f2734"}, + {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c92b89bffc660f1274779cb6fbb290ec1f90d6dfe14492523a0667f10170de26"}, + {file = "yarl-1.13.1-cp313-cp313-win32.whl", hash = "sha256:269c201bbc01d2cbba5b86997a1e0f73ba5e2f471cfa6e226bcaa7fd664b598d"}, + {file = "yarl-1.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:1d0828e17fa701b557c6eaed5edbd9098eb62d8838344486248489ff233998b8"}, + {file = "yarl-1.13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8be8cdfe20787e6a5fcbd010f8066227e2bb9058331a4eccddec6c0db2bb85b2"}, + {file = "yarl-1.13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:08d7148ff11cb8e886d86dadbfd2e466a76d5dd38c7ea8ebd9b0e07946e76e4b"}, + {file = "yarl-1.13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4afdf84610ca44dcffe8b6c22c68f309aff96be55f5ea2fa31c0c225d6b83e23"}, + {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0d12fe78dcf60efa205e9a63f395b5d343e801cf31e5e1dda0d2c1fb618073d"}, + {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:298c1eecfd3257aa16c0cb0bdffb54411e3e831351cd69e6b0739be16b1bdaa8"}, + {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c14c16831b565707149c742d87a6203eb5597f4329278446d5c0ae7a1a43928e"}, + {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a9bacedbb99685a75ad033fd4de37129449e69808e50e08034034c0bf063f99"}, + {file = "yarl-1.13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:658e8449b84b92a4373f99305de042b6bd0d19bf2080c093881e0516557474a5"}, + {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:373f16f38721c680316a6a00ae21cc178e3a8ef43c0227f88356a24c5193abd6"}, + {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:45d23c4668d4925688e2ea251b53f36a498e9ea860913ce43b52d9605d3d8177"}, + {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f7917697bcaa3bc3e83db91aa3a0e448bf5cde43c84b7fc1ae2427d2417c0224"}, + {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:5989a38ba1281e43e4663931a53fbf356f78a0325251fd6af09dd03b1d676a09"}, + {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:11b3ca8b42a024513adce810385fcabdd682772411d95bbbda3b9ed1a4257644"}, + {file = "yarl-1.13.1-cp38-cp38-win32.whl", hash = "sha256:dcaef817e13eafa547cdfdc5284fe77970b891f731266545aae08d6cce52161e"}, + {file = "yarl-1.13.1-cp38-cp38-win_amd64.whl", hash = "sha256:7addd26594e588503bdef03908fc207206adac5bd90b6d4bc3e3cf33a829f57d"}, + {file = "yarl-1.13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a0ae6637b173d0c40b9c1462e12a7a2000a71a3258fa88756a34c7d38926911c"}, + {file = "yarl-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:576365c9f7469e1f6124d67b001639b77113cfd05e85ce0310f5f318fd02fe85"}, + {file = "yarl-1.13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:78f271722423b2d4851cf1f4fa1a1c4833a128d020062721ba35e1a87154a049"}, + {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d74f3c335cfe9c21ea78988e67f18eb9822f5d31f88b41aec3a1ec5ecd32da5"}, + {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1891d69a6ba16e89473909665cd355d783a8a31bc84720902c5911dbb6373465"}, + {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb382fd7b4377363cc9f13ba7c819c3c78ed97c36a82f16f3f92f108c787cbbf"}, + {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c8854b9f80693d20cec797d8e48a848c2fb273eb6f2587b57763ccba3f3bd4b"}, + {file = "yarl-1.13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbf2c3f04ff50f16404ce70f822cdc59760e5e2d7965905f0e700270feb2bbfc"}, + {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fb9f59f3848edf186a76446eb8bcf4c900fe147cb756fbbd730ef43b2e67c6a7"}, + {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ef9b85fa1bc91c4db24407e7c4da93a5822a73dd4513d67b454ca7064e8dc6a3"}, + {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:098b870c18f1341786f290b4d699504e18f1cd050ed179af8123fd8232513424"}, + {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:8c723c91c94a3bc8033dd2696a0f53e5d5f8496186013167bddc3fb5d9df46a3"}, + {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:44a4c40a6f84e4d5955b63462a0e2a988f8982fba245cf885ce3be7618f6aa7d"}, + {file = "yarl-1.13.1-cp39-cp39-win32.whl", hash = "sha256:84bbcdcf393139f0abc9f642bf03f00cac31010f3034faa03224a9ef0bb74323"}, + {file = "yarl-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:fc2931ac9ce9c61c9968989ec831d3a5e6fcaaff9474e7cfa8de80b7aff5a093"}, + {file = "yarl-1.13.1-py3-none-any.whl", hash = "sha256:6a5185ad722ab4dd52d5fb1f30dcc73282eb1ed494906a92d1a228d3f89607b0"}, + {file = "yarl-1.13.1.tar.gz", hash = "sha256:ec8cfe2295f3e5e44c51f57272afbd69414ae629ec7c6b27f5a410efc78b70a0"}, ] [package.dependencies] @@ -4028,4 +4028,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.11.0,<3.13.0" -content-hash = "7916d9e6f5d36ca186454b40492ef18ab3dd207b2be345a65b695dbedacd1955" +content-hash = "6fa50268a0e0c434984fbb323ed7578ba84c248643027c299b786b76937f7a2d" diff --git a/pyproject.toml b/pyproject.toml index 89e4d022..5788b639 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ alembic = "^1.13.1" beautifulsoup4 = "^4.11.1" asyncio = "^3.4.3" tomli = "^2.0.1" -aiohttp = "^3.8.6" +aiohttp = "^3.10.8" pytest-asyncio = "^0.23.5" swifter = "^1.4.0" tenacity = "^8.2.3" From 51b82ee2ce98cf8152714e487eb076bf6148bd82 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Wed, 2 Oct 2024 08:47:51 +0000 Subject: [PATCH 31/73] [no ci]: 1.0.16 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5788b639..25674ee7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.15" +version = "1.0.16" description = "" authors = [ "Rambier Estelle ", From 43b6668dfa3a806b916df40fc924cad77775d3ba Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 4 Oct 2024 10:40:42 +0200 Subject: [PATCH 32/73] Feat/ Program grid can change (#253) * wip: program grid evolution * fix: test * wip test * chores: update some programs * chores: alembic * chores: default values for columns * alembic: new columns for program metadata * fix: use timezone for comparing start date * chores: update programs evolution * fix: tesdt * fix: right column type for date * fix: default time for empty date --- README.md | 6 +- .../versions/30abfd828007_program_metadata.py | 32 + ...c9_program_add_start_end_date_for_grid_.py | 30 + docker-compose.yml | 4 +- docker-entrypoint.sh | 2 +- poetry.lock | 2 +- postgres/program_metadata.json | 2086 ++++++++++++++++- postgres/schemas/models.py | 9 + pyproject.toml | 1 + .../data_processing/mediatree/api_import.py | 8 +- .../mediatree/channel_program.json | 231 +- .../mediatree/channel_program.py | 27 +- .../data_processing/mediatree/utils.py | 13 +- test/sitemap/test_program_metadata.py | 41 +- transform_program.py | 3 + 15 files changed, 2308 insertions(+), 187 deletions(-) create mode 100644 alembic/versions/30abfd828007_program_metadata.py create mode 100644 alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py diff --git a/README.md b/README.md index 199fd15f..f363ea88 100644 --- a/README.md +++ b/README.md @@ -339,10 +339,10 @@ Using [Alembic](https://alembic.sqlalchemy.org/en/latest/autogenerate.html) Auto # If changes have already been applied (on your feature vranch) and you have to recreate your alembic file by doing : # 1. change to your main branch git switch main -# 2. start test container and run "pytest -vv -k api" to rebuild the state of the DB (or drop table the table you want) +# 2. start test container (docker compose up testconsole -d / docker compose exec testconsole bash) and run "pytest -vv -k api" to rebuild the state of the DB (or drop table the table you want) - just let it run a few seconds. # 3. rechange to your WIP branch git switch - -# 4. connect to the test container : docker compose up test -d / docker compose exec test bash +# 4. connect to the test container : docker compose up testconsole -d / docker compose exec testconsole bash # 5. reapply the latest saved state : poetry run alembic stamp head # 6. Save the new columns @@ -372,6 +372,8 @@ poetry run python3 quotaclimat/transform_excel_to_json.py ## Program Metadata table The media perimeter is defined here : "quotaclimat/data_processing/mediatree/channel_program.json" +To evolve the media perimeter, we use `program_grid_start` and `program_grid_end` columns to version all evolutions. + To calculate the right total duration for each channel, after updating "quotaclimat/data_processing/mediatree/channel_program.json" you need to execute this command to update `postgres/program_metadata.json` ``` poetry run python3 transform_program.py diff --git a/alembic/versions/30abfd828007_program_metadata.py b/alembic/versions/30abfd828007_program_metadata.py new file mode 100644 index 00000000..16b68404 --- /dev/null +++ b/alembic/versions/30abfd828007_program_metadata.py @@ -0,0 +1,32 @@ +"""program metadata + +Revision ID: 30abfd828007 +Revises: 43103d5b49c9 +Create Date: 2024-10-03 14:18:09.874225 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '30abfd828007' +down_revision: Union[str, None] = '43103d5b49c9' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('program_metadata', sa.Column('program_grid_start', sa.DateTime(), nullable=True)) + op.add_column('program_metadata', sa.Column('program_grid_end', sa.DateTime(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('program_metadata', 'program_grid_end') + op.drop_column('program_metadata', 'program_grid_start') + # ### end Alembic commands ### diff --git a/alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py b/alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py new file mode 100644 index 00000000..b89327ae --- /dev/null +++ b/alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py @@ -0,0 +1,30 @@ +"""program: add start/end date for grid evolution + +Revision ID: 43103d5b49c9 +Revises: af956a85658f +Create Date: 2024-10-02 13:18:56.251135 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '43103d5b49c9' +down_revision: Union[str, None] = 'af956a85658f' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + pass + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + pass + # ### end Alembic commands ### diff --git a/docker-compose.yml b/docker-compose.yml index fb995fcb..b28dfbc2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -152,8 +152,8 @@ services: #START_DATE_UPDATE: "2024-02-01" # to batch update PG from a date #END_DATE: "2024-02-29" # optional - otherwise end of the month BATCH_SIZE: 100 # number of records to update in one batch - # START_DATE: 1717227223 # to test batch import - CHANNEL : france-info # to reimport only one channel + # START_DATE: 1727610071 # to test batch import + CHANNEL : fr3-idf # to reimport only one channel MEDIATREE_USER : /run/secrets/username_api MEDIATREE_PASSWORD: /run/secrets/pwd_api MEDIATREE_AUTH_URL: https://keywords.mediatree.fr/api/auth/token/ diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 87813793..a848c7ac 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -6,7 +6,7 @@ poetry run alembic upgrade head echo "update program metadata file" -python transform_program.py +poetry run python3 transform_program.py if [[ $? -eq 0 ]]; then echo "Command succeeded" else diff --git a/poetry.lock b/poetry.lock index 6ab441b0..ba72298c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -4028,4 +4028,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.11.0,<3.13.0" -content-hash = "6fa50268a0e0c434984fbb323ed7578ba84c248643027c299b786b76937f7a2d" +content-hash = "2d0704a55e51a7c6d608f42b4bfdf794eec3fbc6bd14e867c071afa8dbff78fc" diff --git a/postgres/program_metadata.json b/postgres/program_metadata.json index ed334f8c..55029273 100644 --- a/postgres/program_metadata.json +++ b/postgres/program_metadata.json @@ -4,6 +4,8 @@ "start": "19:45", "end": "20:05", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT", "program_type": "Information - Journal", "duration": 20, @@ -18,6 +20,8 @@ "start": "20:05", "end": "20:50", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "28 minutes", "program_type": "Information - Magazine", "duration": 45, @@ -32,6 +36,8 @@ "start": "6:00", "end": "23:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -46,6 +52,40 @@ "start": "12:30", "end": "13:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-23", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "b5490b78c9e49919934a4ef82f8cf5cbbccf6ef0041d9bc5f50e3d38e391e142" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 1, + "program_grid_start": "2023-09-04", + "program_grid_end": "2024-06-28", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "b5490b78c9e49919934a4ef82f8cf5cbbccf6ef0041d9bc5f50e3d38e391e142" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 1, + "program_grid_start": "2024-09-02", + "program_grid_end": "2100-01-01", "program_name": "Le journal du jour + météo", "program_type": "Information - Journal", "duration": 30, @@ -60,6 +100,8 @@ "start": "6:00", "end": "7:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour", "program_type": "Information - Magazine", "duration": 60, @@ -74,6 +116,8 @@ "start": "7:00", "end": "9:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 120, @@ -88,6 +132,8 @@ "start": "9:00", "end": "9:30", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "L'heure des pros", "program_type": "Information - Magazine", "duration": 30, @@ -102,6 +148,8 @@ "start": "11:00", "end": "13:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Pascal Praud et vous", "program_type": "Information - Magazine", "duration": 120, @@ -116,6 +164,8 @@ "start": "13:00", "end": "14:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 60, @@ -130,6 +180,8 @@ "start": "18:00", "end": "19:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Punchline", "program_type": "Information - Magazine", "duration": 60, @@ -144,6 +196,8 @@ "start": "19:00", "end": "20:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Soir", "program_type": "Information - Magazine", "duration": 60, @@ -158,6 +212,40 @@ "start": "7:00", "end": "9:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-02-09", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "69df3955cf5427cb20161fe303d2a61a2cd7724ab3815a2c7dc09d8611b06128" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 1, + "program_grid_start": "2024-03-11", + "program_grid_end": "2024-04-05", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "69df3955cf5427cb20161fe303d2a61a2cd7724ab3815a2c7dc09d8611b06128" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 1, + "program_grid_start": "2024-05-01", + "program_grid_end": "2100-01-01", "program_name": "Ici Matin", "program_type": "Information - Journal", "duration": 120, @@ -167,11 +255,29 @@ "radio": false, "id": "69df3955cf5427cb20161fe303d2a61a2cd7724ab3815a2c7dc09d8611b06128" }, + { + "channel_name": "fr3-idf", + "start": "12:25", + "end": "12:50", + "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 12h", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "058ca097d7f964d14bcccff54592f9c3105f63a93bd2511642b1ecf37b1fe690" + }, { "channel_name": "fr3-idf", "start": "12:00", "end": "12:50", "weekday": 1, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 12h", "program_type": "Information - Journal", "duration": 50, @@ -181,11 +287,29 @@ "radio": false, "id": "058ca097d7f964d14bcccff54592f9c3105f63a93bd2511642b1ecf37b1fe690" }, + { + "channel_name": "fr3-idf", + "start": "19:30", + "end": "19:55", + "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 19h + météo", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "5018eca67b98963c816b3a3c34148aacc02dfcf5ffc8de0158fe02af2b58d5a6" + }, { "channel_name": "fr3-idf", "start": "19:00", "end": "19:55", "weekday": 1, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 19h + météo", "program_type": "Information - Journal", "duration": 55, @@ -200,6 +324,8 @@ "start": "6:30", "end": "9:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les matins", "program_type": "Information - Magazine", "duration": 150, @@ -214,6 +340,8 @@ "start": "12:30", "end": "12:50", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 12h30", "program_type": "Information - Journal", "duration": 20, @@ -228,6 +356,8 @@ "start": "18:00", "end": "18:20", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 18h", "program_type": "Information - Journal", "duration": 20, @@ -242,6 +372,8 @@ "start": "6:00", "end": "23:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -256,6 +388,8 @@ "start": "6:00", "end": "7:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 5/7", "program_type": "Information - Magazine", "duration": 60, @@ -270,6 +404,8 @@ "start": "7:00", "end": "10:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 7/10", "program_type": "Information - Magazine", "duration": 180, @@ -284,6 +420,8 @@ "start": "13:00", "end": "14:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 13/14", "program_type": "Information - Magazine", "duration": 60, @@ -298,6 +436,8 @@ "start": "19:00", "end": "20:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 19/20", "program_type": "Information - Magazine", "duration": 60, @@ -312,6 +452,8 @@ "start": "6:00", "end": "6:25", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6h Info", "program_type": "Information - Journal", "duration": 25, @@ -326,6 +468,8 @@ "start": "6:30", "end": "9:30", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Télématin", "program_type": "Information - Autres émissions", "duration": 180, @@ -340,6 +484,8 @@ "start": "13:00", "end": "13:40", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -354,6 +500,8 @@ "start": "19:55", "end": "20:40", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-09-08", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -363,11 +511,29 @@ "radio": false, "id": "e1160143efbdb19f87d7f53d4035f9b78fffaa2e5af86bc3719d6428b3adaa6c" }, + { + "channel_name": "france2", + "start": "19:55", + "end": "20:55", + "weekday": 1, + "program_grid_start": "2024-09-09", + "program_grid_end": "2100-01-01", + "program_name": "JT 20h + météo", + "program_type": "Information - Journal", + "duration": 60, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "e1160143efbdb19f87d7f53d4035f9b78fffaa2e5af86bc3719d6428b3adaa6c" + }, { "channel_name": "france24", "start": "6:00", "end": "23:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -382,6 +548,8 @@ "start": "6:00", "end": "23:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -396,6 +564,8 @@ "start": "6:00", "end": "23:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -410,6 +580,8 @@ "start": "6:00", "end": "23:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -424,6 +596,8 @@ "start": "12:45", "end": "13:15", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1245", "program_type": "Information - Journal", "duration": 30, @@ -435,12 +609,30 @@ }, { "channel_name": "m6", - "start": "13:50", + "start": "13:55", + "end": "16:50", + "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-10-03", + "program_name": "1 jour un doc", + "program_type": "Information - Magazine", + "duration": 175, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "cc4a2d02331449f4198431a47bb31c24150033a6f09d6d2a525ecc8c870654aa" + }, + { + "channel_name": "m6", + "start": "13:55", "end": "17:20", "weekday": 1, + "program_grid_start": "2023-10-09", + "program_grid_end": "2100-01-01", "program_name": "1 jour un doc", "program_type": "Information - Magazine", - "duration": 210, + "duration": 205, "channel_title": "M6", "public": false, "infocontinue": false, @@ -450,11 +642,29 @@ { "channel_name": "m6", "start": "13:15", - "end": "13:50", + "end": "13:55", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-05-31", "program_name": "1245 le mag", "program_type": "Information - Magazine", - "duration": 35, + "duration": 40, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "ab6d5ba4be05d1934a02cce4b2da91af591d927321292941081a52a30ae453bd" + }, + { + "channel_name": "m6", + "start": "13:15", + "end": "13:25", + "weekday": 1, + "program_grid_start": "2024-06-01", + "program_grid_end": "2100-01-01", + "program_name": "1245 le mag", + "program_type": "Information - Magazine", + "duration": 10, "channel_title": "M6", "public": false, "infocontinue": false, @@ -466,6 +676,8 @@ "start": "19:40", "end": "20:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1945 + météo", "program_type": "Information - Journal", "duration": 30, @@ -480,6 +692,8 @@ "start": "6:00", "end": "6:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, @@ -494,6 +708,8 @@ "start": "7:00", "end": "7:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, @@ -508,6 +724,8 @@ "start": "8:00", "end": "8:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, @@ -522,6 +740,8 @@ "start": "9:00", "end": "9:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, @@ -536,6 +756,8 @@ "start": "10:00", "end": "10:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, @@ -550,6 +772,8 @@ "start": "11:00", "end": "11:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, @@ -564,6 +788,8 @@ "start": "12:00", "end": "12:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, @@ -578,6 +804,8 @@ "start": "13:00", "end": "13:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, @@ -592,6 +820,8 @@ "start": "14:00", "end": "14:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, @@ -606,6 +836,8 @@ "start": "15:00", "end": "15:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, @@ -620,6 +852,8 @@ "start": "16:00", "end": "16:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, @@ -634,6 +868,8 @@ "start": "17:00", "end": "17:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, @@ -648,6 +884,8 @@ "start": "18:00", "end": "18:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, @@ -662,6 +900,8 @@ "start": "19:00", "end": "19:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, @@ -676,6 +916,8 @@ "start": "20:00", "end": "20:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, @@ -690,6 +932,8 @@ "start": "21:00", "end": "21:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, @@ -704,6 +948,8 @@ "start": "22:00", "end": "22:10", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, @@ -718,6 +964,8 @@ "start": "6:30", "end": "9:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Apolline Matin", "program_type": "Information - Magazine", "duration": 150, @@ -732,6 +980,8 @@ "start": "9:00", "end": "12:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les grandes gueules", "program_type": "Information - Magazine", "duration": 180, @@ -746,6 +996,8 @@ "start": "12:00", "end": "15:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Estelle Midi", "program_type": "Information - Magazine", "duration": 180, @@ -760,6 +1012,8 @@ "start": "6:00", "end": "7:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Petit Matin", "program_type": "Information - Magazine", "duration": 60, @@ -774,6 +1028,8 @@ "start": "7:00", "end": "9:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Matin", "program_type": "Information - Magazine", "duration": 120, @@ -788,6 +1044,8 @@ "start": "12:00", "end": "13:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Midi", "program_type": "Information - Magazine", "duration": 60, @@ -802,6 +1060,8 @@ "start": "18:00", "end": "20:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Bonsoir", "program_type": "Information - Magazine", "duration": 120, @@ -816,6 +1076,8 @@ "start": "6:50", "end": "10:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le Grand Matin", "program_type": "Information - Magazine", "duration": 190, @@ -830,6 +1092,8 @@ "start": "10:40", "end": "12:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Mettez-vous d'accord", "program_type": "Information - Magazine", "duration": 80, @@ -844,6 +1108,8 @@ "start": "12:00", "end": "14:00", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Sud Radio dans tous ses états", "program_type": "Information - Magazine", "duration": 120, @@ -858,6 +1124,8 @@ "start": "6:55", "end": "9:30", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour ! La Matinale", "program_type": "Information - Magazine", "duration": 155, @@ -872,6 +1140,8 @@ "start": "13:00", "end": "13:40", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -886,6 +1156,8 @@ "start": "19:55", "end": "20:40", "weekday": 1, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -900,6 +1172,8 @@ "start": "19:45", "end": "20:05", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT", "program_type": "Information - Journal", "duration": 20, @@ -914,6 +1188,8 @@ "start": "20:05", "end": "20:50", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "28 minutes", "program_type": "Information - Magazine", "duration": 45, @@ -928,6 +1204,8 @@ "start": "6:00", "end": "23:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -942,6 +1220,40 @@ "start": "12:30", "end": "13:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-23", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "0537c81a96e6e7877d72b769c0de97184f86fd82dcbca23d244120ae94ef2b5b" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 2, + "program_grid_start": "2023-09-04", + "program_grid_end": "2024-06-28", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "0537c81a96e6e7877d72b769c0de97184f86fd82dcbca23d244120ae94ef2b5b" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 2, + "program_grid_start": "2024-09-02", + "program_grid_end": "2100-01-01", "program_name": "Le journal du jour + météo", "program_type": "Information - Journal", "duration": 30, @@ -956,6 +1268,8 @@ "start": "6:00", "end": "7:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour", "program_type": "Information - Magazine", "duration": 60, @@ -970,6 +1284,8 @@ "start": "7:00", "end": "9:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 120, @@ -984,6 +1300,8 @@ "start": "9:00", "end": "9:30", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "L'heure des pros", "program_type": "Information - Magazine", "duration": 30, @@ -998,6 +1316,8 @@ "start": "11:00", "end": "13:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Pascal Praud et vous", "program_type": "Information - Magazine", "duration": 120, @@ -1012,6 +1332,8 @@ "start": "13:00", "end": "14:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 60, @@ -1026,6 +1348,8 @@ "start": "18:00", "end": "19:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Punchline", "program_type": "Information - Magazine", "duration": 60, @@ -1040,6 +1364,8 @@ "start": "19:00", "end": "20:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Soir", "program_type": "Information - Magazine", "duration": 60, @@ -1054,6 +1380,40 @@ "start": "7:00", "end": "9:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-02-09", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "5fcbf73145402a21424b28df54fd4c5122b352982cc8d04bf9310eae05d05132" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 2, + "program_grid_start": "2024-03-11", + "program_grid_end": "2024-04-05", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "5fcbf73145402a21424b28df54fd4c5122b352982cc8d04bf9310eae05d05132" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 2, + "program_grid_start": "2024-05-01", + "program_grid_end": "2100-01-01", "program_name": "Ici Matin", "program_type": "Information - Journal", "duration": 120, @@ -1063,11 +1423,29 @@ "radio": false, "id": "5fcbf73145402a21424b28df54fd4c5122b352982cc8d04bf9310eae05d05132" }, + { + "channel_name": "fr3-idf", + "start": "12:25", + "end": "12:50", + "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 12h", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "530e2311d56d6661510cffaf1e66fbb3fefccc1c0eca6b672525778da5856b43" + }, { "channel_name": "fr3-idf", "start": "12:00", "end": "12:50", "weekday": 2, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 12h", "program_type": "Information - Journal", "duration": 50, @@ -1077,11 +1455,29 @@ "radio": false, "id": "530e2311d56d6661510cffaf1e66fbb3fefccc1c0eca6b672525778da5856b43" }, + { + "channel_name": "fr3-idf", + "start": "19:30", + "end": "19:55", + "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 19h + météo", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "b7ca727aa872d3fd9f8244acce9384300ec40afe261b21cb784383e4ebf724d8" + }, { "channel_name": "fr3-idf", "start": "19:00", "end": "19:55", "weekday": 2, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 19h + météo", "program_type": "Information - Journal", "duration": 55, @@ -1096,6 +1492,8 @@ "start": "6:30", "end": "9:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les matins", "program_type": "Information - Magazine", "duration": 150, @@ -1110,6 +1508,8 @@ "start": "12:30", "end": "12:50", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 12h30", "program_type": "Information - Journal", "duration": 20, @@ -1124,6 +1524,8 @@ "start": "18:00", "end": "18:20", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 18h", "program_type": "Information - Journal", "duration": 20, @@ -1138,6 +1540,8 @@ "start": "6:00", "end": "23:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -1152,6 +1556,8 @@ "start": "6:00", "end": "7:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 5/7", "program_type": "Information - Magazine", "duration": 60, @@ -1166,6 +1572,8 @@ "start": "7:00", "end": "10:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 7/10", "program_type": "Information - Magazine", "duration": 180, @@ -1180,6 +1588,8 @@ "start": "13:00", "end": "14:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 13/14", "program_type": "Information - Magazine", "duration": 60, @@ -1194,6 +1604,8 @@ "start": "19:00", "end": "20:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 19/20", "program_type": "Information - Magazine", "duration": 60, @@ -1208,6 +1620,8 @@ "start": "6:00", "end": "6:25", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6h Info", "program_type": "Information - Journal", "duration": 25, @@ -1222,6 +1636,8 @@ "start": "6:30", "end": "9:30", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Télématin", "program_type": "Information - Autres émissions", "duration": 180, @@ -1236,6 +1652,8 @@ "start": "13:00", "end": "13:40", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -1250,6 +1668,8 @@ "start": "19:55", "end": "20:40", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-09-08", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -1259,11 +1679,29 @@ "radio": false, "id": "f49ddd82420f561239ec8d35b8993471397828e68b446775072a86d870ead932" }, + { + "channel_name": "france2", + "start": "19:55", + "end": "20:55", + "weekday": 2, + "program_grid_start": "2024-09-09", + "program_grid_end": "2100-01-01", + "program_name": "JT 20h + météo", + "program_type": "Information - Journal", + "duration": 60, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "f49ddd82420f561239ec8d35b8993471397828e68b446775072a86d870ead932" + }, { "channel_name": "france24", "start": "6:00", "end": "23:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -1278,6 +1716,8 @@ "start": "6:00", "end": "23:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -1292,6 +1732,8 @@ "start": "6:00", "end": "23:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -1306,6 +1748,8 @@ "start": "6:00", "end": "23:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -1320,6 +1764,8 @@ "start": "12:45", "end": "13:15", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1245", "program_type": "Information - Journal", "duration": 30, @@ -1331,12 +1777,30 @@ }, { "channel_name": "m6", - "start": "13:50", + "start": "13:55", + "end": "16:50", + "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-10-03", + "program_name": "1 jour un doc", + "program_type": "Information - Magazine", + "duration": 175, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "e991f66c4a3e36501af628429f2e6a510b7ffcfd60058c29d6b4491a3baf7a0c" + }, + { + "channel_name": "m6", + "start": "13:55", "end": "17:20", "weekday": 2, + "program_grid_start": "2023-10-09", + "program_grid_end": "2100-01-01", "program_name": "1 jour un doc", "program_type": "Information - Magazine", - "duration": 210, + "duration": 205, "channel_title": "M6", "public": false, "infocontinue": false, @@ -1346,11 +1810,29 @@ { "channel_name": "m6", "start": "13:15", - "end": "13:50", + "end": "13:55", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-05-31", "program_name": "1245 le mag", "program_type": "Information - Magazine", - "duration": 35, + "duration": 40, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "37e9c64c2628239dc0aced57f03759cc3c1701a2b9daa02400d199ead8c040e9" + }, + { + "channel_name": "m6", + "start": "13:15", + "end": "13:25", + "weekday": 2, + "program_grid_start": "2024-06-01", + "program_grid_end": "2100-01-01", + "program_name": "1245 le mag", + "program_type": "Information - Magazine", + "duration": 10, "channel_title": "M6", "public": false, "infocontinue": false, @@ -1362,6 +1844,8 @@ "start": "19:40", "end": "20:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1945 + météo", "program_type": "Information - Journal", "duration": 30, @@ -1376,6 +1860,8 @@ "start": "6:00", "end": "6:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, @@ -1390,6 +1876,8 @@ "start": "7:00", "end": "7:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, @@ -1404,6 +1892,8 @@ "start": "8:00", "end": "8:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, @@ -1418,6 +1908,8 @@ "start": "9:00", "end": "9:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, @@ -1432,6 +1924,8 @@ "start": "10:00", "end": "10:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, @@ -1446,6 +1940,8 @@ "start": "11:00", "end": "11:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, @@ -1460,6 +1956,8 @@ "start": "12:00", "end": "12:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, @@ -1474,6 +1972,8 @@ "start": "13:00", "end": "13:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, @@ -1488,6 +1988,8 @@ "start": "14:00", "end": "14:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, @@ -1502,6 +2004,8 @@ "start": "15:00", "end": "15:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, @@ -1516,6 +2020,8 @@ "start": "16:00", "end": "16:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, @@ -1530,6 +2036,8 @@ "start": "17:00", "end": "17:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, @@ -1544,6 +2052,8 @@ "start": "18:00", "end": "18:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, @@ -1558,6 +2068,8 @@ "start": "19:00", "end": "19:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, @@ -1572,6 +2084,8 @@ "start": "20:00", "end": "20:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, @@ -1586,6 +2100,8 @@ "start": "21:00", "end": "21:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, @@ -1600,6 +2116,8 @@ "start": "22:00", "end": "22:10", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, @@ -1614,6 +2132,8 @@ "start": "6:30", "end": "9:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Apolline Matin", "program_type": "Information - Magazine", "duration": 150, @@ -1628,6 +2148,8 @@ "start": "9:00", "end": "12:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les grandes gueules", "program_type": "Information - Magazine", "duration": 180, @@ -1642,6 +2164,8 @@ "start": "12:00", "end": "15:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Estelle Midi", "program_type": "Information - Magazine", "duration": 180, @@ -1656,6 +2180,8 @@ "start": "6:00", "end": "7:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Petit Matin", "program_type": "Information - Magazine", "duration": 60, @@ -1670,6 +2196,8 @@ "start": "7:00", "end": "9:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Matin", "program_type": "Information - Magazine", "duration": 120, @@ -1684,6 +2212,8 @@ "start": "12:00", "end": "13:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Midi", "program_type": "Information - Magazine", "duration": 60, @@ -1698,6 +2228,8 @@ "start": "18:00", "end": "20:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Bonsoir", "program_type": "Information - Magazine", "duration": 120, @@ -1712,6 +2244,8 @@ "start": "6:50", "end": "10:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le Grand Matin", "program_type": "Information - Magazine", "duration": 190, @@ -1726,6 +2260,8 @@ "start": "10:40", "end": "12:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Mettez-vous d'accord", "program_type": "Information - Magazine", "duration": 80, @@ -1740,6 +2276,8 @@ "start": "12:00", "end": "14:00", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Sud Radio dans tous ses états", "program_type": "Information - Magazine", "duration": 120, @@ -1754,6 +2292,8 @@ "start": "6:55", "end": "9:30", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour ! La Matinale", "program_type": "Information - Magazine", "duration": 155, @@ -1768,6 +2308,8 @@ "start": "13:00", "end": "13:40", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -1782,6 +2324,8 @@ "start": "19:55", "end": "20:40", "weekday": 2, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -1796,6 +2340,8 @@ "start": "19:45", "end": "20:05", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT", "program_type": "Information - Journal", "duration": 20, @@ -1810,6 +2356,8 @@ "start": "20:05", "end": "20:50", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "28 minutes", "program_type": "Information - Magazine", "duration": 45, @@ -1824,6 +2372,8 @@ "start": "6:00", "end": "23:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -1838,6 +2388,8 @@ "start": "12:30", "end": "13:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-23", "program_name": "Le journal du jour + météo", "program_type": "Information - Journal", "duration": 30, @@ -1848,14 +2400,48 @@ "id": "36eb06c5da61f74c242dfe0627a899351df792538b007b2d3b7e909f43beb038" }, { - "channel_name": "europe1", - "start": "6:00", - "end": "7:00", + "channel_name": "d8", + "start": "12:30", + "end": "13:00", "weekday": 3, - "program_name": "Bonjour", - "program_type": "Information - Magazine", - "duration": 60, - "channel_title": "Europe 1", + "program_grid_start": "2023-09-04", + "program_grid_end": "2024-06-28", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "36eb06c5da61f74c242dfe0627a899351df792538b007b2d3b7e909f43beb038" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 3, + "program_grid_start": "2024-09-02", + "program_grid_end": "2100-01-01", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "36eb06c5da61f74c242dfe0627a899351df792538b007b2d3b7e909f43beb038" + }, + { + "channel_name": "europe1", + "start": "6:00", + "end": "7:00", + "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", + "program_name": "Bonjour", + "program_type": "Information - Magazine", + "duration": 60, + "channel_title": "Europe 1", "public": false, "infocontinue": false, "radio": true, @@ -1866,6 +2452,8 @@ "start": "7:00", "end": "9:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 120, @@ -1880,6 +2468,8 @@ "start": "9:00", "end": "9:30", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "L'heure des pros", "program_type": "Information - Magazine", "duration": 30, @@ -1894,6 +2484,8 @@ "start": "11:00", "end": "13:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Pascal Praud et vous", "program_type": "Information - Magazine", "duration": 120, @@ -1908,6 +2500,8 @@ "start": "13:00", "end": "14:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 60, @@ -1922,6 +2516,8 @@ "start": "18:00", "end": "19:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Punchline", "program_type": "Information - Magazine", "duration": 60, @@ -1936,6 +2532,8 @@ "start": "19:00", "end": "20:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Soir", "program_type": "Information - Magazine", "duration": 60, @@ -1950,6 +2548,8 @@ "start": "7:00", "end": "9:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-02-09", "program_name": "Ici Matin", "program_type": "Information - Journal", "duration": 120, @@ -1959,11 +2559,61 @@ "radio": false, "id": "39e504a617bd9435d792cf004ae1c78131146e633bdab223fce74a48d3bf2607" }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 3, + "program_grid_start": "2024-03-11", + "program_grid_end": "2024-04-05", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "39e504a617bd9435d792cf004ae1c78131146e633bdab223fce74a48d3bf2607" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 3, + "program_grid_start": "2024-05-01", + "program_grid_end": "2100-01-01", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "39e504a617bd9435d792cf004ae1c78131146e633bdab223fce74a48d3bf2607" + }, + { + "channel_name": "fr3-idf", + "start": "12:25", + "end": "12:50", + "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 12h", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "261b3b01384273150ed3ef41116eaa435807bb3416bcbde5bb9033d0f662d5dc" + }, { "channel_name": "fr3-idf", "start": "12:00", "end": "12:50", "weekday": 3, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 12h", "program_type": "Information - Journal", "duration": 50, @@ -1973,11 +2623,29 @@ "radio": false, "id": "261b3b01384273150ed3ef41116eaa435807bb3416bcbde5bb9033d0f662d5dc" }, + { + "channel_name": "fr3-idf", + "start": "19:30", + "end": "19:55", + "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 19h + météo", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "1bbafc8464dd880f5cbf87ac8c2108659b388a08394df0b162e0bc67fdc8bcfd" + }, { "channel_name": "fr3-idf", "start": "19:00", "end": "19:55", "weekday": 3, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 19h + météo", "program_type": "Information - Journal", "duration": 55, @@ -1992,6 +2660,8 @@ "start": "6:30", "end": "9:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les matins", "program_type": "Information - Magazine", "duration": 150, @@ -2006,6 +2676,8 @@ "start": "12:30", "end": "12:50", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 12h30", "program_type": "Information - Journal", "duration": 20, @@ -2020,6 +2692,8 @@ "start": "18:00", "end": "18:20", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 18h", "program_type": "Information - Journal", "duration": 20, @@ -2034,6 +2708,8 @@ "start": "6:00", "end": "23:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -2048,6 +2724,8 @@ "start": "6:00", "end": "7:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 5/7", "program_type": "Information - Magazine", "duration": 60, @@ -2062,6 +2740,8 @@ "start": "7:00", "end": "10:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 7/10", "program_type": "Information - Magazine", "duration": 180, @@ -2076,6 +2756,8 @@ "start": "13:00", "end": "14:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 13/14", "program_type": "Information - Magazine", "duration": 60, @@ -2090,6 +2772,8 @@ "start": "19:00", "end": "20:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 19/20", "program_type": "Information - Magazine", "duration": 60, @@ -2104,6 +2788,8 @@ "start": "6:00", "end": "6:25", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6h Info", "program_type": "Information - Journal", "duration": 25, @@ -2118,6 +2804,8 @@ "start": "6:30", "end": "9:30", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Télématin", "program_type": "Information - Autres émissions", "duration": 180, @@ -2132,6 +2820,8 @@ "start": "13:00", "end": "13:40", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -2146,6 +2836,8 @@ "start": "19:55", "end": "20:40", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-09-08", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -2155,11 +2847,29 @@ "radio": false, "id": "eb492643d89dc4fc9208b67389cc6365af1961c0ddbad77d760e42df82884662" }, + { + "channel_name": "france2", + "start": "19:55", + "end": "20:55", + "weekday": 3, + "program_grid_start": "2024-09-09", + "program_grid_end": "2100-01-01", + "program_name": "JT 20h + météo", + "program_type": "Information - Journal", + "duration": 60, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "eb492643d89dc4fc9208b67389cc6365af1961c0ddbad77d760e42df82884662" + }, { "channel_name": "france24", "start": "6:00", "end": "23:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -2174,6 +2884,8 @@ "start": "6:00", "end": "23:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -2188,6 +2900,8 @@ "start": "6:00", "end": "23:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -2202,6 +2916,8 @@ "start": "6:00", "end": "23:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -2216,6 +2932,8 @@ "start": "12:45", "end": "13:15", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1245", "program_type": "Information - Journal", "duration": 30, @@ -2227,12 +2945,30 @@ }, { "channel_name": "m6", - "start": "13:50", + "start": "13:55", + "end": "16:50", + "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-10-03", + "program_name": "1 jour un doc", + "program_type": "Information - Magazine", + "duration": 175, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "d5dac14c9c635a22457a33ebddb84ed3df3e81d563a247995b0165292c90501c" + }, + { + "channel_name": "m6", + "start": "13:55", "end": "17:20", "weekday": 3, + "program_grid_start": "2023-10-09", + "program_grid_end": "2100-01-01", "program_name": "1 jour un doc", "program_type": "Information - Magazine", - "duration": 210, + "duration": 205, "channel_title": "M6", "public": false, "infocontinue": false, @@ -2242,11 +2978,29 @@ { "channel_name": "m6", "start": "13:15", - "end": "13:50", + "end": "13:55", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-05-31", "program_name": "1245 le mag", "program_type": "Information - Magazine", - "duration": 35, + "duration": 40, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "1f2a404b610f6aa9db59773c40884039e73ad3d354b29a72b8e6df2802909c80" + }, + { + "channel_name": "m6", + "start": "13:15", + "end": "13:25", + "weekday": 3, + "program_grid_start": "2024-06-01", + "program_grid_end": "2100-01-01", + "program_name": "1245 le mag", + "program_type": "Information - Magazine", + "duration": 10, "channel_title": "M6", "public": false, "infocontinue": false, @@ -2258,6 +3012,8 @@ "start": "19:40", "end": "20:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1945 + météo", "program_type": "Information - Journal", "duration": 30, @@ -2272,6 +3028,8 @@ "start": "6:00", "end": "6:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, @@ -2286,6 +3044,8 @@ "start": "7:00", "end": "7:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, @@ -2300,6 +3060,8 @@ "start": "8:00", "end": "8:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, @@ -2314,6 +3076,8 @@ "start": "9:00", "end": "9:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, @@ -2328,6 +3092,8 @@ "start": "10:00", "end": "10:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, @@ -2342,6 +3108,8 @@ "start": "11:00", "end": "11:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, @@ -2356,6 +3124,8 @@ "start": "12:00", "end": "12:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, @@ -2370,6 +3140,8 @@ "start": "13:00", "end": "13:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, @@ -2384,6 +3156,8 @@ "start": "14:00", "end": "14:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, @@ -2398,6 +3172,8 @@ "start": "15:00", "end": "15:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, @@ -2412,6 +3188,8 @@ "start": "16:00", "end": "16:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, @@ -2426,6 +3204,8 @@ "start": "17:00", "end": "17:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, @@ -2440,6 +3220,8 @@ "start": "18:00", "end": "18:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, @@ -2454,6 +3236,8 @@ "start": "19:00", "end": "19:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, @@ -2468,6 +3252,8 @@ "start": "20:00", "end": "20:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, @@ -2482,6 +3268,8 @@ "start": "21:00", "end": "21:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, @@ -2496,6 +3284,8 @@ "start": "22:00", "end": "22:10", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, @@ -2510,6 +3300,8 @@ "start": "6:30", "end": "9:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Apolline Matin", "program_type": "Information - Magazine", "duration": 150, @@ -2524,6 +3316,8 @@ "start": "9:00", "end": "12:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les grandes gueules", "program_type": "Information - Magazine", "duration": 180, @@ -2538,6 +3332,8 @@ "start": "12:00", "end": "15:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Estelle Midi", "program_type": "Information - Magazine", "duration": 180, @@ -2552,6 +3348,8 @@ "start": "6:00", "end": "7:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Petit Matin", "program_type": "Information - Magazine", "duration": 60, @@ -2566,6 +3364,8 @@ "start": "7:00", "end": "9:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Matin", "program_type": "Information - Magazine", "duration": 120, @@ -2580,6 +3380,8 @@ "start": "12:00", "end": "13:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Midi", "program_type": "Information - Magazine", "duration": 60, @@ -2594,6 +3396,8 @@ "start": "18:00", "end": "20:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Bonsoir", "program_type": "Information - Magazine", "duration": 120, @@ -2608,6 +3412,8 @@ "start": "6:50", "end": "10:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le Grand Matin", "program_type": "Information - Magazine", "duration": 190, @@ -2622,6 +3428,8 @@ "start": "10:40", "end": "12:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Mettez-vous d'accord", "program_type": "Information - Magazine", "duration": 80, @@ -2636,6 +3444,8 @@ "start": "12:00", "end": "14:00", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Sud Radio dans tous ses états", "program_type": "Information - Magazine", "duration": 120, @@ -2650,6 +3460,8 @@ "start": "6:55", "end": "9:30", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour ! La Matinale", "program_type": "Information - Magazine", "duration": 155, @@ -2664,6 +3476,8 @@ "start": "13:00", "end": "13:40", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -2678,6 +3492,8 @@ "start": "19:55", "end": "20:40", "weekday": 3, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -2692,6 +3508,8 @@ "start": "19:45", "end": "20:05", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT", "program_type": "Information - Journal", "duration": 20, @@ -2706,6 +3524,8 @@ "start": "20:05", "end": "20:50", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "28 minutes", "program_type": "Information - Magazine", "duration": 45, @@ -2720,6 +3540,8 @@ "start": "6:00", "end": "23:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -2734,6 +3556,40 @@ "start": "12:30", "end": "13:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-23", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "8ce734c277dbeeac5e9352b9c12cdd75513b6c184d13b8f8a9000c291327e3dd" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 4, + "program_grid_start": "2023-09-04", + "program_grid_end": "2024-06-28", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "8ce734c277dbeeac5e9352b9c12cdd75513b6c184d13b8f8a9000c291327e3dd" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 4, + "program_grid_start": "2024-09-02", + "program_grid_end": "2100-01-01", "program_name": "Le journal du jour + météo", "program_type": "Information - Journal", "duration": 30, @@ -2748,6 +3604,8 @@ "start": "6:00", "end": "7:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour", "program_type": "Information - Magazine", "duration": 60, @@ -2762,6 +3620,8 @@ "start": "7:00", "end": "9:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 120, @@ -2776,6 +3636,8 @@ "start": "9:00", "end": "9:30", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "L'heure des pros", "program_type": "Information - Magazine", "duration": 30, @@ -2790,6 +3652,8 @@ "start": "11:00", "end": "13:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Pascal Praud et vous", "program_type": "Information - Magazine", "duration": 120, @@ -2804,6 +3668,8 @@ "start": "13:00", "end": "14:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 60, @@ -2818,6 +3684,8 @@ "start": "18:00", "end": "19:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Punchline", "program_type": "Information - Magazine", "duration": 60, @@ -2832,6 +3700,8 @@ "start": "19:00", "end": "20:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Soir", "program_type": "Information - Magazine", "duration": 60, @@ -2846,6 +3716,40 @@ "start": "7:00", "end": "9:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-02-09", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "f4280b2000825b27e3e3516ab74aba66d03c765515fc942668353f6ec616bcaf" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 4, + "program_grid_start": "2024-03-11", + "program_grid_end": "2024-04-05", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "f4280b2000825b27e3e3516ab74aba66d03c765515fc942668353f6ec616bcaf" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 4, + "program_grid_start": "2024-05-01", + "program_grid_end": "2100-01-01", "program_name": "Ici Matin", "program_type": "Information - Journal", "duration": 120, @@ -2855,11 +3759,29 @@ "radio": false, "id": "f4280b2000825b27e3e3516ab74aba66d03c765515fc942668353f6ec616bcaf" }, + { + "channel_name": "fr3-idf", + "start": "12:25", + "end": "12:50", + "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 12h", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "dcb0f6144218dcdafacd8e498005ae23805e0871fb2f48ea5e742d85277679ac" + }, { "channel_name": "fr3-idf", "start": "12:00", "end": "12:50", "weekday": 4, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 12h", "program_type": "Information - Journal", "duration": 50, @@ -2869,11 +3791,29 @@ "radio": false, "id": "dcb0f6144218dcdafacd8e498005ae23805e0871fb2f48ea5e742d85277679ac" }, + { + "channel_name": "fr3-idf", + "start": "19:30", + "end": "19:55", + "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 19h + météo", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "e07cd3b677da94c4f47e8c95fa046850bf9ebae9e600d9e37c64b275c83dda5c" + }, { "channel_name": "fr3-idf", "start": "19:00", "end": "19:55", "weekday": 4, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 19h + météo", "program_type": "Information - Journal", "duration": 55, @@ -2888,6 +3828,8 @@ "start": "6:30", "end": "9:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les matins", "program_type": "Information - Magazine", "duration": 150, @@ -2902,6 +3844,8 @@ "start": "12:30", "end": "12:50", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 12h30", "program_type": "Information - Journal", "duration": 20, @@ -2916,6 +3860,8 @@ "start": "18:00", "end": "18:20", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 18h", "program_type": "Information - Journal", "duration": 20, @@ -2930,6 +3876,8 @@ "start": "6:00", "end": "23:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -2944,6 +3892,8 @@ "start": "6:00", "end": "7:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 5/7", "program_type": "Information - Magazine", "duration": 60, @@ -2958,6 +3908,8 @@ "start": "7:00", "end": "10:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 7/10", "program_type": "Information - Magazine", "duration": 180, @@ -2972,6 +3924,8 @@ "start": "13:00", "end": "14:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 13/14", "program_type": "Information - Magazine", "duration": 60, @@ -2986,6 +3940,8 @@ "start": "19:00", "end": "20:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 19/20", "program_type": "Information - Magazine", "duration": 60, @@ -3000,6 +3956,8 @@ "start": "6:00", "end": "6:25", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6h Info", "program_type": "Information - Journal", "duration": 25, @@ -3014,6 +3972,8 @@ "start": "6:30", "end": "9:30", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Télématin", "program_type": "Information - Autres émissions", "duration": 180, @@ -3028,6 +3988,8 @@ "start": "13:00", "end": "13:40", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -3042,6 +4004,8 @@ "start": "19:55", "end": "20:40", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-09-08", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -3051,11 +4015,45 @@ "radio": false, "id": "c1550584dbb5198439d5558bac3864f1e5e6f3d7a9097a4201b38e52b2706d58" }, + { + "channel_name": "france2", + "start": "19:55", + "end": "20:55", + "weekday": 4, + "program_grid_start": "2024-09-09", + "program_grid_end": "2100-01-01", + "program_name": "JT 20h + météo", + "program_type": "Information - Journal", + "duration": 60, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "c1550584dbb5198439d5558bac3864f1e5e6f3d7a9097a4201b38e52b2706d58" + }, + { + "channel_name": "france2", + "start": "21:10", + "end": "23:00", + "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-29", + "program_name": "Envoyé spécial", + "program_type": "Information - Magazine", + "duration": 110, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "b973fa1d699538767b6eb5bb39264a98756acb5c7fdce638b3266ed084d5308d" + }, { "channel_name": "france2", "start": "21:10", "end": "23:00", "weekday": 4, + "program_grid_start": "2023-09-01", + "program_grid_end": "2100-01-01", "program_name": "Envoyé spécial", "program_type": "Information - Magazine", "duration": 110, @@ -3070,6 +4068,8 @@ "start": "6:00", "end": "23:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3084,6 +4084,8 @@ "start": "6:00", "end": "23:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3098,6 +4100,8 @@ "start": "6:00", "end": "23:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3112,6 +4116,8 @@ "start": "6:00", "end": "23:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3126,6 +4132,8 @@ "start": "12:45", "end": "13:15", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1245", "program_type": "Information - Journal", "duration": 30, @@ -3137,12 +4145,14 @@ }, { "channel_name": "m6", - "start": "13:50", - "end": "17:20", + "start": "13:55", + "end": "16:50", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-10-03", "program_name": "1 jour un doc", "program_type": "Information - Magazine", - "duration": 210, + "duration": 175, "channel_title": "M6", "public": false, "infocontinue": false, @@ -3151,37 +4161,75 @@ }, { "channel_name": "m6", - "start": "13:15", - "end": "13:50", + "start": "13:55", + "end": "17:20", "weekday": 4, - "program_name": "1245 le mag", + "program_grid_start": "2023-10-09", + "program_grid_end": "2100-01-01", + "program_name": "1 jour un doc", "program_type": "Information - Magazine", - "duration": 35, + "duration": 205, "channel_title": "M6", "public": false, "infocontinue": false, "radio": false, - "id": "3d1e086ec13ae9aa11e73ab4d8151061a8d3781053d172285a42aa222a0ade25" + "id": "147698b5152e12caa81bf40b19d5fd6ce09e82b99d0ceffc095b926d87dfd3d8" }, { "channel_name": "m6", - "start": "19:40", - "end": "20:10", + "start": "13:15", + "end": "13:55", "weekday": 4, - "program_name": "JT 1945 + météo", - "program_type": "Information - Journal", - "duration": 30, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-05-31", + "program_name": "1245 le mag", + "program_type": "Information - Magazine", + "duration": 40, "channel_title": "M6", "public": false, "infocontinue": false, "radio": false, - "id": "f14ff5479d11d4ceeadc03da3da11c1c04e433400995578d48b8e3556db61fb0" + "id": "3d1e086ec13ae9aa11e73ab4d8151061a8d3781053d172285a42aa222a0ade25" + }, + { + "channel_name": "m6", + "start": "13:15", + "end": "13:25", + "weekday": 4, + "program_grid_start": "2024-06-01", + "program_grid_end": "2100-01-01", + "program_name": "1245 le mag", + "program_type": "Information - Magazine", + "duration": 10, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "3d1e086ec13ae9aa11e73ab4d8151061a8d3781053d172285a42aa222a0ade25" + }, + { + "channel_name": "m6", + "start": "19:40", + "end": "20:10", + "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", + "program_name": "JT 1945 + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "f14ff5479d11d4ceeadc03da3da11c1c04e433400995578d48b8e3556db61fb0" }, { "channel_name": "rfi", "start": "6:00", "end": "6:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, @@ -3196,6 +4244,8 @@ "start": "7:00", "end": "7:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, @@ -3210,6 +4260,8 @@ "start": "8:00", "end": "8:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, @@ -3224,6 +4276,8 @@ "start": "9:00", "end": "9:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, @@ -3238,6 +4292,8 @@ "start": "10:00", "end": "10:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, @@ -3252,6 +4308,8 @@ "start": "11:00", "end": "11:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, @@ -3266,6 +4324,8 @@ "start": "12:00", "end": "12:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, @@ -3280,6 +4340,8 @@ "start": "13:00", "end": "13:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, @@ -3294,6 +4356,8 @@ "start": "14:00", "end": "14:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, @@ -3308,6 +4372,8 @@ "start": "15:00", "end": "15:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, @@ -3322,6 +4388,8 @@ "start": "16:00", "end": "16:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, @@ -3336,6 +4404,8 @@ "start": "17:00", "end": "17:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, @@ -3350,6 +4420,8 @@ "start": "18:00", "end": "18:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, @@ -3364,6 +4436,8 @@ "start": "19:00", "end": "19:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, @@ -3378,6 +4452,8 @@ "start": "20:00", "end": "20:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, @@ -3392,6 +4468,8 @@ "start": "21:00", "end": "21:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, @@ -3406,6 +4484,8 @@ "start": "22:00", "end": "22:10", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, @@ -3420,6 +4500,8 @@ "start": "6:30", "end": "9:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Apolline Matin", "program_type": "Information - Magazine", "duration": 150, @@ -3434,6 +4516,8 @@ "start": "9:00", "end": "12:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les grandes gueules", "program_type": "Information - Magazine", "duration": 180, @@ -3448,6 +4532,8 @@ "start": "12:00", "end": "15:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Estelle Midi", "program_type": "Information - Magazine", "duration": 180, @@ -3462,6 +4548,8 @@ "start": "6:00", "end": "7:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Petit Matin", "program_type": "Information - Magazine", "duration": 60, @@ -3476,6 +4564,8 @@ "start": "7:00", "end": "9:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Matin", "program_type": "Information - Magazine", "duration": 120, @@ -3490,6 +4580,8 @@ "start": "12:00", "end": "13:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Midi", "program_type": "Information - Magazine", "duration": 60, @@ -3504,6 +4596,8 @@ "start": "18:00", "end": "20:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Bonsoir", "program_type": "Information - Magazine", "duration": 120, @@ -3518,6 +4612,8 @@ "start": "6:50", "end": "10:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le Grand Matin", "program_type": "Information - Magazine", "duration": 190, @@ -3532,6 +4628,8 @@ "start": "10:40", "end": "12:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Mettez-vous d'accord", "program_type": "Information - Magazine", "duration": 80, @@ -3546,6 +4644,8 @@ "start": "12:00", "end": "14:00", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Sud Radio dans tous ses états", "program_type": "Information - Magazine", "duration": 120, @@ -3560,6 +4660,8 @@ "start": "6:55", "end": "9:30", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour ! La Matinale", "program_type": "Information - Magazine", "duration": 155, @@ -3574,6 +4676,8 @@ "start": "13:00", "end": "13:40", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -3588,6 +4692,8 @@ "start": "19:55", "end": "20:40", "weekday": 4, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -3602,6 +4708,8 @@ "start": "19:45", "end": "20:05", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT", "program_type": "Information - Journal", "duration": 20, @@ -3616,6 +4724,8 @@ "start": "20:05", "end": "20:50", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "28 minutes", "program_type": "Information - Magazine", "duration": 45, @@ -3630,6 +4740,8 @@ "start": "6:00", "end": "23:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3644,6 +4756,40 @@ "start": "12:30", "end": "13:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-23", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "4724537ef787b64d254df9c885ac84f88ada486719722207eefbf55f5491df12" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 5, + "program_grid_start": "2023-09-04", + "program_grid_end": "2024-06-28", + "program_name": "Le journal du jour + météo", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "C8", + "public": false, + "infocontinue": false, + "radio": false, + "id": "4724537ef787b64d254df9c885ac84f88ada486719722207eefbf55f5491df12" + }, + { + "channel_name": "d8", + "start": "12:30", + "end": "13:00", + "weekday": 5, + "program_grid_start": "2024-09-02", + "program_grid_end": "2100-01-01", "program_name": "Le journal du jour + météo", "program_type": "Information - Journal", "duration": 30, @@ -3658,6 +4804,8 @@ "start": "6:00", "end": "7:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour", "program_type": "Information - Magazine", "duration": 60, @@ -3672,6 +4820,8 @@ "start": "7:00", "end": "9:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 120, @@ -3686,6 +4836,8 @@ "start": "9:00", "end": "9:30", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "L'heure des pros", "program_type": "Information - Magazine", "duration": 30, @@ -3700,6 +4852,8 @@ "start": "11:00", "end": "13:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Pascal Praud et vous", "program_type": "Information - Magazine", "duration": 120, @@ -3714,6 +4868,8 @@ "start": "13:00", "end": "14:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Europe 1 Matin", "program_type": "Information - Magazine", "duration": 60, @@ -3728,6 +4884,8 @@ "start": "18:00", "end": "19:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Punchline", "program_type": "Information - Magazine", "duration": 60, @@ -3742,6 +4900,8 @@ "start": "19:00", "end": "20:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Soir", "program_type": "Information - Magazine", "duration": 60, @@ -3756,6 +4916,8 @@ "start": "7:00", "end": "9:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-02-09", "program_name": "Ici Matin", "program_type": "Information - Journal", "duration": 120, @@ -3765,11 +4927,61 @@ "radio": false, "id": "3eaa70001c332aa11cac09869cb30180be077ef48a0c49b5dd05b0a01ca272c1" }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 5, + "program_grid_start": "2024-03-11", + "program_grid_end": "2024-04-05", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "3eaa70001c332aa11cac09869cb30180be077ef48a0c49b5dd05b0a01ca272c1" + }, + { + "channel_name": "fr3-idf", + "start": "7:00", + "end": "9:00", + "weekday": 5, + "program_grid_start": "2024-05-01", + "program_grid_end": "2100-01-01", + "program_name": "Ici Matin", + "program_type": "Information - Journal", + "duration": 120, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "3eaa70001c332aa11cac09869cb30180be077ef48a0c49b5dd05b0a01ca272c1" + }, + { + "channel_name": "fr3-idf", + "start": "12:25", + "end": "12:50", + "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 12h", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "ea363fa9aa4b8f90e2c590556ee8c2627b022c8af03ecfacbc244cd9ce4cd235" + }, { "channel_name": "fr3-idf", "start": "12:00", "end": "12:50", "weekday": 5, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 12h", "program_type": "Information - Journal", "duration": 50, @@ -3779,11 +4991,29 @@ "radio": false, "id": "ea363fa9aa4b8f90e2c590556ee8c2627b022c8af03ecfacbc244cd9ce4cd235" }, + { + "channel_name": "fr3-idf", + "start": "19:30", + "end": "19:55", + "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 19h + météo", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "7616360e263ff0cf748da0c38227bb03161e95e7ce7c03196d834631edb95b58" + }, { "channel_name": "fr3-idf", "start": "19:00", "end": "19:55", "weekday": 5, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 19h + météo", "program_type": "Information - Journal", "duration": 55, @@ -3798,6 +5028,8 @@ "start": "6:30", "end": "9:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les matins", "program_type": "Information - Magazine", "duration": 150, @@ -3812,6 +5044,8 @@ "start": "12:30", "end": "12:50", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 12h30", "program_type": "Information - Journal", "duration": 20, @@ -3826,6 +5060,8 @@ "start": "18:00", "end": "18:20", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 18h", "program_type": "Information - Journal", "duration": 20, @@ -3840,6 +5076,8 @@ "start": "6:00", "end": "23:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3854,6 +5092,8 @@ "start": "6:00", "end": "9:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6/9", "program_type": "Information - Magazine", "duration": 180, @@ -3868,6 +5108,8 @@ "start": "13:00", "end": "14:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 13/14", "program_type": "Information - Magazine", "duration": 60, @@ -3882,6 +5124,8 @@ "start": "19:00", "end": "20:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 19/20", "program_type": "Information - Magazine", "duration": 60, @@ -3896,6 +5140,8 @@ "start": "6:00", "end": "6:25", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6h Info", "program_type": "Information - Journal", "duration": 25, @@ -3910,6 +5156,8 @@ "start": "6:30", "end": "9:30", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Télématin", "program_type": "Information - Autres émissions", "duration": 180, @@ -3924,6 +5172,8 @@ "start": "13:00", "end": "13:40", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -3938,6 +5188,8 @@ "start": "19:55", "end": "20:40", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-09-08", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -3947,11 +5199,29 @@ "radio": false, "id": "a2792395938b6434205212e01e151b458a0fb2e72f9b3b08be9078dbb793b1f4" }, + { + "channel_name": "france2", + "start": "19:55", + "end": "20:55", + "weekday": 5, + "program_grid_start": "2024-09-09", + "program_grid_end": "2100-01-01", + "program_name": "JT 20h + météo", + "program_type": "Information - Journal", + "duration": 60, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "a2792395938b6434205212e01e151b458a0fb2e72f9b3b08be9078dbb793b1f4" + }, { "channel_name": "france24", "start": "6:00", "end": "23:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3966,6 +5236,8 @@ "start": "6:00", "end": "23:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3980,6 +5252,8 @@ "start": "6:00", "end": "23:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -3994,6 +5268,8 @@ "start": "6:00", "end": "23:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -4008,6 +5284,8 @@ "start": "12:45", "end": "13:15", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1245", "program_type": "Information - Journal", "duration": 30, @@ -4019,12 +5297,30 @@ }, { "channel_name": "m6", - "start": "13:50", + "start": "13:55", + "end": "16:50", + "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-10-03", + "program_name": "1 jour un doc", + "program_type": "Information - Magazine", + "duration": 175, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "a83c43bb126cf5d2a6e5c43fe84ccbd2484161715379d300e8dcf2b316151396" + }, + { + "channel_name": "m6", + "start": "13:55", "end": "17:20", "weekday": 5, + "program_grid_start": "2023-10-09", + "program_grid_end": "2100-01-01", "program_name": "1 jour un doc", "program_type": "Information - Magazine", - "duration": 210, + "duration": 205, "channel_title": "M6", "public": false, "infocontinue": false, @@ -4034,11 +5330,29 @@ { "channel_name": "m6", "start": "13:15", - "end": "13:50", + "end": "13:55", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-05-31", "program_name": "1245 le mag", "program_type": "Information - Magazine", - "duration": 35, + "duration": 40, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "23ef719dfc4ff89aaec9ab73f948335e9ef90a9591e96408db6e5a52dbeb677a" + }, + { + "channel_name": "m6", + "start": "13:15", + "end": "13:25", + "weekday": 5, + "program_grid_start": "2024-06-01", + "program_grid_end": "2100-01-01", + "program_name": "1245 le mag", + "program_type": "Information - Magazine", + "duration": 10, "channel_title": "M6", "public": false, "infocontinue": false, @@ -4050,6 +5364,8 @@ "start": "19:40", "end": "20:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1945 + météo", "program_type": "Information - Journal", "duration": 30, @@ -4064,6 +5380,8 @@ "start": "6:00", "end": "6:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, @@ -4078,6 +5396,8 @@ "start": "7:00", "end": "7:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, @@ -4092,6 +5412,8 @@ "start": "8:00", "end": "8:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, @@ -4106,6 +5428,8 @@ "start": "9:00", "end": "9:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, @@ -4120,6 +5444,8 @@ "start": "10:00", "end": "10:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, @@ -4134,6 +5460,8 @@ "start": "11:00", "end": "11:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, @@ -4148,6 +5476,8 @@ "start": "12:00", "end": "12:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, @@ -4162,6 +5492,8 @@ "start": "13:00", "end": "13:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, @@ -4176,6 +5508,8 @@ "start": "14:00", "end": "14:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, @@ -4190,6 +5524,8 @@ "start": "15:00", "end": "15:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, @@ -4204,6 +5540,8 @@ "start": "16:00", "end": "16:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, @@ -4218,6 +5556,8 @@ "start": "17:00", "end": "17:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, @@ -4232,6 +5572,8 @@ "start": "18:00", "end": "18:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, @@ -4246,6 +5588,8 @@ "start": "19:00", "end": "19:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, @@ -4260,6 +5604,8 @@ "start": "20:00", "end": "20:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, @@ -4274,6 +5620,8 @@ "start": "21:00", "end": "21:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, @@ -4288,6 +5636,8 @@ "start": "22:00", "end": "22:10", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, @@ -4302,6 +5652,8 @@ "start": "6:30", "end": "9:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Apolline Matin", "program_type": "Information - Magazine", "duration": 150, @@ -4316,6 +5668,8 @@ "start": "9:00", "end": "12:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les grandes gueules", "program_type": "Information - Magazine", "duration": 180, @@ -4330,6 +5684,8 @@ "start": "12:00", "end": "15:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Estelle Midi", "program_type": "Information - Magazine", "duration": 180, @@ -4344,6 +5700,8 @@ "start": "6:00", "end": "7:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Petit Matin", "program_type": "Information - Magazine", "duration": 60, @@ -4358,6 +5716,8 @@ "start": "7:00", "end": "9:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Matin", "program_type": "Information - Magazine", "duration": 120, @@ -4372,6 +5732,8 @@ "start": "12:00", "end": "13:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Midi", "program_type": "Information - Magazine", "duration": 60, @@ -4386,6 +5748,8 @@ "start": "18:00", "end": "20:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Bonsoir", "program_type": "Information - Magazine", "duration": 120, @@ -4400,6 +5764,8 @@ "start": "6:50", "end": "10:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le Grand Matin", "program_type": "Information - Magazine", "duration": 190, @@ -4414,6 +5780,8 @@ "start": "10:40", "end": "12:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Mettez-vous d'accord", "program_type": "Information - Magazine", "duration": 80, @@ -4428,6 +5796,8 @@ "start": "12:00", "end": "14:00", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Sud Radio dans tous ses états", "program_type": "Information - Magazine", "duration": 120, @@ -4442,6 +5812,8 @@ "start": "6:55", "end": "9:30", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Bonjour ! La Matinale", "program_type": "Information - Magazine", "duration": 155, @@ -4456,6 +5828,8 @@ "start": "13:00", "end": "13:40", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -4470,6 +5844,8 @@ "start": "19:55", "end": "20:40", "weekday": 5, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -4484,6 +5860,8 @@ "start": "19:45", "end": "20:05", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT", "program_type": "Information - Journal", "duration": 20, @@ -4498,6 +5876,8 @@ "start": "20:05", "end": "20:50", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "28 minutes", "program_type": "Information - Magazine", "duration": 45, @@ -4512,6 +5892,8 @@ "start": "6:00", "end": "23:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -4526,6 +5908,8 @@ "start": "6:00", "end": "9:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": " Europe 1 Matin Week-end", "program_type": "Information - Magazine", "duration": 180, @@ -4540,6 +5924,8 @@ "start": "12:30", "end": "13:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Midi Week-end", "program_type": "Information - Magazine", "duration": 30, @@ -4554,6 +5940,8 @@ "start": "18:00", "end": "19:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Soir Week-end", "program_type": "Information - Magazine", "duration": 60, @@ -4565,23 +5953,59 @@ }, { "channel_name": "fr3-idf", - "start": "12:00", + "start": "12:25", "end": "12:50", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", "program_name": "JT 12h", "program_type": "Information - Journal", - "duration": 50, + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "e866f4598fe7d2d84c9cbf4b3f1a5d0428ce0ef7f7a6c738770b21b180ffd7b1" + }, + { + "channel_name": "fr3-idf", + "start": "12:20", + "end": "12:50", + "weekday": 6, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", + "program_name": "JT 12h", + "program_type": "Information - Journal", + "duration": 30, "channel_title": "France 3-idf", "public": true, "infocontinue": false, "radio": false, "id": "e866f4598fe7d2d84c9cbf4b3f1a5d0428ce0ef7f7a6c738770b21b180ffd7b1" }, + { + "channel_name": "fr3-idf", + "start": "19:30", + "end": "19:55", + "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 19h + météo", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "d6d84191816f7c6731e20b9906a645c25a940b6babb52ae8bf10b86894d0d8c0" + }, { "channel_name": "fr3-idf", "start": "19:00", "end": "19:55", "weekday": 6, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 19h + météo", "program_type": "Information - Journal", "duration": 55, @@ -4596,6 +6020,8 @@ "start": "6:30", "end": "9:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les matins", "program_type": "Information - Magazine", "duration": 150, @@ -4610,6 +6036,8 @@ "start": "12:30", "end": "12:50", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 12h30", "program_type": "Information - Journal", "duration": 20, @@ -4624,6 +6052,8 @@ "start": "18:00", "end": "18:20", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 18h", "program_type": "Information - Journal", "duration": 20, @@ -4638,6 +6068,8 @@ "start": "6:00", "end": "23:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -4652,6 +6084,8 @@ "start": "6:00", "end": "9:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6/9", "program_type": "Information - Magazine", "duration": 180, @@ -4666,6 +6100,8 @@ "start": "13:00", "end": "13:30", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le journal de 13h du WE", "program_type": "Information - Journal", "duration": 30, @@ -4680,6 +6116,8 @@ "start": "19:00", "end": "20:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 19/20", "program_type": "Information - Magazine", "duration": 60, @@ -4694,6 +6132,8 @@ "start": "6:00", "end": "6:25", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6h Info", "program_type": "Information - Journal", "duration": 25, @@ -4708,6 +6148,8 @@ "start": "6:30", "end": "9:30", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Télématin", "program_type": "Information - Autres émissions", "duration": 180, @@ -4722,6 +6164,8 @@ "start": "13:00", "end": "13:15", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 15, @@ -4734,11 +6178,29 @@ { "channel_name": "france2", "start": "13:15", - "end": "14:05", + "end": "13:50", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-07-13", "program_name": "13h15 le samedi", "program_type": "Information - Journal", - "duration": 50, + "duration": 35, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "649aae5e90d2224f80a03053d7831afca6d078b26b4e11abdd546671b7ba95de" + }, + { + "channel_name": "france2", + "start": "13:15", + "end": "13:50", + "weekday": 6, + "program_grid_start": "2024-08-24", + "program_grid_end": "2100-01-01", + "program_name": "13h15 le samedi", + "program_type": "Information - Journal", + "duration": 35, "channel_title": "France 2", "public": true, "infocontinue": false, @@ -4750,6 +6212,8 @@ "start": "19:55", "end": "20:30", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 35, @@ -4762,11 +6226,45 @@ { "channel_name": "france2", "start": "20:30", - "end": "21:00", + "end": "20:55", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-25", "program_name": "20h30 le samedi", "program_type": "Information - Journal", - "duration": 30, + "duration": 25, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "4a32ea3585fca089eee2676d1c9740d5c854a9c5ee4803be2038ad05a795fa06" + }, + { + "channel_name": "france2", + "start": "20:30", + "end": "20:55", + "weekday": 6, + "program_grid_start": "2023-09-01", + "program_grid_end": "2024-06-23", + "program_name": "20h30 le samedi", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "4a32ea3585fca089eee2676d1c9740d5c854a9c5ee4803be2038ad05a795fa06" + }, + { + "channel_name": "france2", + "start": "20:30", + "end": "20:55", + "weekday": 6, + "program_grid_start": "2024-09-01", + "program_grid_end": "2100-01-01", + "program_name": "20h30 le samedi", + "program_type": "Information - Journal", + "duration": 25, "channel_title": "France 2", "public": true, "infocontinue": false, @@ -4778,6 +6276,8 @@ "start": "6:00", "end": "23:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -4792,6 +6292,8 @@ "start": "6:00", "end": "23:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -4806,6 +6308,8 @@ "start": "6:00", "end": "23:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -4820,6 +6324,8 @@ "start": "6:00", "end": "23:00", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -4834,6 +6340,8 @@ "start": "12:45", "end": "13:15", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1245", "program_type": "Information - Journal", "duration": 30, @@ -4848,6 +6356,8 @@ "start": "19:40", "end": "20:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1945 + météo", "program_type": "Information - Journal", "duration": 30, @@ -4862,6 +6372,8 @@ "start": "11:00", "end": "12:30", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "66 minutes samedi", "program_type": "Information - Magazine", "duration": 90, @@ -4876,6 +6388,8 @@ "start": "6:00", "end": "6:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, @@ -4890,6 +6404,8 @@ "start": "7:00", "end": "7:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, @@ -4904,6 +6420,8 @@ "start": "8:00", "end": "8:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, @@ -4918,6 +6436,8 @@ "start": "9:00", "end": "9:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, @@ -4932,6 +6452,8 @@ "start": "10:00", "end": "10:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, @@ -4946,6 +6468,8 @@ "start": "11:00", "end": "11:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, @@ -4960,6 +6484,8 @@ "start": "12:00", "end": "12:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, @@ -4974,6 +6500,8 @@ "start": "13:00", "end": "13:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, @@ -4988,6 +6516,8 @@ "start": "14:00", "end": "14:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, @@ -5002,6 +6532,8 @@ "start": "15:00", "end": "15:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, @@ -5016,6 +6548,8 @@ "start": "16:00", "end": "16:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, @@ -5030,6 +6564,8 @@ "start": "17:00", "end": "17:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, @@ -5044,6 +6580,8 @@ "start": "18:00", "end": "18:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, @@ -5058,6 +6596,8 @@ "start": "19:00", "end": "19:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, @@ -5072,6 +6612,8 @@ "start": "20:00", "end": "20:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, @@ -5086,6 +6628,8 @@ "start": "21:00", "end": "21:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, @@ -5100,6 +6644,8 @@ "start": "22:00", "end": "22:10", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, @@ -5114,6 +6660,8 @@ "start": "6:30", "end": "9:30", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "La Matinale Week-end", "program_type": "Information - Magazine", "duration": 180, @@ -5128,6 +6676,8 @@ "start": "18:00", "end": "18:15", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal", "program_type": "Information - Journal", "duration": 15, @@ -5142,6 +6692,8 @@ "start": "6:00", "end": "9:15", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Matin", "program_type": "Information - Magazine", "duration": 195, @@ -5156,6 +6708,8 @@ "start": "7:00", "end": "9:20", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le Grand Matin Week-end", "program_type": "Information - Magazine", "duration": 140, @@ -5170,6 +6724,8 @@ "start": "13:00", "end": "13:40", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 40, @@ -5184,6 +6740,8 @@ "start": "19:55", "end": "20:40", "weekday": 6, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -5198,6 +6756,8 @@ "start": "19:45", "end": "20:05", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT", "program_type": "Information - Journal", "duration": 20, @@ -5212,6 +6772,8 @@ "start": "20:05", "end": "20:50", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "28 minutes", "program_type": "Information - Magazine", "duration": 45, @@ -5226,6 +6788,8 @@ "start": "6:00", "end": "23:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -5240,6 +6804,8 @@ "start": "6:00", "end": "9:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": " Europe 1 Matin Week-end", "program_type": "Information - Magazine", "duration": 180, @@ -5254,6 +6820,8 @@ "start": "12:30", "end": "13:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Midi Week-end", "program_type": "Information - Magazine", "duration": 30, @@ -5268,6 +6836,8 @@ "start": "18:00", "end": "19:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Soir Week-end", "program_type": "Information - Magazine", "duration": 60, @@ -5277,25 +6847,205 @@ "radio": true, "id": "5069147f91b14fb4bf99ff796d8be6d5d7990ce3d93e7a4ae2d3884f090058a3" }, + { + "channel_name": "fr3-idf", + "start": "10:35", + "end": "11:00", + "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-25", + "program_name": "Nous les européens", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + }, + { + "channel_name": "fr3-idf", + "start": "10:35", + "end": "11:00", + "weekday": 7, + "program_grid_start": "2023-09-10", + "program_grid_end": "2024-01-28", + "program_name": "Nous les européens", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + }, + { + "channel_name": "fr3-idf", + "start": "12:10", + "end": "12:35", + "weekday": 7, + "program_grid_start": "2023-07-09", + "program_grid_end": "2023-09-03", + "program_name": "Nous les européens", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + }, + { + "channel_name": "fr3-idf", + "start": "10:20", + "end": "10:50", + "weekday": 7, + "program_grid_start": "2024-03-17", + "program_grid_end": "2024-06-16", + "program_name": "Nous les européens", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + }, + { + "channel_name": "fr3-idf", + "start": "12:00", + "end": "12:30", + "weekday": 7, + "program_grid_start": "2024-06-30", + "program_grid_end": "2024-07-21", + "program_name": "Nous les européens", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + }, { "channel_name": "fr3-idf", "start": "12:00", + "end": "12:30", + "weekday": 7, + "program_grid_start": "2024-08-18", + "program_grid_end": "2100-01-01", + "program_name": "Nous les européens", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + }, + { + "channel_name": "fr3-idf", + "start": "12:35", "end": "12:50", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 12h", "program_type": "Information - Journal", - "duration": 50, + "duration": 15, "channel_title": "France 3-idf", "public": true, "infocontinue": false, "radio": false, "id": "3cfb93f6a59855240abe532b2091485d107bf221d2bbeb720cd727d6581fded5" }, + { + "channel_name": "fr3-idf", + "start": "12:10", + "end": "12:35", + "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-25", + "program_name": "Dimanche en politique", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + }, + { + "channel_name": "fr3-idf", + "start": "12:00", + "end": "12:30", + "weekday": 7, + "program_grid_start": "2023-09-01", + "program_grid_end": "2023-12-17", + "program_name": "Dimanche en politique", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + }, + { + "channel_name": "fr3-idf", + "start": "11:45", + "end": "12:30", + "weekday": 7, + "program_grid_start": "2024-01-14", + "program_grid_end": "2024-06-23", + "program_name": "Dimanche en politique", + "program_type": "Information - Journal", + "duration": 45, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + }, + { + "channel_name": "fr3-idf", + "start": "11:40", + "end": "12:30", + "weekday": 7, + "program_grid_start": "2024-09-01", + "program_grid_end": "2100-01-01", + "program_name": "Dimanche en politique", + "program_type": "Information - Journal", + "duration": 50, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + }, + { + "channel_name": "fr3-idf", + "start": "19:30", + "end": "19:55", + "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-09-03", + "program_name": "JT 19h + météo", + "program_type": "Information - Journal", + "duration": 25, + "channel_title": "France 3-idf", + "public": true, + "infocontinue": false, + "radio": false, + "id": "27468d262745520fbf7038e6cd308ad207c44b6d32c7d7edd8262a55d8409c2d" + }, { "channel_name": "fr3-idf", "start": "19:00", "end": "19:55", "weekday": 7, + "program_grid_start": "2023-09-04", + "program_grid_end": "2100-01-01", "program_name": "JT 19h + météo", "program_type": "Information - Journal", "duration": 55, @@ -5310,6 +7060,8 @@ "start": "6:30", "end": "9:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Les matins", "program_type": "Information - Magazine", "duration": 150, @@ -5324,6 +7076,8 @@ "start": "12:30", "end": "12:50", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 12h30", "program_type": "Information - Journal", "duration": 20, @@ -5338,6 +7092,8 @@ "start": "18:00", "end": "18:20", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal de 18h", "program_type": "Information - Journal", "duration": 20, @@ -5352,6 +7108,8 @@ "start": "6:00", "end": "23:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -5366,6 +7124,8 @@ "start": "6:00", "end": "9:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6/9", "program_type": "Information - Magazine", "duration": 180, @@ -5380,6 +7140,8 @@ "start": "13:00", "end": "13:30", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le journal de 13h du WE", "program_type": "Information - Journal", "duration": 30, @@ -5394,6 +7156,8 @@ "start": "19:00", "end": "20:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 19/20", "program_type": "Information - Magazine", "duration": 60, @@ -5408,6 +7172,8 @@ "start": "6:00", "end": "6:25", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le 6h Info", "program_type": "Information - Journal", "duration": 25, @@ -5420,11 +7186,13 @@ { "channel_name": "france2", "start": "6:30", - "end": "9:30", + "end": "8:30", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Télématin", "program_type": "Information - Autres émissions", - "duration": 180, + "duration": 120, "channel_title": "France 2", "public": true, "infocontinue": false, @@ -5436,6 +7204,8 @@ "start": "13:00", "end": "13:15", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", "duration": 15, @@ -5447,12 +7217,14 @@ }, { "channel_name": "france2", - "start": "13:15", + "start": "13:20", "end": "14:05", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "13h15 le dimanche", "program_type": "Information - Journal", - "duration": 50, + "duration": 45, "channel_title": "France 2", "public": true, "infocontinue": false, @@ -5461,37 +7233,59 @@ }, { "channel_name": "france2", - "start": "10:35", - "end": "11:00", + "start": "19:55", + "end": "20:30", "weekday": 7, - "program_name": "Nous les européens", + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", + "program_name": "JT 20h + météo", "program_type": "Information - Journal", - "duration": 25, + "duration": 35, "channel_title": "France 2", "public": true, "infocontinue": false, "radio": false, - "id": "b66368bc078152f020abeede10bffd381976e50d914eea9c93ad1cf8945d8bdb" + "id": "da0ac74127935698b06e66cb63ae0d34e3dffc36f7d67fae7c2ea3fa60172263" }, { "channel_name": "france2", - "start": "19:55", - "end": "20:30", + "start": "20:30", + "end": "21:00", "weekday": 7, - "program_name": "JT 20h + météo", + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-06-25", + "program_name": "20h30 le dimanche", "program_type": "Information - Journal", - "duration": 35, + "duration": 30, "channel_title": "France 2", "public": true, "infocontinue": false, "radio": false, - "id": "da0ac74127935698b06e66cb63ae0d34e3dffc36f7d67fae7c2ea3fa60172263" + "id": "ee037ae5a18ac2091d33549e7039550f77c964647a6240e0ccacc6b65cf60204" }, { "channel_name": "france2", "start": "20:30", "end": "21:00", "weekday": 7, + "program_grid_start": "2023-09-01", + "program_grid_end": "2024-06-23", + "program_name": "20h30 le dimanche", + "program_type": "Information - Journal", + "duration": 30, + "channel_title": "France 2", + "public": true, + "infocontinue": false, + "radio": false, + "id": "ee037ae5a18ac2091d33549e7039550f77c964647a6240e0ccacc6b65cf60204" + }, + { + "channel_name": "france2", + "start": "20:30", + "end": "21:00", + "weekday": 7, + "program_grid_start": "2024-09-01", + "program_grid_end": "2100-01-01", "program_name": "20h30 le dimanche", "program_type": "Information - Journal", "duration": 30, @@ -5506,6 +7300,8 @@ "start": "6:00", "end": "23:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -5520,6 +7316,8 @@ "start": "6:00", "end": "23:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -5534,6 +7332,8 @@ "start": "6:00", "end": "23:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -5548,6 +7348,8 @@ "start": "6:00", "end": "23:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Information en continu", "program_type": "Information en continu", "duration": 1020, @@ -5562,6 +7364,8 @@ "start": "12:45", "end": "13:15", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1245", "program_type": "Information - Journal", "duration": 30, @@ -5576,6 +7380,8 @@ "start": "19:40", "end": "20:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 1945 + météo", "program_type": "Information - Journal", "duration": 30, @@ -5587,12 +7393,110 @@ }, { "channel_name": "m6", - "start": "16:35", + "start": "17:20", "end": "19:30", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2024-06-25", "program_name": "66 minutes", "program_type": "Information - Magazine", - "duration": 175, + "duration": 130, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + }, + { + "channel_name": "m6", + "start": "17:45", + "end": "19:30", + "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2023-08-31", + "program_name": "66 minutes", + "program_type": "Information - Magazine", + "duration": 105, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + }, + { + "channel_name": "m6", + "start": "17:20", + "end": "19:30", + "weekday": 7, + "program_grid_start": "2023-09-01", + "program_grid_end": "2024-01-14", + "program_name": "66 minutes", + "program_type": "Information - Magazine", + "duration": 130, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + }, + { + "channel_name": "m6", + "start": "16:40", + "end": "19:30", + "weekday": 7, + "program_grid_start": "2024-01-15", + "program_grid_end": "2024-04-28", + "program_name": "66 minutes", + "program_type": "Information - Magazine", + "duration": 170, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + }, + { + "channel_name": "m6", + "start": "17:20", + "end": "19:30", + "weekday": 7, + "program_grid_start": "2024-05-04", + "program_grid_end": "2024-06-30", + "program_name": "66 minutes", + "program_type": "Information - Magazine", + "duration": 130, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + }, + { + "channel_name": "m6", + "start": "17:45", + "end": "19:30", + "weekday": 7, + "program_grid_start": "2024-07-04", + "program_grid_end": "2024-08-31", + "program_name": "66 minutes", + "program_type": "Information - Magazine", + "duration": 105, + "channel_title": "M6", + "public": false, + "infocontinue": false, + "radio": false, + "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + }, + { + "channel_name": "m6", + "start": "17:20", + "end": "19:30", + "weekday": 7, + "program_grid_start": "2024-09-01", + "program_grid_end": "2100-01-01", + "program_name": "66 minutes", + "program_type": "Information - Magazine", + "duration": 130, "channel_title": "M6", "public": false, "infocontinue": false, @@ -5604,6 +7508,8 @@ "start": "21:10", "end": "23:15", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Capital / Zone interdite", "program_type": "Information - Magazine", "duration": 125, @@ -5618,6 +7524,8 @@ "start": "6:00", "end": "6:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 6h", "program_type": "Information - Journal", "duration": 10, @@ -5632,6 +7540,8 @@ "start": "7:00", "end": "7:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 7h", "program_type": "Information - Journal", "duration": 10, @@ -5646,6 +7556,8 @@ "start": "8:00", "end": "8:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 8h", "program_type": "Information - Journal", "duration": 10, @@ -5660,6 +7572,8 @@ "start": "9:00", "end": "9:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 9h", "program_type": "Information - Journal", "duration": 10, @@ -5674,6 +7588,8 @@ "start": "10:00", "end": "10:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 10h", "program_type": "Information - Journal", "duration": 10, @@ -5688,6 +7604,8 @@ "start": "11:00", "end": "11:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 11h", "program_type": "Information - Journal", "duration": 10, @@ -5702,6 +7620,8 @@ "start": "12:00", "end": "12:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 12h", "program_type": "Information - Journal", "duration": 10, @@ -5716,6 +7636,8 @@ "start": "13:00", "end": "13:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 13h", "program_type": "Information - Journal", "duration": 10, @@ -5730,6 +7652,8 @@ "start": "14:00", "end": "14:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 14h", "program_type": "Information - Journal", "duration": 10, @@ -5744,6 +7668,8 @@ "start": "15:00", "end": "15:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 15h", "program_type": "Information - Journal", "duration": 10, @@ -5758,6 +7684,8 @@ "start": "16:00", "end": "16:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 16h", "program_type": "Information - Journal", "duration": 10, @@ -5772,6 +7700,8 @@ "start": "17:00", "end": "17:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 17h", "program_type": "Information - Journal", "duration": 10, @@ -5786,6 +7716,8 @@ "start": "18:00", "end": "18:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 18h", "program_type": "Information - Journal", "duration": 10, @@ -5800,6 +7732,8 @@ "start": "19:00", "end": "19:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 19h", "program_type": "Information - Journal", "duration": 10, @@ -5814,6 +7748,8 @@ "start": "20:00", "end": "20:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 20h", "program_type": "Information - Journal", "duration": 10, @@ -5828,6 +7764,8 @@ "start": "21:00", "end": "21:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 21h", "program_type": "Information - Journal", "duration": 10, @@ -5842,6 +7780,8 @@ "start": "22:00", "end": "22:10", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Journal - 22h", "program_type": "Information - Journal", "duration": 10, @@ -5856,6 +7796,8 @@ "start": "6:30", "end": "9:30", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "La Matinale Week-end", "program_type": "Information - Magazine", "duration": 180, @@ -5870,6 +7812,8 @@ "start": "6:00", "end": "9:15", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Matin", "program_type": "Information - Magazine", "duration": 195, @@ -5884,6 +7828,8 @@ "start": "18:00", "end": "19:15", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "RTL Dimanche soir", "program_type": "Information - Magazine", "duration": 75, @@ -5898,6 +7844,8 @@ "start": "13:00", "end": "14:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Focus Dimanche", "program_type": "Information - Magazine", "duration": 60, @@ -5912,6 +7860,8 @@ "start": "7:00", "end": "9:20", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Le Grand Matin Week-end", "program_type": "Information - Magazine", "duration": 140, @@ -5924,11 +7874,13 @@ { "channel_name": "tf1", "start": "13:00", - "end": "13:40", + "end": "13:30", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 13h", "program_type": "Information - Journal", - "duration": 40, + "duration": 30, "channel_title": "TF1", "public": false, "infocontinue": false, @@ -5940,6 +7892,8 @@ "start": "19:55", "end": "20:40", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "JT 20h + météo", "program_type": "Information - Journal", "duration": 45, @@ -5954,6 +7908,8 @@ "start": "13:40", "end": "14:50", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Reportage Découverte", "program_type": "Information - Magazine", "duration": 70, @@ -5968,6 +7924,8 @@ "start": "14:50", "end": "16:00", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Grands reportages", "program_type": "Information - Magazine", "duration": 70, @@ -5982,6 +7940,8 @@ "start": "17:15", "end": "18:20", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Sept à huit Life", "program_type": "Information - Magazine", "duration": 65, @@ -5996,6 +7956,8 @@ "start": "18:20", "end": "19:45", "weekday": 7, + "program_grid_start": "2023-04-01", + "program_grid_end": "2100-01-01", "program_name": "Sept à huit", "program_type": "Information - Magazine", "duration": 85, diff --git a/postgres/schemas/models.py b/postgres/schemas/models.py index 419cdb05..a9613d11 100644 --- a/postgres/schemas/models.py +++ b/postgres/schemas/models.py @@ -111,6 +111,8 @@ class Program_Metadata(Base): public = Column(Boolean, nullable=True) infocontinue = Column(Boolean, nullable=True) radio = Column(Boolean, nullable=True) + program_grid_start = Column(DateTime(), nullable=True) + program_grid_end = Column(DateTime(), nullable=True) def get_sitemap(id: str): session = get_db_session() @@ -179,6 +181,11 @@ def update_program_metadata(engine): with open(json_file_path, 'r') as f: data = json.load(f) + # full overwrite + logging.warning("Program_Metadata table! Full overwrite (delete/recreate)") + session.query(Program_Metadata).delete() + session.commit() + for item in data: metadata = { 'id': item['id'], @@ -193,6 +200,8 @@ def update_program_metadata(engine): 'channel_program_type': item['program_type'], 'start': item['start'], 'end': item['end'], + 'program_grid_start': datetime.strptime(item['program_grid_start'], '%Y-%m-%d'), + 'program_grid_end': datetime.strptime(item['program_grid_end'], '%Y-%m-%d'), } session.merge(Program_Metadata(**metadata)) diff --git a/pyproject.toml b/pyproject.toml index 25674ee7..417d420f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,7 @@ sentry-sdk = "^2.13.0" modin = {extras = ["ray"], version = "^0.32.0"} numpy = "1.26.4" openpyxl = "^3.1.5" +requests = "^2.32.3" [build-system] requires = ["poetry-core>=1.1"] build-backend = "poetry.core.masonry.api" diff --git a/quotaclimat/data_processing/mediatree/api_import.py b/quotaclimat/data_processing/mediatree/api_import.py index bace803c..2cdda10a 100644 --- a/quotaclimat/data_processing/mediatree/api_import.py +++ b/quotaclimat/data_processing/mediatree/api_import.py @@ -106,7 +106,7 @@ async def get_and_save_api_data(exit_event): for channel in channels: try: - programs_for_this_day = get_programs_for_this_day(day, channel, df_programs) + programs_for_this_day = get_programs_for_this_day(day.tz_localize("Europe/Paris"), channel, df_programs) for program in programs_for_this_day.itertuples(index=False): start_epoch = program.start @@ -239,7 +239,6 @@ def parse_reponse_subtitle(response_sub, channel = None, channel_program = "", c new_df : pd.DataFrame = json_normalize(response_sub.get('data')) # TODO UserWarning: json_normalize is not currently supported by PandasOnRay, defaulting to pandas implementation. logging.debug("Schema from API before formatting :\n%s", new_df.dtypes) pd.set_option('display.max_columns', None) - logging.debug("head: :\n%s", new_df.head()) logging.debug("setting timestamp") new_df['timestamp'] = new_df.apply(lambda x: pd.to_datetime(x['start'], unit='s', utc=True), axis=1) @@ -284,11 +283,6 @@ async def main(): logging.info(f"Ray context dahsboard available at : {context.dashboard_url}") logging.warning(f"Ray Information about the env: {ray.available_resources()}") - if(os.environ.get("COMPARE_DURATION") == "true"): - logging.warning(f"Comparaison between number_of_15/20/30/40 is activated") - else: - logging.warning(f"Comparaison between 15/20/30/40 is OFF") - # Start batch job if(os.environ.get("UPDATE") == "true"): asyncio.create_task(update_pg_data(event_finish)) diff --git a/quotaclimat/data_processing/mediatree/channel_program.json b/quotaclimat/data_processing/mediatree/channel_program.json index f246ce3b..16d9f663 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.json +++ b/quotaclimat/data_processing/mediatree/channel_program.json @@ -1,99 +1,136 @@ [ -{"channel_name":"tf1","start":"6:55","end":"9:30","weekday":"weekday","program_name":"Bonjour ! La Matinale","program_type":"Information - Magazine"}, -{"channel_name":"tf1","start":"13:00","end":"13:40","weekday":"*","program_name":"JT 13h","program_type":"Information - Journal"}, -{"channel_name":"tf1","start":"19:55","end":"20:40","weekday":"*","program_name":"JT 20h + météo","program_type":"Information - Journal"}, -{"channel_name":"tf1","start":"13:40","end":"14:50","weekday":"6","program_name":"Reportage Découverte","program_type":"Information - Magazine"}, -{"channel_name":"tf1","start":"14:50","end":"16:00","weekday":"6","program_name":"Grands reportages","program_type":"Information - Magazine"}, -{"channel_name":"tf1","start":"17:15","end":"18:20","weekday":"6","program_name":"Sept à huit Life","program_type":"Information - Magazine"}, -{"channel_name":"tf1","start":"18:20","end":"19:45","weekday":"6","program_name":"Sept à huit","program_type":"Information - Magazine"}, -{"channel_name":"france2","start":"6:00","end":"6:25","weekday":"*","program_name":"Le 6h Info","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"6:30","end":"9:30","weekday":"*","program_name":"Télématin","program_type":"Information - Autres émissions"}, -{"channel_name":"france2","start":"13:00","end":"13:40","weekday":"weekday","program_name":"JT 13h","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"13:00","end":"13:15","weekday":"weekend","program_name":"JT 13h","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"13:15","end":"14:05","weekday":"5","program_name":"13h15 le samedi","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"13:15","end":"14:05","weekday":"6","program_name":"13h15 le dimanche","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"10:35","end":"11:00","weekday":"6","program_name":"Nous les européens","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"19:55","end":"20:40","weekday":"weekday","program_name":"JT 20h + météo","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"19:55","end":"20:30","weekday":"weekend","program_name":"JT 20h + météo","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"21:10","end":"23:00","weekday":"3","program_name":"Envoyé spécial","program_type":"Information - Magazine"}, -{"channel_name":"france2","start":"20:30","end":"21:00","weekday":"5","program_name":"20h30 le samedi","program_type":"Information - Journal"}, -{"channel_name":"france2","start":"20:30","end":"21:00","weekday":"6","program_name":"20h30 le dimanche","program_type":"Information - Journal"}, -{"channel_name":"fr3-idf","start":"7:00","end":"9:00","weekday":"weekday","program_name":"Ici Matin","program_type":"Information - Journal"}, -{"channel_name":"fr3-idf","start":"12:00","end":"12:50","weekday":"*","program_name":"JT 12h","program_type":"Information - Journal"}, -{"channel_name":"fr3-idf","start":"19:00","end":"19:55","weekday":"*","program_name":"JT 19h + météo","program_type":"Information - Journal"}, -{"channel_name":"m6","start":"12:45","end":"13:15","weekday":"*","program_name":"JT 1245","program_type":"Information - Journal"}, -{"channel_name":"m6","start":"13:50","end":"17:20","weekday":"weekday","program_name":"1 jour un doc","program_type":"Information - Magazine"}, -{"channel_name":"m6","start":"13:15","end":"13:50","weekday":"weekday","program_name":"1245 le mag","program_type":"Information - Magazine"}, -{"channel_name":"m6","start":"19:40","end":"20:10","weekday":"*","program_name":"JT 1945 + météo","program_type":"Information - Journal"}, -{"channel_name":"m6","start":"11:00","end":"12:30","weekday":"5","program_name":"66 minutes samedi","program_type":"Information - Magazine"}, -{"channel_name":"m6","start":"16:35","end":"19:30","weekday":"6","program_name":"66 minutes","program_type":"Information - Magazine"}, -{"channel_name":"m6","start":"21:10","end":"23:15","weekday":"6","program_name":"Capital / Zone interdite","program_type":"Information - Magazine"}, -{"channel_name":"arte","start":"19:45","end":"20:05","weekday":"*","program_name":"JT","program_type":"Information - Journal"}, -{"channel_name":"arte","start":"20:05","end":"20:50","weekday":"*","program_name":"28 minutes","program_type":"Information - Magazine"}, -{"channel_name":"d8","start":"12:30","end":"13:00","weekday":"weekday","program_name":"Le journal du jour + météo","program_type":"Information - Journal"}, -{"channel_name":"bfmtv","start":"6:00","end":"23:00","weekday":"*","program_name":"Information en continu","program_type":"Information en continu"}, -{"channel_name":"itele","start":"6:00","end":"23:00","weekday":"*","program_name":"Information en continu","program_type":"Information en continu"}, -{"channel_name":"lci","start":"6:00","end":"23:00","weekday":"*","program_name":"Information en continu","program_type":"Information en continu"}, -{"channel_name":"france24","start":"6:00","end":"23:00","weekday":"*","program_name":"Information en continu","program_type":"Information en continu"}, -{"channel_name":"franceinfotv","start":"6:00","end":"23:00","weekday":"*","program_name":"Information en continu","program_type":"Information en continu"}, -{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"0","program_name":"Le 5/7","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"0","program_name":"Le 7/10","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"1","program_name":"Le 5/7","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"1","program_name":"Le 7/10","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"2","program_name":"Le 5/7","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"2","program_name":"Le 7/10","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"3","program_name":"Le 5/7","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"3","program_name":"Le 7/10","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"6:00","end":"9:00","weekday":"4","program_name":"Le 6/9","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"6:00","end":"9:00","weekday":"weekend","program_name":"Le 6/9","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"13:00","end":"14:00","weekday":"weekday","program_name":"Le 13/14","program_type":"Information - Magazine"}, -{"channel_name":"france-inter","start":"13:00","end":"13:30","weekday":"weekend","program_name":"Le journal de 13h du WE","program_type":"Information - Journal"}, -{"channel_name":"france-inter","start":"19:00","end":"20:00","weekday":"*","program_name":"Le 19/20","program_type":"Information - Magazine"}, -{"channel_name":"france-culture","start":"6:30","end":"9:00","weekday":"*","program_name":"Les matins","program_type":"Information - Magazine"}, -{"channel_name":"france-culture","start":"12:30","end":"12:50","weekday":"*","program_name":"Journal de 12h30","program_type":"Information - Journal"}, -{"channel_name":"france-culture","start":"18:00","end":"18:20","weekday":"*","program_name":"Journal de 18h","program_type":"Information - Journal"}, -{"channel_name":"rtl","start":"6:00","end":"7:00","weekday":"weekday","program_name":"RTL Petit Matin","program_type":"Information - Magazine"}, -{"channel_name":"rtl","start":"7:00","end":"9:00","weekday":"weekday","program_name":"RTL Matin","program_type":"Information - Magazine"}, -{"channel_name":"rtl","start":"12:00","end":"13:00","weekday":"weekday","program_name":"RTL Midi","program_type":"Information - Magazine"}, -{"channel_name":"rtl","start":"18:00","end":"20:00","weekday":"weekday","program_name":"RTL Bonsoir","program_type":"Information - Magazine"}, -{"channel_name":"rtl","start":"18:00","end":"18:15","weekday":"5","program_name":"Journal","program_type":"Information - Journal"}, -{"channel_name":"rtl","start":"6:00","end":"9:15","weekday":"weekend","program_name":"RTL Matin","program_type":"Information - Magazine"}, -{"channel_name":"rtl","start":"18:00","end":"19:15","weekday":"6","program_name":"RTL Dimanche soir","program_type":"Information - Magazine"}, -{"channel_name":"rtl","start":"13:00","end":"14:00","weekday":"6","program_name":"Focus Dimanche","program_type":"Information - Magazine"}, -{"channel_name":"rmc","start":"6:30","end":"9:00","weekday":"weekday","program_name":"Apolline Matin","program_type":"Information - Magazine"}, -{"channel_name":"rmc","start":"9:00","end":"12:00","weekday":"weekday","program_name":"Les grandes gueules","program_type":"Information - Magazine"}, -{"channel_name":"rmc","start":"12:00","end":"15:00","weekday":"weekday","program_name":"Estelle Midi","program_type":"Information - Magazine"}, -{"channel_name":"rmc","start":"6:30","end":"9:30","weekday":"weekend","program_name":"La Matinale Week-end","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"6:00","end":"7:00","weekday":"weekday","program_name":"Bonjour","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"7:00","end":"9:00","weekday":"weekday","program_name":"Europe 1 Matin","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"9:00","end":"9:30","weekday":"weekday","program_name":"L'heure des pros","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"11:00","end":"13:00","weekday":"weekday","program_name":"Pascal Praud et vous","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"13:00","end":"14:00","weekday":"weekday","program_name":"Europe 1 Matin","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"18:00","end":"19:00","weekday":"weekday","program_name":"Punchline","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"19:00","end":"20:00","weekday":"weekday","program_name":"Soir","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"6:00","end":"9:00","weekday":"weekend","program_name":" Europe 1 Matin Week-end","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"12:30","end":"13:00","weekday":"weekend","program_name":"Midi Week-end","program_type":"Information - Magazine"}, -{"channel_name":"europe1","start":"18:00","end":"19:00","weekday":"weekend","program_name":"Soir Week-end","program_type":"Information - Magazine"}, -{"channel_name":"sud-radio","start":"6:50","end":"10:00","weekday":"weekday","program_name":"Le Grand Matin","program_type":"Information - Magazine"}, -{"channel_name":"sud-radio","start":"7:00","end":"9:20","weekday":"weekend","program_name":"Le Grand Matin Week-end","program_type":"Information - Magazine"}, -{"channel_name":"sud-radio","start":"10:40","end":"12:00","weekday":"weekday","program_name":"Mettez-vous d'accord","program_type":"Information - Magazine"}, -{"channel_name":"sud-radio","start":"12:00","end":"14:00","weekday":"weekday","program_name":"Sud Radio dans tous ses états","program_type":"Information - Magazine"}, -{"channel_name":"france-info","start":"6:00","end":"23:00","weekday":"*","program_name":"Information en continu","program_type":"Information en continu"}, -{"channel_name":"rfi","start":"6:00","end":"6:10","weekday":"*","program_name":"Journal - 6h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"7:00","end":"7:10","weekday":"*","program_name":"Journal - 7h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"8:00","end":"8:10","weekday":"*","program_name":"Journal - 8h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"9:00","end":"9:10","weekday":"*","program_name":"Journal - 9h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"10:00","end":"10:10","weekday":"*","program_name":"Journal - 10h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"11:00","end":"11:10","weekday":"*","program_name":"Journal - 11h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"12:00","end":"12:10","weekday":"*","program_name":"Journal - 12h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"13:00","end":"13:10","weekday":"*","program_name":"Journal - 13h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"14:00","end":"14:10","weekday":"*","program_name":"Journal - 14h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"15:00","end":"15:10","weekday":"*","program_name":"Journal - 15h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"16:00","end":"16:10","weekday":"*","program_name":"Journal - 16h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"17:00","end":"17:10","weekday":"*","program_name":"Journal - 17h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"18:00","end":"18:10","weekday":"*","program_name":"Journal - 18h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"19:00","end":"19:10","weekday":"*","program_name":"Journal - 19h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"20:00","end":"20:10","weekday":"*","program_name":"Journal - 20h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"21:00","end":"21:10","weekday":"*","program_name":"Journal - 21h","program_type":"Information - Journal"}, -{"channel_name":"rfi","start":"22:00","end":"22:10","weekday":"*","program_name":"Journal - 22h","program_type":"Information - Journal"} +{"channel_name":"tf1","start":"6:55","end":"9:30","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Bonjour ! La Matinale","program_type":"Information - Magazine"}, +{"channel_name":"tf1","start":"13:00","end":"13:40","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 13h","program_type":"Information - Journal"}, +{"channel_name":"tf1","start":"13:00","end":"13:40","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 13h","program_type":"Information - Journal"}, +{"channel_name":"tf1","start":"13:00","end":"13:30","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 13h","program_type":"Information - Journal"}, +{"channel_name":"tf1","start":"19:55","end":"20:40","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 20h + météo","program_type":"Information - Journal"}, +{"channel_name":"tf1","start":"13:40","end":"14:50","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Reportage Découverte","program_type":"Information - Magazine"}, +{"channel_name":"tf1","start":"14:50","end":"16:00","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Grands reportages","program_type":"Information - Magazine"}, +{"channel_name":"tf1","start":"17:15","end":"18:20","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Sept à huit Life","program_type":"Information - Magazine"}, +{"channel_name":"tf1","start":"18:20","end":"19:45","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Sept à huit","program_type":"Information - Magazine"}, +{"channel_name":"france2","start":"6:00","end":"6:25","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 6h Info","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"6:30","end":"9:30","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Télématin","program_type":"Information - Autres émissions"}, +{"channel_name":"france2","start":"6:30","end":"9:30","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Télématin","program_type":"Information - Autres émissions"}, +{"channel_name":"france2","start":"6:30","end":"8:30","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Télématin","program_type":"Information - Autres émissions"}, +{"channel_name":"france2","start":"13:00","end":"13:40","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 13h","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"13:00","end":"13:15","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 13h","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"13:15","end":"13:50","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"2024-07-13","program_name":"13h15 le samedi","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"13:15","end":"13:50","weekday":"5","program_grid_start":"2024-08-24","program_grid_end":"","program_name":"13h15 le samedi","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"13:20","end":"14:05","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"13h15 le dimanche","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"10:35","end":"11:00","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"2023-06-25","program_name":"Nous les européens","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"10:35","end":"11:00","weekday":"6","program_grid_start":"2023-09-10","program_grid_end":"2024-01-28","program_name":"Nous les européens","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:10","end":"12:35","weekday":"6","program_grid_start":"2023-07-09","program_grid_end":"2023-09-03","program_name":"Nous les européens","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"10:20","end":"10:50","weekday":"6","program_grid_start":"2024-03-17","program_grid_end":"2024-06-16","program_name":"Nous les européens","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:00","end":"12:30","weekday":"6","program_grid_start":"2024-06-30","program_grid_end":"2024-07-21","program_name":"Nous les européens","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:00","end":"12:30","weekday":"6","program_grid_start":"2024-08-18","program_grid_end":"","program_name":"Nous les européens","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"19:55","end":"20:40","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"2024-09-08","program_name":"JT 20h + météo","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"19:55","end":"20:55","weekday":"weekday","program_grid_start":"2024-09-09","program_grid_end":"","program_name":"JT 20h + météo","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"19:55","end":"20:30","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 20h + météo","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"21:10","end":"23:00","weekday":"3","program_grid_start":"2023-04-01","program_grid_end":"2023-06-29","program_name":"Envoyé spécial","program_type":"Information - Magazine"}, +{"channel_name":"france2","start":"21:10","end":"23:00","weekday":"3","program_grid_start":"2023-09-01","program_grid_end":"","program_name":"Envoyé spécial","program_type":"Information - Magazine"}, +{"channel_name":"france2","start":"20:30","end":"20:55","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"2023-06-25","program_name":"20h30 le samedi","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"20:30","end":"20:55","weekday":"5","program_grid_start":"2023-09-01","program_grid_end":"2024-06-23","program_name":"20h30 le samedi","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"20:30","end":"20:55","weekday":"5","program_grid_start":"2024-09-01","program_grid_end":"","program_name":"20h30 le samedi","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"20:30","end":"21:00","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"2023-06-25","program_name":"20h30 le dimanche","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"20:30","end":"21:00","weekday":"6","program_grid_start":"2023-09-01","program_grid_end":"2024-06-23","program_name":"20h30 le dimanche","program_type":"Information - Journal"}, +{"channel_name":"france2","start":"20:30","end":"21:00","weekday":"6","program_grid_start":"2024-09-01","program_grid_end":"","program_name":"20h30 le dimanche","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"7:00","end":"9:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"2024-02-09","program_name":"Ici Matin","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"7:00","end":"9:00","weekday":"weekday","program_grid_start":"2024-03-11","program_grid_end":"2024-04-05","program_name":"Ici Matin","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"7:00","end":"9:00","weekday":"weekday","program_grid_start":"2024-05-01","program_grid_end":"","program_name":"Ici Matin","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:25","end":"12:50","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"2023-09-03","program_name":"JT 12h","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:25","end":"12:50","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"2023-09-03","program_name":"JT 12h","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:00","end":"12:50","weekday":"weekday","program_grid_start":"2023-09-04","program_grid_end":"","program_name":"JT 12h","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:20","end":"12:50","weekday":"5","program_grid_start":"2023-09-04","program_grid_end":"","program_name":"JT 12h","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:35","end":"12:50","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 12h","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:10","end":"12:35","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"2023-06-25","program_name":"Dimanche en politique","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"12:00","end":"12:30","weekday":"6","program_grid_start":"2023-09-01","program_grid_end":"2023-12-17","program_name":"Dimanche en politique","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"11:45","end":"12:30","weekday":"6","program_grid_start":"2024-01-14","program_grid_end":"2024-06-23","program_name":"Dimanche en politique","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"11:40","end":"12:30","weekday":"6","program_grid_start":"2024-09-01","program_grid_end":"","program_name":"Dimanche en politique","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"19:30","end":"19:55","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"2023-09-03","program_name":"JT 19h + météo","program_type":"Information - Journal"}, +{"channel_name":"fr3-idf","start":"19:00","end":"19:55","weekday":"*","program_grid_start":"2023-09-04","program_grid_end":"","program_name":"JT 19h + météo","program_type":"Information - Journal"}, +{"channel_name":"m6","start":"12:45","end":"13:15","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 1245","program_type":"Information - Journal"}, +{"channel_name":"m6","start":"13:55","end":"16:50","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"2023-10-03","program_name":"1 jour un doc","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"13:55","end":"17:20","weekday":"weekday","program_grid_start":"2023-10-09","program_grid_end":"","program_name":"1 jour un doc","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"13:15","end":"13:55","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"2024-05-31","program_name":"1245 le mag","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"13:15","end":"13:25","weekday":"weekday","program_grid_start":"2024-06-01","program_grid_end":"","program_name":"1245 le mag","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"19:40","end":"20:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 1945 + météo","program_type":"Information - Journal"}, +{"channel_name":"m6","start":"11:00","end":"12:30","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"66 minutes samedi","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"17:20","end":"19:30","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"2024-06-25","program_name":"66 minutes","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"17:45","end":"19:30","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"2023-08-31","program_name":"66 minutes","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"17:20","end":"19:30","weekday":"6","program_grid_start":"2023-09-01","program_grid_end":"2024-01-14","program_name":"66 minutes","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"16:40","end":"19:30","weekday":"6","program_grid_start":"2024-01-15","program_grid_end":"2024-04-28","program_name":"66 minutes","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"17:20","end":"19:30","weekday":"6","program_grid_start":"2024-05-04","program_grid_end":"2024-06-30","program_name":"66 minutes","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"17:45","end":"19:30","weekday":"6","program_grid_start":"2024-07-04","program_grid_end":"2024-08-31","program_name":"66 minutes","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"17:20","end":"19:30","weekday":"6","program_grid_start":"2024-09-01","program_grid_end":"","program_name":"66 minutes","program_type":"Information - Magazine"}, +{"channel_name":"m6","start":"21:10","end":"23:15","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Capital / Zone interdite","program_type":"Information - Magazine"}, +{"channel_name":"arte","start":"19:45","end":"20:05","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT","program_type":"Information - Journal"}, +{"channel_name":"arte","start":"20:05","end":"20:50","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"28 minutes","program_type":"Information - Magazine"}, +{"channel_name":"d8","start":"12:30","end":"13:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"2023-06-23","program_name":"Le journal du jour + météo","program_type":"Information - Journal"}, +{"channel_name":"d8","start":"12:30","end":"13:00","weekday":"weekday","program_grid_start":"2023-09-04","program_grid_end":"2024-06-28","program_name":"Le journal du jour + météo","program_type":"Information - Journal"}, +{"channel_name":"d8","start":"12:30","end":"13:00","weekday":"weekday","program_grid_start":"2024-09-02","program_grid_end":"","program_name":"Le journal du jour + météo","program_type":"Information - Journal"}, +{"channel_name":"bfmtv","start":"6:00","end":"23:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Information en continu","program_type":"Information en continu"}, +{"channel_name":"itele","start":"6:00","end":"23:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Information en continu","program_type":"Information en continu"}, +{"channel_name":"lci","start":"6:00","end":"23:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Information en continu","program_type":"Information en continu"}, +{"channel_name":"france24","start":"6:00","end":"23:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Information en continu","program_type":"Information en continu"}, +{"channel_name":"franceinfotv","start":"6:00","end":"23:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Information en continu","program_type":"Information en continu"}, +{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"0","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 5/7","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"0","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 7/10","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"1","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 5/7","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"1","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 7/10","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"2","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 5/7","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"2","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 7/10","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"6:00","end":"7:00","weekday":"3","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 5/7","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"7:00","end":"10:00","weekday":"3","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 7/10","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"6:00","end":"9:00","weekday":"4","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 6/9","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"6:00","end":"9:00","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 6/9","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"13:00","end":"14:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 13/14","program_type":"Information - Magazine"}, +{"channel_name":"france-inter","start":"13:00","end":"13:30","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le journal de 13h du WE","program_type":"Information - Journal"}, +{"channel_name":"france-inter","start":"19:00","end":"20:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le 19/20","program_type":"Information - Magazine"}, +{"channel_name":"france-culture","start":"6:30","end":"9:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Les matins","program_type":"Information - Magazine"}, +{"channel_name":"france-culture","start":"12:30","end":"12:50","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal de 12h30","program_type":"Information - Journal"}, +{"channel_name":"france-culture","start":"18:00","end":"18:20","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal de 18h","program_type":"Information - Journal"}, +{"channel_name":"rtl","start":"6:00","end":"7:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"RTL Petit Matin","program_type":"Information - Magazine"}, +{"channel_name":"rtl","start":"7:00","end":"9:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"RTL Matin","program_type":"Information - Magazine"}, +{"channel_name":"rtl","start":"12:00","end":"13:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"RTL Midi","program_type":"Information - Magazine"}, +{"channel_name":"rtl","start":"18:00","end":"20:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"RTL Bonsoir","program_type":"Information - Magazine"}, +{"channel_name":"rtl","start":"18:00","end":"18:15","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal","program_type":"Information - Journal"}, +{"channel_name":"rtl","start":"6:00","end":"9:15","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"RTL Matin","program_type":"Information - Magazine"}, +{"channel_name":"rtl","start":"18:00","end":"19:15","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"RTL Dimanche soir","program_type":"Information - Magazine"}, +{"channel_name":"rtl","start":"13:00","end":"14:00","weekday":"6","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Focus Dimanche","program_type":"Information - Magazine"}, +{"channel_name":"rmc","start":"6:30","end":"9:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Apolline Matin","program_type":"Information - Magazine"}, +{"channel_name":"rmc","start":"9:00","end":"12:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Les grandes gueules","program_type":"Information - Magazine"}, +{"channel_name":"rmc","start":"12:00","end":"15:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Estelle Midi","program_type":"Information - Magazine"}, +{"channel_name":"rmc","start":"6:30","end":"9:30","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"La Matinale Week-end","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"6:00","end":"7:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Bonjour","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"7:00","end":"9:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Europe 1 Matin","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"9:00","end":"9:30","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"L'heure des pros","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"11:00","end":"13:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Pascal Praud et vous","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"13:00","end":"14:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Europe 1 Matin","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"18:00","end":"19:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Punchline","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"19:00","end":"20:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Soir","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"6:00","end":"9:00","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":" Europe 1 Matin Week-end","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"12:30","end":"13:00","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Midi Week-end","program_type":"Information - Magazine"}, +{"channel_name":"europe1","start":"18:00","end":"19:00","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Soir Week-end","program_type":"Information - Magazine"}, +{"channel_name":"sud-radio","start":"6:50","end":"10:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le Grand Matin","program_type":"Information - Magazine"}, +{"channel_name":"sud-radio","start":"7:00","end":"9:20","weekday":"weekend","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Le Grand Matin Week-end","program_type":"Information - Magazine"}, +{"channel_name":"sud-radio","start":"10:40","end":"12:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Mettez-vous d'accord","program_type":"Information - Magazine"}, +{"channel_name":"sud-radio","start":"12:00","end":"14:00","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Sud Radio dans tous ses états","program_type":"Information - Magazine"}, +{"channel_name":"france-info","start":"6:00","end":"23:00","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Information en continu","program_type":"Information en continu"}, +{"channel_name":"rfi","start":"6:00","end":"6:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 6h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"7:00","end":"7:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 7h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"8:00","end":"8:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 8h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"9:00","end":"9:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 9h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"10:00","end":"10:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 10h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"11:00","end":"11:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 11h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"12:00","end":"12:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 12h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"13:00","end":"13:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 13h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"14:00","end":"14:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 14h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"15:00","end":"15:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 15h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"16:00","end":"16:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 16h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"17:00","end":"17:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 17h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"18:00","end":"18:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 18h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"19:00","end":"19:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 19h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"20:00","end":"20:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 20h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"21:00","end":"21:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 21h","program_type":"Information - Journal"}, +{"channel_name":"rfi","start":"22:00","end":"22:10","weekday":"*","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Journal - 22h","program_type":"Information - Journal"} ] diff --git a/quotaclimat/data_processing/mediatree/channel_program.py b/quotaclimat/data_processing/mediatree/channel_program.py index 11bd58e1..d7f205c7 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.py +++ b/quotaclimat/data_processing/mediatree/channel_program.py @@ -3,12 +3,7 @@ import os from datetime import datetime import json -from quotaclimat.data_processing.mediatree.utils import get_epoch_from_datetime, EPOCH__5MIN_MARGIN, EPOCH__1MIN_MARGIN - -def format_hour_minute(time: str) -> pd.Timestamp: - date_str = "1970-01-01" - logging.debug(f"format_hour_minute with : {time}") - return pd.to_datetime(date_str + " " + time) +from quotaclimat.data_processing.mediatree.utils import get_epoch_from_datetime, EPOCH__5MIN_MARGIN, EPOCH__1MIN_MARGIN, get_timestamp_from_yyyymmdd,format_hour_minute def get_programs(): logging.debug("Getting program tv/radio...") @@ -20,9 +15,11 @@ def get_programs(): json_data = json.load(file) df_programs = pd.DataFrame(json_data) - df_programs[['start', 'end']] = df_programs.apply(lambda x: pd.Series({ + df_programs[['start', 'end', 'program_grid_start', 'program_grid_end']] = df_programs.apply(lambda x: pd.Series({ 'start': format_hour_minute(x['start']), - 'end': format_hour_minute(x['end']) + 'end': format_hour_minute(x['end']), + 'program_grid_start': get_timestamp_from_yyyymmdd(x['program_grid_start']), + 'program_grid_end': get_timestamp_from_yyyymmdd(x['program_grid_end']) }), axis=1) except (Exception) as error: @@ -110,18 +107,22 @@ def get_matching_program_hour(df_program: pd.DataFrame, start_time: pd.Timestamp def get_matching_program_weekday(df_program: pd.DataFrame, start_time: pd.Timestamp, channel_name: str): logging.debug(f"get_matching_program_weekday {start_time} {channel_name}") start_weekday = get_day_of_week(start_time) - logging.debug(df_program['weekday'].unique()) + if "weekday_mask" in df_program.columns: df_program.drop(columns=["weekday_mask"], inplace=True) df_program["weekday_mask"] = df_program['weekday'].apply(lambda x: compare_weekday(x, start_weekday), axis=1) matching_rows = df_program[ (df_program['channel_name'] == channel_name) & - (df_program["weekday_mask"] == True) + (df_program["weekday_mask"] == True) & + (df_program["program_grid_start"] <= start_time) & + (df_program["program_grid_end"] >= start_time) ] matching_rows.drop(columns=['weekday_mask'], inplace=True) matching_rows.drop(columns=['weekday'], inplace=True) + matching_rows.drop(columns=['program_grid_start'], inplace=True) + matching_rows.drop(columns=['program_grid_end'], inplace=True) if matching_rows.empty: logging.warning(f"Program tv : no matching rows found {channel_name} for weekday {start_weekday} - {start_time}") @@ -134,13 +135,17 @@ def get_a_program_with_start_timestamp(df_program: pd.DataFrame, start_time: pd. if not matching_rows.empty: logging.debug(f"matching_rows {matching_rows}") + # TODO should return closest to start_time return matching_rows.iloc[0]['program_name'], matching_rows.iloc[0]['program_type'] else: logging.warning(f"no programs found for {channel_name} - {start_time}") return "", "" def process_subtitle(row, df_program): - channel_program, channel_program_type = get_a_program_with_start_timestamp(df_program, row['start'], row['channel_name']) + channel_program, channel_program_type = get_a_program_with_start_timestamp(df_program, \ + row['start'], \ + row['channel_name'] + ) row['channel_program'] = str(channel_program) row['channel_program_type'] = str(channel_program_type) return row diff --git a/quotaclimat/data_processing/mediatree/utils.py b/quotaclimat/data_processing/mediatree/utils.py index 8344659b..c7dc6219 100644 --- a/quotaclimat/data_processing/mediatree/utils.py +++ b/quotaclimat/data_processing/mediatree/utils.py @@ -106,4 +106,15 @@ def get_date_range(start_date_to_query, end_epoch): def is_it_tuesday(date): weekday = date.weekday() logging.debug(f"weekday : {weekday}") - return weekday \ No newline at end of file + return weekday + +def format_hour_minute(time: str) -> pd.Timestamp: + date_str = "1970-01-01" + logging.debug(f"format_hour_minute with : {time}") + return pd.to_datetime(date_str + " " + time) + +def get_timestamp_from_yyyymmdd(time: str) -> pd.Timestamp: + if(time == ""): + return (pd.Timestamp.now() + pd.DateOffset(years=100)).tz_localize("Europe/Paris") + else: + return pd.Timestamp(pd.to_datetime(time)).tz_localize("Europe/Paris") \ No newline at end of file diff --git a/test/sitemap/test_program_metadata.py b/test/sitemap/test_program_metadata.py index 4d3cc9cd..626e3263 100644 --- a/test/sitemap/test_program_metadata.py +++ b/test/sitemap/test_program_metadata.py @@ -140,7 +140,7 @@ def test_add_channel_program_france2_jt(): def test_get_programs_for_this_day_thusday_morning_france2(): df_programs = get_programs() - programs = get_programs_for_this_day(pd.to_datetime(thrusday_morning, unit='s').normalize(), channel_name, df_programs) + programs = get_programs_for_this_day(pd.to_datetime(thrusday_morning, unit='s').tz_localize('Europe/Paris'), channel_name, df_programs) debug_df(programs) expected = pd.DataFrame([ {"channel_name":"france2","start":1712808000,"end":1712809500,"program_name":"Le 6h Info", "program_type":"Information - Journal"}, @@ -177,10 +177,17 @@ def test_format_hour_minute_double_digit(): def test_get_programs_for_this_day_thusday_morning_franceinfo(): df_programs = get_programs() - programs = get_programs_for_this_day(pd.to_datetime(thrusday_morning, unit='s').normalize(), "france-info", df_programs) + + thrusday_morning_ts = pd.to_datetime(thrusday_morning, unit='s').tz_localize('Europe/Paris') + programs = get_programs_for_this_day(thrusday_morning_ts, "france-info", df_programs) debug_df(programs) expected = pd.DataFrame([ - {"channel_name":"france-info","start":1712808000,"end":1712869200,"program_name":"Information en continu", "program_type":"Information en continu"}, + {"channel_name":"france-info", + "start":1712808000, + "end":1712869200, + "program_name":"Information en continu", + "program_type":"Information en continu" + }, ]) pd.testing.assert_frame_equal(programs._to_pandas().reset_index(drop=True), expected.reset_index(drop=True)) @@ -237,6 +244,34 @@ def test_get_6h26_friday_fr2_with_margin_program_with_start_timestamp(): assert program_name == "Le 6h Info" assert program_type == "Information - Journal" + +def test_get_old_jt_20hweekday_20h19_friday_fr2(): + df_programs = get_programs() + friday_20h19 = 1722622741 + program_name, program_type = get_a_program_with_start_timestamp(df_programs,\ + pd.to_datetime(friday_20h19, unit='s', utc=True).tz_convert('Europe/Paris'),\ + "france2") + assert program_name == "JT 20h + météo" + assert program_type == "Information - Journal" + +def test_get_old_no_match_on_new_program_date_jt_20hweekday_20h55_friday_fr2(): + df_programs = get_programs() + friday_20h19 = 1722624901 + program_name, program_type = get_a_program_with_start_timestamp(df_programs,\ + pd.to_datetime(friday_20h19, unit='s', utc=True).tz_convert('Europe/Paris'),\ + "france2") + assert program_name == "" + assert program_type == "" + +def test_get_new_jt_20hweekday_20h55_friday_fr2(): + df_programs = get_programs() + friday_20h55 = 1727376901 + program_name, program_type = get_a_program_with_start_timestamp(df_programs,\ + pd.to_datetime(friday_20h55, unit='s', utc=True).tz_convert('Europe/Paris'),\ + "france2") + assert program_name == "JT 20h + météo" + assert program_type == "Information - Journal" + def test_compare_weekday_string(): assert compare_weekday('*', 0) == True assert compare_weekday('*', 3) == True diff --git a/transform_program.py b/transform_program.py index 4f2b1345..95d1afc2 100644 --- a/transform_program.py +++ b/transform_program.py @@ -152,6 +152,9 @@ def generate_program_id(channel_name, weekday, program_name): end_time = program_data['end'] duration_minutes = calculate_duration(start_time, end_time) + if program_data['program_grid_end'] == "": + program_data['program_grid_end'] = '2100-01-01' + # Add duration to the program data program_data['duration'] = duration_minutes From 3889c0a32073cfa0f72107dd2fc11e8d3e4bc56f Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 4 Oct 2024 08:41:17 +0000 Subject: [PATCH 33/73] [no ci]: 1.0.17 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 417d420f..70a4324a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.16" +version = "1.0.17" description = "" authors = [ "Rambier Estelle ", From f450ba01f50b3d882ac085d2f799c35dfbcbbcc1 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 4 Oct 2024 12:11:48 +0200 Subject: [PATCH 34/73] fix: generate id for program with start_grid --- postgres/program_metadata.json | 996 ++++++++++++++++----------------- transform_program.py | 6 +- 2 files changed, 501 insertions(+), 501 deletions(-) diff --git a/postgres/program_metadata.json b/postgres/program_metadata.json index 55029273..63331ad6 100644 --- a/postgres/program_metadata.json +++ b/postgres/program_metadata.json @@ -13,7 +13,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e008c4077f2a3f1ec346ff222d7e57d30914bd4357f36e3b2025e05d2cf96b84" + "id": "891833b5bdf67aedb812a4b75547a8eb01b0bc3e823cd445c9daca1ace0794ae" }, { "channel_name": "arte", @@ -29,7 +29,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "865c8fcdd09179acc8ab5ded2df8e6ab19c33e6dcbcef8dadf5c476cab3e7417" + "id": "cb6e6e99bf7abefb597d2b05bed01ea1fbce4d1da2735c2074b35665c9bb7c00" }, { "channel_name": "bfmtv", @@ -45,7 +45,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "0ceb81c10a9c91d7b1fc4c385118d7a98193f81cdc8ca25be2f37ff66eb90aac" + "id": "b4efe418c9fc69b3fb1178350fd982562e51c6e9774c157c0e6a35ac4de58fac" }, { "channel_name": "d8", @@ -61,7 +61,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "b5490b78c9e49919934a4ef82f8cf5cbbccf6ef0041d9bc5f50e3d38e391e142" + "id": "8b57cb95b55d670af75dc2b2b91a8c99cd1a1c713af636c6911442e797251f89" }, { "channel_name": "d8", @@ -77,7 +77,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "b5490b78c9e49919934a4ef82f8cf5cbbccf6ef0041d9bc5f50e3d38e391e142" + "id": "431e160f69e1aa182aef7e8d5d5ecc2cd0a55de19ab4aa8bfb6cc606601dbe8f" }, { "channel_name": "d8", @@ -93,7 +93,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "b5490b78c9e49919934a4ef82f8cf5cbbccf6ef0041d9bc5f50e3d38e391e142" + "id": "3e75e1f48298ddf92763fb532cf04ca9c3820992e23b1a4dea6ea604dc0d3f2c" }, { "channel_name": "europe1", @@ -109,7 +109,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "994cc943ca6538eb61f4910403efa90699b992cb5085f5c3b502b1c2faa383df" + "id": "7d488816e1d0651b530d8cc602be01743992a5a23c6804af18c7ceb94e6cb452" }, { "channel_name": "europe1", @@ -125,7 +125,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "c71a863a26153495195746182eb69dfa28ae125cfeac0f7a47c0582ca559119b" + "id": "4f3898dca03a6d4ebe2de8748f2eca4eff17fc33feb3f4dcf34257725fdeea89" }, { "channel_name": "europe1", @@ -141,7 +141,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "3880711a96ee5af59bda0cd14589b87c03c2e800fbbab053a39871c813c37a28" + "id": "8cdbaf362fa4abd139154f66e3f1460d1cd177e974d4bb0ce4281b44bf8dcbe9" }, { "channel_name": "europe1", @@ -157,7 +157,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "a1eb99525c0964a7191f926961ea0edbc38df270ab2d84369ac787dd35e385ef" + "id": "2ed3c237252bedbe1dbe49748e693a6717fd7003e0bf0bcc891193aec24227d8" }, { "channel_name": "europe1", @@ -173,7 +173,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "c71a863a26153495195746182eb69dfa28ae125cfeac0f7a47c0582ca559119b" + "id": "4f3898dca03a6d4ebe2de8748f2eca4eff17fc33feb3f4dcf34257725fdeea89" }, { "channel_name": "europe1", @@ -189,7 +189,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "3779a07b1d299be0e170d87c423a211ef6b8d643054ad3a6e2124a60068f3b46" + "id": "625df674ffdf433e18203b59ce0062e7002f703cfc3ed808a48537dba009598b" }, { "channel_name": "europe1", @@ -205,7 +205,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "8cd48e2722d138ef048be6fc17087f5a067de73ba0ad63880e74b2a182bce9a1" + "id": "ff559646bbd98076d5fa72f858e0cce692304686896d0bde6f5ecc3bec44e444" }, { "channel_name": "fr3-idf", @@ -221,7 +221,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "69df3955cf5427cb20161fe303d2a61a2cd7724ab3815a2c7dc09d8611b06128" + "id": "4ff0a008035ce0c43c7d13522ee43464d69105ceba0e60cd9980541d8caea64b" }, { "channel_name": "fr3-idf", @@ -237,7 +237,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "69df3955cf5427cb20161fe303d2a61a2cd7724ab3815a2c7dc09d8611b06128" + "id": "ebb63e55f4578b660eeb4ed5284bfc7e6839b5abbc38c422194e891bafa007cc" }, { "channel_name": "fr3-idf", @@ -253,7 +253,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "69df3955cf5427cb20161fe303d2a61a2cd7724ab3815a2c7dc09d8611b06128" + "id": "b1986db8a2ede7d5b710b465a8e0652566a50c6753822c108bcbf306a5b8422f" }, { "channel_name": "fr3-idf", @@ -269,7 +269,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "058ca097d7f964d14bcccff54592f9c3105f63a93bd2511642b1ecf37b1fe690" + "id": "05ea68666596830ef5c639b5199591ab2f5f17983bd0f573bc7272fb1a782844" }, { "channel_name": "fr3-idf", @@ -285,7 +285,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "058ca097d7f964d14bcccff54592f9c3105f63a93bd2511642b1ecf37b1fe690" + "id": "1a0dd3b27955dc421703b2b843928f86d947022c32dde417cfa1be7b579b4c5e" }, { "channel_name": "fr3-idf", @@ -301,7 +301,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "5018eca67b98963c816b3a3c34148aacc02dfcf5ffc8de0158fe02af2b58d5a6" + "id": "2e48fddd0e299f194296a432d04e0b4a37c3be3401853db36864ce61ca92fb55" }, { "channel_name": "fr3-idf", @@ -317,7 +317,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "5018eca67b98963c816b3a3c34148aacc02dfcf5ffc8de0158fe02af2b58d5a6" + "id": "804058c514a875ca2a0f94d86ee41813a07260c9a7e8a04268f8c7320346752b" }, { "channel_name": "france-culture", @@ -333,7 +333,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f2b861e730507a7b8da77ce6b2f1ba4d4d404dfbb82d2c5d67065c0555aee463" + "id": "d43d72f70cc08a906014fe9be56283b407c62d30de96584997d3d84bb9418702" }, { "channel_name": "france-culture", @@ -349,7 +349,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "9cf3fb9cd6ad138140298cb382b42ee25d9dd64fe8ef17c58e2eb99acb61035d" + "id": "0a42f880a4cdb113459f0b21a9a5ddc77f6cae64e244c7de4de7d2ea7c525f60" }, { "channel_name": "france-culture", @@ -365,7 +365,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f610dd40d26367a92fb8f9a1d9e0949460a6d404aad819c28a94536640541f4a" + "id": "1b2783e432317cbdd2df058f65d7082dc4be2bc9ddb78569c15dc0aaa27bf1c4" }, { "channel_name": "france-info", @@ -381,7 +381,7 @@ "public": true, "infocontinue": true, "radio": true, - "id": "443b83ce4c1155dd5f965d200adc07c4ebf14027235a2d6a6c1011cf1a671706" + "id": "2c64c6501c5a0bb7cc4463e9b29056994c8c86de77eacfb50d497fe65978f9ef" }, { "channel_name": "france-inter", @@ -397,7 +397,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cb0ea84ff7727f06fc029a90994e8da26f358b3563a2948d02cc6c62633f0d04" + "id": "2d10a70eb8457f0278bb2c2af66515fdd3345768ff9d33e0cf751169a18d0b5a" }, { "channel_name": "france-inter", @@ -413,7 +413,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "a04c06d44e58aa69534364dded49e37fab9753b16fd0deea68f26af792387d76" + "id": "3c33d14acec066446b48378488149329adf3fde164babee874f9b3580ed6762b" }, { "channel_name": "france-inter", @@ -429,7 +429,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "98e7352a9cef206a57c65b0bff5ac5190e567340dc2bf047cd8374a6b17ea1c9" + "id": "30a2c73aeb421859d0d1f821dd198be24597128a77538b514fb2293b4e449be6" }, { "channel_name": "france-inter", @@ -445,7 +445,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b4044517eb5ea419354477f0a8132b3c33dc393c81cd434d2c64ba30042bcd36" + "id": "937fc6a8a08ed67c491f609ef3d45a30220d636438afe344cb72db92729410fb" }, { "channel_name": "france2", @@ -461,7 +461,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "de7840807558b2024443b11430c6136c5b93c368138fad71a36bab55e6e7ce62" + "id": "016141421c42251371e0ee61612e054db2f1c178b60a49dae5e02cfbe6c9ec57" }, { "channel_name": "france2", @@ -477,7 +477,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "92a6e78cff0ab87c2f370bcc504a6ed35c9f794714bb15e5bc16c0af6b499e79" + "id": "7ea3201dd02a271a3ff282153e12bd06f261a4370eef3477e9c881ffd6ef622f" }, { "channel_name": "france2", @@ -493,7 +493,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "5267a0c66255abdb757ad883d4278470a81cbc49ec31d8942db914d3e165a6b8" + "id": "7d89450a404f17ddecefa36118a4d62535560b9bbf5952b5702799a309a77e16" }, { "channel_name": "france2", @@ -509,7 +509,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e1160143efbdb19f87d7f53d4035f9b78fffaa2e5af86bc3719d6428b3adaa6c" + "id": "e9994e2299527b83d5d9774d138f1f9f317dfa6f07b053fb3a0f7ee0d1a2836f" }, { "channel_name": "france2", @@ -525,7 +525,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e1160143efbdb19f87d7f53d4035f9b78fffaa2e5af86bc3719d6428b3adaa6c" + "id": "9e8cb8dc0be5bb0348b913bda01845dcd235dba035d21e6937c82b081d51d081" }, { "channel_name": "france24", @@ -541,7 +541,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "7cfc96cc7c5473a0df49e96323e3fd9977ba25633b43cc94ab0a4c049ee6231c" + "id": "471dbf97e21b16aab81bb96ea7ab38ed63b3267b122fa3c9b60052a8c7819bde" }, { "channel_name": "franceinfotv", @@ -557,7 +557,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "d8fc1a167a998df5df06e03e0dd55f8e9d26db97282d2f83a4f5e045fe9e11e7" + "id": "46346bc4ac9663d6fd9ad41dd1f3fbbc5d3325c1430c0468b101828f0c0c5c7c" }, { "channel_name": "itele", @@ -573,7 +573,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "1a10aac5239337152ca54a2d834b4a05185f6f55a3299eb9812cbbf88208be1e" + "id": "cb5cdd5230ce07fb9f40fba0b573438f4eb4ffe39dfa533bcda026442ffb95db" }, { "channel_name": "lci", @@ -589,7 +589,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "28260fc9d8661347b80e4aee01185e423036a48f10bd0a2a79f28983b6cfcfa1" + "id": "7a763e22229452ddca3a8162985187c00a08fcf5102f9be84fbfc1a3ba9d94fb" }, { "channel_name": "m6", @@ -605,7 +605,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "7182c3463a8c4afda96c5e88f77276b12e88c7b33580cba1f8c1f679c711ac0e" + "id": "b4388edaac7acecbfb8c4f996a20a281536473f26ff8663693dc69c792d8ec60" }, { "channel_name": "m6", @@ -621,7 +621,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "cc4a2d02331449f4198431a47bb31c24150033a6f09d6d2a525ecc8c870654aa" + "id": "f989b79f7fe717bf9cb3f056e0bd29d57223a28370d0e612740827b65a465050" }, { "channel_name": "m6", @@ -637,7 +637,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "cc4a2d02331449f4198431a47bb31c24150033a6f09d6d2a525ecc8c870654aa" + "id": "3fd350c088699dcdc6692e35fc030da2946ec44875319c9089a49c112312c64a" }, { "channel_name": "m6", @@ -653,7 +653,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "ab6d5ba4be05d1934a02cce4b2da91af591d927321292941081a52a30ae453bd" + "id": "50cbf38665102c1f1ddeaa42a304427a68327f7a8513712aef3022447f47a2f7" }, { "channel_name": "m6", @@ -669,7 +669,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "ab6d5ba4be05d1934a02cce4b2da91af591d927321292941081a52a30ae453bd" + "id": "cc7c174ef0c240dc572e05e070ec0a9e93208bf3897175b6113950be255c649f" }, { "channel_name": "m6", @@ -685,7 +685,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "03b8dab49a7a8d50c10595b0e73c30a33b47d09b3edc4bfd204708a86669d1d3" + "id": "5eee15e86fac4797d807dac66a973eab834c454116ae0d1ef958ca329ab0adfd" }, { "channel_name": "rfi", @@ -701,7 +701,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "34b4df7794f49a9ea1fd743f65433f244ec9693eee6883693affe4d297ebd7e5" + "id": "b46ad2ad1e1b2808bf389baf8aad9f5ec4d0628720c57ee25573a42e4e5d37fb" }, { "channel_name": "rfi", @@ -717,7 +717,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "86e7bd912a07b939386a52e6f256c468593abf4f7917caefdd4a30552376e096" + "id": "b73cafeb0006602a834aff5bcb2cbace6ff3b2e602eea51b29583d26e5f1aa65" }, { "channel_name": "rfi", @@ -733,7 +733,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "bd05db24a8c58fdaf392a3954a4fc3d377451abdf97925fd21d477cb49953590" + "id": "c0fd30ffa8da1651333d807905ce3a312d8f99dfebb6f5ea8995e84cab027696" }, { "channel_name": "rfi", @@ -749,7 +749,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "5f5a0e44bb06413a97fea101cfa0654ac3fd01c8d3a4ef1ef97dec117969f19b" + "id": "f86f24f39cc0b75a0547e80f0040d37d3c05523da181f8fc50147fb97329ad96" }, { "channel_name": "rfi", @@ -765,7 +765,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "8ed0baa51e3977bb930e19c3f3c8cc0a5ed676d01b63c6a29e2c5d39f280a378" + "id": "ca06bd9725480b0b2c062b8b1671c5f9203d0451bf04e3837bf4a1675e1a8301" }, { "channel_name": "rfi", @@ -781,7 +781,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "46228b020bd50da59da2fa8cf3e12d761e8da25584c5ff51a2e1c1cf3b088858" + "id": "3cc40ab8b06f906077ed39cdc251ec760369a9f35c853ceac107a624de6ede9b" }, { "channel_name": "rfi", @@ -797,7 +797,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "59494ff0912469000bdc7c509d8602932a64c3eaec50208d907c3006b39af952" + "id": "16cb96b03e2ec735e9fd17cc1f6caa70fdb6a54ec3e0ee4224655ac178c50bf5" }, { "channel_name": "rfi", @@ -813,7 +813,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "6a2d8ee4521878fb9b073cec262e268831553e5871cba279b9bd1a983cb4aecc" + "id": "06fafa417ae372fe246b07418bf4402869665fcd30d615e99385bebdf65d96ce" }, { "channel_name": "rfi", @@ -829,7 +829,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "dc90268c20d61655e1bbda9d30f44658e75fe65bb26d3797c48f04bed0883095" + "id": "9bbc45d60f24629297b6661b0f5bebf58d1886ce589fe920718f564b5ee4b307" }, { "channel_name": "rfi", @@ -845,7 +845,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b751f1bea92e516174d3d0c2bf9b1deb2cf82e7fa4393e57f18bb286246a0196" + "id": "ab0eb024aad185dba6248f1beb6519700e87daed65d817acc9ef99c8f726ea1f" }, { "channel_name": "rfi", @@ -861,7 +861,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "a266f2a4994d00d7c22d7bbe5ac43904aea4bb38e98f6b249dc6243e13a6aabd" + "id": "4db3ad1659c904ec5621a577d2269281c6544dd878b4caaa4516ad616d8b21e9" }, { "channel_name": "rfi", @@ -877,7 +877,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "35bfdec9fe01a16efb3a1f79380d9e5c2a6eb01b77ca024c76780a340f7f6811" + "id": "00f01e1311243b15e317dc71e07a89564d1f05c91c9dc9e452dba20f0ee4ea35" }, { "channel_name": "rfi", @@ -893,7 +893,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "514032349d14cfc8160ba57e82043fe6d5aa226b433caad39c387fe11006f59c" + "id": "b7e5705e3e3b0c696756ed66af3d874cbf575ad2d309eee390466fb2244e56f5" }, { "channel_name": "rfi", @@ -909,7 +909,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "72303c4a5bc9522a8ec884409253b74df4b7c3137784406a5b169699b2f60c2a" + "id": "d8ca09ac3741cedc27c94aa295549db95184e7d48cac8ccb7b87962f0e2c5f91" }, { "channel_name": "rfi", @@ -925,7 +925,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "39b89a22bb3f37d64ff7c3cdf665333e10bdd9dd3325347b31c8e8bcc4fd7f17" + "id": "ade49946953b64019409b28f3acf02ab87ef7e55dd0e0e9915b0dcdcd82676d9" }, { "channel_name": "rfi", @@ -941,7 +941,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "94efb7cc62bcf972e7319ad3257d4ec3449f08eaf0326852209be0319600002b" + "id": "9a85580d6d3e7cc9b6c04675f3176e1456f912369584782b241c64feebef9a72" }, { "channel_name": "rfi", @@ -957,7 +957,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "2df1236753c12c9e19779fe48503dbd86096cdcd9d49ac098fddcfacdd06d74d" + "id": "4a1b874c49ed10185d05ddb01f0fbd1b48c2fb60c6e3ff004536fd3054ec913d" }, { "channel_name": "rmc", @@ -973,7 +973,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "49c9a15192ab6be64076d2884716318174f24958a4bcc3716f47b7d537058204" + "id": "c0097bb1659a2171a759b65b4311e81d3afcb316fa8010f19f4042850800f6ad" }, { "channel_name": "rmc", @@ -989,7 +989,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "b198f6137086f5e7a509348e30d94352609fa5b244ad548469916dff9f0173c6" + "id": "a51728523b5b0a9916bb32a3d453475dd5683726ba32da2fcf80aaefaf2799cc" }, { "channel_name": "rmc", @@ -1005,7 +1005,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "497eb2971fb770a4679433631e7630d7dfb6e1ffdd01078e2e2a8456c73043a8" + "id": "b1b56f58ca61d651eed2501271ca1722ee03f93e2442f17b95a5bbe177970ec8" }, { "channel_name": "rtl", @@ -1021,7 +1021,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "fe30f03ef0018636d172f467452c5350729515a63f28886afaa673affb17dfdf" + "id": "67ee76240f1bf6c28404b095de3741978091025e0a0a6b3b79950e008b7dacdb" }, { "channel_name": "rtl", @@ -1037,7 +1037,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "e70df20f171fdf6d9c3175e21d4406e95501bf6e659358fa1fe34a0d5db17b41" + "id": "06fbde3b375b61b9c6df5855b91eaa7cb80985cdb2ee0d85fa0c34b80a346db8" }, { "channel_name": "rtl", @@ -1053,7 +1053,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "548be5199e55cde6228751fbe6567940ecfe356e4cca07a9a82b685b9fc68b4e" + "id": "9f1c940505039d5978ef81a06fc66980192cd32185d3c05555b77e8cd9ee72ff" }, { "channel_name": "rtl", @@ -1069,7 +1069,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "7132a4bdb5658ffa22cb31a5ab2aa9ed50bd5311a6953a567dd827f8b2858d1c" + "id": "a7107e32720a1b4acccdc54d8fbd57087c90d8222d1f7d9eb4f0e37729cf683e" }, { "channel_name": "sud-radio", @@ -1085,7 +1085,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "7eadcc69fb40d32f51a552b55fe1d69260e21752c9ef25e3f5de0f5738a018e8" + "id": "750ba77d8608970a604c6f75fb7bbc30875a061fbdef4180aa9a090e6a8b9b04" }, { "channel_name": "sud-radio", @@ -1101,7 +1101,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "899dde3daa8d98161119e3da666af86ba7d5885678793f001185ecde2a64a1e2" + "id": "16f8409a0fe0006406b2ffaeabecff1530f4fdde6e4490d861ff6a8926d7db8c" }, { "channel_name": "sud-radio", @@ -1117,7 +1117,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "7495abe429ea2ceefdeddf89d2b17e14db83fc548459ef09e7db81e3e323e0ab" + "id": "54d6ea9ca98840cd3fcf15d14ffd867b98eaba88ed89259d23025324dc59701a" }, { "channel_name": "tf1", @@ -1133,7 +1133,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "2a8d5572941a45390c36f7c09e8b096786f3e916cbb7ba57ac65534e383b5ef3" + "id": "219b60bd5a1695123d6a8820fee86f971eb48013f59e19e265675da97b947a93" }, { "channel_name": "tf1", @@ -1149,7 +1149,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "1232f3ef6b07a51c7780474ca31e16e63bfa1f3f9749b7e4edbfb2bb49cf45ca" + "id": "331540c99bc21f978e5ad0770ad1587ab27003c36a5134012d6600537e1a465d" }, { "channel_name": "tf1", @@ -1165,7 +1165,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "6570c5769e1610e80195da4f3d2802baa2148b279f1a4945e92e0cdefd50e66f" + "id": "7e42c12bf08f375772d9738118b6b511f0e7417f0123f26d4740472849dddeb9" }, { "channel_name": "arte", @@ -1181,7 +1181,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "c5df62c7e827d9e348c8c97e01e4947f271abad9ffde37aa712b961217a4f713" + "id": "9eb1594b915de94545d872e13c577bf17d494ecbb9a5b8f56792ec53f231a4e7" }, { "channel_name": "arte", @@ -1197,7 +1197,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "d7bcee8d919aa886f43f136562dde01944366d62b1a2dee1843aac678e4401d7" + "id": "ad4789cd17d45aff2fb7cbbad621d20efc241ba485227bf5ac5b3d3313dbedfe" }, { "channel_name": "bfmtv", @@ -1213,7 +1213,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "ef935aec5c8d0282593a48702d351463ef0935d4d68b3d561bfa9e5008d3fc05" + "id": "608d1c01d42ac8d5a370de8b6638797f92be69628f8903170e8eb3faba76703f" }, { "channel_name": "d8", @@ -1229,7 +1229,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "0537c81a96e6e7877d72b769c0de97184f86fd82dcbca23d244120ae94ef2b5b" + "id": "4feb61c3fad11b96122bf4ae7d3ed68723b97991f527e98fe3e755189ee5965a" }, { "channel_name": "d8", @@ -1245,7 +1245,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "0537c81a96e6e7877d72b769c0de97184f86fd82dcbca23d244120ae94ef2b5b" + "id": "8fed05e3883cb5903212d2e5eb18cae3b86a9e3bb7c3124c43f4058c161aeb81" }, { "channel_name": "d8", @@ -1261,7 +1261,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "0537c81a96e6e7877d72b769c0de97184f86fd82dcbca23d244120ae94ef2b5b" + "id": "43b02b327028f6b8fbcf1c8b1a4b8fe606ab3d0c61d829605388efe17a6ed96a" }, { "channel_name": "europe1", @@ -1277,7 +1277,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "944a0b4b55e29f1d9e51418950844d775ec664c826087990ffe05ad29db5da14" + "id": "af4d1d1d76367acd4257b6c8f9f4fb1583ed7966f4cf1fb2e86c68f6ebcc6425" }, { "channel_name": "europe1", @@ -1293,7 +1293,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "00ee38b683b1d0a1b2bcabbf6cb658c2d4c707cc14226cd31f32c8b7aecfe018" + "id": "eb83be660c8d114793072d6cf5e18db279eaaf59e917fa20ded6959555d3c6f8" }, { "channel_name": "europe1", @@ -1309,7 +1309,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "e890a5a9584b3cdb7ee7c56d7769aaa741d7ec13214f2b0240b816b7facad7ea" + "id": "2bcd6fb9349cc83a3d421379973399114e50fdd159efdc1817c8a96cfc0429b4" }, { "channel_name": "europe1", @@ -1325,7 +1325,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "06be5ccd0a0dc351e8a2bdbfaa21df805935384207eec142cee8253ddd15adb0" + "id": "e0ce0400a83498bf162e5f312f62456802c74312aad69f9eea9adc8a408b55b0" }, { "channel_name": "europe1", @@ -1341,7 +1341,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "00ee38b683b1d0a1b2bcabbf6cb658c2d4c707cc14226cd31f32c8b7aecfe018" + "id": "eb83be660c8d114793072d6cf5e18db279eaaf59e917fa20ded6959555d3c6f8" }, { "channel_name": "europe1", @@ -1357,7 +1357,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "00ccde6ea34deaa3345ba4889ed94830c3ac3c7da897bf21f600927b654654e9" + "id": "f69b5c62887b1c7bc5da0ad9f8733d4e715a347f0ae9b610c1f94d99d93e5758" }, { "channel_name": "europe1", @@ -1373,7 +1373,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "694409de0fd7e491a640a80222284de1352802bf5383d9117db36e0ea9c32f97" + "id": "c2e4a49d06eaa4e6058be800b7327fed30396e99ba8382eacbae4ff5002983c4" }, { "channel_name": "fr3-idf", @@ -1389,7 +1389,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "5fcbf73145402a21424b28df54fd4c5122b352982cc8d04bf9310eae05d05132" + "id": "7f675ddbbf5c07f4037506128fc5887ff3e2a2eeda7758c964d913ae79a6d4f5" }, { "channel_name": "fr3-idf", @@ -1405,7 +1405,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "5fcbf73145402a21424b28df54fd4c5122b352982cc8d04bf9310eae05d05132" + "id": "34b3be17cfca6883c9dde3bb3ab83dde78d9ce16ca39d5416fe222932ba91eb6" }, { "channel_name": "fr3-idf", @@ -1421,7 +1421,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "5fcbf73145402a21424b28df54fd4c5122b352982cc8d04bf9310eae05d05132" + "id": "d65466f91cf3864d11967592452c4df56ab2891b30cbaddeb5a95c1d33479166" }, { "channel_name": "fr3-idf", @@ -1437,7 +1437,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "530e2311d56d6661510cffaf1e66fbb3fefccc1c0eca6b672525778da5856b43" + "id": "e8e34e7aaf7b0ab5d40ba93117a2b7b7a34c344c9aaccf5caabdf71344fd410f" }, { "channel_name": "fr3-idf", @@ -1453,7 +1453,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "530e2311d56d6661510cffaf1e66fbb3fefccc1c0eca6b672525778da5856b43" + "id": "18be93f069cdc16fbdaeb2fa383606645afd0a715bc42e1c95e9de163a5ee1ee" }, { "channel_name": "fr3-idf", @@ -1469,7 +1469,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "b7ca727aa872d3fd9f8244acce9384300ec40afe261b21cb784383e4ebf724d8" + "id": "0337c3798279c41d05804d98d66bc7ffdac5af2a32584a8d32860c8b0822dbf5" }, { "channel_name": "fr3-idf", @@ -1485,7 +1485,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "b7ca727aa872d3fd9f8244acce9384300ec40afe261b21cb784383e4ebf724d8" + "id": "2487ce59759a1e5dfdcfec9aac930715fc7bcf78d418cd9880a04753e94070ee" }, { "channel_name": "france-culture", @@ -1501,7 +1501,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "d4e9301959f13a97c543dd07517645b34795e466f2fc8efba33a72fc4400d84b" + "id": "b6f7281f4fe504b3407c33919e1627025c81b7921115744068b592280cac2dd1" }, { "channel_name": "france-culture", @@ -1517,7 +1517,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "bd2bf6ee393ff90f78982f44a4757ddffe1989f37e8e2d077f347f854864a854" + "id": "b553f3b6c326406beff55ed7fee7a7e940f2f12e5ac3478bea435b1e68794524" }, { "channel_name": "france-culture", @@ -1533,7 +1533,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "75092d98bd645d4a30a28c87c54d7a9f84fa502a058f9086a5204eea1244e6d0" + "id": "453f28dd267fb974e7b28b2eb667e8897ad1e3ba150d198f9a9e70c1e4bcc773" }, { "channel_name": "france-info", @@ -1549,7 +1549,7 @@ "public": true, "infocontinue": true, "radio": true, - "id": "0ce45bbb402b07e4de285bdc60e59aaba02c591d719916fef7cb6e9090e88628" + "id": "5eb62c24e6c57ce12ddf0a280dd0787081c71f30730e3a93bd6ca9c7f56d3e5a" }, { "channel_name": "france-inter", @@ -1565,7 +1565,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "5cc83fbef29456ff510a05128a942da26469406d83f30b5bf789056879672792" + "id": "77851d3a39a3e0d95e03dbb1a8c99611637f75f51f9ea19af63d29f21d010e54" }, { "channel_name": "france-inter", @@ -1581,7 +1581,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "3f7d687081855959fad4088ea0da9a5a362e1c364ea5bd81262db46c34b1a086" + "id": "85e56127515c659baf794aad07b3fdc281d1839337ed93245f5c0aed6f32bb36" }, { "channel_name": "france-inter", @@ -1597,7 +1597,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "3b5c8e78d47b85ec8f5e8d85a9a2255b30e9a037da75aff24829f581299ae2f5" + "id": "f89a35bc0df27b29a2989381adf8a36651f4ac93d65f888a852013eb15f7d674" }, { "channel_name": "france-inter", @@ -1613,7 +1613,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "0022f21dd88bb1c3bb8c0ac66431ee0a6a56d634e9900ed3724b77f6f7521e6e" + "id": "94cd3b780cbd4b7e712eec7ad261f17ef71fc27c161137ac2e2554b55b8c7d9c" }, { "channel_name": "france2", @@ -1629,7 +1629,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "a2c555b91088d059b8de59bb81c2b949d3772ba71ce66484b4bb1986ca7a5a15" + "id": "e272fe9839b1500320534d2e08f0bbee407ebcebf429865f4f29c41ec51ea332" }, { "channel_name": "france2", @@ -1645,7 +1645,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "92bc0487e355bb9837f0ccd737a4d87e70f6904d9825c47ab50fca3e32a2ec8a" + "id": "2fbf689546205ce77417e3b8bf1dbf4e551778f75cdf9817b91504f609c51ffe" }, { "channel_name": "france2", @@ -1661,7 +1661,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "1846d31068ed341b7c21cdd47e2ba8bd0aff40ca3f6c8b685dc34c8f38758893" + "id": "3a180d999f32b6e62d9fe946686497e22b5426b815efb4e4cbbc5c395252355a" }, { "channel_name": "france2", @@ -1677,7 +1677,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "f49ddd82420f561239ec8d35b8993471397828e68b446775072a86d870ead932" + "id": "5eeea6922b53ec62e416a6d786b4a4cddfc71a6488c25a37be7e0457845f77a4" }, { "channel_name": "france2", @@ -1693,7 +1693,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "f49ddd82420f561239ec8d35b8993471397828e68b446775072a86d870ead932" + "id": "b18462ec51fce589b3957006745d8851e46b21c2930b6f866fb04deffa297594" }, { "channel_name": "france24", @@ -1709,7 +1709,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "a7a9925baf4d5a5b6445d7c9cafcd457502d50a93e19dd213f01cd7796822c7f" + "id": "1649c28628449a97d5d9d1ca06c5b9f09bfeee2018efa6f6579f14fc92df46fd" }, { "channel_name": "franceinfotv", @@ -1725,7 +1725,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "f1b7fc4e4eee9e25ae05cd042cd52c84672c0ed2f28d8c64022cc9823ddd2090" + "id": "1609204e43c97b3720484bb52530867dd2ad58a3c6977404a99fa2bedcd2f0d6" }, { "channel_name": "itele", @@ -1741,7 +1741,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "a255842820f0bfbc126c49801e2cf45be9f7e67633e98cf67c07b6133da4ef99" + "id": "f23060fadcec6ef458c1c1d74e436cb9cf654417cfd85d64038a932a81222dc4" }, { "channel_name": "lci", @@ -1757,7 +1757,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "8a72eaa8a372d2b0387f06b90d7501b11056201cd7b5235ff542fa0dc649bdb7" + "id": "c50ac572cab8a65c0199eed1420d9147b453d5c05cc15c63077852817e10577b" }, { "channel_name": "m6", @@ -1773,7 +1773,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "907dda167cc8ebfc08ed6857ab158b8c16c51e755a723435eb820c9ea5d80b3a" + "id": "61ce52cf1a307ba39fcae6f7b0288be6b9f2b29e272895b1fc286b53db3fa698" }, { "channel_name": "m6", @@ -1789,7 +1789,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "e991f66c4a3e36501af628429f2e6a510b7ffcfd60058c29d6b4491a3baf7a0c" + "id": "5a95d4ae4d8e1af7846ffeb03831e415f04b81428281b760b00d5361765393d1" }, { "channel_name": "m6", @@ -1805,7 +1805,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "e991f66c4a3e36501af628429f2e6a510b7ffcfd60058c29d6b4491a3baf7a0c" + "id": "9c0e132c2577c2eb730038fcc403d3e915ef896404704ae2830ad4a61f3cfdc1" }, { "channel_name": "m6", @@ -1821,7 +1821,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "37e9c64c2628239dc0aced57f03759cc3c1701a2b9daa02400d199ead8c040e9" + "id": "dec9d1b321ad17335925ab508dfab3020ac044389cd036303e6fffc10079301d" }, { "channel_name": "m6", @@ -1837,7 +1837,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "37e9c64c2628239dc0aced57f03759cc3c1701a2b9daa02400d199ead8c040e9" + "id": "0b93080834270125b822e2436260f122fd34de1ed0af1c13a24801fb17566e0e" }, { "channel_name": "m6", @@ -1853,7 +1853,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "ca69aaafac156add1617efb9c7b9750d1084be78b6bab2d87dab8266c6ce66c0" + "id": "60e11f74b85f3ba51070a85e804bccf3372e2f86464e9d36e81ef6b50b5c554f" }, { "channel_name": "rfi", @@ -1869,7 +1869,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "63f215f293c6647f3f483ede195cb21fce68052700bf197fd0ea10d9a8349b65" + "id": "d46f54e227363c8827b9dc708a5b35533ef3c3a3211f65a41fdfadee3a989d64" }, { "channel_name": "rfi", @@ -1885,7 +1885,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "5463bad01ffb03e7ef1b3a42a50163076ddfbd7ed85d81f75522f64b87dbc9b3" + "id": "f8eeea38f3fcdce3a4beb0d6995c69531d63fa178f092d02292f2d5507bbf831" }, { "channel_name": "rfi", @@ -1901,7 +1901,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "31542520b5fc8b2d4f174daf8b764c1cca7b122ca1518478c500e6dde11c3029" + "id": "ccaa0eb82cc4ab6161fda88cf53e09ecb78bea45873f63c440ac0d5c44422f84" }, { "channel_name": "rfi", @@ -1917,7 +1917,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "8a8c5006d56cc4201776b386f7383ad0ab7067efe8b6af8d399234021675fdb0" + "id": "7b3fd476faf2de21992d4a44c7d6e4398f71f0980f7cbb08fc814a1248b23339" }, { "channel_name": "rfi", @@ -1933,7 +1933,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "765b8bef1badee86031bd05ab6f4be481d767c7b80f682c0dccc16fea313b217" + "id": "0e8e5e7c36baff314951f55ace9607c1d6b993d623c1a7cde860f31c589fa6ce" }, { "channel_name": "rfi", @@ -1949,7 +1949,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "67a520155eab073a9e4aac4631ab5daf32d819d3a023fab6535dc1d5f35f6cca" + "id": "e9690f8e9cb49251d159c7c24f22c3caaedfaed7a35cdac8c8b5eb3efd3ccdfc" }, { "channel_name": "rfi", @@ -1965,7 +1965,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "fe17db373fc6740f35b875c2acd67e323e37d452e69878ff9c391d12428ad621" + "id": "b865111ddd6c6e3254391d3d2faf423e13301c024ee3fa73c51c62a998aba7d0" }, { "channel_name": "rfi", @@ -1981,7 +1981,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f1285394c859c1177b553191c9555e4981560dbde824a4fab4aefa6ac4037fae" + "id": "fee8e22b6897f4ed8d0ba6ccf88c7f922fffd77addbe5c959020618fe49386fe" }, { "channel_name": "rfi", @@ -1997,7 +1997,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "928770bdc8726b4023c65433b0f358ca245b6c8a1edd99d80d2045b6fa6aa7ae" + "id": "fdca954577c6bfc61015ccbcebd3472c5222310bab81fb0fe62b7c16c3a5a43e" }, { "channel_name": "rfi", @@ -2013,7 +2013,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "3685a722a3fc11e871a3e0920d620adee37a46efc66ae98b337c185a12ad84c6" + "id": "8e568847bc6e7d1cc015f1e3d9a4b477154e3179410e4d6a4e7b769a4f27455c" }, { "channel_name": "rfi", @@ -2029,7 +2029,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "193c9ca33764175f4f8820f8d09a95ef7e12b3a9b9dd3176fb4f4383230af116" + "id": "3638c9487380ea72339629d06fa478c6434b5dbc437a4b168019df75b224900c" }, { "channel_name": "rfi", @@ -2045,7 +2045,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "ec4a004143f51c160df19d819a5ebca50a8ff3fffc7a3fe55a02c2211743123a" + "id": "20ab752c6934522d42448e375da3d24fc739bd9ed506ca4a5c9062aaab24b411" }, { "channel_name": "rfi", @@ -2061,7 +2061,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "60c5f1501ce27e1559d3622354121df21bb50ba0385c4e0a5ccc96493f4832ad" + "id": "0066607fb52e5edfb7db98a35a69bfde7bb6fddb2ba30012431de46dba3b4281" }, { "channel_name": "rfi", @@ -2077,7 +2077,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b2e471218e25ae501b2f89cc16a949e4d1bee8a0444a4c3f58c7f96fd884eff5" + "id": "7cd2848c429e86c8ac677c8054d2bc3dd55fab10513ab85f9da919d38f235696" }, { "channel_name": "rfi", @@ -2093,7 +2093,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "466a5f397e45ab3575e418b6197e746f69e2b65c71ace86682c51911116add29" + "id": "45f0e8893ded5bcb7029c978e784a9ca86dfac42d6979858f99f81102559a043" }, { "channel_name": "rfi", @@ -2109,7 +2109,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "182988ee6c7194c4a3dee6a72634d95241f38176724429ba50d9184aa26717bc" + "id": "14c83153424b25c0750bc4d18e4ae6d8f229054efb9d422b6ea8eb7627d42b21" }, { "channel_name": "rfi", @@ -2125,7 +2125,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "66f25056cb0bfc4f76d0d75cd0c594eb112f1035b5eaf1b08cd8f6378eb2cd3d" + "id": "4d7ff5e53aa2bde4663d0d1cff024bcf11ea5603616c054a3555407fcbd2d505" }, { "channel_name": "rmc", @@ -2141,7 +2141,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "ac771e896c1da996f8d260ccd67b9de7e99573091127e270e293f49aece906e8" + "id": "3917ce53a3370d84b30faa2b41edaec6d371455b555455f55d1288f743b8e8e4" }, { "channel_name": "rmc", @@ -2157,7 +2157,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "8beba348c3c902832f6453957534515dd5c55731115dedbca5e4b4553a400175" + "id": "667e240f3198e3a183d94856faae9570396ef43e88a5cb40ff7d2eebc69413b4" }, { "channel_name": "rmc", @@ -2173,7 +2173,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "e6b0fa348d2d343d7ff29330c7b48d3830e34af570698b571aa62e8f9eb41b3e" + "id": "533a24fd7d567c5f7720c367447d044a7d5fb517d0e83b3eaf6a832b485f61c0" }, { "channel_name": "rtl", @@ -2189,7 +2189,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "5894da77a2a8f569ad77dbbddf1c94d54996340b70154cc481ce3141d66988d1" + "id": "7284c2c166b1c3baa3d5eb083ad95780f5d76c8dc97bf2a69a895a05781e9330" }, { "channel_name": "rtl", @@ -2205,7 +2205,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "ac917ae1bd0ca6c77c58fb569b897458069b8bd8ddfbcd6ba7c901cbffb05b7d" + "id": "d91ddb8c6ce3b11c4ac63ff2387dad1dce33b35b52d3c5da1e8d648daf15db07" }, { "channel_name": "rtl", @@ -2221,7 +2221,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "d5974158f1f7b4ef962cd10624ee35a6768d9f1a0a89124b613731e16d67f9c2" + "id": "40c84df0367a1a7393509d18265f1cfa225db096c17ef6c69e110133dd43d692" }, { "channel_name": "rtl", @@ -2237,7 +2237,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "1627a41713264784ef22067249bacf13027f02010cf4bbf4fc6c8aa14ccc96b1" + "id": "0ed8146c381adb09db61bcb40a5052c9a178e86c59dafd07e5f220a71021ed30" }, { "channel_name": "sud-radio", @@ -2253,7 +2253,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "ad6920af338563f9945283493340f051a7e177ee250bba352b9df120126c5602" + "id": "dbeaf1dffb10189e2669c9c0834ae01b42f3faa89f58bf95c6b6ed00c0023951" }, { "channel_name": "sud-radio", @@ -2269,7 +2269,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "4c3565ec4a1d217a0f8f4e7f54fc9884623dade70a26780fca4123a8d362d628" + "id": "5948fa08bd8c5e3b63c46d6001baf6ffa4b5010be232bddaad1f6e5bee360748" }, { "channel_name": "sud-radio", @@ -2285,7 +2285,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "76edee9ab9d3c4a3cf07be7cb7e018ff1a9df16540c2fcf13c9b5eb5781a456d" + "id": "d206f0be8e93533382545ce32e0ef275887e4555034590b9aec4e6f7c03d619a" }, { "channel_name": "tf1", @@ -2301,7 +2301,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "32ebcc4559b823f40b4bddab613af7fcc8f7776616496160c8dc19ba7d01442b" + "id": "b1b8ae70ed905a3579f9844d8470225ba2b08a63323f49070d0d6f5b41423ea9" }, { "channel_name": "tf1", @@ -2317,7 +2317,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "0a88bf49ad9fbd4ce94d0118339ca1c0db3a2e043bf888ce93de5d6ff15325d5" + "id": "534ac1925dd969cb51c488a3673b867de7f07c800476af5943d4f16a1089f6aa" }, { "channel_name": "tf1", @@ -2333,7 +2333,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "41dc27715ed349006c2b21745313833e79263ea228b6e1c1cc0ae768bcd528a1" + "id": "d68e15185366689e7a66fa5dab0f5d057c582c9ea91d3eb46e5e10f8ad630967" }, { "channel_name": "arte", @@ -2349,7 +2349,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "61fd093a1c8a6dfb236ea53bfd6443291ea45a012b988634cb40b5debf6a4a9f" + "id": "185c0b78932d040209f4bd9435e788d37952e395b298f09e3c5c6e78a333fe0d" }, { "channel_name": "arte", @@ -2365,7 +2365,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "7751624f865ac33a3dcf587315b15b0a463d0c82cab15793ada3933a8016e7cf" + "id": "26d13d864a1582caeb6392cacc3700f759e19f07a232c54dea3f0076f96a1e84" }, { "channel_name": "bfmtv", @@ -2381,7 +2381,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "e553bde8c3a2fb3fb9d0091873756fee0e88780f71e11f59b473f8a23052882e" + "id": "2ea80eb5c39fa90127e16d46018ab7130da98b2d17aec180fe3a02c670798cfe" }, { "channel_name": "d8", @@ -2397,7 +2397,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "36eb06c5da61f74c242dfe0627a899351df792538b007b2d3b7e909f43beb038" + "id": "9bff87bb7b11e60e01757e44bbedaaba95a733bcb023f0f12572f5eb4817f81b" }, { "channel_name": "d8", @@ -2413,7 +2413,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "36eb06c5da61f74c242dfe0627a899351df792538b007b2d3b7e909f43beb038" + "id": "b983bde82ba5716a0ed01867a200a2a769f5fae7f884d3209a5034229e3f43d7" }, { "channel_name": "d8", @@ -2429,7 +2429,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "36eb06c5da61f74c242dfe0627a899351df792538b007b2d3b7e909f43beb038" + "id": "3c00ab21c1912065800a375c24f2414b43adc8bcbfe567eb98ed87606d8d87f6" }, { "channel_name": "europe1", @@ -2445,7 +2445,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "5d77feb8cf5e7089b60c7691211e5b9be047b2013cc457e3661c9dc75886e58d" + "id": "3e35b6094dd766ea9ce95c0ab116c7c9fa1430fee3d03134b5ddafde18f0fba9" }, { "channel_name": "europe1", @@ -2461,7 +2461,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "85df7f9394d26a8269bee18138b7a6b9d9615985174ade6bc326b6997c07f4c8" + "id": "d8cda9e5100a740a5a5473ddd3a03871623ed09166ce4b89745a40d497918d17" }, { "channel_name": "europe1", @@ -2477,7 +2477,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "f31710a2733f98e2ea5da18b36d8d360f406dbd10c7240d8bb8304b9f2d6f848" + "id": "42c9039fa1a93c403b94078511e4c4f04c87db66615dfd82a4f9d00fef7cff80" }, { "channel_name": "europe1", @@ -2493,7 +2493,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "05683c1dc789d35875cd1b13a0849a2774cc496b0ce763ae4cc9e7f67a446588" + "id": "8807fd097624a3bcc549f73ba01399be5118d35225e91b430de985804a78ebb0" }, { "channel_name": "europe1", @@ -2509,7 +2509,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "85df7f9394d26a8269bee18138b7a6b9d9615985174ade6bc326b6997c07f4c8" + "id": "d8cda9e5100a740a5a5473ddd3a03871623ed09166ce4b89745a40d497918d17" }, { "channel_name": "europe1", @@ -2525,7 +2525,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "5e58d1a1e4f9dd2eb6c5989f5dc3677eac49925ce1d895ebf337bbf27131bf8d" + "id": "17dc381a97bd9c5f3649f53ff65cefc990105bdd52bcc4d725996ddc76396d63" }, { "channel_name": "europe1", @@ -2541,7 +2541,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "a4d473c153a79f20e5fc0d7622ce49871a10b8c51f322c4d9c868a2200e6522d" + "id": "9143af6ab9d6760563e1292f1e635ce34168d00a121d824b1d535fb6b8d2dc85" }, { "channel_name": "fr3-idf", @@ -2557,7 +2557,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "39e504a617bd9435d792cf004ae1c78131146e633bdab223fce74a48d3bf2607" + "id": "518836c4e02bd67d85a9a5aa5b4d1e440eee0c0dbef389734fe31bb60339d494" }, { "channel_name": "fr3-idf", @@ -2573,7 +2573,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "39e504a617bd9435d792cf004ae1c78131146e633bdab223fce74a48d3bf2607" + "id": "a6cb6ed244e4542831b09b6bf9e31cb0f15e3c07b4ee34078db3b505a750ea48" }, { "channel_name": "fr3-idf", @@ -2589,7 +2589,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "39e504a617bd9435d792cf004ae1c78131146e633bdab223fce74a48d3bf2607" + "id": "60e5327da4bf0ce797f30b88b70e83fdb46b22dafca6c50893913eae1a3e110d" }, { "channel_name": "fr3-idf", @@ -2605,7 +2605,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "261b3b01384273150ed3ef41116eaa435807bb3416bcbde5bb9033d0f662d5dc" + "id": "c014f891654cc8f81232ba8ae390158ce407169454c9a42d909d9de99bb308b4" }, { "channel_name": "fr3-idf", @@ -2621,7 +2621,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "261b3b01384273150ed3ef41116eaa435807bb3416bcbde5bb9033d0f662d5dc" + "id": "8240028658f45e360006f94ab3f87546fb53705f33695aecd701e3a461df9548" }, { "channel_name": "fr3-idf", @@ -2637,7 +2637,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "1bbafc8464dd880f5cbf87ac8c2108659b388a08394df0b162e0bc67fdc8bcfd" + "id": "99c4665c11f5f18be3e37c91a68212538c849ac6d57af979d99513f175a57786" }, { "channel_name": "fr3-idf", @@ -2653,7 +2653,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "1bbafc8464dd880f5cbf87ac8c2108659b388a08394df0b162e0bc67fdc8bcfd" + "id": "4d0dd7fc4b982a932c9613e8ed4b467b53405337a52355e5c0246db7e3239759" }, { "channel_name": "france-culture", @@ -2669,7 +2669,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "5381f94416be2b222204414fb220303c8d2b1b89ec139fb6703a4d7af1050f88" + "id": "e6ce57bb11003000bbe49b522b5565a45ad7decd6772da800584dde15eda68ab" }, { "channel_name": "france-culture", @@ -2685,7 +2685,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "76de4cd5d266d6eb66cf71e5ea630efbaa02f3c2b4c9005633fe30fee6c95d63" + "id": "a49e1e30603fe71b4a12e17e8a015fb57d9bb1d59ae1f6829c131764caa50d17" }, { "channel_name": "france-culture", @@ -2701,7 +2701,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "7b7746184707b89dfb0c478839a33d1980f76d21f5de6a4ea5193011deac9cfb" + "id": "7ce9806c4ef536d83a0f5c0534d1835609aa9d67ce78c77888e6f83e65462a7d" }, { "channel_name": "france-info", @@ -2717,7 +2717,7 @@ "public": true, "infocontinue": true, "radio": true, - "id": "bee2ab87bf0a55e599bea2d87b06b14c5cf2c88074869abfa7334adf34b2c1a5" + "id": "036016c7bc8feb4651ecfc09a75e596e2b3ec7c87b94ad3ac7b7da773419172a" }, { "channel_name": "france-inter", @@ -2733,7 +2733,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "1ce035e36e2a29d67dcd45307c77417798b6d72ee87821cdc381679bb80d6614" + "id": "5f6beaceeea676330109da91e3de7263117a0d06b921299fe75af3e034825df5" }, { "channel_name": "france-inter", @@ -2749,7 +2749,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "781479f86f71f665911a9d32cce6b1de8005da443aa5a92726d4a0eb6bad1868" + "id": "0521a628e34cadb8e113410ed8bd2e98f2dad52054f34af9990b003526c8c36c" }, { "channel_name": "france-inter", @@ -2765,7 +2765,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "63a2abd40e38c9571ac545abda927717aa60bbbe8b52ca144a4fc8f9bec54c84" + "id": "171a86fe10082aadb615bc8cb70c3dd4af9162629342179915e00ea2c931e1da" }, { "channel_name": "france-inter", @@ -2781,7 +2781,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "107b03d932c60c2d99c0406faae56179b29243fdf0f6747c35efae1cbde3393c" + "id": "0395c713a8da16170633a03a8b61194e2fa86ab9097f0496239dfeb90d109065" }, { "channel_name": "france2", @@ -2797,7 +2797,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "72d745afc6cf638386be349eb9d506cb489172ed1ad0fb95a7d82ea21a9bd321" + "id": "3fbbf26e8a207a8fc701c1568a89449509840bec71704a5aa1b924387999f7f9" }, { "channel_name": "france2", @@ -2813,7 +2813,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "45b58ff2df3a66e53a8254658b02a14a2d704cc7a99b5e3654a2b5f6c4089f46" + "id": "119a697547071c795804ebcc23b4d6ddc0c25ae350fe630decb508e241ba5923" }, { "channel_name": "france2", @@ -2829,7 +2829,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "684ace48494b376b2e0c503798f51d9ae2db1886c3a2ec02c76b29104671ea23" + "id": "24fc3810571747e173f01248f253de02543fe84fb61addf5061ca25cdc8e57af" }, { "channel_name": "france2", @@ -2845,7 +2845,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "eb492643d89dc4fc9208b67389cc6365af1961c0ddbad77d760e42df82884662" + "id": "046d5d696c00001f38d7aef02b4fc26cca632486104f2579c834d7265a34edfa" }, { "channel_name": "france2", @@ -2861,7 +2861,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "eb492643d89dc4fc9208b67389cc6365af1961c0ddbad77d760e42df82884662" + "id": "72b43bb2486e4be0d0e7fd1bb670b876e0051de070e78413a0c66b397fe9c743" }, { "channel_name": "france24", @@ -2877,7 +2877,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "d5d896682e442651152e9974afa68c625b257a875beb4e8be20020511eeb5cef" + "id": "4eeba7784edd21f369f6da4c537de6eb02be6da0007250712da3d5d173d321ad" }, { "channel_name": "franceinfotv", @@ -2893,7 +2893,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "fe514b9727a2e173c4eb6da963c733640e1749dfa0d1e2e207d0fd793a97528d" + "id": "96db93492a2c388ab6bd54186b8b6ea3261f770ae91dd05d14aaf8b6b8dd8157" }, { "channel_name": "itele", @@ -2909,7 +2909,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "c130b9eba57ae4a2f0195ca76dc224ace56ff27f2857b6970fc5787e54c73e81" + "id": "4b153f627fe7dbb69e29b92271ecc34c7d87c06e6c731904cfa44e3c405c20a9" }, { "channel_name": "lci", @@ -2925,7 +2925,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "8e844ef0a6a4a91dfc0c6b5958cf1a54ae55f903812abc1046d4bb57e4f342ed" + "id": "f62f7f7a7ed801cd25ac01844c9edc842711c3244dad42367400506c323aefda" }, { "channel_name": "m6", @@ -2941,7 +2941,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "d0a925b9a270aa502958c77a6dfe66f1d4dfc45f229cb9d72f756751a131f4e3" + "id": "e76779ea2c81f73f0f808a0a7539585fe095771c9d6dcefdff3263f7ced38d6c" }, { "channel_name": "m6", @@ -2957,7 +2957,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "d5dac14c9c635a22457a33ebddb84ed3df3e81d563a247995b0165292c90501c" + "id": "a612d7ed388ca4cd49d3be1627d83a170e2a41f371a245d68977a8c431a1a3e7" }, { "channel_name": "m6", @@ -2973,7 +2973,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "d5dac14c9c635a22457a33ebddb84ed3df3e81d563a247995b0165292c90501c" + "id": "fde813989fa3ac7b8669af9960c13753b9241e9746ef3397f023962dc61aadf5" }, { "channel_name": "m6", @@ -2989,7 +2989,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "1f2a404b610f6aa9db59773c40884039e73ad3d354b29a72b8e6df2802909c80" + "id": "004abe8241734d3542625b39cefc5a4408574bc798a412747a2afe5ff2e5e08a" }, { "channel_name": "m6", @@ -3005,7 +3005,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "1f2a404b610f6aa9db59773c40884039e73ad3d354b29a72b8e6df2802909c80" + "id": "b1da99b3630275e19a5e54d1d1d997a7bc874a777f37eaa3a43c75bd11a8495c" }, { "channel_name": "m6", @@ -3021,7 +3021,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "c9c932150a2fe9f10307552743cdbe25b1903f28c11307739564a398b249e025" + "id": "62a79c8ada4de5f9b7c9624a8fe670a7551fe50cdd5992afce2f4191b9fc1e24" }, { "channel_name": "rfi", @@ -3037,7 +3037,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "a07e2fef171fafdcb9d73e76ba29d827cd690e1862b2e2919ee1c3d704834e92" + "id": "6978522f3d82546f245ab5563347d66815aa7cfc760b6c78a9ffb6e880282089" }, { "channel_name": "rfi", @@ -3053,7 +3053,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "e531a9cfd3e124478ed521b11a847b6190404233724ace2ec98ef26278f37229" + "id": "1d385920ada5d2a563b5b4081fd531705fc2e34d7f4d360232ecd476b27e5ade" }, { "channel_name": "rfi", @@ -3069,7 +3069,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f47066f1ab4db3ed555d655027b5c0d050a24c5ae2fca2ce80934555a2bb8136" + "id": "91f919e2cf0cf821ca66ef7ad8af1202fdc6ff2da821a36234ec1e0949fd0e5f" }, { "channel_name": "rfi", @@ -3085,7 +3085,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "29cca21791a9dce046ab8ac60df1c004558e02dbb98cc4af674f61a28dd3a58e" + "id": "d45f4248606ea4e73d91a38392d4566342de4a7098e2e6909deded30bd512641" }, { "channel_name": "rfi", @@ -3101,7 +3101,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "0dd5f4c51cbfa66493e53c91942b339a62513a408e1f7ba3677ccf28f4bc1e6b" + "id": "cbf78401990e83ae03d0b4f697dd88fc82be848a1b719b62fb897c047de7fe04" }, { "channel_name": "rfi", @@ -3117,7 +3117,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "6c2bef07e80c27dc33ed8cd7bd7f4b12e80b7cadf02f7d2e3d1b39a80a2f9db3" + "id": "d993778c2df9e301ca6717bdfd212198cee4a265a2d5d5de23768eb2499ccbb3" }, { "channel_name": "rfi", @@ -3133,7 +3133,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f0be71b46a04941aa4983f059c9ca09dec9f8cc9b476e8b040121a72c2e3d94f" + "id": "6cfedfff13b9f7afdd005b975a5c0b93a7b8044119bbec9c646ad058376c6123" }, { "channel_name": "rfi", @@ -3149,7 +3149,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cd8570b0a67463393a08e9046fe3f6e3b6bf8e89b544d34ebc423b795530e6a1" + "id": "f5dcbf93b8cf356fd2fa8ddd3bf15d0b86d32bc0935877648d0a8f69446e11da" }, { "channel_name": "rfi", @@ -3165,7 +3165,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "e9ef876055f709ba3f9a763b12b39ab83dae2709df35fba54624ebf7eefefdb2" + "id": "372c19c7764af580da4e9964bcea03418d69772274db6fc8b4825a185f4cd4f1" }, { "channel_name": "rfi", @@ -3181,7 +3181,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "2011a54561e398805cde9385c0277af033906c180fc9c8a97348184dbd1e086b" + "id": "086252d6b2a9968613c9092bc7382eb224adbc41cceaa83acd67c87d9e07c5f5" }, { "channel_name": "rfi", @@ -3197,7 +3197,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "c8d34b9e6343ff081ed263010b1f66a45d5467a29d1633486f78a3547d3e80ce" + "id": "2586d6a2cca88f7d668b8b31f043a76e2c6b8251f51026b73b37bf7f4a81dd48" }, { "channel_name": "rfi", @@ -3213,7 +3213,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "82bbd481b2cff57c45c7cc0a9f80f33871875b6661bac25fe985be6149ca2b53" + "id": "d2032d57c0f606ff914c37e94ded195ec19b50bc714d446ee92b1da2b8169afe" }, { "channel_name": "rfi", @@ -3229,7 +3229,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "6470b14ebec63f40cc76dd4863205fb0a0e4ef4fc75fcf17397f3a775aed20d6" + "id": "c8013d17ffaa3960199298cfe9123d1df7a628b1d2b5c467db47404b20a2b255" }, { "channel_name": "rfi", @@ -3245,7 +3245,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "1897e298618b6749b4b1d1497273350ab257037719478d7f99b5e034528911ee" + "id": "f0d193fcf40970e58eeb5c629361d9d2936e4f2a19eea725b2c43dee40401ad1" }, { "channel_name": "rfi", @@ -3261,7 +3261,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cbbc9630a6df8792e074c9e946ea97022516aae4585bcf018222f57d824e6256" + "id": "5109029b2cded8b5691c464ac23e1e51c0ccc52b6df4d8f3281093c5b76513ff" }, { "channel_name": "rfi", @@ -3277,7 +3277,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "4b5fa08da3fadc254a102c74a50eaa0a4355b09eb1f6ca8573c03f8c57723cb9" + "id": "677c71869064dc2784e405d8a97e0bd085b7c96cea9f73e5089af66ca4cc12b6" }, { "channel_name": "rfi", @@ -3293,7 +3293,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "e8092fc76b50f7945ee7572c7fddb3ecc466f16c55a1c30ca5917edf8269fd8a" + "id": "740df34b88b384dd8bbbe535b78504a86b6176321968690a4987ec805dba1730" }, { "channel_name": "rmc", @@ -3309,7 +3309,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "0254f096c4027156a65c91e9d5f7b2f2cd02a7ee3312454bca740cae432187a8" + "id": "a07f53cb7030a23f39c96820822d264fb89d92afb532026e89d2dbdc696fe94c" }, { "channel_name": "rmc", @@ -3325,7 +3325,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "06da853a83fa702d1bc7ab4baa38d17fe5fff6d102bfa07e2ba711babcb65585" + "id": "fa67b76248c80624dd586fed76fc501c4cf235a9df8931ba2087571e0f97adea" }, { "channel_name": "rmc", @@ -3341,7 +3341,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "1d67e2404b8f362ee0ed2f44d6584aad5954639dd4cf7815f0db68d3d8590fa2" + "id": "f5fae819f43d513ce7a7ed8b4e1595d9c0aa5e06200bd5c34bc08acc81c73d32" }, { "channel_name": "rtl", @@ -3357,7 +3357,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "f4f92588d236841192f7eddf9b3c09342dccad34875ca3ede41ecd4494c6662f" + "id": "17118f7fc27fa2769d16d3359baee3bf7460bd34c8d9bafe1f39792f0df91180" }, { "channel_name": "rtl", @@ -3373,7 +3373,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "d11af865853896f38c3fdb15e30a42e01463db38ee4a34d6453f65d6bd44f792" + "id": "5bbe7a8c2ebd2b42539e350fdc7948deef6ce5a7a762cb1f6ebc743a0ba9987e" }, { "channel_name": "rtl", @@ -3389,7 +3389,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "da0417445fbb82f9b946c187a3adff698db693bc5552cb9b1d5e44c1fddadd14" + "id": "7dcc6bde43903cb8629e10b46c5eb0f0d426e5ff83c3cfdf79cb90526d0f41f7" }, { "channel_name": "rtl", @@ -3405,7 +3405,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "995b5106a29a9365742fbd62f52bb8a22e635caf527a2ff718b6cf626bc925e5" + "id": "6d9feb621d91ec838ec8e49c0a4f4182c0d07d573f33cc250c0ed0a7802d09f7" }, { "channel_name": "sud-radio", @@ -3421,7 +3421,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "250e896ed0b8ecf756c833c923d3a5c0357e82e67e1bfe4e40513aa8f1f01b77" + "id": "18b2f67a0f107b03594c69114b5d5bd3f8cc4c24a97447931d020cae163102e6" }, { "channel_name": "sud-radio", @@ -3437,7 +3437,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "3c6546185d623419ea51adc0e7c217fcb1323b0a2d6a42c1691f0d41449c4f1d" + "id": "d8b81880e4ddbfc05ab79a41c19c0a90a3d52d78806bf3a787f378cdd0b81056" }, { "channel_name": "sud-radio", @@ -3453,7 +3453,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "7d04c90a3e550138c740847e6897ea63592a5a281091b28112e791f50139e54b" + "id": "ddf204d509b97121d2bd0c84f21bbe7e4fe28b75062898cf98a03bacfc425515" }, { "channel_name": "tf1", @@ -3469,7 +3469,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "72fb17fbaaaae55b362ec7900e45a05e18c05215a0d53cea3f687b5546952da7" + "id": "c1057c570a3fb810b5b2ab17375a4c5f5b030d133f36cf12dcc02ca06da42c46" }, { "channel_name": "tf1", @@ -3485,7 +3485,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "bcc28785e39c0f4aa12b5737e163fe7c618c699f1147fbdcf8826b204e186612" + "id": "6e5b969f839a9f8b1ea5eed3bb2bd39855802f73ec73edc8207cdaddce54ef3a" }, { "channel_name": "tf1", @@ -3501,7 +3501,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "395e89266305a12f51dcfd5545796cec0f40cbe21cab96a05f7206f2b094b7e7" + "id": "e8d4a4f4eadbe0e0424560fb79db4b70549c0e3c5fd6f9059471ceb264a41cfa" }, { "channel_name": "arte", @@ -3517,7 +3517,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "270e096eb693197d4912c255571d48a5dd8169e39d8cfd4a5f78053d26179d01" + "id": "2ce32d4b3d5a4135f4992d5ac25d350935059c2c0482af5fd4291690d5e59917" }, { "channel_name": "arte", @@ -3533,7 +3533,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "b13efcf89ef7a35dc9a52b3f9d79287ea13780071f139784b1dbb31afc77e38f" + "id": "bffe1e0b5344e1bcb6a895de36c15b691b96f48ffcb585af92c82277d46ada2a" }, { "channel_name": "bfmtv", @@ -3549,7 +3549,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "104128ff1a2496a771d1691f414d7c32106938090a47b2171d14edd70016f34c" + "id": "47c295a24578d8e4d7ffa4f6b96c40847afc38e2d9fdcb7c439ae8b3e87c3628" }, { "channel_name": "d8", @@ -3565,7 +3565,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "8ce734c277dbeeac5e9352b9c12cdd75513b6c184d13b8f8a9000c291327e3dd" + "id": "c367a5c05b20fe7b12ba27391240837e4ec98746062043b0e7e5aac687a52d30" }, { "channel_name": "d8", @@ -3581,7 +3581,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "8ce734c277dbeeac5e9352b9c12cdd75513b6c184d13b8f8a9000c291327e3dd" + "id": "941431e244dc7b093fc5fe8b1898582ac35a9bb1dca46fe8a3d382ac7862a2c3" }, { "channel_name": "d8", @@ -3597,7 +3597,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "8ce734c277dbeeac5e9352b9c12cdd75513b6c184d13b8f8a9000c291327e3dd" + "id": "8d344dc09962c639bd3dd611b19336df4e6a9ea11a1259277b9a67d08dc58e87" }, { "channel_name": "europe1", @@ -3613,7 +3613,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "ff85e78fb6daf84442b3a8d32eaa68b1d22544e3eae0c674c372e47859b5c7b5" + "id": "ce297f5593bb85898c4ee8b6723be58a9cf3aa8c24b2081a4dc6ce984c1c55cf" }, { "channel_name": "europe1", @@ -3629,7 +3629,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "c0fd700c4bc1d8136b075a18db8b975bf2289bc1a32b81c447b977f5ca0b9667" + "id": "bec0b46f50cbff187eea8f5ea44bdd9b33da1b9dba7d47de38d2806348f987ca" }, { "channel_name": "europe1", @@ -3645,7 +3645,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "0d3700aa8a1dac99a1e17af0fc167547f95892ff79cf7be726ef4676df13ab40" + "id": "99aaa47996ae70f542063406f2fc5d657c3c102949b629bc44d1c1a1c8ca25f6" }, { "channel_name": "europe1", @@ -3661,7 +3661,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "7b1c376fb445df937236f561a6c151f03d34c23908dd07d32af1cc6974589f3d" + "id": "db30f0949aed634fa1835a90e75bd24cd717a0156e53689cfad2d8528ae79ad2" }, { "channel_name": "europe1", @@ -3677,7 +3677,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "c0fd700c4bc1d8136b075a18db8b975bf2289bc1a32b81c447b977f5ca0b9667" + "id": "bec0b46f50cbff187eea8f5ea44bdd9b33da1b9dba7d47de38d2806348f987ca" }, { "channel_name": "europe1", @@ -3693,7 +3693,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "924a8b9012cc838c3da3ed1cf03ec96de63fb700747499f539f9c89e75e3391d" + "id": "b9f18c47fd4d4eccc917f8020cf4fdd59ca08a0d09bd6839c02e534446539dca" }, { "channel_name": "europe1", @@ -3709,7 +3709,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "b7367f92772bac202a04870d205b80d4ba70940d391953c935d6e996f5c1192d" + "id": "be921b3058dfe3256d140d2d8384b694c1e67b747c2544618a3509fbe0e7f116" }, { "channel_name": "fr3-idf", @@ -3725,7 +3725,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "f4280b2000825b27e3e3516ab74aba66d03c765515fc942668353f6ec616bcaf" + "id": "5a8766951b98372f3f920d908a13caba1a20dee255ed65cd0996b5e2cec72f99" }, { "channel_name": "fr3-idf", @@ -3741,7 +3741,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "f4280b2000825b27e3e3516ab74aba66d03c765515fc942668353f6ec616bcaf" + "id": "ed8f34f612e295697ae89c9e09574bcb86eb8bce330d388f867bca1bdc907757" }, { "channel_name": "fr3-idf", @@ -3757,7 +3757,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "f4280b2000825b27e3e3516ab74aba66d03c765515fc942668353f6ec616bcaf" + "id": "710604fa213826ecbedf028a4d28e8a7e8814f267305b9c0974759157febc0fc" }, { "channel_name": "fr3-idf", @@ -3773,7 +3773,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dcb0f6144218dcdafacd8e498005ae23805e0871fb2f48ea5e742d85277679ac" + "id": "a00f8321174ede8ef8b7ac6817abcdbd4c6fcb52ba63a8e1c147e89bc6aa6756" }, { "channel_name": "fr3-idf", @@ -3789,7 +3789,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dcb0f6144218dcdafacd8e498005ae23805e0871fb2f48ea5e742d85277679ac" + "id": "fb96992ab3e2a0b76ab9f0c03815cf90a55e99c097167dc5b589813acc244539" }, { "channel_name": "fr3-idf", @@ -3805,7 +3805,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e07cd3b677da94c4f47e8c95fa046850bf9ebae9e600d9e37c64b275c83dda5c" + "id": "ba404b411de30242f37566a0b5335b0278c20df72a984638392e2fb096c4ed52" }, { "channel_name": "fr3-idf", @@ -3821,7 +3821,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e07cd3b677da94c4f47e8c95fa046850bf9ebae9e600d9e37c64b275c83dda5c" + "id": "336643dc7fa09ac7335a4ceba43270ed3f553be3383a9b3b6e3cced101f2a87a" }, { "channel_name": "france-culture", @@ -3837,7 +3837,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "fabeb34f50381a7b995e461f3b242b7cdc16143685c0194d4047bdfa4233ace7" + "id": "e0674641f81ae3777759e375ba275e58f57b3bf190c4fb30728bb87339465f5c" }, { "channel_name": "france-culture", @@ -3853,7 +3853,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "bd8ffd31fadf8b5fb9192bc0ac32f0b101ddc802b7a60e594cf6fce8c48ce5c0" + "id": "b101a83b516bc1af8e52f7e893a580ec82e2cc8b7b8cd8414b7cb1ae46fd499f" }, { "channel_name": "france-culture", @@ -3869,7 +3869,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "e5c584a98bac43ada61c945cf2f946c0621419251bd2e6bcc82eb099e3e012db" + "id": "9bc7138393dbaa3dd51581065a978d922a689108d48e8d3323c98502655a9f56" }, { "channel_name": "france-info", @@ -3885,7 +3885,7 @@ "public": true, "infocontinue": true, "radio": true, - "id": "de4d614e98d3fa18e708b218cc8c784c2fdfc8689273a1faf3c608faa8412ec9" + "id": "4729d280b57a07648c047368a6c1ef319c1a962fab6fced47a445e0c790d4090" }, { "channel_name": "france-inter", @@ -3901,7 +3901,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "8b500b3076c61a02eca649b77d8facf345b750720671787905159a2facb91532" + "id": "a9b979714e895bcf6f893abb8de7e2bdbca45fa90a5791afb7bc6d08b198db26" }, { "channel_name": "france-inter", @@ -3917,7 +3917,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "9ccfc45afb42bd5724f18fd1e004cccdf72d354f89bc9cae8c2bc7509d7aad42" + "id": "c969a6347d959681827c64af792694ad9816e5b16808b7aac9a7624550e81648" }, { "channel_name": "france-inter", @@ -3933,7 +3933,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cf23f0bf26def2c61c3fcd9ab95666dc735827bf1936b92e300ed0f9d9da708a" + "id": "f7ec2fb138dbaa58bc0b41d3ed80eb8bd18dc5417ec3bec40bed3e2c141d46c4" }, { "channel_name": "france-inter", @@ -3949,7 +3949,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "5fc6aee16bd5950803a519a4c07f2e28bce257faa2cfef4bf318793b996280c7" + "id": "ef434b113eaea64d6fb2367e2b7aa14dfd66cbdb82494eab6250dc83a2a163b7" }, { "channel_name": "france2", @@ -3965,7 +3965,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "9bafcbecb8f5e07b71967cbf12136aa5df82f6cbd6dacb9696e8f903ff65c9e9" + "id": "6fc646caf4ed30c62298b482634a2a537a69467e3abfd9098d397e826a67454f" }, { "channel_name": "france2", @@ -3981,7 +3981,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "bdf0ad8a3f9b11125708799ded2ae755a0029b3895e8f9695c1df69f32e1b16b" + "id": "662e61acd54356947ee012d44ffafbd568f3b1b3c0186c7b0a239b8ccf5949c4" }, { "channel_name": "france2", @@ -3997,7 +3997,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "b093f549faef5ca4d5c7024dc3faedc2fb26416f46ff260e8cc36e535ab8dcd5" + "id": "f35ea774b8a1cbe224737c66684a8be172a8d33076bce1b99b34fd1835eeb8bf" }, { "channel_name": "france2", @@ -4013,7 +4013,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "c1550584dbb5198439d5558bac3864f1e5e6f3d7a9097a4201b38e52b2706d58" + "id": "85e9ced55fd82e9e1432fa46f779086d3759b614cd009031701a3f24429d64f7" }, { "channel_name": "france2", @@ -4029,7 +4029,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "c1550584dbb5198439d5558bac3864f1e5e6f3d7a9097a4201b38e52b2706d58" + "id": "b2672944c68cbb449781106633b9a7600089173d9d4282f3920aa9e051c9b7c7" }, { "channel_name": "france2", @@ -4045,7 +4045,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "b973fa1d699538767b6eb5bb39264a98756acb5c7fdce638b3266ed084d5308d" + "id": "2250b36d11858354836363cbe994047c6ca9124d588ea081008ad825f634b59f" }, { "channel_name": "france2", @@ -4061,7 +4061,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "b973fa1d699538767b6eb5bb39264a98756acb5c7fdce638b3266ed084d5308d" + "id": "3b15cb4724ddf7a3c73ce4d140176c9816c7cbfdb3204839bdc139961e40bef2" }, { "channel_name": "france24", @@ -4077,7 +4077,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "e32844a00f335a6aee249f206621a2f4d0eab76f87ddd36b70a33b182b819346" + "id": "5b2089ac4d0d9bc04093de7c9a1812a882c5dff0d39800318cab625b84fda24b" }, { "channel_name": "franceinfotv", @@ -4093,7 +4093,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "b108f4b98a99594bca0feb8de6568cb5b550358b8344db093342273c6b40dace" + "id": "3524dc35b0b635936e995e9e2a0f0c55b9996d43f657d799ecef47d3b61ff3f2" }, { "channel_name": "itele", @@ -4109,7 +4109,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "91f72a7aa419d1e60c1da73dfa4a8b291d3503f0f6666f841b59cc5e26b1ca67" + "id": "d2fda1ddb3860b299d73a595fca6daeeaaa17f3285f519fdff47f5713b78d4be" }, { "channel_name": "lci", @@ -4125,7 +4125,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "d301dab132c4dac6dc37070db7d1f553747b679f41e8d570c55cb55e68f09074" + "id": "f2db015912e22353ff2e55e76f1e16c13b443f58818a17500cb65aa282cd78d1" }, { "channel_name": "m6", @@ -4141,7 +4141,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "4e3569b19d6f6310a34d68bbc36b24223988dff23883d440305b0a7f14c7ade6" + "id": "fabc68cc68bca1e68336d531da6c5d22648dd50ff907b37cc3644d826b67ca59" }, { "channel_name": "m6", @@ -4157,7 +4157,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "147698b5152e12caa81bf40b19d5fd6ce09e82b99d0ceffc095b926d87dfd3d8" + "id": "117457c6a49df7e20e08cf8f13ee658cff04a54ec470d09cb7021327533e88dd" }, { "channel_name": "m6", @@ -4173,7 +4173,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "147698b5152e12caa81bf40b19d5fd6ce09e82b99d0ceffc095b926d87dfd3d8" + "id": "02a9a7a2779d4edae6b1ccb247886d3ef17a80413d298c4ffec18d9cddfd604e" }, { "channel_name": "m6", @@ -4189,7 +4189,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "3d1e086ec13ae9aa11e73ab4d8151061a8d3781053d172285a42aa222a0ade25" + "id": "8d3fcdbc11951e82ee56d7346568455305f92e929c5103eac7f056d75c52feb4" }, { "channel_name": "m6", @@ -4205,7 +4205,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "3d1e086ec13ae9aa11e73ab4d8151061a8d3781053d172285a42aa222a0ade25" + "id": "822ac87d7d140258230937d8bf4dd068ccfc9ab658ebb4fd90e26010e383fe03" }, { "channel_name": "m6", @@ -4221,7 +4221,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "f14ff5479d11d4ceeadc03da3da11c1c04e433400995578d48b8e3556db61fb0" + "id": "0a2497472ab511021244a6fb7624c9b3e6258e80077fc319f895647376bfa48d" }, { "channel_name": "rfi", @@ -4237,7 +4237,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "ad8703459a8bc53c3b772f5624fc25830386e471c91e54d093bb2cc4cd3414ae" + "id": "b5d7d01f3e07a66806e560e2699823c302beeb58f46035335a5301a30be97caa" }, { "channel_name": "rfi", @@ -4253,7 +4253,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cec9d0bd30ac584916cf0adc8a815f0e1d07c71e8de991d119c9f3887363cd98" + "id": "76b0f35818b8802572a232e1b411d49a9716c9efcc169c62939a276215058eca" }, { "channel_name": "rfi", @@ -4269,7 +4269,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "1932a9e8a19b0804b5cc42f5355db70e06446d5ee88fa34d6e6478fb454dcb43" + "id": "5179f0913dd23870e47f7c0ea0a7d615fda87c46bbc29425bf4fd058a321d0f4" }, { "channel_name": "rfi", @@ -4285,7 +4285,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "216140c8de1531641efe6a8e00fe9e42d5a7d9dfcb96dcc29105fc126c7a58af" + "id": "cab5cadc7ff8945ae1d4d5017a5ac2af907b19076d18aab5ae1c375ce4b27cfc" }, { "channel_name": "rfi", @@ -4301,7 +4301,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f466d3b5f6901af1f085e7bb1c1da324a975c0558a03fec9b5bf988e90bb1af9" + "id": "95a3eb7ad099cd2467180ab668ed9a1aed45a6ec28427e1f7c418b92c421482d" }, { "channel_name": "rfi", @@ -4317,7 +4317,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "5067ba812c9328209b90cd3504a0072e3abb6480cf2fc87d8f96650c090777cb" + "id": "ebb1e475ee8ff5881bac375367c6a7e321aba0d8668df0a4a67e99a6e3d9a1da" }, { "channel_name": "rfi", @@ -4333,7 +4333,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "48e4762130f33786dadc5debe0e0e75fea53fe1cdb5aa1c201a7d7cf8bcf05bf" + "id": "bf96f1ff9b19607bf77f1d508db2f817487a09b0818945ddd786db3ff041e826" }, { "channel_name": "rfi", @@ -4349,7 +4349,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "38608079cd439f30ae650e2b49b9454264971c4f0d995d278b97ed5032a5b2f3" + "id": "9d47a971ebc1781c6ea1513f494a5cc408d83d542e336a5b289364af2ef26064" }, { "channel_name": "rfi", @@ -4365,7 +4365,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b979ce7157cd49c1abd9f06f0b0447c1ed391944201d14652382a0edb30e837c" + "id": "15fed4ae699af87e5638780e36510ae06e3ca5e3b8d4d1f79fd4a7b444d976ec" }, { "channel_name": "rfi", @@ -4381,7 +4381,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "7e56e47e484f0ed2fd6fd8411b92ad3f3506128fa73725e6c1800b9f7b382f4a" + "id": "747c0fa26be883b6c91105188737754b1e098bc2d0430ba06c870c014f960588" }, { "channel_name": "rfi", @@ -4397,7 +4397,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "9f98ce0baa97426005bdd9915e0fc3c3b92afc6cd36bc7c6ad35289d41fbdd8b" + "id": "9da8e4551312688db2ace760d1bc60566dc9006eeab99c506371c984d8e301ff" }, { "channel_name": "rfi", @@ -4413,7 +4413,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "2b6da0536828fd9904639de0acc321932d578819268d7180fda4e5f36fc0e487" + "id": "da2419bb1261bca79e149ba80b3d982baf4ab028a2562d016819d0f6ad582d99" }, { "channel_name": "rfi", @@ -4429,7 +4429,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "61d325980bf5beecdf07d370289d235015038cd22715c3e5e48a92a945f8f9f1" + "id": "c85292d8294601bde440080da7bb2a9e30692c3fb4bdfa81e36ee261220034d1" }, { "channel_name": "rfi", @@ -4445,7 +4445,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "34783d006b4f1dfebd23efcef6076d748a5721b24a194e7dc892a3523e246c37" + "id": "90fc2553946725fc69286e166806ddbab53c7c3ce8f485defd1fcaad1014b7d4" }, { "channel_name": "rfi", @@ -4461,7 +4461,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "a002195ca66a332923c8204e05a9fbcfc9373d7454133ba4662514500cf70d6d" + "id": "4e1fb8e0424c6be941e0af9bb10419f13d5d3a0915326e0e1e3534516d0ac110" }, { "channel_name": "rfi", @@ -4477,7 +4477,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cb15d711889d9916ac7a8ed0ba8a2e75e2cd0a049237dcbfbf8e7910fe37718e" + "id": "4893fa9a245701d040732b83293a05bca258cd537ce6f8be9e98f5635f907c96" }, { "channel_name": "rfi", @@ -4493,7 +4493,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "3c21fb2977f87c473a57938403d397527f3d096ec1155255ac8d8c358c63d450" + "id": "b10d8be39651fc06223baa3e830146386cc550de7db12b181ec60b5943e9c411" }, { "channel_name": "rmc", @@ -4509,7 +4509,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "428df97d3af807ee7e973617f95c9cf8d119d60042fc4f04b5c4d2ebe68eede3" + "id": "151aba4c0d94a53f405208df5fb17f8b4d9ea0a98c8723858325330c988a410e" }, { "channel_name": "rmc", @@ -4525,7 +4525,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "d41262a5245dc25fb5dd88f612c7bf671850a071c7a1b59468aac1d3cd4722b1" + "id": "30521be475cdb84a71f0a9cfa77f5aa88dee6eb00b07c0ea43382de35d6952d8" }, { "channel_name": "rmc", @@ -4541,7 +4541,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "3fdd97201e32e39fdbdead67a9c6669831b7d46827daf021cd723646fb4b345a" + "id": "364b937280a2f6491f51f99888a7ddd5ebb5d915e96438cc0aa8270a0181c9e3" }, { "channel_name": "rtl", @@ -4557,7 +4557,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "82a0a3575584c03dbd4547e53e98588dd0ab2eb96758302432ca3f3265009a5d" + "id": "c6871f38e0af2e8929ee87f36e0acdec9b95ab23ab6dec0131b329afde7b94bb" }, { "channel_name": "rtl", @@ -4573,7 +4573,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "1b888c3f42cd9537ab59739e84ba780d3bd15a5b60c200b8143032bc206ba718" + "id": "2a8984357cf452650070f617795ff7e50f20242d5180ef903e3241d8d3061aee" }, { "channel_name": "rtl", @@ -4589,7 +4589,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "ab53a1a888731218acdda4d2d838aa7bef5fbb2142896215f5d7972f1d5d0eb0" + "id": "41d01c1758d1a3042ca4e443fdf017d20c0b86da83a18844e974b09a885a376d" }, { "channel_name": "rtl", @@ -4605,7 +4605,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "bcab0d51e355468456c281849b58fea1eb03d05f402ad33c099c8b3de3d05b5f" + "id": "014269bc2342df3e265fa38e879b4f301db179649a610de4842e2567f26d35be" }, { "channel_name": "sud-radio", @@ -4621,7 +4621,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "deeb20c8cd96b7c9f3ae91dc58c36e5d5fecfa01616e97da775e868cc2015245" + "id": "50871500f172e39ce1db76c0919ff5c8d5e4db5ffe9cdb96354fb2c3cf88dc00" }, { "channel_name": "sud-radio", @@ -4637,7 +4637,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "965b96493bc6e4205e13f36dad252b1e0280a63d1a8acfc9960a572439343a4b" + "id": "859a5d09bcf926da3352cff70bba6f0846ddcd0de4926cb416480245e69a4c8f" }, { "channel_name": "sud-radio", @@ -4653,7 +4653,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "618a47f29848159a8132ab18715c1680d9922d60c9a5b8638879f6bab5950856" + "id": "48c215d9e4828a9aafe5abf9be8b884bb6b16c6bb2f574d76986a0f6bf4981c4" }, { "channel_name": "tf1", @@ -4669,7 +4669,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "640ddbdd0ead37060f96f786f16bd27386d595baddd9d6de353a529b2f3d7071" + "id": "7221829eb41b588aed64e6c13da0ef62d3419ce282f9b2d97fa8e0a06cad9841" }, { "channel_name": "tf1", @@ -4685,7 +4685,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "abe7e2acac8def125b6f893ccebda46a17528ccc78bc83f640df234f2590681f" + "id": "c21b70e006ad6ff04f27f16cc8f2096964c12d8ff92ca2aab5969ef687d2e64e" }, { "channel_name": "tf1", @@ -4701,7 +4701,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "47fdab35b91809af1cc9a727df4a7ba1bca86f103e4335ab044d260612213aaf" + "id": "ac5b72ec462313e5bad33b6f97325414fa4d5d55a4bcfe25ff46b3c62c9ea307" }, { "channel_name": "arte", @@ -4717,7 +4717,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "87d90b42f65f7add4286790c3508c3b1aa8bba2b754d7307208d5820d454713d" + "id": "7d6b3c837bbcc8d69f31b57973b18def163e0208564d60dce1e339750db6d20a" }, { "channel_name": "arte", @@ -4733,7 +4733,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "63ba38ca44f6bbb123c25664034b836ea604275c133cac03a8ad40975ea06956" + "id": "53acca89334f24607db8e2d603edcacc40a8c94236f31192168b9f6948540f34" }, { "channel_name": "bfmtv", @@ -4749,7 +4749,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "f6b01248a878d7c4262ad724ca4921dbb8b96402e71e975de8eafdc1b93d26de" + "id": "cb21e028287c12548f5846eb5e1f26608e80271f24be78b42c9b76f88476f54a" }, { "channel_name": "d8", @@ -4765,7 +4765,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "4724537ef787b64d254df9c885ac84f88ada486719722207eefbf55f5491df12" + "id": "bacf99442f8d83d258d078f2abe0e2de0dab6da1620e0948c1c560b55b57650f" }, { "channel_name": "d8", @@ -4781,7 +4781,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "4724537ef787b64d254df9c885ac84f88ada486719722207eefbf55f5491df12" + "id": "d23488a7da69eda8c74433cea23b461b89cb507a30e48c64d3174202dd829fe6" }, { "channel_name": "d8", @@ -4797,7 +4797,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "4724537ef787b64d254df9c885ac84f88ada486719722207eefbf55f5491df12" + "id": "aa28f00e5fed98afee4924f4e0c300df0b68d909d2e9c1f1c0926d79cbf21e4b" }, { "channel_name": "europe1", @@ -4813,7 +4813,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "698489434d6b162ffca30613bf95cb8385e70106f2931ab8022f2f569e13d47a" + "id": "0f90aaeeadd9a500666b500fedb549cc5756a26274c7a9ade0e7e5a8b055824b" }, { "channel_name": "europe1", @@ -4829,7 +4829,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "79a1d29b5277a75e738cd5b70a85b889bb3e18f9a34ea96c5a2f161a38d13eba" + "id": "14f36c0ead9a2bdfce3f1934ba73c3681395a53df007a78733a4cd2f3cc7a3fe" }, { "channel_name": "europe1", @@ -4845,7 +4845,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "8a43187154a25c98e3784a856a0f1bb75937aacca5208ac833d953fdc6754abd" + "id": "c9255c65c65e0a72c231f85f6296d837b60eebd9f4062e7e7d2cf53fe9895a4f" }, { "channel_name": "europe1", @@ -4861,7 +4861,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "ae5942b4e786c0d04f0a052384e65d43e9afa1511488539030a66cc57e1acf5a" + "id": "b62bb0fc9b46d415bed5880a5a86ae0ca5f135c37c3f23f5e25e1b0f409ca26d" }, { "channel_name": "europe1", @@ -4877,7 +4877,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "79a1d29b5277a75e738cd5b70a85b889bb3e18f9a34ea96c5a2f161a38d13eba" + "id": "14f36c0ead9a2bdfce3f1934ba73c3681395a53df007a78733a4cd2f3cc7a3fe" }, { "channel_name": "europe1", @@ -4893,7 +4893,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "47d4ff583c1a4a7fdf93b501900bd9f1d4cda80fce67c1a16cea7433663cd0d5" + "id": "21ab95972197019f4814d5d421369af9119a83dc4e7a1e5aaf88004889c7a697" }, { "channel_name": "europe1", @@ -4909,7 +4909,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "b479854bd62882c1b6e0eecdd1c56aa91bd98a5b3d69ab7331318dc0abeec100" + "id": "99575eeb507763c6cc90d6aa0c3f1bc6a6ad3dc0b542ccd310d5a316042f6557" }, { "channel_name": "fr3-idf", @@ -4925,7 +4925,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "3eaa70001c332aa11cac09869cb30180be077ef48a0c49b5dd05b0a01ca272c1" + "id": "58ce5baac1e40b631f059d230b1866da309f125d641b75fd228042ee89b8d653" }, { "channel_name": "fr3-idf", @@ -4941,7 +4941,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "3eaa70001c332aa11cac09869cb30180be077ef48a0c49b5dd05b0a01ca272c1" + "id": "38bd992bb4b589aeeadaf46398ed74b654da082d15f70ca3223bfabff837a83d" }, { "channel_name": "fr3-idf", @@ -4957,7 +4957,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "3eaa70001c332aa11cac09869cb30180be077ef48a0c49b5dd05b0a01ca272c1" + "id": "0eea6fec4811ba20d8c502cb7cde597e76f8aebc87ec578761066e7ac5e9fce4" }, { "channel_name": "fr3-idf", @@ -4973,7 +4973,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "ea363fa9aa4b8f90e2c590556ee8c2627b022c8af03ecfacbc244cd9ce4cd235" + "id": "c492e6cd4061281c85e47f3ab4ede89b2b697e6e0f743296b295921ceea5650a" }, { "channel_name": "fr3-idf", @@ -4989,7 +4989,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "ea363fa9aa4b8f90e2c590556ee8c2627b022c8af03ecfacbc244cd9ce4cd235" + "id": "7751f210501181f6a5e01260907d8d705bd45a80cf678752bb5a0dd003759acf" }, { "channel_name": "fr3-idf", @@ -5005,7 +5005,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "7616360e263ff0cf748da0c38227bb03161e95e7ce7c03196d834631edb95b58" + "id": "fe6ea69f80b1d26f90776f60f342fac4963c2060b0d6776e6723f587530d67a6" }, { "channel_name": "fr3-idf", @@ -5021,7 +5021,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "7616360e263ff0cf748da0c38227bb03161e95e7ce7c03196d834631edb95b58" + "id": "2ea8d1608b441ae52cf4b2008df2e9c1b9026f3c04574b371baabfd2fbf18ba7" }, { "channel_name": "france-culture", @@ -5037,7 +5037,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "af7faae7d43585a962604e7d28a779cae611a97e2ab5c58979367eecb3b38a55" + "id": "401a930b30fd22f475a58d0ddb00801fe8b7604887078f4de53410c018c6a432" }, { "channel_name": "france-culture", @@ -5053,7 +5053,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "294d9e0595ce3068004ce2540124110b4ad24033828d03c42d300c01634d3816" + "id": "37efe272b76a2c528fc622abcd2d13ea34514fb0d40d91e8e67915778bdfde10" }, { "channel_name": "france-culture", @@ -5069,7 +5069,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b8e573a4252b2febb7c483f3ea9081882dafa44e734a942453062eef57e83650" + "id": "1d66dc99357c8c29fa3922a743568d29571f91ceaf76a21778a4d516841d2bf8" }, { "channel_name": "france-info", @@ -5085,7 +5085,7 @@ "public": true, "infocontinue": true, "radio": true, - "id": "e4315233a0d3eabcbd36080ce24f742cc72705a060897ea1071755c5d8083b71" + "id": "c4a7d9eba88b0eb23c98cda9340b5bf07b56092ba9add80ee7bcb9588fc7f024" }, { "channel_name": "france-inter", @@ -5101,7 +5101,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "63406a475f3e4765a12f083e590ba44c22e66311a5a7b04160f5865d756eb919" + "id": "33157a7dcab2e1d015206294dd8feb9c6fcab9533f541b202735c8687ff2abc0" }, { "channel_name": "france-inter", @@ -5117,7 +5117,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "433f0818a9f67055c4a21c2d61b3042ae573748da7c5110a7dfe780c21a34fd3" + "id": "fd221720087c78030ab159721d2699effd8b7add67a538c1987bf7391b8a1044" }, { "channel_name": "france-inter", @@ -5133,7 +5133,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "edaae606a6946183fe64aab879b7a45b2598be11abb661d01899a3042e928449" + "id": "b70de2ca43796399062001aa808cb5e44ec145526bdb17c088e1fe448943a78c" }, { "channel_name": "france2", @@ -5149,7 +5149,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "d2a41b242712a914d181013f1f00b0f21fb1175d24b71b4bb4d799b8c7e1b5ce" + "id": "6f20f11ca61e76cf0e9616bbfc5e1591404170583d3359a09ba9de2e977f1f9e" }, { "channel_name": "france2", @@ -5165,7 +5165,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "d214a9cc4281e997ba52d6ac58cdd8f229234af9a4445eedad4641f06cd688dc" + "id": "4f27b4e63bcd6118de5ef3309afb3195c950e7eb00ca31ca8aeb411c1122de1f" }, { "channel_name": "france2", @@ -5181,7 +5181,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "a870bd9e971a1c3cefb02e4329f461c42008250a7bc7e12cdd505ef56f4009bf" + "id": "2466a604ee1dca5bc7dc8107884b06c8086fde373c7daf5c7dad37d6cb085db4" }, { "channel_name": "france2", @@ -5197,7 +5197,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "a2792395938b6434205212e01e151b458a0fb2e72f9b3b08be9078dbb793b1f4" + "id": "c6a310a4985f04dbdad1267097f2725da92e08dc7948dbceb4ed35cd62641d57" }, { "channel_name": "france2", @@ -5213,7 +5213,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "a2792395938b6434205212e01e151b458a0fb2e72f9b3b08be9078dbb793b1f4" + "id": "f0660122f27fa4721419da757bf5ad2607555c86b5a61b2be15d7b21806a1495" }, { "channel_name": "france24", @@ -5229,7 +5229,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "bc4bb2e848d6bebd7b990e8ce1e0320587b23215e64059e10efd406717a30ea1" + "id": "78df50834172f8af523f99427f29d84ddb73d8b3eb6355d7b08d441a53b1f4aa" }, { "channel_name": "franceinfotv", @@ -5245,7 +5245,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "82860142ae801927b1ddfc3bd9baf58926a2f10b605cb3933859fb187773180b" + "id": "94c0269a0b7d3d871041b2af9170a687d2301e4c381b798f29c0383f9b352ce1" }, { "channel_name": "itele", @@ -5261,7 +5261,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "49fcfc6de7658cca51c3fc8401a9dc8d32c8d6907df9b44856f4528c57d487a7" + "id": "23003a664688633e8245276d2e171a4ee28f714ca763ba06f20ce01d922929ee" }, { "channel_name": "lci", @@ -5277,7 +5277,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "d16f2715a32bdd853bfe1ba322d66d732d9f31b393809e3d4d0970e3c295ec23" + "id": "f038cf1de292127caad0074b90745d4e6c0a251be4f81364a2ec8b28be20ce16" }, { "channel_name": "m6", @@ -5293,7 +5293,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "5e0888caaf56bde3ef37388fed88f2f9c9b7469d2b7d4066a51b458e183fd058" + "id": "3b22146912222f5d069f39ef41649b95f775968cf3d7d821437c97c0f35a1b9d" }, { "channel_name": "m6", @@ -5309,7 +5309,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "a83c43bb126cf5d2a6e5c43fe84ccbd2484161715379d300e8dcf2b316151396" + "id": "c3be1af37201480b63514dbbe63895fb20f68f603539f2c3f6f392ff6cdb4862" }, { "channel_name": "m6", @@ -5325,7 +5325,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "a83c43bb126cf5d2a6e5c43fe84ccbd2484161715379d300e8dcf2b316151396" + "id": "351666d45b6db679187d8a1ee83168830abdcd8827e407d9399b94c8ee4bd418" }, { "channel_name": "m6", @@ -5341,7 +5341,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "23ef719dfc4ff89aaec9ab73f948335e9ef90a9591e96408db6e5a52dbeb677a" + "id": "8ebdc0a5f4d85072658d4ef7fe16fcc13c89a4d94606ea80b27f6326c80417c3" }, { "channel_name": "m6", @@ -5357,7 +5357,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "23ef719dfc4ff89aaec9ab73f948335e9ef90a9591e96408db6e5a52dbeb677a" + "id": "df88b90d595cec066b036249cf669077f916899cdc4561d3daa0779f52c69295" }, { "channel_name": "m6", @@ -5373,7 +5373,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "2c07da9bdf157a71370275b151bb0ed57a31c804044d6cf0ecdfa365eb518dbd" + "id": "51913ff566479443388ac62983e610f976930635ae8a11e95e1466a55f885767" }, { "channel_name": "rfi", @@ -5389,7 +5389,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "47009adf43d6f64a4b711cae53356f285d0abec3bc3b61502e6dd8da22a50615" + "id": "ad38a86c621a8e966f9e1353b8abd15f3baea768b9604a67e6a341d53f07a255" }, { "channel_name": "rfi", @@ -5405,7 +5405,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b0eca0205f7985c05ceb2df9b103e02259d8320c08b9e48cf4dd8f9b2c7126fa" + "id": "5e5d4011877714af91fb527055c737cf14f865da2a6abea4e8d8b3e4c62b147b" }, { "channel_name": "rfi", @@ -5421,7 +5421,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "86982b9c367b940a7031622a94ae564048a19b68b247ed920597df68f0e72d39" + "id": "d16d0d347622249deff4108ef9336276c2b84d872b6ab47a20096804868fb6bb" }, { "channel_name": "rfi", @@ -5437,7 +5437,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "37fd2332f1179a034a0ea1b3dde26e3a71f00fa044d2d91badfc3e11a8fe2146" + "id": "1716c1112815f2f01ed94b469965bf1330fd8afb1dbf2a2ded9da28d0e58cc20" }, { "channel_name": "rfi", @@ -5453,7 +5453,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "667b443e8a1453729440072dce8fe111668a23bd8f51aee4128b489f5a57fb1e" + "id": "87aa1af620d66011ecff6574333a62f3125dc5a9f5d477b48f4d6e8e8c90809a" }, { "channel_name": "rfi", @@ -5469,7 +5469,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f1035271e1cbc5b36e38d2829b9603c86c97b45b421dcc13dad86957e0dfc7e7" + "id": "4aa6dc5fa4f483a5d6f94d17b64c88997d7a7d43af3bce5d70c0680967b07a9b" }, { "channel_name": "rfi", @@ -5485,7 +5485,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "0250e8ffdfeeeef5bdf55e58f7512a9deb434f986db7b48b3682a8919fa6f354" + "id": "62d808a9042eb44de85b5ca9c35295a6bcda7ef4308327cf668861d4a1c84e22" }, { "channel_name": "rfi", @@ -5501,7 +5501,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "058c8c9693ed3f40a69494d8a9ae1fbedfc6af0fafffbe15df5510c315154a8f" + "id": "98042368c8c29b545c48b3a04616ca36c0acadbd46dc537c41324ed42ec2d8d2" }, { "channel_name": "rfi", @@ -5517,7 +5517,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "721f4f6029f988a36a3500d774f22b3a1c1f3cca5b847112335c55fe53ee2f44" + "id": "8325e2a3140c853cfec928c26d48683c1b04354b2392e5f719d526ccd7f11dec" }, { "channel_name": "rfi", @@ -5533,7 +5533,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b823ce09ea9b4233a587710050ddffab39c24a5dad3c2465ecf6d1ad30499a65" + "id": "d196cbe026af3be60a79485845ea26fdddb153489a1cfb036c78b0bec6a511a1" }, { "channel_name": "rfi", @@ -5549,7 +5549,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "7e4c3811e05b93cc108e1b104a920dea59fe8d63c0d5e1b39acd62dd894063e0" + "id": "265d1ab74fad9b79a476a87d311d79e54bfcffcebd29d3c378ad5b5fd52e52f9" }, { "channel_name": "rfi", @@ -5565,7 +5565,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "d95c5192d741dc2dd2cca2a83ea8e8ae427f006777d2aff77be52418ee7c2348" + "id": "1d73e9c5bcc96bfc025336054747c13fb865149488a64b815c89be5acb96b6e8" }, { "channel_name": "rfi", @@ -5581,7 +5581,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "ddbe1df9fda143906432ea69d9f58eb89fd1673cb931b3ad1e39c3fc7a5f8f02" + "id": "43f71d474757797f5d370c4fb851147f2f0330b3151d928ad8a372d9b93f33db" }, { "channel_name": "rfi", @@ -5597,7 +5597,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "82760b3a9495f60d6faabec543006440f6c95df6641171da404c4f1f03589b97" + "id": "5d9e8e6d0e60fd7fdefa3cc05cefb7749bccb3e9f415c62a2d628c0f0172feba" }, { "channel_name": "rfi", @@ -5613,7 +5613,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "e0376f5ac50373a054e1673b76adbcd088597f1ade9edfc624893b2ee566be8c" + "id": "e122a76d5be2226d244d70a95d392850b164c7e7d3aae9bd1715e66682077889" }, { "channel_name": "rfi", @@ -5629,7 +5629,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "34461fcfba7f8ca293eb65f5f1ccdb768cb91c47d4e789f3fcfb93805224081d" + "id": "53175178bdce7ca776c40a7c13906a37113b6cc2f68c6fa219c8410ea4cbecf1" }, { "channel_name": "rfi", @@ -5645,7 +5645,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f38cf77e337eb35331d10ed0bb02093df148e1196627adfabcec79c03265ef8c" + "id": "3e4c279edd7e0a9e956e1640d22c7314d9e9b0c50317817d1e8c4c086c0df827" }, { "channel_name": "rmc", @@ -5661,7 +5661,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "9738ee98fa19e1cfa36618e636fa00e985873cf4801e57a1498d9d355c10ffe0" + "id": "326df02c4ee6037c33801dc77d1b3a114a8ea3ea105b62eea2061508d5278014" }, { "channel_name": "rmc", @@ -5677,7 +5677,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "5a97a2a4137447bc017e028ff4389322486823301c8426ee5703685ed68b06c5" + "id": "b1c395c2d23cb1bbea1b31e1d4a976a74cc58811107d0504faa2a766c36350d6" }, { "channel_name": "rmc", @@ -5693,7 +5693,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "32c5d63fa04605a7eab6a373829f5f28b4c328a72b8aa28cab90f951671b8a7c" + "id": "67a2bb4b61bddf1a19a1481f9c045941cc1369472b152ce48b391976ec1e86de" }, { "channel_name": "rtl", @@ -5709,7 +5709,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "cdee46fc01e7a331b5b8508bd9f17c18820f83d0461becbc3a65a7c6b811d8dc" + "id": "cebad7bdb6ce6b18161249e52c03563479def325db27735aa64498189dd2f188" }, { "channel_name": "rtl", @@ -5725,7 +5725,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "54bbae726114d3dc63df6e5937382a54fc015c8e653b603efeeaed527e484e80" + "id": "aa9a3053e2a22b47e6b15ac311c1c48cd84334a5153267452762cad218829668" }, { "channel_name": "rtl", @@ -5741,7 +5741,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "fff95433c74cd3061402f1b1adffd2173a4d2c43f1345112720967a442df1460" + "id": "be6a734a1f638c54cf71608f53ada9ad94239c22cb492afa6b52765b6b1ee1f0" }, { "channel_name": "rtl", @@ -5757,7 +5757,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "e2eda87a858f16101126c225f5404651f5b4ecc671899b92d78561b88f010577" + "id": "2b75c9be9b9a1317ed6f2838339dff385321d4d60487d550d43e5fa18a1f9efa" }, { "channel_name": "sud-radio", @@ -5773,7 +5773,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "5cab09e0887d040bc1496fa90a24d83a9d1782d7e64f2d0cc5b0e83699ee3d74" + "id": "77da1075c18d94f9487a168b160d978b125d5bbdee25e6cb2e9bdd4be9b8f8e0" }, { "channel_name": "sud-radio", @@ -5789,7 +5789,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "cab7955932337879acca4fea6c3a672fe972aec4033708043c8bf764b15c7bf1" + "id": "13ed2d181918c3f724f6fd6325f222ceb0b8142c9b4ea11b75c6b4d33c037c37" }, { "channel_name": "sud-radio", @@ -5805,7 +5805,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "bdb52642cf266b556aaf4a81c93dde62417b4007f133d8d5f6bb9ffb1b2efc9b" + "id": "e1385efbd1dbc4e177deb8c3f54c544aa193fc9b2760dabff527ba46def4f8ef" }, { "channel_name": "tf1", @@ -5821,7 +5821,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "4de8abfa14700d7ce61bf52749a61f9c7c62159ed18cd1a274fc83a9ce9dc74c" + "id": "5beae21ad639f2db025f7573b7c147839467f51b1510c0f1e18e0d9e41e4bd7a" }, { "channel_name": "tf1", @@ -5837,7 +5837,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "d9cdc0a932ee6e14db8cf3e79f1727ce3cc786edaba4e7ae57f68c666e7fa8fb" + "id": "0d752edd6b8a4d9456184e6bf3c97bf5ec40708ac909954ca67004a8aee4cef2" }, { "channel_name": "tf1", @@ -5853,7 +5853,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "b9d19ad4d7d89f8a93eb2cd7d091474007e51443e8ecb345d380627092241395" + "id": "005a5c81a377cd39a53302b246a436d456f1873bcbd6f6f5b24fef6adb57f083" }, { "channel_name": "arte", @@ -5869,7 +5869,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "c1c67fdc1ebf0224f7c1a6e1667cd0a8d1b96addecaa4268febca422a064c447" + "id": "cc7c428600d38af375ec7dbda58ec80d4e3927fd11caffbfb10b2c5593bef555" }, { "channel_name": "arte", @@ -5885,7 +5885,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "8f93e556fc18c8c9a9adb47e2e20d66cf962fa75193341fcc0e5c55a3a6bd173" + "id": "b29b5ccd50955b79488bb2dab5ec12ca0180c79cfd1da055850c64ce4818040f" }, { "channel_name": "bfmtv", @@ -5901,7 +5901,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "3f98aab14cebea719ad333205806acf355207941b2c4e218a2905c760b4f9e9e" + "id": "6827ca07af2920a6abe743978f6cff826f69400061bfadf8670cafed6a2b20ed" }, { "channel_name": "europe1", @@ -5917,7 +5917,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "f570870292e0348c334a6c7a804dea374c60f8a6ef5e73fc2b16701c8fbb65e3" + "id": "0d429c03ba4fce8af58686f13cca2f026fc6409e8c76aa41439434d15af76e84" }, { "channel_name": "europe1", @@ -5933,7 +5933,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "b5a8c265df44b5b78633d07415c0e75ce4a7b2e7f034492fe39a0987ba83550b" + "id": "ddf3ea70a89eb728cefdf64dc3e7451c82da1c278a76e5ac9f0956df6734df67" }, { "channel_name": "europe1", @@ -5949,7 +5949,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "c05e2ef26d9a56e76494f0a86d9fac9cfa0cd9be445ae9058614df450003c390" + "id": "b05d391246a9858284be1538d96220f09dbb982f8d86a00b7ccacfdc1a29ec18" }, { "channel_name": "fr3-idf", @@ -5965,7 +5965,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e866f4598fe7d2d84c9cbf4b3f1a5d0428ce0ef7f7a6c738770b21b180ffd7b1" + "id": "e1f3fbc464494ccc9b0d170acd9ceb0b0b564659e432f8928f52fa2c9ac82f10" }, { "channel_name": "fr3-idf", @@ -5981,7 +5981,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e866f4598fe7d2d84c9cbf4b3f1a5d0428ce0ef7f7a6c738770b21b180ffd7b1" + "id": "1e993fcc5c37facdca22407bb74d28580448385f5a9e4a1a20aab6ca08c85ec5" }, { "channel_name": "fr3-idf", @@ -5997,7 +5997,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "d6d84191816f7c6731e20b9906a645c25a940b6babb52ae8bf10b86894d0d8c0" + "id": "26f67454cb3fff55c4b024f852d8cb8e8f9de9a201f8a45533125224784824a2" }, { "channel_name": "fr3-idf", @@ -6013,7 +6013,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "d6d84191816f7c6731e20b9906a645c25a940b6babb52ae8bf10b86894d0d8c0" + "id": "343fada8ce34afc78780129c246ef3dde670080689ee3efd87ca41177cecbf6d" }, { "channel_name": "france-culture", @@ -6029,7 +6029,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "7f779901e3ca4a62de0a564a6d7d640560e0111b1340971842c57bc45b08440d" + "id": "087b9717be2dee73b87f249e28bf5a75d6c3c2e1ae712f1aa85a63171e3fb791" }, { "channel_name": "france-culture", @@ -6045,7 +6045,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "d72daa141c1bfe8d7b779a7d9cefb4638970db9340cc55414a94ab24f1ef804f" + "id": "da4cc67d2e5b711b577a7f809070cb310cbd0aa2b6659a6abb9cf1dfcc248212" }, { "channel_name": "france-culture", @@ -6061,7 +6061,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cd4c5b642e5b01762e4bd1249003e1507589fa7a535b0b39026b718893eff499" + "id": "669d815cf51f3885e8ed30b6da57cb909d99b2d98b993b71afcd6b03fc3d8c89" }, { "channel_name": "france-info", @@ -6077,7 +6077,7 @@ "public": true, "infocontinue": true, "radio": true, - "id": "7cb223f6996a27fa45ce91773b0f2052cf32763e001451810b830355be9cf760" + "id": "8596b4c6b080e034b228bf077d0862493427c772f2437e3a8a48253583b02419" }, { "channel_name": "france-inter", @@ -6093,7 +6093,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "55d04457415d8d4d46526f9e684bdfcc9d791af2f660735d033e68711d9cd865" + "id": "0c17eec4b112e2691d34e60c268eaaa1e355e0bd59594428f9f201bbeae5af21" }, { "channel_name": "france-inter", @@ -6109,7 +6109,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "73b6b541106015a07767becbec35ff3ecc910d39350ce1bc49c51327c2dffa13" + "id": "0cbc0fcebb526f4a0a8b058eb498dc904313f52bd7d546d19c6003da363f2a9e" }, { "channel_name": "france-inter", @@ -6125,7 +6125,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "31df6a536577faa4b46353cfda12a969eb00b8cafbdf1fcc2f52c80edda3acc8" + "id": "57bdecad03a174ea083c11ee49494c4523aab73a865f31851d100f6a89de8fa1" }, { "channel_name": "france2", @@ -6141,7 +6141,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "35210a03f924b65e5a2425eaec42ab6bb120d5b12ad4270763bae1f4a0f519d4" + "id": "a6e0ec355dd9e2623cfff7ac0f5c9f20e842ab697e87c2cf5695a55a93c2bcb9" }, { "channel_name": "france2", @@ -6157,7 +6157,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "97051e58567374b404a8d9aef48ac8c025faa5ad08e8c3b345ada0df6e9f3a0c" + "id": "d6b5cfac3690000b42a587cb968b538496c9efa01ff1ede193d843d8c52c6a6b" }, { "channel_name": "france2", @@ -6173,7 +6173,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e7bde2947fb46d9b21df95faca2f578a8e661ac7135d75a8eaccbba28b0d1bcc" + "id": "c787885ba89ec60ef650e79604b91ff686a1a6cf1e6df9e36e0b96f0873537e9" }, { "channel_name": "france2", @@ -6189,7 +6189,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "649aae5e90d2224f80a03053d7831afca6d078b26b4e11abdd546671b7ba95de" + "id": "be66f227ac2514e29b8667ae77d26fcd91cfee7d04f9b135462b6d8a4364d2d5" }, { "channel_name": "france2", @@ -6205,7 +6205,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "649aae5e90d2224f80a03053d7831afca6d078b26b4e11abdd546671b7ba95de" + "id": "4760f2139e423f68ee4d5c1c10ca69f6fecc7d18b88da03d34f75d4ec39410c9" }, { "channel_name": "france2", @@ -6221,7 +6221,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "3f2cb85ea70804b90fc41cfdedca128219963c69bf35f516bf74a1776e2df37f" + "id": "616b82e079d515f44ef9c434e39c190f0ae8dba799aef636d6ca09a730486037" }, { "channel_name": "france2", @@ -6237,7 +6237,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "4a32ea3585fca089eee2676d1c9740d5c854a9c5ee4803be2038ad05a795fa06" + "id": "ae056dcaa218242aa01701530826a5a65ef6bb34e1b29a4d444e47f9cd2c7e50" }, { "channel_name": "france2", @@ -6253,7 +6253,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "4a32ea3585fca089eee2676d1c9740d5c854a9c5ee4803be2038ad05a795fa06" + "id": "5b1af440a096cb917c145b07bb501a59c3e0160012848a40f9d34bc40a1bd7b9" }, { "channel_name": "france2", @@ -6269,7 +6269,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "4a32ea3585fca089eee2676d1c9740d5c854a9c5ee4803be2038ad05a795fa06" + "id": "6b5bb567a132d8d89ed2cadf66d955ad589ef78cca7f8b2c53c8362fddf2fea8" }, { "channel_name": "france24", @@ -6285,7 +6285,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "f54330012a3f2866ab867991fd41d6499f7a64f0f6cf34d07d1242f66b8cbffb" + "id": "674253fbc90e5d384615f0463b9d146eb34276c91969fe513ecb79c03ee6148c" }, { "channel_name": "franceinfotv", @@ -6301,7 +6301,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "5686977e1bfb3ce45fec73e0e0c889077386c43acf87c961537b8a835842cbec" + "id": "cfbac416e421153793cf9388e160401e4fddc5bea0c67e375921bfb9b3621627" }, { "channel_name": "itele", @@ -6317,7 +6317,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "924e2fbb5fa5375d203d4837c1ab6375fad1799318582d4d0ab5303800de0f7e" + "id": "a7892a554b98e36fde1144b1e7b16f961ae691fd1777e0b0ea8beff01e04ea35" }, { "channel_name": "lci", @@ -6333,7 +6333,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "3e507c8ccc7a179c2552aad64dffb00bdeab3db96d1ef2f6b093a9d3f9ff2bc5" + "id": "af64a1588ba2b8f98768d229ae9b70f8ea890f1f3534387d14ed98a6d0c24b81" }, { "channel_name": "m6", @@ -6349,7 +6349,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "7828019d07a9ccc13466d29866599ead6a6c305ab1ba2633f55a229c1fe69e49" + "id": "de2a23a7d70995757b91f01da96773d9502e5f258ec6688485ae3af69b34cc81" }, { "channel_name": "m6", @@ -6365,7 +6365,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "61ae3a5140eb57b717410b6cd9fff77d7c2f7f6c2efa6a204f075aad32d4d841" + "id": "ba9112395a3c3650e911e6133e07936d3fc89af26f9ff1cde3e228dcfb6abf9f" }, { "channel_name": "m6", @@ -6381,7 +6381,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "fa2f30580e19cf7668e117dedc9b3b821b8dd802b2b6b62ef20061f847b87544" + "id": "5beb3b7841d616e2d8156274e15ed63786eb053c69e83d2187ebe74dfd13611f" }, { "channel_name": "rfi", @@ -6397,7 +6397,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "db21ab40d7bbfb77fc35d6a79aa3680dcddd0ad3e252f7fc6146532378d2d3f7" + "id": "b9de2e0dbf31b3c3c7358fbc28423fd206a5491831f42d5d4da0b60718512467" }, { "channel_name": "rfi", @@ -6413,7 +6413,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "c41c9007be1f619b26d8abcd4478f9a538c138eabbc809de5c92b1d296882de7" + "id": "f21ed4a6b19b4734cbe919a0ee5a41ab1a19ab837649cc5fbca89556e5b73780" }, { "channel_name": "rfi", @@ -6429,7 +6429,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "37afea5b706d30d29d8232c7a9dd5424ce12425e9aaa9446df040c028dfa2b79" + "id": "4ce580b3dc2ea923d65184dcaf457db74e7a771e41b6e0a66bdbdeba384c6b7d" }, { "channel_name": "rfi", @@ -6445,7 +6445,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "23885ad817ebe492f61bbd79a798068a1e6ca8fde55e03947572fbf249848a8b" + "id": "a2f702213613252b9edf7033c918976e17656cd192e3a472e890c65b42794d69" }, { "channel_name": "rfi", @@ -6461,7 +6461,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "676ace8df342cbabe7ccc7329cea2a1f6b0503f0a0b310a66e6c30b8929fd73d" + "id": "8f1e2047d16dbbbb967f87fc7e9edf29476048310b2cdcd4d0cabde3da4810d4" }, { "channel_name": "rfi", @@ -6477,7 +6477,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "09617dad855090723f390d726f07d1507cb8e6b4a59e008a05697078c3de5082" + "id": "6507521a72eed0cb360574a66ecb3289f15dd9e9b6892c04c469bad366ffbcb7" }, { "channel_name": "rfi", @@ -6493,7 +6493,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "bffcae4259c7e75a353836f04b5671a37aa7fb161b05e1d987d6917c0ea45a7f" + "id": "41939c89338a66dd3b7b464fd0e1e7d40496602af3ba6bccd88467cc547fadec" }, { "channel_name": "rfi", @@ -6509,7 +6509,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "ebe10977616df601492cb2f67a1a91fb5199d738a05c9a96e2c2360a67530c59" + "id": "239167a0018a88fb9c7824d122d0a5660da9a204a1d5157611b986f778adb9cc" }, { "channel_name": "rfi", @@ -6525,7 +6525,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "a6f13e84e9ac12ceaf99ce1d6b00b93904dae1b5aeeac980ca1fc95d2d984b1e" + "id": "0a93401803e17fd490896d2e6e14cf955271722f00fa9fb3da27dd38a752b1d1" }, { "channel_name": "rfi", @@ -6541,7 +6541,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "d8372c8b3cbc4f729388662afe9a99fc9f27cba5c0a1e10b7170f1aafedda677" + "id": "917de5707ba3ed3b02fcc260affce16113dfb807f7eacb44e9af7a0dd5ca864d" }, { "channel_name": "rfi", @@ -6557,7 +6557,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "6f295acfdef0468f4453452c24b134456b499c78a135dcda7e66fc31c434493b" + "id": "e5bf05ac6f73b220838f0ea22248c7810c5025b99245fda006459b98ba36c9fd" }, { "channel_name": "rfi", @@ -6573,7 +6573,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "18c5b5e5bc98209fb459282985324f71f99314125fcea873dde8c285ce692f39" + "id": "dc558417aee9d5c936dc00f04ab7e317f3faeab49bf8128546128bd70c57856b" }, { "channel_name": "rfi", @@ -6589,7 +6589,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "b0e60aae751232b95a32f6b82a78b9a65c8d35a8001a85d4e58094d03d2ceee2" + "id": "1ba5ca5e78a049be0ca1b82faee9ae0ff4932e50c7deb8b3580277edfabe32bc" }, { "channel_name": "rfi", @@ -6605,7 +6605,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "86aa20fd63799dc2949041f57b19d798c70bb3ad352bdd4edeb5a87537e61156" + "id": "f13ffe05b36b45dd8241dcf5d5a79a7c23c76cbe399b79a8a55b77211b35e26f" }, { "channel_name": "rfi", @@ -6621,7 +6621,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "1bb0e496d7f0977038c5ddcbc75a3c5c7b57391e55a6291d469a08e45bc5c569" + "id": "edac338561152816199a3306c1d790f7811efc24cc06280b64a3cc4b72013e12" }, { "channel_name": "rfi", @@ -6637,7 +6637,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "f92f1510608bc8793bf59da7895d0ba93b12b261f2a6aa09fb51652323ca4465" + "id": "06d4ff0c2bca36abb45a9852d2c0322efa2fa8b0a0048b2d188e1f9e98520dae" }, { "channel_name": "rfi", @@ -6653,7 +6653,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "3d798919a3bb473563a8fe786559f7999df5b7f0a1a9363ec0b15ff019be00eb" + "id": "73df3228d2f901bff0490d5d551ec5776dc13bb35f8c0109f17f7b92628a1212" }, { "channel_name": "rmc", @@ -6669,7 +6669,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "befaf872295b179e605b566451d7ef8781c541ccc270102168a28e86b50b441f" + "id": "da808f8de5a01f12dc059594ff8e148423eeb554a0edc84fb6e6512904927795" }, { "channel_name": "rtl", @@ -6685,7 +6685,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "93d8cbed53cfd388ce307c8b799d7bece672313535ea72551ed29228fbffb059" + "id": "aa43314ca8d78a750de0abeed5b2ccf7b1346725057106e5964704e421117251" }, { "channel_name": "rtl", @@ -6701,7 +6701,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "4b216f156ef6289f9adbc1dd1229f665d12f76abe8937ce3221f2e0555715191" + "id": "056c990358cf05589f6764077f21e40771a766ee087eda5d96de8faf0fe92ea9" }, { "channel_name": "sud-radio", @@ -6717,7 +6717,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "4e47b6b87a9acae9916427460e1e4c96c0d90a5d6fb37b870ca55207be336fff" + "id": "4724558f498d363dec42a34750107f3849e23547cbdef43d8d87861d5a1ab08d" }, { "channel_name": "tf1", @@ -6733,7 +6733,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "d1987fcce55d52dd0290f25bc5ac0336bfea5b4365d9c040a81a5464e5d60d11" + "id": "5e3f093d8d6c53b8f287f81fabe5588ad111391e07dd560d78410007c4d3a5ee" }, { "channel_name": "tf1", @@ -6749,7 +6749,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "378f90a814a31dd24d73848421e60a7414e21bffd05cf2a3670d3c670308229c" + "id": "3f0a7f2ea54afacee54f341b9ae00dc82a51bf3450c00427b4bd43354ff870b0" }, { "channel_name": "arte", @@ -6765,7 +6765,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "b21e65e85ca94016626ed97de4cb8871f39e3cd16ae9a52d0f6075bcac4b6aea" + "id": "a66de468be7d4b890263861475b1511fe543cf090129b96349b70820e35ef541" }, { "channel_name": "arte", @@ -6781,7 +6781,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "00067814c1af4a2a08baa50086ab87ee4b331bd377d4bfb8f902f1affb5ece92" + "id": "1b3368acca6a04948ef1bdb2984653537fc82e5ee45e6f9b941354b0944e0ecc" }, { "channel_name": "bfmtv", @@ -6797,7 +6797,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "10ec239bc942f89981744737f0324e9dfa3f001fe31f58f2a5cbbe2e42818670" + "id": "99175a0ffbf0504e0afc2a675b2e74137808a7448c4bab5eb86daa04b1013e4c" }, { "channel_name": "europe1", @@ -6813,7 +6813,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "1272615f592bb39c60885601d8f8c3a771989dcc2d56502472e0c328a4603c1d" + "id": "1fb277bab57696c79b0f59dcdefb19d30524a3c122965181f260c3457ba1bfa6" }, { "channel_name": "europe1", @@ -6829,7 +6829,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "e4937c484b7dd3eabbe2350723614947034dd96128d9a5a32d130b12dad2334d" + "id": "ce88922371361c98d5d0b267ff6ecd3eae79ce1cc40b17033e28616ef3179e75" }, { "channel_name": "europe1", @@ -6845,7 +6845,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "5069147f91b14fb4bf99ff796d8be6d5d7990ce3d93e7a4ae2d3884f090058a3" + "id": "c76a1779e26f798575db71d09130c913a5e57ef7309aa203c5afe69ffa4f8317" }, { "channel_name": "fr3-idf", @@ -6861,7 +6861,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + "id": "3134cecabf31724e1e0ced9852be8292db0be942aaed38bd4269d880e96c92df" }, { "channel_name": "fr3-idf", @@ -6877,7 +6877,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + "id": "d22cdfc8019eb599ae58ff84cf817f5e66ad8bda8670b45759224b6e30f28f11" }, { "channel_name": "fr3-idf", @@ -6893,7 +6893,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + "id": "25a3b9445a6dde23055a26c32d5f0629062c4923961edc327a95987d78fbdbfa" }, { "channel_name": "fr3-idf", @@ -6909,7 +6909,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + "id": "6c2f6f18b637d340273603efdc9c61c9690120009edc3cea0e2c8ed8e4e51ef2" }, { "channel_name": "fr3-idf", @@ -6925,7 +6925,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + "id": "f4ed0bcf1a2d9fedfd0a99f504c9e829ea88a993476067e6b036c1af076b4c5d" }, { "channel_name": "fr3-idf", @@ -6941,7 +6941,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "dc519fb454d007f300f59892018f3be1fffdf5e919313138af99dbc0aa434a16" + "id": "3466ffbb0f547d25585fee407127c1ec5e4d62d4d895c535b9f50cf562166297" }, { "channel_name": "fr3-idf", @@ -6957,7 +6957,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "3cfb93f6a59855240abe532b2091485d107bf221d2bbeb720cd727d6581fded5" + "id": "71541385f42b21a8adaad5096c4515f39ba0ef37c64e9f0ce897cb4651c95b6f" }, { "channel_name": "fr3-idf", @@ -6973,7 +6973,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + "id": "3bb83bf43b100635c507c1de940644a252716ab71bc02c8c32560794bb5a9ecf" }, { "channel_name": "fr3-idf", @@ -6989,7 +6989,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + "id": "7becd6747a9e3cb3808621b89f7c6da753c9f837efdb9f7d13e5f01ec3d6c37a" }, { "channel_name": "fr3-idf", @@ -7005,7 +7005,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + "id": "66b25eae2b1c27682fb374e1ba36d8a92adb381e5e4cf61880799b2ef4fc017b" }, { "channel_name": "fr3-idf", @@ -7021,7 +7021,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "75ba920ce18d4bbc73ab6f2766d125ffaad625bd1c8b4e844f8b775d7b7522b4" + "id": "fcad76b47f1e68d5201caa42a5397d5094dbd0dde6145c6e3bbe09a4aaabe2b9" }, { "channel_name": "fr3-idf", @@ -7037,7 +7037,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "27468d262745520fbf7038e6cd308ad207c44b6d32c7d7edd8262a55d8409c2d" + "id": "46f26bb252f7ffbf9056da60d73f06eb24c9653659f7db07eba98658127baaad" }, { "channel_name": "fr3-idf", @@ -7053,7 +7053,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "27468d262745520fbf7038e6cd308ad207c44b6d32c7d7edd8262a55d8409c2d" + "id": "42a2e11e0b93640d30cc03d77e2e78bb229bbb509e346dce1cd7dd900de85a88" }, { "channel_name": "france-culture", @@ -7069,7 +7069,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "7a60694d07b77a80ccc38c1b8841b79e428e7a75da2b6bdd309a5ee7dbd3b93e" + "id": "4349c72975b9e29f1d444c67e0d6deb38b243b7c6d633ca43619531d90c3bd7e" }, { "channel_name": "france-culture", @@ -7085,7 +7085,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "4f83bee1bffc312fe783ed00542df00cf47ba9b4f798e04015d07b1c1a16fe4f" + "id": "22e4b9d99af6f13c229a2d1d99f19bcaf486e116a2c9e10dfa83b0d0770d4df7" }, { "channel_name": "france-culture", @@ -7101,7 +7101,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "968b88c8c2a57198a6a86facee1a0b4a6b1de69cf5ed9efb0bd0244870943839" + "id": "36836cc1927f138ec6b4e6646f71c089888cca11a74cd1aca1f17d9348f5e3b6" }, { "channel_name": "france-info", @@ -7117,7 +7117,7 @@ "public": true, "infocontinue": true, "radio": true, - "id": "0caa83020c3b9d39e2aafe4ec87206ec3f871b8405308725ea3937aa8733270f" + "id": "c718664c9ddf34b7c743c405ca5d7723c088979c5243b465889f0d9ea91e3bac" }, { "channel_name": "france-inter", @@ -7133,7 +7133,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "0792eb0f328ca3b8f8820ce7f9b6eafc3e969cd12a7733181fbf8801894b396c" + "id": "63c05b9a17fc22a6fa96ac909e4e601d124ca51a18c4e7061c3207476a31ef91" }, { "channel_name": "france-inter", @@ -7149,7 +7149,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "c5761e5b472dde390e3d482c441c9e1390e1c18b6d7663aac08acda5d6b8b456" + "id": "3506adc4409f289630319a3ccc501f388447ac1939ca7b390e93450a6c62ee7c" }, { "channel_name": "france-inter", @@ -7165,7 +7165,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "adb02a067243da9e9c5b067d76dc23454cd0b6f3fb7bd0799d8e8463482efcc8" + "id": "71f70650bd2aaa00ea2cfdc9a9862c105b35d6155609efc7f73683ad489309e4" }, { "channel_name": "france2", @@ -7181,7 +7181,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "e30ae98a544cf9aaecd1e22cecd42618f81035d0182b5f4fe0191f4cdbadda90" + "id": "cb69eec2b843e30079810019fe25b6e73b074b3d3909cf392dbd88c15ae9d7c7" }, { "channel_name": "france2", @@ -7197,7 +7197,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "59d72f62d5a47d713491868e3fd713d8ca3bc6ce474615e3c838e28998992548" + "id": "ca7f5f29c407b6cd98648c9966d8d170d56847a5a6b90f4015fe42eb2829269b" }, { "channel_name": "france2", @@ -7213,7 +7213,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "a73ac770de2dffb7763b72c33fe7ce8d371bdab19da245c172a4008cd528ef6c" + "id": "eae3156d3fcbf03765dd287c610f3ca01a7653b2e6c56fc83badac8fc6f09c54" }, { "channel_name": "france2", @@ -7229,7 +7229,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "da18520c4154bd2ccb8de770601a24b555c1fe28ff8f90e36b2fb88897d42a7e" + "id": "af7860210c0e2812d2a1399ffe10e46f9cd6e99cc64cdbbf2b1d90ceb9d4e21a" }, { "channel_name": "france2", @@ -7245,7 +7245,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "da0ac74127935698b06e66cb63ae0d34e3dffc36f7d67fae7c2ea3fa60172263" + "id": "2b6831ed5efce81de78b261ea1693012359b21a98b640ec196cabfd899e5c869" }, { "channel_name": "france2", @@ -7261,7 +7261,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "ee037ae5a18ac2091d33549e7039550f77c964647a6240e0ccacc6b65cf60204" + "id": "64e4a7f564243b3bbbe2a437ffb285a1c55c13d7fadde4d4e22d855c4adfd0f2" }, { "channel_name": "france2", @@ -7277,7 +7277,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "ee037ae5a18ac2091d33549e7039550f77c964647a6240e0ccacc6b65cf60204" + "id": "d44890566a14f961e06dc191504f9e32bd4d5b2e7fc34b6a4c9ed9f8606a6687" }, { "channel_name": "france2", @@ -7293,7 +7293,7 @@ "public": true, "infocontinue": false, "radio": false, - "id": "ee037ae5a18ac2091d33549e7039550f77c964647a6240e0ccacc6b65cf60204" + "id": "0a8c26ed1512cf9f03aac07e21cf646cd2f86d8e7a18f28f2d4b37495324c62f" }, { "channel_name": "france24", @@ -7309,7 +7309,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "19ed1b325865a5a8471cd35590ce6cb8ba29865a048196a64a7ecba1fa3f169d" + "id": "9d1ce6e9cbfe81026c515a2ab55813bee4e73c8cb22758f5a1f9daece39c5f73" }, { "channel_name": "franceinfotv", @@ -7325,7 +7325,7 @@ "public": true, "infocontinue": true, "radio": false, - "id": "3f3fa66c35e27893c0683db2c18c356eb00b8ad54433a73052dbc66a9e5506b4" + "id": "459bd8b3a3b8de5a26cee771f238831a12938a38b5c490b81e76b0473c26289e" }, { "channel_name": "itele", @@ -7341,7 +7341,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "5d809d46a56ffaa02cd82d2a052aba0ddfd2d84a985f5b356ff5561f782884f4" + "id": "b5ff7338e300b3084bd32f4525ea945640b226fe68740ac0cc11553d3f948472" }, { "channel_name": "lci", @@ -7357,7 +7357,7 @@ "public": false, "infocontinue": true, "radio": false, - "id": "c4984b38d0b96c8f73c2af29131d69087bbb9c2a06bb8387b831657dc0a7f384" + "id": "754add3a5f23be54dfe506e25705081b2766acaabce7489aef1631f0e40fb5d6" }, { "channel_name": "m6", @@ -7373,7 +7373,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "9a593874db7dd0af5644068533adf94e930fdd5a78ef0cfc0228e554506927e4" + "id": "765aa81790d8953cf52154a9d398f95a39e6afe25d8e789356b980d28ed9adb1" }, { "channel_name": "m6", @@ -7389,7 +7389,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "0bb7d8129fd436cab6519f33b339a0eda126b6f6c6d9df89a57e2d891ab18b0b" + "id": "e96ca5022803af14df2fcf26e09d93aabcaf8002d55944911448f813058816f3" }, { "channel_name": "m6", @@ -7405,7 +7405,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + "id": "b55ae998575d426eecd709aeff3c2694c0ede3ece289eec8e4872176002126ee" }, { "channel_name": "m6", @@ -7421,7 +7421,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + "id": "b55ae998575d426eecd709aeff3c2694c0ede3ece289eec8e4872176002126ee" }, { "channel_name": "m6", @@ -7437,7 +7437,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + "id": "0028da6227e1fda7250fb389cd6f321ee49a7fecb980268d535df0c493a2c0b0" }, { "channel_name": "m6", @@ -7453,7 +7453,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + "id": "0c10c5aa7fbcd6456951c8713b69f396d685197592620e6e901f924280944ca3" }, { "channel_name": "m6", @@ -7469,7 +7469,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + "id": "85bcdaa77c7e0320726083c659e0f5c8991999fd73c4df2593ff4b7d97425e86" }, { "channel_name": "m6", @@ -7485,7 +7485,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + "id": "5421cbbf7edbc53ad5e2311a6f7c361b9b4262b354a7fa187d374eb7bdbc9ec2" }, { "channel_name": "m6", @@ -7501,7 +7501,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "304549a8b60d8707800164feef51f15075946bd4990db8d5225d763cdc78ec4a" + "id": "fb16efd8898b427fac28381439b60c99e7393279dac18580d28021a2aeef8dc3" }, { "channel_name": "m6", @@ -7517,7 +7517,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "cb4baaaca5a012df3154fadd3be7963930b835ceb75b9444681bd129b7492b91" + "id": "17144104c72daf5b5d6366a81a61a6358c8c6757d9bf512135e7e123d07576d6" }, { "channel_name": "rfi", @@ -7533,7 +7533,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "96efb662eed84ad65444752af43bed81474b8b95c118600f0f99dd15de7d6c34" + "id": "fe67ea6b8f72cfd136af51c74acb85c2784c6fc1cea96046acd1a74fefe92412" }, { "channel_name": "rfi", @@ -7549,7 +7549,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "4d985c6da084dfba490a82f19703782ac5e6163205d871d3d7971dabb22653f9" + "id": "f247d25c50b8b2d9a36610587afdc88b2badd77e40c232d8a416e52252b480cb" }, { "channel_name": "rfi", @@ -7565,7 +7565,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "44dc3b38c16eb9c939df435ecc66c4730066989c26bed6865ab79999ddc7b510" + "id": "09604cd3016bdc34aa49019c5f4c3dba0ac166559f75b1956679c7d2ac517f5b" }, { "channel_name": "rfi", @@ -7581,7 +7581,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "27e262fd4845aeeca2fb67233f150b727d01ae603188493e4d256463961833c3" + "id": "c2837f10b03abdb9f579d3283e3f1dacc5720b7e819eff39d90e28ddc3431951" }, { "channel_name": "rfi", @@ -7597,7 +7597,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "74f5b7707120cda2c171eb47b84f5ccd5669d9987ec54a72c306ea241c07457f" + "id": "d87c3a1b0ee2f300b2fea15419f7954f0009b0bd0729e67efeca8d0f65ec9e51" }, { "channel_name": "rfi", @@ -7613,7 +7613,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cc2c416751b2d5c1217a3dfdd9800798898786649c266ada9021a16bbc544fe6" + "id": "04f29a016c9b1cf86294df3f4ff48d2da14300bf563a90848c71cee19b33757f" }, { "channel_name": "rfi", @@ -7629,7 +7629,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "cf0cd912306b6c3c0a2db2519cbcc8ec8791b0842a8e4e9e35590baf42b5dd07" + "id": "a73cc278e25692abc4603d3b457729254d8d49a530faf7c193a2e4a20420e666" }, { "channel_name": "rfi", @@ -7645,7 +7645,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "ffd63f24a781829bf0cab96a44c73122d6eb7ff4e7ea1d631573ea461f2de0de" + "id": "454e9b977a5a1904763f2cfeb8d347c2315ad227e23dad73bb310cbe712bb8ab" }, { "channel_name": "rfi", @@ -7661,7 +7661,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "45ee1341fa9e1bf20cd4912f35a0f27ff909f9e153d848bbd83325cc2e9e3426" + "id": "84021e2b9c21771b4df6ac225ca9548a2a1f55b878d4cdd5fd935522a8bdd0d9" }, { "channel_name": "rfi", @@ -7677,7 +7677,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "8c9db178e1fa7a705f0b23b8c26c030347a3fd4bb9f74847572b9e4d4f15f1d4" + "id": "a4ef4619bcea6d6884fc0859c659f51974db1db2c4e6298df18d84a31857bd53" }, { "channel_name": "rfi", @@ -7693,7 +7693,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "4b65e9311ec2ecabf5b9084bece64482f9504b3aa65a04c71e2345699d852087" + "id": "587bfb5abc5589c5d35bb2d323ed5c6a80bc04ee86e00b062876e6628decb904" }, { "channel_name": "rfi", @@ -7709,7 +7709,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "efb341abfb074178c20816b3ad769fa389383b23c29a9378e0674dc0240d0890" + "id": "d9aa56215061b22e80260983e69bdc551d8587d651c20d5223c18f2af3fbc413" }, { "channel_name": "rfi", @@ -7725,7 +7725,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "836cd8d69e38f2332db80be1d70654f777643ac8ca293d398e4172700b861b5c" + "id": "e6f6ca691ef75699b3753d006b166cc1f096ca8a6a2ebb82a11bd19b17820392" }, { "channel_name": "rfi", @@ -7741,7 +7741,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "0b2a83b58b78b0210c16232e27d202a3234143268ece83c6b4afc9e1aebf3787" + "id": "edb269a16cd04e4900619243770898826e943d80110b07ec052c9ed6d2832eaa" }, { "channel_name": "rfi", @@ -7757,7 +7757,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "ffdf62ad13dd99cd87ea4962ec5f89b4db13eb240c6606ac76e77934958628df" + "id": "aba6e88c3f7b036aecba4deb3634c821271d081b7232d432b1ef28ce7832cc1a" }, { "channel_name": "rfi", @@ -7773,7 +7773,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "8db201c13971e83d258164a4304e7e4298d708ab0326fa36bc29ba6a596e409f" + "id": "cd165497d429b52b6d8a7eae8cbb834f1835e0663a325f4046ff42d7e246a9f1" }, { "channel_name": "rfi", @@ -7789,7 +7789,7 @@ "public": true, "infocontinue": false, "radio": true, - "id": "1f181df4e9e0ddd2e59e6f7798401e72f72ba245d994b3346de1eec11e59ffd5" + "id": "23a94663b7d0bfe6d49c729e8c373eb21da9b538fbc974130c434feec2619c0b" }, { "channel_name": "rmc", @@ -7805,7 +7805,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "aa75b4b44376749fc965ad00164ec4dc0fedc5cdf1861025b3b10aafa5282b54" + "id": "4d08f8db4b1ea9b399943f3218d1b1006838d70b258b6d288d5f4939d5462650" }, { "channel_name": "rtl", @@ -7821,7 +7821,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "0ca6537b207752c53f036a52874625885d09d57ca1dd37a13bef92060c3ebaf2" + "id": "5d89643723b34e42849c2b7b24a94def3ab0990eaea3f58adf34d02b9dcc3ae5" }, { "channel_name": "rtl", @@ -7837,7 +7837,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "885e2adf4cf378385c697c597ab2eb3c0c139bddae10c5a4dcfe65c8fcd7e404" + "id": "e761258b020229c659f0f5fa17969c4d519bf4b7cdf2172160ae47eb20860c21" }, { "channel_name": "rtl", @@ -7853,7 +7853,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "991a44e3e3241c043858a373fc1f3ce4dfab1c3643eea8be2da26b1588fab91b" + "id": "0f91472b9391a3bfe86b7573d91403b20a0703781da28e91adc826f38e713bf8" }, { "channel_name": "sud-radio", @@ -7869,7 +7869,7 @@ "public": false, "infocontinue": false, "radio": true, - "id": "a24abc782b2667369bd9183718cab6fca7577cd5bad2c7855d855ddc7f53771e" + "id": "df14f7e5b7d57056a2d195e6e479b7b051ef68634e2cf803be3a6a0b166c18b3" }, { "channel_name": "tf1", @@ -7885,7 +7885,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "0e0656508c23decea9f420de1acbb7685382f23846f910d42dd3628e61860cfb" + "id": "383404dac0abec93dad1758832261c1005332f12c2e641c04cfecc7492495167" }, { "channel_name": "tf1", @@ -7901,7 +7901,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "9bd50d589d131245f82e06850e25d802f029b81b74038b808c6b426e0bba9c8c" + "id": "fd67f079237af0417d0ad1a65768d61117cf91a1ec9ac9454cded2e509473b4f" }, { "channel_name": "tf1", @@ -7917,7 +7917,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "9d562f98e8a5e99340aa2163b1a131e67624674c4d232c8163b8a01152200221" + "id": "fb846bf5a0a42f4ef0998631e2330991bab028b5e4829570dc500e40d5f2b1c2" }, { "channel_name": "tf1", @@ -7933,7 +7933,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "9ad6696748694ef784e97f3805d9b290aa41352fb2007584217aeb03d068f22c" + "id": "c841eec8fce5b85139d283cfba38bec39a7b7bb21bf4a385e43798e969b09843" }, { "channel_name": "tf1", @@ -7949,7 +7949,7 @@ "public": false, "infocontinue": false, "radio": false, - "id": "3acc3fca6bef46d5ffb434078a21611d0d45e84bb18567c04ccc630bc2a26e9b" + "id": "25c34611b63f0f44085bcf70ec7c326e79a366a97df20423f4c41202261b6c39" }, { "channel_name": "tf1", @@ -7965,6 +7965,6 @@ "public": false, "infocontinue": false, "radio": false, - "id": "6e904d526898a868e3f8745507637d1c2dd18783a700235003b0cac4ab9da695" + "id": "b6c5d02f7051e672893891a9865264491db86b995d91989a9feec3b856836b7b" } ] \ No newline at end of file diff --git a/transform_program.py b/transform_program.py index 95d1afc2..cbe6ed19 100644 --- a/transform_program.py +++ b/transform_program.py @@ -16,8 +16,8 @@ def calculate_duration(start_time, end_time): return duration_minutes # Function to generate a consistent hash based on channel_name, weekday, and program_name -def generate_program_id(channel_name, weekday, program_name): - data_str = f"{channel_name}-{weekday}-{program_name}" +def generate_program_id(channel_name, weekday, program_name, program_grid_start): + data_str = f"{channel_name}-{weekday}-{program_name}-{program_grid_start}" return hashlib.sha256(data_str.encode()).hexdigest() input_file_path = "quotaclimat/data_processing/mediatree/channel_program.json" @@ -199,7 +199,7 @@ def generate_program_id(channel_name, weekday, program_name): for program in programs: # Generate program ID based on channel_name, weekday, and program_name - program_id = generate_program_id(program['channel_name'], program['weekday'], program['program_name']) + program_id = generate_program_id(program['channel_name'], program['weekday'], program['program_name'], program['program_grid_start']) program['id'] = program_id sorted_programs = sorted(programs, key=lambda x: (x['weekday'], x['channel_name'])) From 5008535440e91601b21460ee4ea7b172de4f3692 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 4 Oct 2024 10:12:27 +0000 Subject: [PATCH 35/73] [no ci]: 1.0.18 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 70a4324a..19fd517b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.17" +version = "1.0.18" description = "" authors = [ "Rambier Estelle ", From 4d0ac9482170a6aa49c84fde1a186f1d5419742b Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Mon, 7 Oct 2024 13:43:59 +0200 Subject: [PATCH 36/73] Chores/dep updates - python 3.11 -> 3.12 * chores: dependencies * chores: jawher/action-scw@v2.34.0 --- .github/workflows/deploy-main.yml | 4 +- .github/workflows/scaleway-down.yml | 4 +- .../scaleway-start-import-job-update.yml | 2 +- .github/workflows/scaleway-up.yml | 4 +- .github/workflows/test.yml | 2 +- Dockerfile | 4 +- Dockerfile_api_import | 4 +- poetry.lock | 1017 +++++++++-------- pyproject.toml | 3 +- 9 files changed, 526 insertions(+), 518 deletions(-) diff --git a/.github/workflows/deploy-main.yml b/.github/workflows/deploy-main.yml index d7876efd..f4ffcfc7 100644 --- a/.github/workflows/deploy-main.yml +++ b/.github/workflows/deploy-main.yml @@ -11,7 +11,7 @@ on: env: - PYTHON_VERSION: '3.11' + PYTHON_VERSION: '3.12' POETRY_VERSION: '1.8.3' jobs: @@ -61,7 +61,7 @@ jobs: run: docker push ${{ secrets.CONTAINER_REGISTRY_ENDPOINT }}/ingest_to_db - name: update scaleway job definition with version mediatree_import - uses: jawher/action-scw@v2.32.1 + uses: jawher/action-scw@v2.34.0 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} diff --git a/.github/workflows/scaleway-down.yml b/.github/workflows/scaleway-down.yml index f1d55529..3e5540ea 100644 --- a/.github/workflows/scaleway-down.yml +++ b/.github/workflows/scaleway-down.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Use CLI - uses: jawher/action-scw@v2.32.1 + uses: jawher/action-scw@v2.34.0 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} @@ -25,7 +25,7 @@ jobs: - name: 0 instances - uses: jawher/action-scw@v2.32.1 + uses: jawher/action-scw@v2.34.0 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} diff --git a/.github/workflows/scaleway-start-import-job-update.yml b/.github/workflows/scaleway-start-import-job-update.yml index 49f2d760..5746f99a 100644 --- a/.github/workflows/scaleway-start-import-job-update.yml +++ b/.github/workflows/scaleway-start-import-job-update.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: start import job to reapply logic to all elements start_date matrix - uses: jawher/action-scw@v2.32.1 + uses: jawher/action-scw@v2.34.0 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} diff --git a/.github/workflows/scaleway-up.yml b/.github/workflows/scaleway-up.yml index 030033a0..aa707006 100644 --- a/.github/workflows/scaleway-up.yml +++ b/.github/workflows/scaleway-up.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Use CLI - uses: jawher/action-scw@v2.32.1 + uses: jawher/action-scw@v2.34.0 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} @@ -24,7 +24,7 @@ jobs: run: echo "CONTAINER_ID=$(cat "${GITHUB_WORKSPACE}/scw.output" | jq -r '.[0].id')" >> $GITHUB_ENV - name: start 1 instances - uses: jawher/action-scw@v2.32.1 + uses: jawher/action-scw@v2.34.0 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eecf342e..dae8d464 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ on: push: env: - PYTHON_VERSION: '3.11' + PYTHON_VERSION: '3.12' POETRY_VERSION: '1.8.3' jobs: diff --git a/Dockerfile b/Dockerfile index 50d20976..b27d6acc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ #from https://medium.com/@albertazzir/blazing-fast-python-docker-builds-with-poetry-a78a66f5aed0 -FROM python:3.11.9 as builder +FROM python:3.12.7 as builder ENV VIRTUAL_ENV=/app/.venv @@ -17,7 +17,7 @@ RUN pip install poetry==1.8.3 RUN poetry install # The runtime image, used to just run the code provided its virtual environment -FROM python:3.11.9-slim as runtime +FROM python:3.12.7-slim as runtime WORKDIR /app diff --git a/Dockerfile_api_import b/Dockerfile_api_import index 50d8448a..7b3e59d2 100644 --- a/Dockerfile_api_import +++ b/Dockerfile_api_import @@ -1,5 +1,5 @@ #from https://medium.com/@albertazzir/blazing-fast-python-docker-builds-with-poetry-a78a66f5aed0 -FROM python:3.11.9 as builder +FROM python:3.12.7 as builder ENV VIRTUAL_ENV=/app/.venv @@ -17,7 +17,7 @@ RUN pip install poetry==1.8.3 RUN poetry install # The runtime image, used to just run the code provided its virtual environment -FROM python:3.11.9-slim as runtime +FROM python:3.12.7-slim as runtime WORKDIR /app diff --git a/poetry.lock b/poetry.lock index ba72298c..4811343a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -20,113 +20,113 @@ twython = ">=3.8.0" [[package]] name = "aiohappyeyeballs" -version = "2.4.0" +version = "2.4.3" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.8" files = [ - {file = "aiohappyeyeballs-2.4.0-py3-none-any.whl", hash = "sha256:7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd"}, - {file = "aiohappyeyeballs-2.4.0.tar.gz", hash = "sha256:55a1714f084e63d49639800f95716da97a1f173d46a16dfcfda0016abb93b6b2"}, + {file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"}, + {file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"}, ] [[package]] name = "aiohttp" -version = "3.10.8" +version = "3.10.9" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" files = [ - {file = "aiohttp-3.10.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a1ba7bc139592339ddeb62c06486d0fa0f4ca61216e14137a40d626c81faf10c"}, - {file = "aiohttp-3.10.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85e4d7bd05d18e4b348441e7584c681eff646e3bf38f68b2626807f3add21aa2"}, - {file = "aiohttp-3.10.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:69de056022e7abf69cb9fec795515973cc3eeaff51e3ea8d72a77aa933a91c52"}, - {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee3587506898d4a404b33bd19689286ccf226c3d44d7a73670c8498cd688e42c"}, - {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fe285a697c851734285369614443451462ce78aac2b77db23567507484b1dc6f"}, - {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10c7932337285a6bfa3a5fe1fd4da90b66ebfd9d0cbd1544402e1202eb9a8c3e"}, - {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd9716ef0224fe0d0336997eb242f40619f9f8c5c57e66b525a1ebf9f1d8cebe"}, - {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceacea31f8a55cdba02bc72c93eb2e1b77160e91f8abd605969c168502fd71eb"}, - {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9721554bfa9e15f6e462da304374c2f1baede3cb06008c36c47fa37ea32f1dc4"}, - {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:22cdeb684d8552490dd2697a5138c4ecb46f844892df437aaf94f7eea99af879"}, - {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e56bb7e31c4bc79956b866163170bc89fd619e0581ce813330d4ea46921a4881"}, - {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:3a95d2686bc4794d66bd8de654e41b5339fab542b2bca9238aa63ed5f4f2ce82"}, - {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d82404a0e7b10e0d7f022cf44031b78af8a4f99bd01561ac68f7c24772fed021"}, - {file = "aiohttp-3.10.8-cp310-cp310-win32.whl", hash = "sha256:4e10b04542d27e21538e670156e88766543692a0a883f243ba8fad9ddea82e53"}, - {file = "aiohttp-3.10.8-cp310-cp310-win_amd64.whl", hash = "sha256:680dbcff5adc7f696ccf8bf671d38366a1f620b5616a1d333d0cb33956065395"}, - {file = "aiohttp-3.10.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:33a68011a38020ed4ff41ae0dbf4a96a202562ecf2024bdd8f65385f1d07f6ef"}, - {file = "aiohttp-3.10.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c7efa6616a95e3bd73b8a69691012d2ef1f95f9ea0189e42f338fae080c2fc6"}, - {file = "aiohttp-3.10.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ddb9b9764cfb4459acf01c02d2a59d3e5066b06a846a364fd1749aa168efa2be"}, - {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7f270f4ca92760f98a42c45a58674fff488e23b144ec80b1cc6fa2effed377"}, - {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6984dda9d79064361ab58d03f6c1e793ea845c6cfa89ffe1a7b9bb400dfd56bd"}, - {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f6d47e392c27206701565c8df4cac6ebed28fdf6dcaea5b1eea7a4631d8e6db"}, - {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a72f89aea712c619b2ca32c6f4335c77125ede27530ad9705f4f349357833695"}, - {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36074b26f3263879ba8e4dbd33db2b79874a3392f403a70b772701363148b9f"}, - {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e32148b4a745e70a255a1d44b5664de1f2e24fcefb98a75b60c83b9e260ddb5b"}, - {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5aa1a073514cf59c81ad49a4ed9b5d72b2433638cd53160fd2f3a9cfa94718db"}, - {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d3a79200a9d5e621c4623081ddb25380b713c8cf5233cd11c1aabad990bb9381"}, - {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e45fdfcb2d5bcad83373e4808825b7512953146d147488114575780640665027"}, - {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f78e2a78432c537ae876a93013b7bc0027ba5b93ad7b3463624c4b6906489332"}, - {file = "aiohttp-3.10.8-cp311-cp311-win32.whl", hash = "sha256:f8179855a4e4f3b931cb1764ec87673d3fbdcca2af496c8d30567d7b034a13db"}, - {file = "aiohttp-3.10.8-cp311-cp311-win_amd64.whl", hash = "sha256:ef9b484604af05ca745b6108ca1aaa22ae1919037ae4f93aaf9a37ba42e0b835"}, - {file = "aiohttp-3.10.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ab2d6523575fc98896c80f49ac99e849c0b0e69cc80bf864eed6af2ae728a52b"}, - {file = "aiohttp-3.10.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f5d5d5401744dda50b943d8764508d0e60cc2d3305ac1e6420935861a9d544bc"}, - {file = "aiohttp-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de23085cf90911600ace512e909114385026b16324fa203cc74c81f21fd3276a"}, - {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4618f0d2bf523043866a9ff8458900d8eb0a6d4018f251dae98e5f1fb699f3a8"}, - {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21c1925541ca84f7b5e0df361c0a813a7d6a56d3b0030ebd4b220b8d232015f9"}, - {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:497a7d20caea8855c5429db3cdb829385467217d7feb86952a6107e033e031b9"}, - {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c887019dbcb4af58a091a45ccf376fffe800b5531b45c1efccda4bedf87747ea"}, - {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40d2d719c3c36a7a65ed26400e2b45b2d9ed7edf498f4df38b2ae130f25a0d01"}, - {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:57359785f27394a8bcab0da6dcd46706d087dfebf59a8d0ad2e64a4bc2f6f94f"}, - {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a961ee6f2cdd1a2be4735333ab284691180d40bad48f97bb598841bfcbfb94ec"}, - {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:fe3d79d6af839ffa46fdc5d2cf34295390894471e9875050eafa584cb781508d"}, - {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a281cba03bdaa341c70b7551b2256a88d45eead149f48b75a96d41128c240b3"}, - {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c6769d71bfb1ed60321363a9bc05e94dcf05e38295ef41d46ac08919e5b00d19"}, - {file = "aiohttp-3.10.8-cp312-cp312-win32.whl", hash = "sha256:a3081246bab4d419697ee45e555cef5cd1def7ac193dff6f50be761d2e44f194"}, - {file = "aiohttp-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:ab1546fc8e00676febc81c548a876c7bde32f881b8334b77f84719ab2c7d28dc"}, - {file = "aiohttp-3.10.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b1a012677b8e0a39e181e218de47d6741c5922202e3b0b65e412e2ce47c39337"}, - {file = "aiohttp-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2df786c96c57cd6b87156ba4c5f166af7b88f3fc05f9d592252fdc83d8615a3c"}, - {file = "aiohttp-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8885ca09d3a9317219c0831276bfe26984b17b2c37b7bf70dd478d17092a4772"}, - {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dbf252ac19860e0ab56cd480d2805498f47c5a2d04f5995d8d8a6effd04b48c"}, - {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2036479b6b94afaaca7d07b8a68dc0e67b0caf5f6293bb6a5a1825f5923000"}, - {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:365783e1b7c40b59ed4ce2b5a7491bae48f41cd2c30d52647a5b1ee8604c68ad"}, - {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:270e653b5a4b557476a1ed40e6b6ce82f331aab669620d7c95c658ef976c9c5e"}, - {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8960fabc20bfe4fafb941067cda8e23c8c17c98c121aa31c7bf0cdab11b07842"}, - {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f21e8f2abed9a44afc3d15bba22e0dfc71e5fa859bea916e42354c16102b036f"}, - {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fecd55e7418fabd297fd836e65cbd6371aa4035a264998a091bbf13f94d9c44d"}, - {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:badb51d851358cd7535b647bb67af4854b64f3c85f0d089c737f75504d5910ec"}, - {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e860985f30f3a015979e63e7ba1a391526cdac1b22b7b332579df7867848e255"}, - {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:71462f8eeca477cbc0c9700a9464e3f75f59068aed5e9d4a521a103692da72dc"}, - {file = "aiohttp-3.10.8-cp313-cp313-win32.whl", hash = "sha256:177126e971782769b34933e94fddd1089cef0fe6b82fee8a885e539f5b0f0c6a"}, - {file = "aiohttp-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:98a4eb60e27033dee9593814ca320ee8c199489fbc6b2699d0f710584db7feb7"}, - {file = "aiohttp-3.10.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ffef3d763e4c8fc97e740da5b4d0f080b78630a3914f4e772a122bbfa608c1db"}, - {file = "aiohttp-3.10.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:597128cb7bc5f068181b49a732961f46cb89f85686206289d6ccb5e27cb5fbe2"}, - {file = "aiohttp-3.10.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f23a6c1d09de5de89a33c9e9b229106cb70dcfdd55e81a3a3580eaadaa32bc92"}, - {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da57af0c54a302b7c655fa1ccd5b1817a53739afa39924ef1816e7b7c8a07ccb"}, - {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e7a6af57091056a79a35104d6ec29d98ec7f1fb7270ad9c6fff871b678d1ff8"}, - {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32710d6b3b6c09c60c794d84ca887a3a2890131c0b02b3cefdcc6709a2260a7c"}, - {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b91f4f62ad39a8a42d511d66269b46cb2fb7dea9564c21ab6c56a642d28bff5"}, - {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:471a8c47344b9cc309558b3fcc469bd2c12b49322b4b31eb386c4a2b2d44e44a"}, - {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc0e7f91705445d79beafba9bb3057dd50830e40fe5417017a76a214af54e122"}, - {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:85431c9131a9a0f65260dc7a65c800ca5eae78c4c9931618f18c8e0933a0e0c1"}, - {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:b91557ee0893da52794b25660d4f57bb519bcad8b7df301acd3898f7197c5d81"}, - {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:4954e6b06dd0be97e1a5751fc606be1f9edbdc553c5d9b57d72406a8fbd17f9d"}, - {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a087c84b4992160ffef7afd98ef24177c8bd4ad61c53607145a8377457385100"}, - {file = "aiohttp-3.10.8-cp38-cp38-win32.whl", hash = "sha256:e1f0f7b27171b2956a27bd8f899751d0866ddabdd05cbddf3520f945130a908c"}, - {file = "aiohttp-3.10.8-cp38-cp38-win_amd64.whl", hash = "sha256:c4916070e12ae140110aa598031876c1bf8676a36a750716ea0aa5bd694aa2e7"}, - {file = "aiohttp-3.10.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5284997e3d88d0dfb874c43e51ae8f4a6f4ca5b90dcf22995035187253d430db"}, - {file = "aiohttp-3.10.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9443d9ebc5167ce1fbb552faf2d666fb22ef5716a8750be67efd140a7733738c"}, - {file = "aiohttp-3.10.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b667e2a03407d79a76c618dc30cedebd48f082d85880d0c9c4ec2faa3e10f43e"}, - {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98fae99d5c2146f254b7806001498e6f9ffb0e330de55a35e72feb7cb2fa399b"}, - {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8296edd99d0dd9d0eb8b9e25b3b3506eef55c1854e9cc230f0b3f885f680410b"}, - {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ce46dfb49cfbf9e92818be4b761d4042230b1f0e05ffec0aad15b3eb162b905"}, - {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c38cfd355fd86c39b2d54651bd6ed7d63d4fe3b5553f364bae3306e2445f847"}, - {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:713dff3f87ceec3bde4f3f484861464e722cf7533f9fa6b824ec82bb5a9010a7"}, - {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:21a72f4a9c69a8567a0aca12042f12bba25d3139fd5dd8eeb9931f4d9e8599cd"}, - {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6d1ad868624f6cea77341ef2877ad4e71f7116834a6cd7ec36ec5c32f94ee6ae"}, - {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a78ba86d5a08207d1d1ad10b97aed6ea48b374b3f6831d02d0b06545ac0f181e"}, - {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:aff048793d05e1ce05b62e49dccf81fe52719a13f4861530706619506224992b"}, - {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d088ca05381fd409793571d8e34eca06daf41c8c50a05aeed358d2d340c7af81"}, - {file = "aiohttp-3.10.8-cp39-cp39-win32.whl", hash = "sha256:ee97c4e54f457c366e1f76fbbf3e8effee9de57dae671084a161c00f481106ce"}, - {file = "aiohttp-3.10.8-cp39-cp39-win_amd64.whl", hash = "sha256:d95ae4420669c871667aad92ba8cce6251d61d79c1a38504621094143f94a8b4"}, - {file = "aiohttp-3.10.8.tar.gz", hash = "sha256:21f8225f7dc187018e8433c9326be01477fb2810721e048b33ac49091b19fb4a"}, + {file = "aiohttp-3.10.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8b3fb28a9ac8f2558760d8e637dbf27aef1e8b7f1d221e8669a1074d1a266bb2"}, + {file = "aiohttp-3.10.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:91aa966858593f64c8a65cdefa3d6dc8fe3c2768b159da84c1ddbbb2c01ab4ef"}, + {file = "aiohttp-3.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:63649309da83277f06a15bbdc2a54fbe75efb92caa2c25bb57ca37762789c746"}, + {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3e7fabedb3fe06933f47f1538df7b3a8d78e13d7167195f51ca47ee12690373"}, + {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c070430fda1a550a1c3a4c2d7281d3b8cfc0c6715f616e40e3332201a253067"}, + {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:51d0a4901b27272ae54e42067bc4b9a90e619a690b4dc43ea5950eb3070afc32"}, + {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fec5fac7aea6c060f317f07494961236434928e6f4374e170ef50b3001e14581"}, + {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:172ad884bb61ad31ed7beed8be776eb17e7fb423f1c1be836d5cb357a096bf12"}, + {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d646fdd74c25bbdd4a055414f0fe32896c400f38ffbdfc78c68e62812a9e0257"}, + {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e86260b76786c28acf0b5fe31c8dca4c2add95098c709b11e8c35b424ebd4f5b"}, + {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d7cafc11d70fdd8801abfc2ff276744ae4cb39d8060b6b542c7e44e5f2cfc2"}, + {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:fc262c3df78c8ff6020c782d9ce02e4bcffe4900ad71c0ecdad59943cba54442"}, + {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:482c85cf3d429844396d939b22bc2a03849cb9ad33344689ad1c85697bcba33a"}, + {file = "aiohttp-3.10.9-cp310-cp310-win32.whl", hash = "sha256:aeebd3061f6f1747c011e1d0b0b5f04f9f54ad1a2ca183e687e7277bef2e0da2"}, + {file = "aiohttp-3.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:fa430b871220dc62572cef9c69b41e0d70fcb9d486a4a207a5de4c1f25d82593"}, + {file = "aiohttp-3.10.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:16e6a51d8bc96b77f04a6764b4ad03eeef43baa32014fce71e882bd71302c7e4"}, + {file = "aiohttp-3.10.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8bd9125dd0cc8ebd84bff2be64b10fdba7dc6fd7be431b5eaf67723557de3a31"}, + {file = "aiohttp-3.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dcf354661f54e6a49193d0b5653a1b011ba856e0b7a76bda2c33e4c6892f34ea"}, + {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42775de0ca04f90c10c5c46291535ec08e9bcc4756f1b48f02a0657febe89b10"}, + {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d1e4185c5d7187684d41ebb50c9aeaaaa06ca1875f4c57593071b0409d2444"}, + {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2695c61cf53a5d4345a43d689f37fc0f6d3a2dc520660aec27ec0f06288d1f9"}, + {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a3f063b41cc06e8d0b3fcbbfc9c05b7420f41287e0cd4f75ce0a1f3d80729e6"}, + {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d37f4718002863b82c6f391c8efd4d3a817da37030a29e2682a94d2716209de"}, + {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2746d8994ebca1bdc55a1e998feff4e94222da709623bb18f6e5cfec8ec01baf"}, + {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6f3c6648aa123bcd73d6f26607d59967b607b0da8ffcc27d418a4b59f4c98c7c"}, + {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:558b3d223fd631ad134d89adea876e7fdb4c93c849ef195049c063ada82b7d08"}, + {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:4e6cb75f8ddd9c2132d00bc03c9716add57f4beff1263463724f6398b813e7eb"}, + {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:608cecd8d58d285bfd52dbca5b6251ca8d6ea567022c8a0eaae03c2589cd9af9"}, + {file = "aiohttp-3.10.9-cp311-cp311-win32.whl", hash = "sha256:36d4fba838be5f083f5490ddd281813b44d69685db910907636bc5dca6322316"}, + {file = "aiohttp-3.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:8be1a65487bdfc285bd5e9baf3208c2132ca92a9b4020e9f27df1b16fab998a9"}, + {file = "aiohttp-3.10.9-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4fd16b30567c5b8e167923be6e027eeae0f20cf2b8a26b98a25115f28ad48ee0"}, + {file = "aiohttp-3.10.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:40ff5b7660f903dc587ed36ef08a88d46840182d9d4b5694e7607877ced698a1"}, + {file = "aiohttp-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4edc3fd701e2b9a0d605a7b23d3de4ad23137d23fc0dbab726aa71d92f11aaaf"}, + {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e525b69ee8a92c146ae5b4da9ecd15e518df4d40003b01b454ad694a27f498b5"}, + {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5002a02c17fcfd796d20bac719981d2fca9c006aac0797eb8f430a58e9d12431"}, + {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd4ceeae2fb8cabdd1b71c82bfdd39662473d3433ec95b962200e9e752fb70d0"}, + {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6e395c3d1f773cf0651cd3559e25182eb0c03a2777b53b4575d8adc1149c6e9"}, + {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbdb8def5268f3f9cd753a265756f49228a20ed14a480d151df727808b4531dd"}, + {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f82ace0ec57c94aaf5b0e118d4366cff5889097412c75aa14b4fd5fc0c44ee3e"}, + {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6ebdc3b3714afe1b134b3bbeb5f745eed3ecbcff92ab25d80e4ef299e83a5465"}, + {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f9ca09414003c0e96a735daa1f071f7d7ed06962ef4fa29ceb6c80d06696d900"}, + {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1298b854fd31d0567cbb916091be9d3278168064fca88e70b8468875ef9ff7e7"}, + {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60ad5b8a7452c0f5645c73d4dad7490afd6119d453d302cd5b72b678a85d6044"}, + {file = "aiohttp-3.10.9-cp312-cp312-win32.whl", hash = "sha256:1a0ee6c0d590c917f1b9629371fce5f3d3f22c317aa96fbdcce3260754d7ea21"}, + {file = "aiohttp-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:c46131c6112b534b178d4e002abe450a0a29840b61413ac25243f1291613806a"}, + {file = "aiohttp-3.10.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2bd9f3eac515c16c4360a6a00c38119333901b8590fe93c3257a9b536026594d"}, + {file = "aiohttp-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8cc0d13b4e3b1362d424ce3f4e8c79e1f7247a00d792823ffd640878abf28e56"}, + {file = "aiohttp-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba1a599255ad6a41022e261e31bc2f6f9355a419575b391f9655c4d9e5df5ff5"}, + {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:776e9f3c9b377fcf097c4a04b241b15691e6662d850168642ff976780609303c"}, + {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8debb45545ad95b58cc16c3c1cc19ad82cffcb106db12b437885dbee265f0ab5"}, + {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2555e4949c8d8782f18ef20e9d39730d2656e218a6f1a21a4c4c0b56546a02e"}, + {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c54dc329cd44f7f7883a9f4baaefe686e8b9662e2c6c184ea15cceee587d8d69"}, + {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e709d6ac598c5416f879bb1bae3fd751366120ac3fa235a01de763537385d036"}, + {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:17c272cfe7b07a5bb0c6ad3f234e0c336fb53f3bf17840f66bd77b5815ab3d16"}, + {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0c21c82df33b264216abffff9f8370f303dab65d8eee3767efbbd2734363f677"}, + {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9331dd34145ff105177855017920dde140b447049cd62bb589de320fd6ddd582"}, + {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ac3196952c673822ebed8871cf8802e17254fff2a2ed4835d9c045d9b88c5ec7"}, + {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2c33fa6e10bb7ed262e3ff03cc69d52869514f16558db0626a7c5c61dde3c29f"}, + {file = "aiohttp-3.10.9-cp313-cp313-win32.whl", hash = "sha256:a14e4b672c257a6b94fe934ee62666bacbc8e45b7876f9dd9502d0f0fe69db16"}, + {file = "aiohttp-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:a35ed3d03910785f7d9d6f5381f0c24002b2b888b298e6f941b2fc94c5055fcd"}, + {file = "aiohttp-3.10.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f392ef50e22c31fa49b5a46af7f983fa3f118f3eccb8522063bee8bfa6755f8"}, + {file = "aiohttp-3.10.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d1f5c9169e26db6a61276008582d945405b8316aae2bb198220466e68114a0f5"}, + {file = "aiohttp-3.10.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8d9d10d10ec27c0d46ddaecc3c5598c4db9ce4e6398ca872cdde0525765caa2f"}, + {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d97273a52d7f89a75b11ec386f786d3da7723d7efae3034b4dda79f6f093edc1"}, + {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d271f770b52e32236d945911b2082f9318e90ff835d45224fa9e28374303f729"}, + {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7003f33f5f7da1eb02f0446b0f8d2ccf57d253ca6c2e7a5732d25889da82b517"}, + {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6e00c8a92e7663ed2be6fcc08a2997ff06ce73c8080cd0df10cc0321a3168d7"}, + {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a61df62966ce6507aafab24e124e0c3a1cfbe23c59732987fc0fd0d71daa0b88"}, + {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:60555211a006d26e1a389222e3fab8cd379f28e0fbf7472ee55b16c6c529e3a6"}, + {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:d15a29424e96fad56dc2f3abed10a89c50c099f97d2416520c7a543e8fddf066"}, + {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:a19caae0d670771ea7854ca30df76f676eb47e0fd9b2ee4392d44708f272122d"}, + {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:99f9678bf0e2b1b695e8028fedac24ab6770937932eda695815d5a6618c37e04"}, + {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2914caa46054f3b5ff910468d686742ff8cff54b8a67319d75f5d5945fd0a13d"}, + {file = "aiohttp-3.10.9-cp38-cp38-win32.whl", hash = "sha256:0bc059ecbce835630e635879f5f480a742e130d9821fbe3d2f76610a6698ee25"}, + {file = "aiohttp-3.10.9-cp38-cp38-win_amd64.whl", hash = "sha256:e883b61b75ca6efc2541fcd52a5c8ccfe288b24d97e20ac08fdf343b8ac672ea"}, + {file = "aiohttp-3.10.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fcd546782d03181b0b1d20b43d612429a90a68779659ba8045114b867971ab71"}, + {file = "aiohttp-3.10.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:85711eec2d875cd88c7eb40e734c4ca6d9ae477d6f26bd2b5bb4f7f60e41b156"}, + {file = "aiohttp-3.10.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:02d1d6610588bcd743fae827bd6f2e47e0d09b346f230824b4c6fb85c6065f9c"}, + {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3668d0c2a4d23fb136a753eba42caa2c0abbd3d9c5c87ee150a716a16c6deec1"}, + {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7c071235a47d407b0e93aa6262b49422dbe48d7d8566e1158fecc91043dd948"}, + {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ac74e794e3aee92ae8f571bfeaa103a141e409863a100ab63a253b1c53b707eb"}, + {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bbf94d4a0447705b7775417ca8bb8086cc5482023a6e17cdc8f96d0b1b5aba6"}, + {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb0b2d5d51f96b6cc19e6ab46a7b684be23240426ae951dcdac9639ab111b45e"}, + {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e83dfefb4f7d285c2d6a07a22268344a97d61579b3e0dce482a5be0251d672ab"}, + {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f0a44bb40b6aaa4fb9a5c1ee07880570ecda2065433a96ccff409c9c20c1624a"}, + {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c2b627d3c8982691b06d89d31093cee158c30629fdfebe705a91814d49b554f8"}, + {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:03690541e4cc866eef79626cfa1ef4dd729c5c1408600c8cb9e12e1137eed6ab"}, + {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad3675c126f2a95bde637d162f8231cff6bc0bc9fbe31bd78075f9ff7921e322"}, + {file = "aiohttp-3.10.9-cp39-cp39-win32.whl", hash = "sha256:1321658f12b6caffafdc35cfba6c882cb014af86bef4e78c125e7e794dfb927b"}, + {file = "aiohttp-3.10.9-cp39-cp39-win_amd64.whl", hash = "sha256:9fdf5c839bf95fc67be5794c780419edb0dbef776edcfc6c2e5e2ffd5ee755fa"}, + {file = "aiohttp-3.10.9.tar.gz", hash = "sha256:143b0026a9dab07a05ad2dd9e46aa859bffdd6348ddc5967b42161168c24f857"}, ] [package.dependencies] @@ -156,13 +156,13 @@ frozenlist = ">=1.1.0" [[package]] name = "alembic" -version = "1.13.2" +version = "1.13.3" description = "A database migration tool for SQLAlchemy." optional = false python-versions = ">=3.8" files = [ - {file = "alembic-1.13.2-py3-none-any.whl", hash = "sha256:6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953"}, - {file = "alembic-1.13.2.tar.gz", hash = "sha256:1ff0ae32975f4fd96028c39ed9bb3c867fe3af956bd7bb37343b54c9fe7445ef"}, + {file = "alembic-1.13.3-py3-none-any.whl", hash = "sha256:908e905976d15235fae59c9ac42c4c5b75cfcefe3d27c0fbf7ae15a37715d80e"}, + {file = "alembic-1.13.3.tar.gz", hash = "sha256:203503117415561e203aa14541740643a611f641517f0209fcae63e9fa09f1a2"}, ] [package.dependencies] @@ -286,13 +286,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "build" -version = "1.2.2" +version = "1.2.2.post1" description = "A simple, correct Python build frontend" optional = false python-versions = ">=3.8" files = [ - {file = "build-1.2.2-py3-none-any.whl", hash = "sha256:277ccc71619d98afdd841a0e96ac9fe1593b823af481d3b0cea748e8894e0613"}, - {file = "build-1.2.2.tar.gz", hash = "sha256:119b2fb462adef986483438377a13b2f42064a2a3a4161f24a0cca698a07ac8c"}, + {file = "build-1.2.2.post1-py3-none-any.whl", hash = "sha256:1d61c0887fa860c01971625baae8bdd338e517b836a2f70dd1f7aa3a6b2fc5b5"}, + {file = "build-1.2.2.post1.tar.gz", hash = "sha256:b36993e92ca9375a219c99e606a122ff365a760a2d4bba0caa09bd5278b608b7"}, ] [package.dependencies] @@ -747,13 +747,13 @@ files = [ [[package]] name = "dask" -version = "2024.8.2" +version = "2024.9.1" description = "Parallel PyData with Task Scheduling" optional = false python-versions = ">=3.10" files = [ - {file = "dask-2024.8.2-py3-none-any.whl", hash = "sha256:484c317ee870140dbeccc759a91fd98821bba98d71a43eda7856fc9e859b03a1"}, - {file = "dask-2024.8.2.tar.gz", hash = "sha256:1d05e09166ac7927a54401e998aa1599e86aac666edbdaeb3096bf4b957029e0"}, + {file = "dask-2024.9.1-py3-none-any.whl", hash = "sha256:3757bb6c976f0436fef6bd6ad32f8983ee5ce7d8a738a1f643e208cd390ec794"}, + {file = "dask-2024.9.1.tar.gz", hash = "sha256:06eccc6a68d2882bcd9de24548fa96e8d0da7fbfff0baed3f3c2a526b73dfbb4"}, ] [package.dependencies] @@ -773,23 +773,23 @@ toolz = ">=0.10.0" array = ["numpy (>=1.24)"] complete = ["dask[array,dataframe,diagnostics,distributed]", "lz4 (>=4.3.2)", "pyarrow (>=14.0.1)"] dataframe = ["dask-expr (>=1.1,<1.2)", "dask[array]", "pandas (>=2.0)"] -diagnostics = ["bokeh (>=2.4.2)", "jinja2 (>=2.10.3)"] -distributed = ["distributed (==2024.8.2)"] +diagnostics = ["bokeh (>=3.1.0)", "jinja2 (>=2.10.3)"] +distributed = ["distributed (==2024.9.1)"] test = ["pandas[test]", "pre-commit", "pytest", "pytest-cov", "pytest-rerunfailures", "pytest-timeout", "pytest-xdist"] [[package]] name = "dask-expr" -version = "1.1.13" +version = "1.1.15" description = "High Level Expressions for Dask" optional = false python-versions = ">=3.10" files = [ - {file = "dask_expr-1.1.13-py3-none-any.whl", hash = "sha256:0a68a8d18cae72b172ee3afc3f33253f065becbf8fbf9f3ee43e665ec5499112"}, - {file = "dask_expr-1.1.13.tar.gz", hash = "sha256:7e00b2c6538e6c633e22db262abfe3aeb6dc65c1de4a8eadcb2bbf44ad8729da"}, + {file = "dask_expr-1.1.15-py3-none-any.whl", hash = "sha256:0712e8a3a2a31947fc8e37152d8654aaa303382ec0c61a8d0fc93b0349f772f9"}, + {file = "dask_expr-1.1.15.tar.gz", hash = "sha256:d12fd1b6cd49aa9d5b1e187b243117eb58b1f9dda555b26a3bd31be10a27e236"}, ] [package.dependencies] -dask = "2024.8.2" +dask = "2024.9.1" pandas = ">=2" pyarrow = ">=14.0.1" @@ -932,18 +932,18 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.16.0" +version = "3.16.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.16.0-py3-none-any.whl", hash = "sha256:f6ed4c963184f4c84dd5557ce8fece759a3724b37b80c6c4f20a2f63a4dc6609"}, - {file = "filelock-3.16.0.tar.gz", hash = "sha256:81de9eb8453c769b63369f87f11131a7ab04e367f8d97ad39dc230daa07e3bec"}, + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, ] [package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.1.1)", "pytest (>=8.3.2)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.3)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] typing = ["typing-extensions (>=4.12.2)"] [[package]] @@ -1089,77 +1089,84 @@ tqdm = ["tqdm"] [[package]] name = "greenlet" -version = "3.1.0" +version = "3.1.1" description = "Lightweight in-process concurrent programming" optional = false python-versions = ">=3.7" files = [ - {file = "greenlet-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a814dc3100e8a046ff48faeaa909e80cdb358411a3d6dd5293158425c684eda8"}, - {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a771dc64fa44ebe58d65768d869fcfb9060169d203446c1d446e844b62bdfdca"}, - {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0e49a65d25d7350cca2da15aac31b6f67a43d867448babf997fe83c7505f57bc"}, - {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd8518eade968bc52262d8c46727cfc0826ff4d552cf0430b8d65aaf50bb91d"}, - {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76dc19e660baea5c38e949455c1181bc018893f25372d10ffe24b3ed7341fb25"}, - {file = "greenlet-3.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c0a5b1c22c82831f56f2f7ad9bbe4948879762fe0d59833a4a71f16e5fa0f682"}, - {file = "greenlet-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2651dfb006f391bcb240635079a68a261b227a10a08af6349cba834a2141efa1"}, - {file = "greenlet-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3e7e6ef1737a819819b1163116ad4b48d06cfdd40352d813bb14436024fcda99"}, - {file = "greenlet-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:ffb08f2a1e59d38c7b8b9ac8083c9c8b9875f0955b1e9b9b9a965607a51f8e54"}, - {file = "greenlet-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9730929375021ec90f6447bff4f7f5508faef1c02f399a1953870cdb78e0c345"}, - {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:713d450cf8e61854de9420fb7eea8ad228df4e27e7d4ed465de98c955d2b3fa6"}, - {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c3446937be153718250fe421da548f973124189f18fe4575a0510b5c928f0cc"}, - {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ddc7bcedeb47187be74208bc652d63d6b20cb24f4e596bd356092d8000da6d6"}, - {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44151d7b81b9391ed759a2f2865bbe623ef00d648fed59363be2bbbd5154656f"}, - {file = "greenlet-3.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cea1cca3be76c9483282dc7760ea1cc08a6ecec1f0b6ca0a94ea0d17432da19"}, - {file = "greenlet-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:619935a44f414274a2c08c9e74611965650b730eb4efe4b2270f91df5e4adf9a"}, - {file = "greenlet-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:221169d31cada333a0c7fd087b957c8f431c1dba202c3a58cf5a3583ed973e9b"}, - {file = "greenlet-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:01059afb9b178606b4b6e92c3e710ea1635597c3537e44da69f4531e111dd5e9"}, - {file = "greenlet-3.1.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:24fc216ec7c8be9becba8b64a98a78f9cd057fd2dc75ae952ca94ed8a893bf27"}, - {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d07c28b85b350564bdff9f51c1c5007dfb2f389385d1bc23288de51134ca303"}, - {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:243a223c96a4246f8a30ea470c440fe9db1f5e444941ee3c3cd79df119b8eebf"}, - {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26811df4dc81271033a7836bc20d12cd30938e6bd2e9437f56fa03da81b0f8fc"}, - {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9d86401550b09a55410f32ceb5fe7efcd998bd2dad9e82521713cb148a4a15f"}, - {file = "greenlet-3.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:26d9c1c4f1748ccac0bae1dbb465fb1a795a75aba8af8ca871503019f4285e2a"}, - {file = "greenlet-3.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:cd468ec62257bb4544989402b19d795d2305eccb06cde5da0eb739b63dc04665"}, - {file = "greenlet-3.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a53dfe8f82b715319e9953330fa5c8708b610d48b5c59f1316337302af5c0811"}, - {file = "greenlet-3.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:28fe80a3eb673b2d5cc3b12eea468a5e5f4603c26aa34d88bf61bba82ceb2f9b"}, - {file = "greenlet-3.1.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:76b3e3976d2a452cba7aa9e453498ac72240d43030fdc6d538a72b87eaff52fd"}, - {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655b21ffd37a96b1e78cc48bf254f5ea4b5b85efaf9e9e2a526b3c9309d660ca"}, - {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6f4c2027689093775fd58ca2388d58789009116844432d920e9147f91acbe64"}, - {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76e5064fd8e94c3f74d9fd69b02d99e3cdb8fc286ed49a1f10b256e59d0d3a0b"}, - {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a4bf607f690f7987ab3291406e012cd8591a4f77aa54f29b890f9c331e84989"}, - {file = "greenlet-3.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:037d9ac99540ace9424cb9ea89f0accfaff4316f149520b4ae293eebc5bded17"}, - {file = "greenlet-3.1.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:90b5bbf05fe3d3ef697103850c2ce3374558f6fe40fd57c9fac1bf14903f50a5"}, - {file = "greenlet-3.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:726377bd60081172685c0ff46afbc600d064f01053190e4450857483c4d44484"}, - {file = "greenlet-3.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:d46d5069e2eeda111d6f71970e341f4bd9aeeee92074e649ae263b834286ecc0"}, - {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81eeec4403a7d7684b5812a8aaa626fa23b7d0848edb3a28d2eb3220daddcbd0"}, - {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a3dae7492d16e85ea6045fd11cb8e782b63eac8c8d520c3a92c02ac4573b0a6"}, - {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b5ea3664eed571779403858d7cd0a9b0ebf50d57d2cdeafc7748e09ef8cd81a"}, - {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22f4e26400f7f48faef2d69c20dc055a1f3043d330923f9abe08ea0aecc44df"}, - {file = "greenlet-3.1.0-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13ff8c8e54a10472ce3b2a2da007f915175192f18e6495bad50486e87c7f6637"}, - {file = "greenlet-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f9671e7282d8c6fcabc32c0fb8d7c0ea8894ae85cee89c9aadc2d7129e1a9954"}, - {file = "greenlet-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:184258372ae9e1e9bddce6f187967f2e08ecd16906557c4320e3ba88a93438c3"}, - {file = "greenlet-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:a0409bc18a9f85321399c29baf93545152d74a49d92f2f55302f122007cfda00"}, - {file = "greenlet-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9eb4a1d7399b9f3c7ac68ae6baa6be5f9195d1d08c9ddc45ad559aa6b556bce6"}, - {file = "greenlet-3.1.0-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:a8870983af660798dc1b529e1fd6f1cefd94e45135a32e58bd70edd694540f33"}, - {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfcfb73aed40f550a57ea904629bdaf2e562c68fa1164fa4588e752af6efdc3f"}, - {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9482c2ed414781c0af0b35d9d575226da6b728bd1a720668fa05837184965b7"}, - {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d58ec349e0c2c0bc6669bf2cd4982d2f93bf067860d23a0ea1fe677b0f0b1e09"}, - {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd65695a8df1233309b701dec2539cc4b11e97d4fcc0f4185b4a12ce54db0491"}, - {file = "greenlet-3.1.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:665b21e95bc0fce5cab03b2e1d90ba9c66c510f1bb5fdc864f3a377d0f553f6b"}, - {file = "greenlet-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3c59a06c2c28a81a026ff11fbf012081ea34fb9b7052f2ed0366e14896f0a1d"}, - {file = "greenlet-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415b9494ff6240b09af06b91a375731febe0090218e2898d2b85f9b92abcda0"}, - {file = "greenlet-3.1.0-cp38-cp38-win32.whl", hash = "sha256:1544b8dd090b494c55e60c4ff46e238be44fdc472d2589e943c241e0169bcea2"}, - {file = "greenlet-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:7f346d24d74c00b6730440f5eb8ec3fe5774ca8d1c9574e8e57c8671bb51b910"}, - {file = "greenlet-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:db1b3ccb93488328c74e97ff888604a8b95ae4f35f4f56677ca57a4fc3a4220b"}, - {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44cd313629ded43bb3b98737bba2f3e2c2c8679b55ea29ed73daea6b755fe8e7"}, - {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fad7a051e07f64e297e6e8399b4d6a3bdcad3d7297409e9a06ef8cbccff4f501"}, - {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3967dcc1cd2ea61b08b0b276659242cbce5caca39e7cbc02408222fb9e6ff39"}, - {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d45b75b0f3fd8d99f62eb7908cfa6d727b7ed190737dec7fe46d993da550b81a"}, - {file = "greenlet-3.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2d004db911ed7b6218ec5c5bfe4cf70ae8aa2223dffbb5b3c69e342bb253cb28"}, - {file = "greenlet-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9505a0c8579899057cbefd4ec34d865ab99852baf1ff33a9481eb3924e2da0b"}, - {file = "greenlet-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fd6e94593f6f9714dbad1aaba734b5ec04593374fa6638df61592055868f8b8"}, - {file = "greenlet-3.1.0-cp39-cp39-win32.whl", hash = "sha256:d0dd943282231480aad5f50f89bdf26690c995e8ff555f26d8a5b9887b559bcc"}, - {file = "greenlet-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:ac0adfdb3a21dc2a24ed728b61e72440d297d0fd3a577389df566651fcd08f97"}, - {file = "greenlet-3.1.0.tar.gz", hash = "sha256:b395121e9bbe8d02a750886f108d540abe66075e61e22f7353d9acb0b81be0f0"}, + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, ] [package.extras] @@ -1182,13 +1189,13 @@ idna = ">=2.5" [[package]] name = "identify" -version = "2.6.0" +version = "2.6.1" description = "File identification library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.6.0-py2.py3-none-any.whl", hash = "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"}, - {file = "identify-2.6.0.tar.gz", hash = "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf"}, + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, ] [package.extras] @@ -1196,15 +1203,18 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.8" +version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" files = [ - {file = "idna-3.8-py3-none-any.whl", hash = "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac"}, - {file = "idna-3.8.tar.gz", hash = "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"}, + {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]] name = "importlib-metadata" version = "8.5.0" @@ -1305,20 +1315,19 @@ files = [ [[package]] name = "itemloaders" -version = "1.3.1" +version = "1.3.2" description = "Base library for scrapy's ItemLoader" optional = false python-versions = ">=3.8" files = [ - {file = "itemloaders-1.3.1-py3-none-any.whl", hash = "sha256:70be155cd050b8c532e1054f0241dcc4711bd15e62c0a0174963d1c110d9f0fa"}, - {file = "itemloaders-1.3.1.tar.gz", hash = "sha256:81571c941cc189bb55e211f0cd3476fde7511239d3bf7ff91eb6ed68a1b0ec10"}, + {file = "itemloaders-1.3.2-py3-none-any.whl", hash = "sha256:6a91465f721c7bad8b07e1fbb0560cf99f4845156ed9f7bf2ca424336c6a677c"}, + {file = "itemloaders-1.3.2.tar.gz", hash = "sha256:4faf5b3abe83bf014476e3fd9ccf66867282971d9f1d4e96d9a61b60c3786770"}, ] [package.dependencies] itemadapter = ">=0.1.0" jmespath = ">=0.9.5" parsel = ">=1.5.0" -w3lib = ">=1.17.0" [[package]] name = "jaraco-classes" @@ -1923,47 +1932,64 @@ files = [ [[package]] name = "numpy" -version = "1.26.4" +version = "2.1.2" description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + {file = "numpy-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:30d53720b726ec36a7f88dc873f0eec8447fbc93d93a8f079dfac2629598d6ee"}, + {file = "numpy-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d3ca0a72dd8846eb6f7dfe8f19088060fcb76931ed592d29128e0219652884"}, + {file = "numpy-2.1.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:fc44e3c68ff00fd991b59092a54350e6e4911152682b4782f68070985aa9e648"}, + {file = "numpy-2.1.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:7c1c60328bd964b53f8b835df69ae8198659e2b9302ff9ebb7de4e5a5994db3d"}, + {file = "numpy-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cdb606a7478f9ad91c6283e238544451e3a95f30fb5467fbf715964341a8a86"}, + {file = "numpy-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d666cb72687559689e9906197e3bec7b736764df6a2e58ee265e360663e9baf7"}, + {file = "numpy-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c6eef7a2dbd0abfb0d9eaf78b73017dbfd0b54051102ff4e6a7b2980d5ac1a03"}, + {file = "numpy-2.1.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:12edb90831ff481f7ef5f6bc6431a9d74dc0e5ff401559a71e5e4611d4f2d466"}, + {file = "numpy-2.1.2-cp310-cp310-win32.whl", hash = "sha256:a65acfdb9c6ebb8368490dbafe83c03c7e277b37e6857f0caeadbbc56e12f4fb"}, + {file = "numpy-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:860ec6e63e2c5c2ee5e9121808145c7bf86c96cca9ad396c0bd3e0f2798ccbe2"}, + {file = "numpy-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b42a1a511c81cc78cbc4539675713bbcf9d9c3913386243ceff0e9429ca892fe"}, + {file = "numpy-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:faa88bc527d0f097abdc2c663cddf37c05a1c2f113716601555249805cf573f1"}, + {file = "numpy-2.1.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:c82af4b2ddd2ee72d1fc0c6695048d457e00b3582ccde72d8a1c991b808bb20f"}, + {file = "numpy-2.1.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:13602b3174432a35b16c4cfb5de9a12d229727c3dd47a6ce35111f2ebdf66ff4"}, + {file = "numpy-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ebec5fd716c5a5b3d8dfcc439be82a8407b7b24b230d0ad28a81b61c2f4659a"}, + {file = "numpy-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2b49c3c0804e8ecb05d59af8386ec2f74877f7ca8fd9c1e00be2672e4d399b1"}, + {file = "numpy-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2cbba4b30bf31ddbe97f1c7205ef976909a93a66bb1583e983adbd155ba72ac2"}, + {file = "numpy-2.1.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8e00ea6fc82e8a804433d3e9cedaa1051a1422cb6e443011590c14d2dea59146"}, + {file = "numpy-2.1.2-cp311-cp311-win32.whl", hash = "sha256:5006b13a06e0b38d561fab5ccc37581f23c9511879be7693bd33c7cd15ca227c"}, + {file = "numpy-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:f1eb068ead09f4994dec71c24b2844f1e4e4e013b9629f812f292f04bd1510d9"}, + {file = "numpy-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7bf0a4f9f15b32b5ba53147369e94296f5fffb783db5aacc1be15b4bf72f43b"}, + {file = "numpy-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b1d0fcae4f0949f215d4632be684a539859b295e2d0cb14f78ec231915d644db"}, + {file = "numpy-2.1.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f751ed0a2f250541e19dfca9f1eafa31a392c71c832b6bb9e113b10d050cb0f1"}, + {file = "numpy-2.1.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:bd33f82e95ba7ad632bc57837ee99dba3d7e006536200c4e9124089e1bf42426"}, + {file = "numpy-2.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b8cde4f11f0a975d1fd59373b32e2f5a562ade7cde4f85b7137f3de8fbb29a0"}, + {file = "numpy-2.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d95f286b8244b3649b477ac066c6906fbb2905f8ac19b170e2175d3d799f4df"}, + {file = "numpy-2.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ab4754d432e3ac42d33a269c8567413bdb541689b02d93788af4131018cbf366"}, + {file = "numpy-2.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e585c8ae871fd38ac50598f4763d73ec5497b0de9a0ab4ef5b69f01c6a046142"}, + {file = "numpy-2.1.2-cp312-cp312-win32.whl", hash = "sha256:9c6c754df29ce6a89ed23afb25550d1c2d5fdb9901d9c67a16e0b16eaf7e2550"}, + {file = "numpy-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:456e3b11cb79ac9946c822a56346ec80275eaf2950314b249b512896c0d2505e"}, + {file = "numpy-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a84498e0d0a1174f2b3ed769b67b656aa5460c92c9554039e11f20a05650f00d"}, + {file = "numpy-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4d6ec0d4222e8ffdab1744da2560f07856421b367928026fb540e1945f2eeeaf"}, + {file = "numpy-2.1.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:259ec80d54999cc34cd1eb8ded513cb053c3bf4829152a2e00de2371bd406f5e"}, + {file = "numpy-2.1.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:675c741d4739af2dc20cd6c6a5c4b7355c728167845e3c6b0e824e4e5d36a6c3"}, + {file = "numpy-2.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b2d4e667895cc55e3ff2b56077e4c8a5604361fc21a042845ea3ad67465aa8"}, + {file = "numpy-2.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43cca367bf94a14aca50b89e9bc2061683116cfe864e56740e083392f533ce7a"}, + {file = "numpy-2.1.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:76322dcdb16fccf2ac56f99048af32259dcc488d9b7e25b51e5eca5147a3fb98"}, + {file = "numpy-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:32e16a03138cabe0cb28e1007ee82264296ac0983714094380b408097a418cfe"}, + {file = "numpy-2.1.2-cp313-cp313-win32.whl", hash = "sha256:242b39d00e4944431a3cd2db2f5377e15b5785920421993770cddb89992c3f3a"}, + {file = "numpy-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:f2ded8d9b6f68cc26f8425eda5d3877b47343e68ca23d0d0846f4d312ecaa445"}, + {file = "numpy-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2ffef621c14ebb0188a8633348504a35c13680d6da93ab5cb86f4e54b7e922b5"}, + {file = "numpy-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ad369ed238b1959dfbade9018a740fb9392c5ac4f9b5173f420bd4f37ba1f7a0"}, + {file = "numpy-2.1.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d82075752f40c0ddf57e6e02673a17f6cb0f8eb3f587f63ca1eaab5594da5b17"}, + {file = "numpy-2.1.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:1600068c262af1ca9580a527d43dc9d959b0b1d8e56f8a05d830eea39b7c8af6"}, + {file = "numpy-2.1.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a26ae94658d3ba3781d5e103ac07a876b3e9b29db53f68ed7df432fd033358a8"}, + {file = "numpy-2.1.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13311c2db4c5f7609b462bc0f43d3c465424d25c626d95040f073e30f7570e35"}, + {file = "numpy-2.1.2-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:2abbf905a0b568706391ec6fa15161fad0fb5d8b68d73c461b3c1bab6064dd62"}, + {file = "numpy-2.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ef444c57d664d35cac4e18c298c47d7b504c66b17c2ea91312e979fcfbdfb08a"}, + {file = "numpy-2.1.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bdd407c40483463898b84490770199d5714dcc9dd9b792f6c6caccc523c00952"}, + {file = "numpy-2.1.2-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:da65fb46d4cbb75cb417cddf6ba5e7582eb7bb0b47db4b99c9fe5787ce5d91f5"}, + {file = "numpy-2.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c193d0b0238638e6fc5f10f1b074a6993cb13b0b431f64079a509d63d3aa8b7"}, + {file = "numpy-2.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a7d80b2e904faa63068ead63107189164ca443b42dd1930299e0d1cb041cec2e"}, + {file = "numpy-2.1.2.tar.gz", hash = "sha256:13532a088217fa624c99b843eeb54640de23b3414b14aa66d023805eb731066c"}, ] [[package]] @@ -2169,13 +2195,13 @@ testing = ["pytest", "pytest-cov", "wheel"] [[package]] name = "platformdirs" -version = "4.3.2" +version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.3.2-py3-none-any.whl", hash = "sha256:eb1c8582560b34ed4ba105009a4badf7f6f85768b30126f351328507b2beb617"}, - {file = "platformdirs-4.3.2.tar.gz", hash = "sha256:9e5e27a08aa095dd127b9f2e764d74254f482fef22b0970773bfba79d091ab8c"}, + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, ] [package.extras] @@ -2306,22 +2332,22 @@ files = [ [[package]] name = "protobuf" -version = "5.28.1" +version = "5.28.2" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-5.28.1-cp310-abi3-win32.whl", hash = "sha256:fc063acaf7a3d9ca13146fefb5b42ac94ab943ec6e978f543cd5637da2d57957"}, - {file = "protobuf-5.28.1-cp310-abi3-win_amd64.whl", hash = "sha256:4c7f5cb38c640919791c9f74ea80c5b82314c69a8409ea36f2599617d03989af"}, - {file = "protobuf-5.28.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4304e4fceb823d91699e924a1fdf95cde0e066f3b1c28edb665bda762ecde10f"}, - {file = "protobuf-5.28.1-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:0dfd86d2b5edf03d91ec2a7c15b4e950258150f14f9af5f51c17fa224ee1931f"}, - {file = "protobuf-5.28.1-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:51f09caab818707ab91cf09cc5c156026599cf05a4520779ccbf53c1b352fb25"}, - {file = "protobuf-5.28.1-cp38-cp38-win32.whl", hash = "sha256:1b04bde117a10ff9d906841a89ec326686c48ececeb65690f15b8cabe7149495"}, - {file = "protobuf-5.28.1-cp38-cp38-win_amd64.whl", hash = "sha256:cabfe43044ee319ad6832b2fda332646f9ef1636b0130186a3ae0a52fc264bb4"}, - {file = "protobuf-5.28.1-cp39-cp39-win32.whl", hash = "sha256:4b4b9a0562a35773ff47a3df823177ab71a1f5eb1ff56d8f842b7432ecfd7fd2"}, - {file = "protobuf-5.28.1-cp39-cp39-win_amd64.whl", hash = "sha256:f24e5d70e6af8ee9672ff605d5503491635f63d5db2fffb6472be78ba62efd8f"}, - {file = "protobuf-5.28.1-py3-none-any.whl", hash = "sha256:c529535e5c0effcf417682563719e5d8ac8d2b93de07a56108b4c2d436d7a29a"}, - {file = "protobuf-5.28.1.tar.gz", hash = "sha256:42597e938f83bb7f3e4b35f03aa45208d49ae8d5bcb4bc10b9fc825e0ab5e423"}, + {file = "protobuf-5.28.2-cp310-abi3-win32.whl", hash = "sha256:eeea10f3dc0ac7e6b4933d32db20662902b4ab81bf28df12218aa389e9c2102d"}, + {file = "protobuf-5.28.2-cp310-abi3-win_amd64.whl", hash = "sha256:2c69461a7fcc8e24be697624c09a839976d82ae75062b11a0972e41fd2cd9132"}, + {file = "protobuf-5.28.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a8b9403fc70764b08d2f593ce44f1d2920c5077bf7d311fefec999f8c40f78b7"}, + {file = "protobuf-5.28.2-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:35cfcb15f213449af7ff6198d6eb5f739c37d7e4f1c09b5d0641babf2cc0c68f"}, + {file = "protobuf-5.28.2-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:5e8a95246d581eef20471b5d5ba010d55f66740942b95ba9b872d918c459452f"}, + {file = "protobuf-5.28.2-cp38-cp38-win32.whl", hash = "sha256:87317e9bcda04a32f2ee82089a204d3a2f0d3c8aeed16568c7daf4756e4f1fe0"}, + {file = "protobuf-5.28.2-cp38-cp38-win_amd64.whl", hash = "sha256:c0ea0123dac3399a2eeb1a1443d82b7afc9ff40241433296769f7da42d142ec3"}, + {file = "protobuf-5.28.2-cp39-cp39-win32.whl", hash = "sha256:ca53faf29896c526863366a52a8f4d88e69cd04ec9571ed6082fa117fac3ab36"}, + {file = "protobuf-5.28.2-cp39-cp39-win_amd64.whl", hash = "sha256:8ddc60bf374785fb7cb12510b267f59067fa10087325b8e1855b898a0d81d276"}, + {file = "protobuf-5.28.2-py3-none-any.whl", hash = "sha256:52235802093bd8a2811abbe8bf0ab9c5f54cca0a751fdd3f6ac2a21438bffece"}, + {file = "protobuf-5.28.2.tar.gz", hash = "sha256:59379674ff119717404f7454647913787034f03fe7049cbef1d74a97bb4593f0"}, ] [[package]] @@ -2545,19 +2571,22 @@ files = [ [[package]] name = "pydantic" -version = "2.9.1" +version = "2.9.2" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.9.1-py3-none-any.whl", hash = "sha256:7aff4db5fdf3cf573d4b3c30926a510a10e19a0774d38fc4967f78beb6deb612"}, - {file = "pydantic-2.9.1.tar.gz", hash = "sha256:1363c7d975c7036df0db2b4a61f2e062fbc0aa5ab5f2772e0ffc7191a4f4bce2"}, + {file = "pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12"}, + {file = "pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f"}, ] [package.dependencies] annotated-types = ">=0.6.0" -pydantic-core = "2.23.3" -typing-extensions = {version = ">=4.6.1", markers = "python_version < \"3.13\""} +pydantic-core = "2.23.4" +typing-extensions = [ + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, +] [package.extras] email = ["email-validator (>=2.0.0)"] @@ -2565,100 +2594,100 @@ timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.23.3" +version = "2.23.4" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.23.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7f10a5d1b9281392f1bf507d16ac720e78285dfd635b05737c3911637601bae6"}, - {file = "pydantic_core-2.23.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c09a7885dd33ee8c65266e5aa7fb7e2f23d49d8043f089989726391dd7350c5"}, - {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6470b5a1ec4d1c2e9afe928c6cb37eb33381cab99292a708b8cb9aa89e62429b"}, - {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9172d2088e27d9a185ea0a6c8cebe227a9139fd90295221d7d495944d2367700"}, - {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86fc6c762ca7ac8fbbdff80d61b2c59fb6b7d144aa46e2d54d9e1b7b0e780e01"}, - {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0cb80fd5c2df4898693aa841425ea1727b1b6d2167448253077d2a49003e0ed"}, - {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03667cec5daf43ac4995cefa8aaf58f99de036204a37b889c24a80927b629cec"}, - {file = "pydantic_core-2.23.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:047531242f8e9c2db733599f1c612925de095e93c9cc0e599e96cf536aaf56ba"}, - {file = "pydantic_core-2.23.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5499798317fff7f25dbef9347f4451b91ac2a4330c6669821c8202fd354c7bee"}, - {file = "pydantic_core-2.23.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bbb5e45eab7624440516ee3722a3044b83fff4c0372efe183fd6ba678ff681fe"}, - {file = "pydantic_core-2.23.3-cp310-none-win32.whl", hash = "sha256:8b5b3ed73abb147704a6e9f556d8c5cb078f8c095be4588e669d315e0d11893b"}, - {file = "pydantic_core-2.23.3-cp310-none-win_amd64.whl", hash = "sha256:2b603cde285322758a0279995b5796d64b63060bfbe214b50a3ca23b5cee3e83"}, - {file = "pydantic_core-2.23.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c889fd87e1f1bbeb877c2ee56b63bb297de4636661cc9bbfcf4b34e5e925bc27"}, - {file = "pydantic_core-2.23.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea85bda3189fb27503af4c45273735bcde3dd31c1ab17d11f37b04877859ef45"}, - {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7f7f72f721223f33d3dc98a791666ebc6a91fa023ce63733709f4894a7dc611"}, - {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b2b55b0448e9da68f56b696f313949cda1039e8ec7b5d294285335b53104b61"}, - {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c24574c7e92e2c56379706b9a3f07c1e0c7f2f87a41b6ee86653100c4ce343e5"}, - {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2b05e6ccbee333a8f4b8f4d7c244fdb7a979e90977ad9c51ea31261e2085ce0"}, - {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2c409ce1c219c091e47cb03feb3c4ed8c2b8e004efc940da0166aaee8f9d6c8"}, - {file = "pydantic_core-2.23.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d965e8b325f443ed3196db890d85dfebbb09f7384486a77461347f4adb1fa7f8"}, - {file = "pydantic_core-2.23.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f56af3a420fb1ffaf43ece3ea09c2d27c444e7c40dcb7c6e7cf57aae764f2b48"}, - {file = "pydantic_core-2.23.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b01a078dd4f9a52494370af21aa52964e0a96d4862ac64ff7cea06e0f12d2c5"}, - {file = "pydantic_core-2.23.3-cp311-none-win32.whl", hash = "sha256:560e32f0df04ac69b3dd818f71339983f6d1f70eb99d4d1f8e9705fb6c34a5c1"}, - {file = "pydantic_core-2.23.3-cp311-none-win_amd64.whl", hash = "sha256:c744fa100fdea0d000d8bcddee95213d2de2e95b9c12be083370b2072333a0fa"}, - {file = "pydantic_core-2.23.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e0ec50663feedf64d21bad0809f5857bac1ce91deded203efc4a84b31b2e4305"}, - {file = "pydantic_core-2.23.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db6e6afcb95edbe6b357786684b71008499836e91f2a4a1e55b840955b341dbb"}, - {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98ccd69edcf49f0875d86942f4418a4e83eb3047f20eb897bffa62a5d419c8fa"}, - {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a678c1ac5c5ec5685af0133262103defb427114e62eafeda12f1357a12140162"}, - {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01491d8b4d8db9f3391d93b0df60701e644ff0894352947f31fff3e52bd5c801"}, - {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fcf31facf2796a2d3b7fe338fe8640aa0166e4e55b4cb108dbfd1058049bf4cb"}, - {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7200fd561fb3be06827340da066df4311d0b6b8eb0c2116a110be5245dceb326"}, - {file = "pydantic_core-2.23.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc1636770a809dee2bd44dd74b89cc80eb41172bcad8af75dd0bc182c2666d4c"}, - {file = "pydantic_core-2.23.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:67a5def279309f2e23014b608c4150b0c2d323bd7bccd27ff07b001c12c2415c"}, - {file = "pydantic_core-2.23.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:748bdf985014c6dd3e1e4cc3db90f1c3ecc7246ff5a3cd4ddab20c768b2f1dab"}, - {file = "pydantic_core-2.23.3-cp312-none-win32.whl", hash = "sha256:255ec6dcb899c115f1e2a64bc9ebc24cc0e3ab097775755244f77360d1f3c06c"}, - {file = "pydantic_core-2.23.3-cp312-none-win_amd64.whl", hash = "sha256:40b8441be16c1e940abebed83cd006ddb9e3737a279e339dbd6d31578b802f7b"}, - {file = "pydantic_core-2.23.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6daaf5b1ba1369a22c8b050b643250e3e5efc6a78366d323294aee54953a4d5f"}, - {file = "pydantic_core-2.23.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d015e63b985a78a3d4ccffd3bdf22b7c20b3bbd4b8227809b3e8e75bc37f9cb2"}, - {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3fc572d9b5b5cfe13f8e8a6e26271d5d13f80173724b738557a8c7f3a8a3791"}, - {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f6bd91345b5163ee7448bee201ed7dd601ca24f43f439109b0212e296eb5b423"}, - {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc379c73fd66606628b866f661e8785088afe2adaba78e6bbe80796baf708a63"}, - {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbdce4b47592f9e296e19ac31667daed8753c8367ebb34b9a9bd89dacaa299c9"}, - {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc3cf31edf405a161a0adad83246568647c54404739b614b1ff43dad2b02e6d5"}, - {file = "pydantic_core-2.23.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e22b477bf90db71c156f89a55bfe4d25177b81fce4aa09294d9e805eec13855"}, - {file = "pydantic_core-2.23.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0a0137ddf462575d9bce863c4c95bac3493ba8e22f8c28ca94634b4a1d3e2bb4"}, - {file = "pydantic_core-2.23.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:203171e48946c3164fe7691fc349c79241ff8f28306abd4cad5f4f75ed80bc8d"}, - {file = "pydantic_core-2.23.3-cp313-none-win32.whl", hash = "sha256:76bdab0de4acb3f119c2a4bff740e0c7dc2e6de7692774620f7452ce11ca76c8"}, - {file = "pydantic_core-2.23.3-cp313-none-win_amd64.whl", hash = "sha256:37ba321ac2a46100c578a92e9a6aa33afe9ec99ffa084424291d84e456f490c1"}, - {file = "pydantic_core-2.23.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d063c6b9fed7d992bcbebfc9133f4c24b7a7f215d6b102f3e082b1117cddb72c"}, - {file = "pydantic_core-2.23.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6cb968da9a0746a0cf521b2b5ef25fc5a0bee9b9a1a8214e0a1cfaea5be7e8a4"}, - {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edbefe079a520c5984e30e1f1f29325054b59534729c25b874a16a5048028d16"}, - {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cbaaf2ef20d282659093913da9d402108203f7cb5955020bd8d1ae5a2325d1c4"}, - {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb539d7e5dc4aac345846f290cf504d2fd3c1be26ac4e8b5e4c2b688069ff4cf"}, - {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e6f33503c5495059148cc486867e1d24ca35df5fc064686e631e314d959ad5b"}, - {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04b07490bc2f6f2717b10c3969e1b830f5720b632f8ae2f3b8b1542394c47a8e"}, - {file = "pydantic_core-2.23.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:03795b9e8a5d7fda05f3873efc3f59105e2dcff14231680296b87b80bb327295"}, - {file = "pydantic_core-2.23.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c483dab0f14b8d3f0df0c6c18d70b21b086f74c87ab03c59250dbf6d3c89baba"}, - {file = "pydantic_core-2.23.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b2682038e255e94baf2c473dca914a7460069171ff5cdd4080be18ab8a7fd6e"}, - {file = "pydantic_core-2.23.3-cp38-none-win32.whl", hash = "sha256:f4a57db8966b3a1d1a350012839c6a0099f0898c56512dfade8a1fe5fb278710"}, - {file = "pydantic_core-2.23.3-cp38-none-win_amd64.whl", hash = "sha256:13dd45ba2561603681a2676ca56006d6dee94493f03d5cadc055d2055615c3ea"}, - {file = "pydantic_core-2.23.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:82da2f4703894134a9f000e24965df73cc103e31e8c31906cc1ee89fde72cbd8"}, - {file = "pydantic_core-2.23.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dd9be0a42de08f4b58a3cc73a123f124f65c24698b95a54c1543065baca8cf0e"}, - {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89b731f25c80830c76fdb13705c68fef6a2b6dc494402987c7ea9584fe189f5d"}, - {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c6de1ec30c4bb94f3a69c9f5f2182baeda5b809f806676675e9ef6b8dc936f28"}, - {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb68b41c3fa64587412b104294b9cbb027509dc2f6958446c502638d481525ef"}, - {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c3980f2843de5184656aab58698011b42763ccba11c4a8c35936c8dd6c7068c"}, - {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94f85614f2cba13f62c3c6481716e4adeae48e1eaa7e8bac379b9d177d93947a"}, - {file = "pydantic_core-2.23.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:510b7fb0a86dc8f10a8bb43bd2f97beb63cffad1203071dc434dac26453955cd"}, - {file = "pydantic_core-2.23.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1eba2f7ce3e30ee2170410e2171867ea73dbd692433b81a93758ab2de6c64835"}, - {file = "pydantic_core-2.23.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4b259fd8409ab84b4041b7b3f24dcc41e4696f180b775961ca8142b5b21d0e70"}, - {file = "pydantic_core-2.23.3-cp39-none-win32.whl", hash = "sha256:40d9bd259538dba2f40963286009bf7caf18b5112b19d2b55b09c14dde6db6a7"}, - {file = "pydantic_core-2.23.3-cp39-none-win_amd64.whl", hash = "sha256:5a8cd3074a98ee70173a8633ad3c10e00dcb991ecec57263aacb4095c5efb958"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f399e8657c67313476a121a6944311fab377085ca7f490648c9af97fc732732d"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6b5547d098c76e1694ba85f05b595720d7c60d342f24d5aad32c3049131fa5c4"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0dda0290a6f608504882d9f7650975b4651ff91c85673341789a476b1159f211"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b6e5da855e9c55a0c67f4db8a492bf13d8d3316a59999cfbaf98cc6e401961"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:09e926397f392059ce0afdcac920df29d9c833256354d0c55f1584b0b70cf07e"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:87cfa0ed6b8c5bd6ae8b66de941cece179281239d482f363814d2b986b79cedc"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e61328920154b6a44d98cabcb709f10e8b74276bc709c9a513a8c37a18786cc4"}, - {file = "pydantic_core-2.23.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce3317d155628301d649fe5e16a99528d5680af4ec7aa70b90b8dacd2d725c9b"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e89513f014c6be0d17b00a9a7c81b1c426f4eb9224b15433f3d98c1a071f8433"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:4f62c1c953d7ee375df5eb2e44ad50ce2f5aff931723b398b8bc6f0ac159791a"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2718443bc671c7ac331de4eef9b673063b10af32a0bb385019ad61dcf2cc8f6c"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d90e08b2727c5d01af1b5ef4121d2f0c99fbee692c762f4d9d0409c9da6541"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b676583fc459c64146debea14ba3af54e540b61762dfc0613dc4e98c3f66eeb"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:50e4661f3337977740fdbfbae084ae5693e505ca2b3130a6d4eb0f2281dc43b8"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:68f4cf373f0de6abfe599a38307f4417c1c867ca381c03df27c873a9069cda25"}, - {file = "pydantic_core-2.23.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:59d52cf01854cb26c46958552a21acb10dd78a52aa34c86f284e66b209db8cab"}, - {file = "pydantic_core-2.23.3.tar.gz", hash = "sha256:3cb0f65d8b4121c1b015c60104a685feb929a29d7cf204387c7f2688c7974690"}, + {file = "pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b"}, + {file = "pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f"}, + {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3"}, + {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071"}, + {file = "pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119"}, + {file = "pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f"}, + {file = "pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8"}, + {file = "pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b"}, + {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0"}, + {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64"}, + {file = "pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f"}, + {file = "pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3"}, + {file = "pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231"}, + {file = "pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126"}, + {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e"}, + {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24"}, + {file = "pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84"}, + {file = "pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9"}, + {file = "pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc"}, + {file = "pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327"}, + {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6"}, + {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f"}, + {file = "pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769"}, + {file = "pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5"}, + {file = "pydantic_core-2.23.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555"}, + {file = "pydantic_core-2.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12"}, + {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2"}, + {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb"}, + {file = "pydantic_core-2.23.4-cp38-none-win32.whl", hash = "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6"}, + {file = "pydantic_core-2.23.4-cp38-none-win_amd64.whl", hash = "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556"}, + {file = "pydantic_core-2.23.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a"}, + {file = "pydantic_core-2.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55"}, + {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040"}, + {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605"}, + {file = "pydantic_core-2.23.4-cp39-none-win32.whl", hash = "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6"}, + {file = "pydantic_core-2.23.4-cp39-none-win_amd64.whl", hash = "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e"}, + {file = "pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863"}, ] [package.dependencies] @@ -2709,13 +2738,13 @@ test = ["pretend", "pytest (>=3.0.1)", "pytest-rerunfailures"] [[package]] name = "pyproject-hooks" -version = "1.1.0" +version = "1.2.0" description = "Wrappers to call pyproject.toml-based build backend hooks." optional = false python-versions = ">=3.7" files = [ - {file = "pyproject_hooks-1.1.0-py3-none-any.whl", hash = "sha256:7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2"}, - {file = "pyproject_hooks-1.1.0.tar.gz", hash = "sha256:4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965"}, + {file = "pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913"}, + {file = "pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8"}, ] [[package]] @@ -2895,151 +2924,131 @@ files = [ [[package]] name = "rapidfuzz" -version = "3.9.7" +version = "3.10.0" description = "rapid fuzzy string matching" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "rapidfuzz-3.9.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ccf68e30b80e903f2309f90a438dbd640dd98e878eeb5ad361a288051ee5b75c"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:696a79018ef989bf1c9abd9005841cee18005ccad4748bad8a4c274c47b6241a"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4eebf6c93af0ae866c22b403a84747580bb5c10f0d7b51c82a87f25405d4dcb"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e9125377fa3d21a8abd4fbdbcf1c27be73e8b1850f0b61b5b711364bf3b59db"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c12d180b17a22d107c8747de9c68d0b9c1d15dcda5445ff9bf9f4ccfb67c3e16"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1318d42610c26dcd68bd3279a1bf9e3605377260867c9a8ed22eafc1bd93a7c"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5fa6e3c6e0333051c1f3a49f0807b3366f4131c8d6ac8c3e05fd0d0ce3755c"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fcf79b686962d7bec458a0babc904cb4fa319808805e036b9d5a531ee6b9b835"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8b01153c7466d0bad48fba77a303d5a768e66f24b763853469f47220b3de4661"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:94baaeea0b4f8632a6da69348b1e741043eba18d4e3088d674d3f76586b6223d"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6c5b32875646cb7f60c193ade99b2e4b124f19583492115293cd00f6fb198b17"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:110b6294396bc0a447648627479c9320f095c2034c0537f687592e0f58622638"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-win32.whl", hash = "sha256:3445a35c4c8d288f2b2011eb61bce1227c633ce85a3154e727170f37c0266bb2"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-win_amd64.whl", hash = "sha256:0d1415a732ee75e74a90af12020b77a0b396b36c60afae1bde3208a78cd2c9fc"}, - {file = "rapidfuzz-3.9.7-cp310-cp310-win_arm64.whl", hash = "sha256:836f4d88b8bd0fff2ebe815dcaab8aa6c8d07d1d566a7e21dd137cf6fe11ed5b"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d098ce6162eb5e48fceb0745455bc950af059df6113eec83e916c129fca11408"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:048d55d36c02c6685a2b2741688503c3d15149694506655b6169dcfd3b6c2585"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c33211cfff9aec425bb1bfedaf94afcf337063aa273754f22779d6dadebef4c2"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6d9db2fa4e9be171e9bb31cf2d2575574774966b43f5b951062bb2e67885852"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4e049d5ad61448c9a020d1061eba20944c4887d720c4069724beb6ea1692507"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cfa74aac64c85898b93d9c80bb935a96bf64985e28d4ee0f1a3d1f3bf11a5106"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:965693c2e9efd425b0f059f5be50ef830129f82892fa1858e220e424d9d0160f"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8501000a5eb8037c4b56857724797fe5a8b01853c363de91c8d0d0ad56bef319"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d92c552c6b7577402afdd547dcf5d31ea6c8ae31ad03f78226e055cfa37f3c6"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1ee2086f490cb501d86b7e386c1eb4e3a0ccbb0c99067089efaa8c79012c8952"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1de91e7fd7f525e10ea79a6e62c559d1b0278ec097ad83d9da378b6fab65a265"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a4da514d13f4433e16960a17f05b67e0af30ac771719c9a9fb877e5004f74477"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-win32.whl", hash = "sha256:a40184c67db8252593ec518e17fb8a6e86d7259dc9f2d6c0bf4ff4db8cf1ad4b"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-win_amd64.whl", hash = "sha256:c4f28f1930b09a2c300357d8465b388cecb7e8b2f454a5d5425561710b7fd07f"}, - {file = "rapidfuzz-3.9.7-cp311-cp311-win_arm64.whl", hash = "sha256:675b75412a943bb83f1f53e2e54fd18c80ef15ed642dc6eb0382d1949419d904"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1ef6a1a8f0b12f8722f595f15c62950c9a02d5abc64742561299ffd49f6c6944"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:32532af1d70c6ec02ea5ac7ee2766dfff7c8ae8c761abfe8da9e527314e634e8"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae1a38bade755aa9dd95a81cda949e1bf9cd92b79341ccc5e2189c9e7bdfc5ec"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d73ee2df41224c87336448d279b5b6a3a75f36e41dd3dcf538c0c9cce36360d8"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be3a1fc3e2ab3bdf93dc0c83c00acca8afd2a80602297d96cf4a0ba028333cdf"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:603f48f621272a448ff58bb556feb4371252a02156593303391f5c3281dfaeac"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:268f8e1ca50fc61c0736f3fe9d47891424adf62d96ed30196f30f4bd8216b41f"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f8bf3f0d02935751d8660abda6044821a861f6229f7d359f98bcdcc7e66c39b"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b997ff3b39d4cee9fb025d6c46b0a24bd67595ce5a5b652a97fb3a9d60beb651"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ca66676c8ef6557f9b81c5b2b519097817a7c776a6599b8d6fcc3e16edd216fe"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:35d3044cb635ca6b1b2b7b67b3597bd19f34f1753b129eb6d2ae04cf98cd3945"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5a93c9e60904cb76e7aefef67afffb8b37c4894f81415ed513db090f29d01101"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-win32.whl", hash = "sha256:579d107102c0725f7c79b4e79f16d3cf4d7c9208f29c66b064fa1fd4641d5155"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-win_amd64.whl", hash = "sha256:953b3780765c8846866faf891ee4290f6a41a6dacf4fbcd3926f78c9de412ca6"}, - {file = "rapidfuzz-3.9.7-cp312-cp312-win_arm64.whl", hash = "sha256:7c20c1474b068c4bd45bf2fd0ad548df284f74e9a14a68b06746c56e3aa8eb70"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fde81b1da9a947f931711febe2e2bee694e891f6d3e6aa6bc02c1884702aea19"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:47e92c155a14f44511ea8ebcc6bc1535a1fe8d0a7d67ad3cc47ba61606df7bcf"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8772b745668260c5c4d069c678bbaa68812e6c69830f3771eaad521af7bc17f8"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:578302828dd97ee2ba507d2f71d62164e28d2fc7bc73aad0d2d1d2afc021a5d5"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc3e6081069eea61593f1d6839029da53d00c8c9b205c5534853eaa3f031085c"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0b1c2d504eddf97bc0f2eba422c8915576dbf025062ceaca2d68aecd66324ad9"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb76e5a21034f0307c51c5a2fc08856f698c53a4c593b17d291f7d6e9d09ca3"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d4ba2318ef670ce505f42881a5d2af70f948124646947341a3c6ccb33cd70369"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:057bb03f39e285047d7e9412e01ecf31bb2d42b9466a5409d715d587460dd59b"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a8feac9006d5c9758438906f093befffc4290de75663dbb2098461df7c7d28dd"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95b8292383e717e10455f2c917df45032b611141e43d1adf70f71b1566136b11"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e9fbf659537d246086d0297628b3795dc3e4a384101ecc01e5791c827b8d7345"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-win32.whl", hash = "sha256:1dc516ac6d32027be2b0196bedf6d977ac26debd09ca182376322ad620460feb"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-win_amd64.whl", hash = "sha256:b4f86e09d3064dca0b014cd48688964036a904a2d28048f00c8f4640796d06a8"}, - {file = "rapidfuzz-3.9.7-cp313-cp313-win_arm64.whl", hash = "sha256:19c64d8ddb2940b42a4567b23f1681af77f50a5ff6c9b8e85daba079c210716e"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fbda3dd68d8b28ccb20ffb6f756fefd9b5ba570a772bedd7643ed441f5793308"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2379e0b2578ad3ac7004f223251550f08bca873ff76c169b09410ec562ad78d8"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d1eff95362f993b0276fd3839aee48625b09aac8938bb0c23b40d219cba5dc5"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd9360e30041690912525a210e48a897b49b230768cc8af1c702e5395690464f"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a93cd834b3c315ab437f0565ee3a2f42dd33768dc885ccbabf9710b131cf70d2"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff196996240db7075f62c7bc4506f40a3c80cd4ae3ab0e79ac6892283a90859"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948dcee7aaa1cd14358b2a7ef08bf0be42bf89049c3a906669874a715fc2c937"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d95751f505a301af1aaf086c19f34536056d6c8efa91b2240de532a3db57b543"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:90db86fa196eecf96cb6db09f1083912ea945c50c57188039392d810d0b784e1"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:3171653212218a162540a3c8eb8ae7d3dcc8548540b69eaecaf3b47c14d89c90"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:36dd6e820379c37a1ffefc8a52b648758e867cd9d78ee5b5dc0c9a6a10145378"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:7b702de95666a1f7d5c6b47eacadfe2d2794af3742d63d2134767d13e5d1c713"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-win32.whl", hash = "sha256:9030e7238c0df51aed5c9c5ed8eee2bdd47a2ae788e562c1454af2851c3d1906"}, - {file = "rapidfuzz-3.9.7-cp38-cp38-win_amd64.whl", hash = "sha256:f847fb0fbfb72482b1c05c59cbb275c58a55b73708a7f77a83f8035ee3c86497"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:97f2ce529d2a70a60c290f6ab269a2bbf1d3b47b9724dccc84339b85f7afb044"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e2957fdad10bb83b1982b02deb3604a3f6911a5e545f518b59c741086f92d152"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d5262383634626eb45c536017204b8163a03bc43bda880cf1bdd7885db9a163"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:364587827d7cbd41afa0782adc2d2d19e3f07d355b0750a02a8e33ad27a9c368"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecc24af7f905f3d6efb371a01680116ffea8d64e266618fb9ad1602a9b4f7934"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9dc86aa6b29d174713c5f4caac35ffb7f232e3e649113e8d13812b35ab078228"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3dcfbe7266e74a707173a12a7b355a531f2dcfbdb32f09468e664330da14874"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b23806fbdd6b510ba9ac93bb72d503066263b0fba44b71b835be9f063a84025f"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5551d68264c1bb6943f542da83a4dc8940ede52c5847ef158698799cc28d14f5"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:13d8675a1fa7e2b19650ca7ef9a6ec01391d4bb12ab9e0793e8eb024538b4a34"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9b6a5de507b9be6de688dae40143b656f7a93b10995fb8bd90deb555e7875c60"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:111a20a3c090cf244d9406e60500b6c34b2375ba3a5009e2b38fd806fe38e337"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-win32.whl", hash = "sha256:22589c0b8ccc6c391ce7f776c93a8c92c96ab8d34e1a19f1bd2b12a235332632"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-win_amd64.whl", hash = "sha256:6f83221db5755b8f34222e40607d87f1176a8d5d4dbda4a55a0f0b67d588a69c"}, - {file = "rapidfuzz-3.9.7-cp39-cp39-win_arm64.whl", hash = "sha256:3665b92e788578c3bb334bd5b5fa7ee1a84bafd68be438e3110861d1578c63a0"}, - {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7df9c2194c7ec930b33c991c55dbd0c10951bd25800c0b7a7b571994ebbced5"}, - {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:68bd888eafd07b09585dcc8bc2716c5ecdb7eed62827470664d25588982b2873"}, - {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1230e0f9026851a6a432beaa0ce575dda7b39fe689b576f99a0704fbb81fc9c"}, - {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3b36e1c61b796ae1777f3e9e11fd39898b09d351c9384baf6e3b7e6191d8ced"}, - {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dba13d86806fcf3fe9c9919f58575e0090eadfb89c058bde02bcc7ab24e4548"}, - {file = "rapidfuzz-3.9.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1f1a33e84056b7892c721d84475d3bde49a145126bc4c6efe0d6d0d59cb31c29"}, - {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3492c7a42b7fa9f0051d7fcce9893e95ed91c97c9ec7fb64346f3e070dd318ed"}, - {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:ece45eb2af8b00f90d10f7419322e8804bd42fb1129026f9bfe712c37508b514"}, - {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcd14cf4876f04b488f6e54a7abd3e9b31db5f5a6aba0ce90659917aaa8c088"}, - {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:521c58c72ed8a612b25cda378ff10dee17e6deb4ee99a070b723519a345527b9"}, - {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18669bb6cdf7d40738526d37e550df09ba065b5a7560f3d802287988b6cb63cf"}, - {file = "rapidfuzz-3.9.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:7abe2dbae81120a64bb4f8d3fcafe9122f328c9f86d7f327f174187a5af4ed86"}, - {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a3c0783910911f4f24655826d007c9f4360f08107410952c01ee3df98c713eb2"}, - {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:03126f9a040ff21d2a110610bfd6b93b79377ce8b4121edcb791d61b7df6eec5"}, - {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:591908240f4085e2ade5b685c6e8346e2ed44932cffeaac2fb32ddac95b55c7f"}, - {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9012d86c6397edbc9da4ac0132de7f8ee9d6ce857f4194d5684c4ddbcdd1c5c"}, - {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df596ddd3db38aa513d4c0995611267b3946e7cbe5a8761b50e9306dfec720ee"}, - {file = "rapidfuzz-3.9.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3ed5adb752f4308fcc8f4fb6f8eb7aa4082f9d12676fda0a74fa5564242a8107"}, - {file = "rapidfuzz-3.9.7.tar.gz", hash = "sha256:f1c7296534c1afb6f495aa95871f14ccdc197c6db42965854e483100df313030"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:884453860de029380dded8f3c1918af2d8eb5adf8010261645c7e5c88c2b5428"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:718c9bd369288aca5fa929df6dbf66fdbe9768d90940a940c0b5cdc96ade4309"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a68e3724b7dab761c01816aaa64b0903734d999d5589daf97c14ef5cc0629a8e"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1af60988d47534246d9525f77288fdd9de652608a4842815d9018570b959acc6"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3084161fc3e963056232ef8d937449a2943852e07101f5a136c8f3cfa4119217"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cd67d3d017296d98ff505529104299f78433e4b8af31b55003d901a62bbebe9"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b11a127ac590fc991e8a02c2d7e1ac86e8141c92f78546f18b5c904064a0552c"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aadce42147fc09dcef1afa892485311e824c050352e1aa6e47f56b9b27af4cf0"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b54853c2371bf0e38d67da379519deb6fbe70055efb32f6607081641af3dc752"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ce19887268e90ee81a3957eef5e46a70ecc000713796639f83828b950343f49e"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f39a2a5ded23b9b9194ec45740dce57177b80f86c6d8eba953d3ff1a25c97766"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0ec338d5f4ad8d9339a88a08db5c23e7f7a52c2b2a10510c48a0cef1fb3f0ddc"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-win32.whl", hash = "sha256:56fd15ea8f4c948864fa5ebd9261c67cf7b89a1c517a0caef4df75446a7af18c"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:43dfc5e733808962a822ff6d9c29f3039a3cfb3620706f5953e17cfe4496724c"}, + {file = "rapidfuzz-3.10.0-cp310-cp310-win_arm64.whl", hash = "sha256:ae7966f205b5a7fde93b44ca8fed37c1c8539328d7f179b1197de34eceaceb5f"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bb0013795b40db5cf361e6f21ee7cda09627cf294977149b50e217d7fe9a2f03"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:69ef5b363afff7150a1fbe788007e307b9802a2eb6ad92ed51ab94e6ad2674c6"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c582c46b1bb0b19f1a5f4c1312f1b640c21d78c371a6615c34025b16ee56369b"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:288f6f6e7410cacb115fb851f3f18bf0e4231eb3f6cb5bd1cec0e7b25c4d039d"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9e29a13d2fd9be3e7d8c26c7ef4ba60b5bc7efbc9dbdf24454c7e9ebba31768"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea2da0459b951ee461bd4e02b8904890bd1c4263999d291c5cd01e6620177ad4"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:457827ba82261aa2ae6ac06a46d0043ab12ba7216b82d87ae1434ec0f29736d6"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5d350864269d56f51ab81ab750c9259ae5cad3152c0680baef143dcec92206a1"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a9b8f51e08c3f983d857c3889930af9ddecc768453822076683664772d87e374"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7f3a6aa6e70fc27e4ff5c479f13cc9fc26a56347610f5f8b50396a0d344c5f55"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:803f255f10d63420979b1909ef976e7d30dec42025c9b067fc1d2040cc365a7e"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2026651761bf83a0f31495cc0f70840d5c0d54388f41316e3f9cb51bd85e49a5"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-win32.whl", hash = "sha256:4df75b3ebbb8cfdb9bf8b213b168620b88fd92d0c16a8bc9f9234630b282db59"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f9f0bbfb6787b97c51516f3ccf97737d504db5d239ad44527673b81f598b84ab"}, + {file = "rapidfuzz-3.10.0-cp311-cp311-win_arm64.whl", hash = "sha256:10fdad800441b9c97d471a937ba7d42625f1b530db05e572f1cb7d401d95c893"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7dc87073ba3a40dd65591a2100aa71602107443bf10770579ff9c8a3242edb94"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a425a0a868cf8e9c6e93e1cda4b758cdfd314bb9a4fc916c5742c934e3613480"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a86d5d1d75e61df060c1e56596b6b0a4422a929dff19cc3dbfd5eee762c86b61"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34f213d59219a9c3ca14e94a825f585811a68ac56b4118b4dc388b5b14afc108"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96ad46f5f56f70fab2be9e5f3165a21be58d633b90bf6e67fc52a856695e4bcf"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9178277f72d144a6c7704d7ae7fa15b7b86f0f0796f0e1049c7b4ef748a662ef"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76a35e9e19a7c883c422ffa378e9a04bc98cb3b29648c5831596401298ee51e6"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a6405d34c394c65e4f73a1d300c001f304f08e529d2ed6413b46ee3037956eb"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:bd393683129f446a75d8634306aed7e377627098a1286ff3af2a4f1736742820"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b0445fa9880ead81f5a7d0efc0b9c977a947d8052c43519aceeaf56eabaf6843"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:c50bc308fa29767ed8f53a8d33b7633a9e14718ced038ed89d41b886e301da32"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e89605afebbd2d4b045bccfdc12a14b16fe8ccbae05f64b4b4c64a97dad1c891"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-win32.whl", hash = "sha256:2db9187f3acf3cd33424ecdbaad75414c298ecd1513470df7bda885dcb68cc15"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:50e3d0c72ea15391ba9531ead7f2068a67c5b18a6a365fef3127583aaadd1725"}, + {file = "rapidfuzz-3.10.0-cp312-cp312-win_arm64.whl", hash = "sha256:9eac95b4278bd53115903d89118a2c908398ee8bdfd977ae844f1bd2b02b917c"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fe5231e8afd069c742ac5b4f96344a0fe4aff52df8e53ef87faebf77f827822c"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:886882367dbc985f5736356105798f2ae6e794e671fc605476cbe2e73838a9bb"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b33e13e537e3afd1627d421a142a12bbbe601543558a391a6fae593356842f6e"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:094c26116d55bf9c53abd840d08422f20da78ec4c4723e5024322321caedca48"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:545fc04f2d592e4350f59deb0818886c1b444ffba3bec535b4fbb97191aaf769"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:916a6abf3632e592b937c3d04c00a6efadd8fd30539cdcd4e6e4d92be7ca5d90"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb6ec40cef63b1922083d33bfef2f91fc0b0bc07b5b09bfee0b0f1717d558292"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c77a7330dd15c7eb5fd3631dc646fc96327f98db8181138766bd14d3e905f0ba"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:949b5e9eeaa4ecb4c7e9c2a4689dddce60929dd1ff9c76a889cdbabe8bbf2171"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b5363932a5aab67010ae1a6205c567d1ef256fb333bc23c27582481606be480c"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:5dd6eec15b13329abe66cc241b484002ecb0e17d694491c944a22410a6a9e5e2"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79e7f98525b60b3c14524e0a4e1fedf7654657b6e02eb25f1be897ab097706f3"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-win32.whl", hash = "sha256:d29d1b9857c65f8cb3a29270732e1591b9bacf89de9d13fa764f79f07d8f1fd2"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:fa9720e56663cc3649d62b4b5f3145e94b8f5611e8a8e1b46507777249d46aad"}, + {file = "rapidfuzz-3.10.0-cp313-cp313-win_arm64.whl", hash = "sha256:eda4c661e68dddd56c8fbfe1ca35e40dd2afd973f7ebb1605f4d151edc63dff8"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cffbc50e0767396ed483900900dd58ce4351bc0d40e64bced8694bd41864cc71"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c038b9939da3035afb6cb2f465f18163e8f070aba0482923ecff9443def67178"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca366c2e2a54e2f663f4529b189fdeb6e14d419b1c78b754ec1744f3c01070d4"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c4c82b1689b23b1b5e6a603164ed2be41b6f6de292a698b98ba2381e889eb9d"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98f6ebe28831a482981ecfeedc8237047878424ad0c1add2c7f366ba44a20452"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4bd1a7676ee2a4c8e2f7f2550bece994f9f89e58afb96088964145a83af7408b"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec9139baa3f85b65adc700eafa03ed04995ca8533dd56c924f0e458ffec044ab"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:26de93e6495078b6af4c4d93a42ca067b16cc0e95699526c82ab7d1025b4d3bf"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f3a0bda83c18195c361b5500377d0767749f128564ca95b42c8849fd475bb327"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:63e4c175cbce8c3adc22dca5e6154588ae673f6c55374d156f3dac732c88d7de"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4dd3d8443970eaa02ab5ae45ce584b061f2799cd9f7e875190e2617440c1f9d4"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e5ddb2388610799fc46abe389600625058f2a73867e63e20107c5ad5ffa57c47"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-win32.whl", hash = "sha256:2e9be5d05cd960914024412b5406fb75a82f8562f45912ff86255acbfdbfb78e"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:47aca565a39c9a6067927871973ca827023e8b65ba6c5747f4c228c8d7ddc04f"}, + {file = "rapidfuzz-3.10.0-cp39-cp39-win_arm64.whl", hash = "sha256:b0732343cdc4273b5921268026dd7266f75466eb21873cb7635a200d9d9c3fac"}, + {file = "rapidfuzz-3.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f744b5eb1469bf92dd143d36570d2bdbbdc88fe5cb0b5405e53dd34f479cbd8a"}, + {file = "rapidfuzz-3.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b67cc21a14327a0eb0f47bc3d7e59ec08031c7c55220ece672f9476e7a8068d3"}, + {file = "rapidfuzz-3.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fe5783676f0afba4a522c80b15e99dbf4e393c149ab610308a8ef1f04c6bcc8"}, + {file = "rapidfuzz-3.10.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4688862f957c8629d557d084f20b2d803f8738b6c4066802a0b1cc472e088d9"}, + {file = "rapidfuzz-3.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20bd153aacc244e4c907d772c703fea82754c4db14f8aa64d75ff81b7b8ab92d"}, + {file = "rapidfuzz-3.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:50484d563f8bfa723c74c944b0bb15b9e054db9c889348c8c307abcbee75ab92"}, + {file = "rapidfuzz-3.10.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5897242d455461f2c5b82d7397b29341fd11e85bf3608a522177071044784ee8"}, + {file = "rapidfuzz-3.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:116c71a81e046ba56551d8ab68067ca7034d94b617545316d460a452c5c3c289"}, + {file = "rapidfuzz-3.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0a547e4350d1fa32624d3eab51eff8cf329f4cae110b4ea0402486b1da8be40"}, + {file = "rapidfuzz-3.10.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:399b9b79ccfcf50ca3bad7692bc098bb8eade88d7d5e15773b7f866c91156d0c"}, + {file = "rapidfuzz-3.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7947a425d1be3e744707ee58c6cb318b93a56e08f080722dcc0347e0b7a1bb9a"}, + {file = "rapidfuzz-3.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:94c48b4a2a4b1d22246f48e2b11cae01ec7d23f0c9123f8bb822839ad79d0a88"}, + {file = "rapidfuzz-3.10.0.tar.gz", hash = "sha256:6b62af27e65bb39276a66533655a2fa3c60a487b03935721c45b7809527979be"}, ] [package.extras] -full = ["numpy"] +all = ["numpy"] [[package]] name = "ray" -version = "2.35.0" +version = "2.37.0" description = "Ray provides a simple, universal API for building distributed applications." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "ray-2.35.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1e7e2d2e987be728a81821b6fd2bccb23e4d8a6cca8417db08b24f06a08d8476"}, - {file = "ray-2.35.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8bd48be4c362004d31e5df072fd58b929efc67adfefc0adece41483b15f84539"}, - {file = "ray-2.35.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ef41e9254f3e18a90a8cf13fac9e35ac086eb778079ab6c76a37d3a6059186c5"}, - {file = "ray-2.35.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:1994aaf9996ffc45019856545e817d527ad572762f1af76ad669ae4e786fcfd6"}, - {file = "ray-2.35.0-cp310-cp310-win_amd64.whl", hash = "sha256:d3b7a7d73f818e249064460ffa95402ebd852bf97d9ec6167b8b0d95be03da9f"}, - {file = "ray-2.35.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:e29754fac4b69a9cb0d089841af59ec6fb10b5d4a248b7c579d319ca2ed1c96f"}, - {file = "ray-2.35.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7a606c8ca53c64fc496703e9fd15d1a1ffb50e6b457a33d3622be2f13fc30a5"}, - {file = "ray-2.35.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:ac561e20a62ce941b74d02a0b92b7765c6ba87cc22e24f34f64ded2c454ba64e"}, - {file = "ray-2.35.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:587af570cbe5f6cedca854f15107740e63c67207bee900713cb2ee38f6ebf20f"}, - {file = "ray-2.35.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e406cce41679790146d4d2b1b0cb0b413ca35276e43b68ee796366169c1dbde"}, - {file = "ray-2.35.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:eb86355a3a0e794e2f1dbd5a84805dddfca64921ad0999b7fa5276e40d243692"}, - {file = "ray-2.35.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7b746913268d5ea5e19bff0eb6bdc7e0538036892a8b57c08411787481195df2"}, - {file = "ray-2.35.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:e2ccfd144180f03d38b02a81afdac2b437f27e46736bf2653a1f0e8d67ea56cd"}, - {file = "ray-2.35.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:2ca1a0de41d4462fd764598a5981cf55fc955599f38f9a1ae10868e94c6dd80d"}, - {file = "ray-2.35.0-cp312-cp312-win_amd64.whl", hash = "sha256:c5600f745bb0e4df840a5cd51e82b1acf517f73505df9869fe3e369966956129"}, - {file = "ray-2.35.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:5e98d2bac394b806109782f316740c5b3c3f10a50117c8e28200a528df734928"}, - {file = "ray-2.35.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c395b46efd0dd871424b1b8d6baf99f91983946fbe351ff66ea34e8919daff29"}, - {file = "ray-2.35.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:4e6314bfdb8c73abcac13f41cc3d935dd1a8ad94c65005a4bfdc4861dc8b070d"}, - {file = "ray-2.35.0-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:70a154e3071cbb4d7a9b68f2dcf491b96b760be0ec6e2ef11a766071ac6acfef"}, - {file = "ray-2.35.0-cp39-cp39-win_amd64.whl", hash = "sha256:dd8bdf9d16989684486db9ebcd23679140e2d6769fcdaadc05e8cac6b373023e"}, + {file = "ray-2.37.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:96366285038fe0c47e975ffd64eb891f70fb863a80be91c0be64f2ab0cf16d9c"}, + {file = "ray-2.37.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:31c55de41b7e1899a62f2dd6a693ffca0a4cb52633aa66617e3816d48b70aac3"}, + {file = "ray-2.37.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:aee7ff189fd52530d020b13c5e7e6da55e65456193a349d39635a72981e521db"}, + {file = "ray-2.37.0-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:29932441e68ab7dad35b276c763670bf42ebf721cddc4f4de8200bd92ac05c58"}, + {file = "ray-2.37.0-cp310-cp310-win_amd64.whl", hash = "sha256:8a96139143584558507b7bca05581962d92ff86fdd0c58210ed53adc7340ec98"}, + {file = "ray-2.37.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:fa642e9b34e88c6a7edb17b291201351d44f063e04ba9f1e83e42aaf492fc14a"}, + {file = "ray-2.37.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c53ee350a009bab6b811254f8407387812de9a290269e32dbf7c3f0dce6c93c9"}, + {file = "ray-2.37.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:60298e199d9938d3be7418e0645aae312f1283e31123991053d36d0ff1e4ec43"}, + {file = "ray-2.37.0-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:b420279ca14f02cc27fc592ff1f28da9aa08b962316bf65ddf370db877082e91"}, + {file = "ray-2.37.0-cp311-cp311-win_amd64.whl", hash = "sha256:7faff20ea7a06612d3cd860a61d2736aa9f82d0d2bcef0917717ced67c8b51c5"}, + {file = "ray-2.37.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:860f3d45438c3daad30f034f107e3fed05a710c7251e10714f942be598715bd2"}, + {file = "ray-2.37.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0b8c23ced4186040dee37e982227e3b1296e2fcbd4c520e4399e5d99ed3c641d"}, + {file = "ray-2.37.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:75cd9a1f6f332ac00d77154b24bd38f4b46a4e600cd02a2440e69b918273b475"}, + {file = "ray-2.37.0-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:0268c7bc2e8bb6ef9bb8969299deb5857bf672bfcb59da95db7495a8a502f8ba"}, + {file = "ray-2.37.0-cp312-cp312-win_amd64.whl", hash = "sha256:4132f79902160c650eaffe1ed1265e5b88d461ff5f3a777a16a750beeed7de1e"}, + {file = "ray-2.37.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:448e3f130322dd71c9114b1b7553d0a9c3bf11727555284653dd66e8bbe6677c"}, + {file = "ray-2.37.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8c38ba452a033f7369a773b170deb8098059459d4cf353fb3bb4cce371cb8233"}, + {file = "ray-2.37.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:227bfc85661f55b81156cee043690012183a95f89fa421fc2fe3ab085b6656dd"}, + {file = "ray-2.37.0-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:919df1cf008a4e6c454c97d4a071a72ee62f50ccb7cc715a77764d33ce24afba"}, + {file = "ray-2.37.0-cp39-cp39-win_amd64.whl", hash = "sha256:35ae20287178e26bff50e404e230197c79419063e70fceb4750694efa66a4e83"}, ] [package.dependencies] @@ -3058,9 +3067,9 @@ requests = "*" adag = ["cupy-cuda12x"] air = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "fastapi", "fsspec", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "memray", "numpy (>=1.20)", "opencensus", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "requests", "smart-open", "starlette", "tensorboardX (>=1.9)", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] all = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "cupy-cuda12x", "dm-tree", "fastapi", "fsspec", "grpcio (!=1.56.0)", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "gymnasium (==0.28.1)", "lz4", "memray", "numpy (>=1.20)", "opencensus", "opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "pyyaml", "requests", "rich", "scikit-image", "scipy", "smart-open", "starlette", "tensorboardX (>=1.9)", "typer", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] -all-cpp = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "cupy-cuda12x", "dm-tree", "fastapi", "fsspec", "grpcio (!=1.56.0)", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "gymnasium (==0.28.1)", "lz4", "memray", "numpy (>=1.20)", "opencensus", "opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "pyyaml", "ray-cpp (==2.35.0)", "requests", "rich", "scikit-image", "scipy", "smart-open", "starlette", "tensorboardX (>=1.9)", "typer", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] +all-cpp = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "cupy-cuda12x", "dm-tree", "fastapi", "fsspec", "grpcio (!=1.56.0)", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "gymnasium (==0.28.1)", "lz4", "memray", "numpy (>=1.20)", "opencensus", "opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk", "pandas", "pandas (>=1.3)", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pyarrow (>=6.0.1)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "pyyaml", "ray-cpp (==2.37.0)", "requests", "rich", "scikit-image", "scipy", "smart-open", "starlette", "tensorboardX (>=1.9)", "typer", "uvicorn[standard]", "virtualenv (>=20.0.24,!=20.21.1)", "watchfiles"] client = ["grpcio (!=1.56.0)"] -cpp = ["ray-cpp (==2.35.0)"] +cpp = ["ray-cpp (==2.37.0)"] data = ["fsspec", "numpy (>=1.20)", "pandas (>=1.3)", "pyarrow (>=6.0.1)"] default = ["aiohttp (>=3.7)", "aiohttp-cors", "colorful", "grpcio (>=1.32.0)", "grpcio (>=1.42.0)", "memray", "opencensus", "prometheus-client (>=0.7.1)", "py-spy (>=0.2.0)", "pydantic (<2.0.dev0 || >=2.5.dev0,<3)", "requests", "smart-open", "virtualenv (>=20.0.24,!=20.21.1)"] observability = ["opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk"] @@ -3313,13 +3322,13 @@ jeepney = ">=0.6" [[package]] name = "sentry-sdk" -version = "2.14.0" +version = "2.15.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" files = [ - {file = "sentry_sdk-2.14.0-py2.py3-none-any.whl", hash = "sha256:b8bc3dc51d06590df1291b7519b85c75e2ced4f28d9ea655b6d54033503b5bf4"}, - {file = "sentry_sdk-2.14.0.tar.gz", hash = "sha256:1e0e2eaf6dad918c7d1e0edac868a7bf20017b177f242cefe2a6bcd47955961d"}, + {file = "sentry_sdk-2.15.0-py2.py3-none-any.whl", hash = "sha256:8fb0d1a4e1a640172f31502e4503543765a1fe8a9209779134a4ac52d4677303"}, + {file = "sentry_sdk-2.15.0.tar.gz", hash = "sha256:a599e7d3400787d6f43327b973e55a087b931ba2c592a7a7afa691f8eb5e75e2"}, ] [package.dependencies] @@ -3388,18 +3397,18 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] [[package]] name = "setuptools" -version = "74.1.2" +version = "75.1.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-74.1.2-py3-none-any.whl", hash = "sha256:5f4c08aa4d3ebcb57a50c33b1b07e94315d7fc7230f7115e47fc99776c8ce308"}, - {file = "setuptools-74.1.2.tar.gz", hash = "sha256:95b40ed940a1c67eb70fc099094bd6e99c6ee7c23aa2306f4d2697ba7916f9c6"}, + {file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"}, + {file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"}, ] [package.extras] check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] @@ -3584,13 +3593,13 @@ testing = ["black", "mypy", "pytest", "pytest-gitignore", "pytest-mock", "respon [[package]] name = "tomli" -version = "2.0.1" +version = "2.0.2" description = "A lil' TOML parser" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, + {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, + {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, ] [[package]] @@ -3606,13 +3615,13 @@ files = [ [[package]] name = "toolz" -version = "0.12.1" +version = "1.0.0" description = "List processing tools and functional utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, - {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, + {file = "toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236"}, + {file = "toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02"}, ] [[package]] @@ -3709,13 +3718,13 @@ files = [ [[package]] name = "tzdata" -version = "2024.1" +version = "2024.2" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, ] [[package]] @@ -3737,13 +3746,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.4" +version = "20.26.6" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.26.4-py3-none-any.whl", hash = "sha256:48f2695d9809277003f30776d155615ffc11328e6a0a8c1f0ec80188d7874a55"}, - {file = "virtualenv-20.26.4.tar.gz", hash = "sha256:c17f4e0f3e6036e9f26700446f85c76ab11df65ff6d8a9cbfad9f71aabfcf23c"}, + {file = "virtualenv-20.26.6-py3-none-any.whl", hash = "sha256:7345cc5b25405607a624d8418154577459c3e0277f5466dd79c49d5e492995f2"}, + {file = "virtualenv-20.26.6.tar.gz", hash = "sha256:280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48"}, ] [package.dependencies] @@ -3957,13 +3966,13 @@ multidict = ">=4.0" [[package]] name = "zipp" -version = "3.20.1" +version = "3.20.2" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.20.1-py3-none-any.whl", hash = "sha256:9960cd8967c8f85a56f920d5d507274e74f9ff813a0ab8889a5b5be2daf44064"}, - {file = "zipp-3.20.1.tar.gz", hash = "sha256:c22b14cc4763c5a5b04134207736c107db42e9d3ef2d9779d465f5f1bcba572b"}, + {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, + {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, ] [package.extras] @@ -4027,5 +4036,5 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" -python-versions = ">=3.11.0,<3.13.0" -content-hash = "2d0704a55e51a7c6d608f42b4bfdf794eec3fbc6bd14e867c071afa8dbff78fc" +python-versions = ">=3.11,<=3.13" +content-hash = "6da5d50a639d526e70b307bcfa7f96a49ceba7a0ff93821e1fbd684d8879460f" diff --git a/pyproject.toml b/pyproject.toml index 19fd517b..eb90a4e3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ log_cli = 1 log_cli_level = "INFO" [tool.poetry.dependencies] -python = ">=3.11.0,<3.13.0" +python = ">=3.11,<=3.13" pandas = "^2.2.3" advertools = "^0.14.1" xmltodict = "^0.13.0" @@ -29,7 +29,6 @@ swifter = "^1.4.0" tenacity = "^8.2.3" sentry-sdk = "^2.13.0" modin = {extras = ["ray"], version = "^0.32.0"} -numpy = "1.26.4" openpyxl = "^3.1.5" requests = "^2.32.3" [build-system] From 0bd20bdd2f303d8860157c50904ece191cfc4361 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Mon, 7 Oct 2024 11:44:37 +0000 Subject: [PATCH 37/73] [no ci]: 1.0.19 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index eb90a4e3..4ae18198 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.18" +version = "1.0.19" description = "" authors = [ "Rambier Estelle ", From 85dac65f20c2af03f2fb3e0bfd1edf65e59fda71 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Tue, 8 Oct 2024 10:38:41 +0200 Subject: [PATCH 38/73] chores: update stop words recyclable cristaline --- .../data_processing/mediatree/keyword/stop_words.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index 7299d09a..dcf93e64 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -117,6 +117,18 @@ ,"salon de jardin miami fabriqué avec quatre-vingts pour cent de matériaux recyclés" ,"l' entreprise de julie fabrique des meubles en matériaux recyclés" ,"jardin miami fabriqué avec quatre-vingts pour cent de matériaux recyclés" + ,"cristaline est capable de recycler" + ,"nous-mêmes du plastique recyclé" + ,"trois usines exclusivement dédiée aux recyclage" + ,"trois usines exclusivement dédiés au recyclage" + ,"trois usines exclusivement dédiées au recyclage" + ,"vivement dédiées au recyclage" + ,"trier devient plus simple" + ,"grâce à vous qui trier vos bouteilles" + ,"nous les recycle pour en faire de nouvelles" + ,"cristalline est capable de recycler" + ,"ou les notices de panneaux photovoltaïques" + ,"recyclage depuis trente ans" # cristalline ,"est à fond sur le tri sélectif" ,"transition énergétique baisse de lumière" ,"transition énergétique co" From a5bbe0329997b0674f4d1a8baafe305a9f7b756d Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Tue, 8 Oct 2024 08:39:18 +0000 Subject: [PATCH 39/73] [no ci]: 1.0.20 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4ae18198..6d1b5dc3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.19" +version = "1.0.20" description = "" authors = [ "Rambier Estelle ", From 763e1b08ec4aa4d760bca78bb79249a4f90c2d4d Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Wed, 9 Oct 2024 13:46:08 +0200 Subject: [PATCH 40/73] refacto: change variable name from fifteen to twenty (#259) --- .../mediatree/detect_keywords.py | 7 +- .../data_processing/mediatree/utils.py | 2 +- test/sitemap/test_detect_keywords.py | 176 +++++++++--------- 3 files changed, 93 insertions(+), 92 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/detect_keywords.py b/quotaclimat/data_processing/mediatree/detect_keywords.py index ee8455af..d5c82694 100644 --- a/quotaclimat/data_processing/mediatree/detect_keywords.py +++ b/quotaclimat/data_processing/mediatree/detect_keywords.py @@ -21,6 +21,7 @@ dask.config.set({'dataframe.query-planning': True}) indirectes = 'indirectes' +DEFAULT_WINDOW_DURATION = 20 def get_cts_in_ms_for_keywords(subtitle_duration: List[dict], keywords: List[dict], theme: str) -> List[dict]: result = [] @@ -117,7 +118,7 @@ def remove_stopwords(plaintext: str) -> str: def get_themes_keywords_duration(plaintext: str, subtitle_duration: List[str], start: datetime): keywords_with_timestamp = [] number_of_elements_in_array = 17 - default_window_in_seconds = 20 + default_window_in_seconds = DEFAULT_WINDOW_DURATION plaitext_without_stopwords = remove_stopwords(plaintext) logging.debug(f"display datetime start {start}") @@ -200,7 +201,7 @@ def get_themes_keywords_duration(plaintext: str, subtitle_duration: List[str], s else: return [None] * number_of_elements_in_array -def get_keywords_with_timestamp_with_false_positive(keywords_with_timestamp, start, duration_seconds: int = 15): +def get_keywords_with_timestamp_with_false_positive(keywords_with_timestamp, start, duration_seconds: int = 20): logging.debug(f"Using duration_seconds {duration_seconds}") # Shallow copy to avoid unnecessary deep copying (wip: for memory leak) @@ -330,7 +331,7 @@ def transform_false_positive_keywords_to_positive(keywords_with_timestamp: List[ return keywords_with_timestamp -def tag_wanted_duration_second_window_number(keywords_with_timestamp: List[dict], start, duration_seconds: int = 15) -> List[dict]: +def tag_wanted_duration_second_window_number(keywords_with_timestamp: List[dict], start, duration_seconds: int = 20) -> List[dict]: window_size_seconds = get_keyword_time_separation_ms(duration_seconds=duration_seconds) total_seconds_in_window = get_chunk_duration_api() number_of_windows = int(total_seconds_in_window // window_size_seconds) diff --git a/quotaclimat/data_processing/mediatree/utils.py b/quotaclimat/data_processing/mediatree/utils.py index c7dc6219..e3f64e17 100644 --- a/quotaclimat/data_processing/mediatree/utils.py +++ b/quotaclimat/data_processing/mediatree/utils.py @@ -11,7 +11,7 @@ EPOCH__5MIN_MARGIN = 300 EPOCH__1MIN_MARGIN = 60 # to add margin for program -def get_keyword_time_separation_ms(duration_seconds: int = 15): +def get_keyword_time_separation_ms(duration_seconds: int = 20): return duration_seconds * 1000 def get_chunk_duration_api(): diff --git a/test/sitemap/test_detect_keywords.py b/test/sitemap/test_detect_keywords.py index f345ccba..30703210 100644 --- a/test/sitemap/test_detect_keywords.py +++ b/test/sitemap/test_detect_keywords.py @@ -574,7 +574,7 @@ def test_complexe_filter_and_tag_by_theme(): "text": "dépolluer" },{ "duration_ms": 34, - "cts_in_ms": original_timestamp + get_keyword_time_separation_ms(), + "cts_in_ms": original_timestamp + get_keyword_time_separation_ms(15), "text": "conditions" },{ "duration_ms": 34, @@ -590,7 +590,7 @@ def test_complexe_filter_and_tag_by_theme(): "text": "sur" },{ "duration_ms": 34, - "cts_in_ms": original_timestamp_first_keyword + get_keyword_time_separation_ms(), + "cts_in_ms": original_timestamp_first_keyword + get_keyword_time_separation_ms(15), "text": "terre" },{ "duration_ms": 34, @@ -716,7 +716,7 @@ def test_overlap_count_keywords_duration_overlap(): } ] - assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 1 + assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 1 def test_20_seconds_no_overlap_count_keywords_duration_overlap(): duration = 20 @@ -762,37 +762,37 @@ def test_with_a_mix_of_overlap_count_keywords_duration_overlap(): }, { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() / 2, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) / 2, "theme":"changement_climatique_constat", }, { "keyword" : 'planète', - "timestamp": original_timestamp + get_keyword_time_separation_ms(), # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15), # count for one "theme":"ressources", # resources does count now }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 2000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 2000, "theme":"ressources", # resources does count now }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 10000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 10000, "theme":"ressources", # resources does count now }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 2, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 2, "theme":"ressources", # resources does not count because of 'conditions de vie sur terre' }, { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 2, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 2, "theme":"changement_climatique_constat", }, ] - assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start),start) == 3 + assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15),start) == 3 def test_with_15second_window_count_keywords_duration_overlap(): keywords_with_timestamp = [{ @@ -802,37 +802,37 @@ def test_with_15second_window_count_keywords_duration_overlap(): }, # window 0 { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() / 2, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) / 2, "theme":"changement_climatique_constat", }, # window 0 # does not count as 2nd in the window { "keyword" : 'planète', - "timestamp": original_timestamp + get_keyword_time_separation_ms(), # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15), # count for one "theme":"ressources", # does count now ressources }, # window 1 { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 2000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 2000, "theme":"ressources", # does count now ressources }, # window 1 # does not count as 2nd in the window { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 10000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 10000, "theme":"ressources", # does count now ressources }, # window 1 # does not count as 2nd in the window { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 2 + 10000, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 2 + 10000, # count for one "theme":"ressources", # does count now ressources }, # window 2 { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 3, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 3, # count for one "theme":"ressources", # does count now ressources } # window 3 ] - assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start),start) == 4 + assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15),start) == 4 def test_only_one_count_keywords_duration_overlap(): keywords_with_timestamp = [{ @@ -842,7 +842,7 @@ def test_only_one_count_keywords_duration_overlap(): } ] - assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 1 + assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 1 def test_indirect_count_keywords_duration_overlap(): keywords_with_timestamp = [{ @@ -852,7 +852,7 @@ def test_indirect_count_keywords_duration_overlap(): } ] - assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 1 + assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 1 def test_resources_count_keywords_duration_overlap(): keywords_with_timestamp = [{ @@ -862,7 +862,7 @@ def test_resources_count_keywords_duration_overlap(): } ] - assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start),start) == 1 + assert count_keywords_duration_overlap(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15),start) == 1 def test_filter_indirect_words(): keywords_with_timestamp = [{ @@ -1037,7 +1037,7 @@ def test_filter_keyword_with_same_timestamp(): assert filter_keyword_with_same_timestamp(keywords_with_timestamp) == keywords_with_timestamp -def test_get_keyword_by_fifteen_second_window(): +def test_get_keyword_by_twenty_second_window(): keywords_with_timestamp = [{ "keyword" : 'habitabilité de la planète', "timestamp": original_timestamp, # count for one @@ -1045,37 +1045,37 @@ def test_get_keyword_by_fifteen_second_window(): }, { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() / 2, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) / 2, "theme":"changement_climatique_constat", }, { "keyword" : 'planète', - "timestamp": original_timestamp + get_keyword_time_separation_ms(), # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15), # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 2000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 2000, "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 10000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 10000, "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 2 + 10000, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 2 + 10000, # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 3, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 3, # count for one "theme":"ressources", } ] - assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 4 + assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 4 def test_full_house_get_keyword_by_fifteen_second_window(): keywords_with_timestamp = [{ @@ -1085,62 +1085,62 @@ def test_full_house_get_keyword_by_fifteen_second_window(): }, { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() / 2, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) / 2, "theme":"changement_climatique_constat", }, { "keyword" : 'planète', - "timestamp": original_timestamp + get_keyword_time_separation_ms(), # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15), # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 2000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 2000, "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() + 10000, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) + 10000, "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 2 + 10000, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 2 + 10000, # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 3, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 3, # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 4, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 4, # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 5, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 5, # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 6, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 6, # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 7, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 7, # count for one "theme":"ressources", }, { "keyword" : 'terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 8 - 100, # count for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 8 - 100, # count for one "theme":"ressources", } ] - assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 8 + assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 8 def test_simple_get_keyword_by_fifteen_second_window(): @@ -1151,45 +1151,45 @@ def test_simple_get_keyword_by_fifteen_second_window(): }, { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() / 2, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) / 2, "theme":"changement_climatique_constat", } ] - assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 1 + assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 1 def test_edge_out_of_bound_get_keyword_by_fifteen_second_window(): keywords_with_timestamp = [ { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 8 + 10, # edge case - still counting for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 8 + 10, # edge case - still counting for one "theme":"changement_climatique_constat", } ] - assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 1 + assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 1 def test_really_out_of_bound_get_keyword_by_fifteen_second_window(): keywords_with_timestamp = [ { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 15 + 10, # edge case - still counting for one + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 15 + 10, # edge case - still counting for one "theme":"changement_climatique_constat", } ] with pytest.raises(Exception): - count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) + count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) def test_almost_out_of_bound_get_keyword_by_fifteen_second_window(): keywords_with_timestamp = [ { "keyword" : 'conditions de vie sur terre', - "timestamp": original_timestamp + get_keyword_time_separation_ms() * 8 - 10, + "timestamp": original_timestamp + get_keyword_time_separation_ms(15) * 8 - 10, "theme":"changement_climatique_constat", } ] - assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start), start) == 1 + assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15), start) == 1 def test_tag_wanted_duration_second_window_number(): keywords_with_timestamp = [ @@ -1202,15 +1202,15 @@ def test_tag_wanted_duration_second_window_number(): 'theme': 'changement_climatique_constat' }, {'keyword': 'covoiturage', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() + 10000, # should be transformed to direct + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) + 10000, # should be transformed to direct 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 , 'theme': 'attenuation_climatique_solutions_indirectes' # should be transformed to direct }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 6 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 , 'theme': 'attenuation_climatique_solutions_indirectes' # should be transformed to direct } ] @@ -1227,22 +1227,22 @@ def test_tag_wanted_duration_second_window_number(): 'theme': 'changement_climatique_constat' }, {'keyword': 'covoiturage', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() + 10000, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) + 10000, 'window_number': 1, 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 , 'window_number': 2, 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 6 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 , 'window_number': 6, 'theme': 'attenuation_climatique_solutions_indirectes' } ] - assert tag_wanted_duration_second_window_number(keywords_with_timestamp, start) == expected + assert tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds=15) == expected def test_transform_false_positive_keywords_to_positive(): keywords_with_timestamp = [ @@ -1255,23 +1255,23 @@ def test_transform_false_positive_keywords_to_positive(): 'theme': 'changement_climatique_constat' }, {'keyword': 'covoiturage', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() + 10000, # should be transformed to direct + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) + 10000, # should be transformed to direct 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 , 'theme': 'attenuation_climatique_solutions_indirectes' # should be transformed to direct }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 3 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 , 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 5 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 5 , 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 7, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 7, 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect } ] @@ -1288,33 +1288,33 @@ def test_transform_false_positive_keywords_to_positive(): ,'window_number': 0 }, {'keyword': 'covoiturage', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() + 10000, # should be transformed to direct + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) + 10000, # should be transformed to direct 'theme': 'attenuation_climatique_solutions' ,'window_number': 1 }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 , 'theme': 'attenuation_climatique_solutions' # should be transformed to direct ,'window_number': 2 }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 3 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 , 'theme': 'attenuation_climatique_solutions'# should be transformed to direct ,'window_number': 3 }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 5 , + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 5 , 'theme': 'attenuation_climatique_solutions_indirectes' # should stay to indirect ,'window_number': 5 }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 7, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 7, 'theme': 'attenuation_climatique_solutions_indirectes' # should stay to indirect ,'window_number': 7 } ] - assert transform_false_positive_keywords_to_positive(tag_wanted_duration_second_window_number(keywords_with_timestamp,start), start) == expected_output + assert transform_false_positive_keywords_to_positive(tag_wanted_duration_second_window_number(keywords_with_timestamp,start, duration_seconds=15), start) == expected_output def test_different_steps_transform_false_positive_keywords_to_positive(): keywords_with_timestamp = [ @@ -1323,23 +1323,23 @@ def test_different_steps_transform_false_positive_keywords_to_positive(): 'theme': 'changement_climatique_constat' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 1 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 150, 'theme': 'attenuation_climatique_solutions_indirectes' # should be transformed to direct }, {'keyword': 'agroforesterie', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 + 150, 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect }, {'keyword': 'alternative durable', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 3 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 + 150, 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect }, {'keyword': 'planification écologique', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 4 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 4 + 150, 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect }, {'keyword': 'nucléaire', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 6 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 + 150, 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect } ] @@ -1351,33 +1351,33 @@ def test_different_steps_transform_false_positive_keywords_to_positive(): 'theme': 'changement_climatique_constat' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 1 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 150, 'window_number': 1, 'theme': 'attenuation_climatique_solutions' # should be transformed to direct }, {'keyword': 'agroforesterie', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 + 150, 'window_number': 2, 'theme': 'attenuation_climatique_solutions' # should be transformed to direct }, {'keyword': 'alternative durable', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 3 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 + 150, 'window_number': 3, 'theme': 'attenuation_climatique_solutions' # should be transformed to direct }, {'keyword': 'planification écologique', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 4 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 4 + 150, 'window_number': 4, 'theme': 'attenuation_climatique_solutions' # should be transformed to direct }, {'keyword': 'nucléaire', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 6 + 150, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 + 150, 'window_number': 6, 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect } ] - assert transform_false_positive_keywords_to_positive(tag_wanted_duration_second_window_number(keywords_with_timestamp,start), start) == expected_output + assert transform_false_positive_keywords_to_positive(tag_wanted_duration_second_window_number(keywords_with_timestamp,start, duration_seconds=15), start) == expected_output def test_count_different_window_number(): @@ -1391,27 +1391,27 @@ def test_count_different_window_number(): 'theme': 'changement_climatique_constat' }, {'keyword': 'covoiturage', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() + 10000, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) + 10000, 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 , # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 , # count 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 3 , # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 , # count 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 5 , # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 5 , # count 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 7, # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 7, # count 'theme': 'attenuation_climatique_solutions_indirectes' } ] - assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start),start) == 6 + assert count_different_window_number(tag_wanted_duration_second_window_number(keywords_with_timestamp, start, duration_seconds = 15),start) == 6 def test_count_different_window_number_40(): keywords_with_timestamp = [ @@ -1424,23 +1424,23 @@ def test_count_different_window_number_40(): 'theme': 'changement_climatique_constat' }, {'keyword': 'covoiturage', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() + 10000, + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) + 10000, 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 2 , # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 , # count 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 3 , # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 , # count 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 5 , # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 5 , # count 'theme': 'attenuation_climatique_solutions_indirectes' }, {'keyword': 'industrie verte', - 'timestamp': original_timestamp + get_keyword_time_separation_ms() * 7, # count + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 7, # count 'theme': 'attenuation_climatique_solutions_indirectes' } ] From e2e1022dd58d8320b16e4ff25640821464f7b47a Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Wed, 9 Oct 2024 11:46:45 +0000 Subject: [PATCH 41/73] [no ci]: 1.0.21 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6d1b5dc3..049fbdfd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.20" +version = "1.0.21" description = "" authors = [ "Rambier Estelle ", From 88b642bc7aa6ecf8821af8809b959aed1416b60b Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Wed, 9 Oct 2024 16:32:17 +0200 Subject: [PATCH 42/73] Fix: only transform false positive when keyword has the same subject (#260) * wip: only transform false positive when same subject * sort keywords * test + update keywords --- .../mediatree/detect_keywords.py | 22 +- .../mediatree/keyword/keyword.py | 5520 ++++++++--------- test/sitemap/test_detect_keywords.py | 151 +- test/sitemap/test_main_import_api.py | 15 +- transform_excel_to_json.py | 4 + 5 files changed, 2928 insertions(+), 2784 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/detect_keywords.py b/quotaclimat/data_processing/mediatree/detect_keywords.py index d5c82694..7df795a4 100644 --- a/quotaclimat/data_processing/mediatree/detect_keywords.py +++ b/quotaclimat/data_processing/mediatree/detect_keywords.py @@ -307,11 +307,26 @@ def count_keywords_duration_overlap(keywords_with_timestamp: List[dict], start: def count_different_window_number(keywords_with_timestamp: List[dict], start: datetime) -> int: window_numbers = [item['window_number'] for item in keywords_with_timestamp if 'window_number' in item] final_count = len(set(window_numbers)) - logging.debug(f"Count with 15 second logic: {final_count} keywords") + logging.debug(f"Count with {DEFAULT_WINDOW_DURATION} second logic: {final_count} keywords") return final_count -def contains_direct_keywords(keywords_with_timestamp: List[dict]) -> bool: +def get_subject_from_theme(theme: str) -> str: + if 'climatique' in theme: + return 'climat' + elif 'biodiversite' in theme: + return 'biodiversite' + elif 'ressources' in theme: + return 'ressources' + else: + return 'unknown' + +# only of the same subject (climate/biodiv/ressources) +def contains_direct_keywords_same_suject(keywords_with_timestamp: List[dict], theme: str) -> bool: + subject = get_subject_from_theme(theme) + logging.debug(f"subject {subject}") + # keep only keywords with timestamp from the same subject + keywords_with_timestamp = list(filter(lambda kw: get_subject_from_theme(kw['theme']) == subject, keywords_with_timestamp)) return any(indirectes not in kw['theme'] for kw in keywords_with_timestamp) # we want to count false positive near of 15" of positive keywords @@ -326,7 +341,8 @@ def transform_false_positive_keywords_to_positive(keywords_with_timestamp: List[ , keywords_with_timestamp) ) - if( contains_direct_keywords(neighbour_keywords) ) : + if( contains_direct_keywords_same_suject(neighbour_keywords, keyword_info['theme']) ) : + logging.debug(f"Transforming false positive to positive { keyword_info['keyword']} { keyword_info['theme']}") keyword_info['theme'] = remove_indirect(keyword_info['theme']) return keywords_with_timestamp diff --git a/quotaclimat/data_processing/mediatree/keyword/keyword.py b/quotaclimat/data_processing/mediatree/keyword/keyword.py index 076e3097..d60e2a16 100644 --- a/quotaclimat/data_processing/mediatree/keyword/keyword.py +++ b/quotaclimat/data_processing/mediatree/keyword/keyword.py @@ -1,5164 +1,5154 @@ THEME_KEYWORDS = { - "attenuation_climatique_solutions": [ - { - "keyword": "bioclimatique", - "category": "Batiments" - }, - { - "keyword": "bonus écologique", - "category": "Transport" - }, + "adaptation_climatique_solutions": [ { - "keyword": "borne de recharge", - "category": "Transport" + "keyword": "adaptation au changement climatique", + "category": "General" }, { - "keyword": "leasing électrique", - "category": "Transport" + "keyword": "adaptation au dérèglement climatique", + "category": "General" }, { - "keyword": "absorption du carbone", + "keyword": "adaptation au réchauffement climatique", "category": "General" }, { - "keyword": "agir pour le climat", + "keyword": "adaptation climatique", "category": "General" }, { - "keyword": "agriculture bio", + "keyword": "agro écologie", "category": "Agriculture" }, { - "keyword": "agriculture biologique", + "keyword": "agro écologique", "category": "Agriculture" }, { - "keyword": "agriculture de conservation", + "keyword": "agroforesterie", "category": "Agriculture" }, { - "keyword": "agriculture plus verte", + "keyword": "agroécologie", "category": "Agriculture" }, { - "keyword": "agro écologie", + "keyword": "amélioration des pratiques d’élevage", "category": "Agriculture" }, { - "keyword": "agro écologique", - "category": "" - }, - { - "keyword": "agroécologie", + "keyword": "aquaculture durable", "category": "Agriculture" }, { - "keyword": "agroforesterie", - "category": "Agriculture" + "keyword": "bon pour la planète", + "category": "General" }, { - "keyword": "ajustement carbone", + "keyword": "changer nos habitudes alimentaires", "category": "General" }, { - "keyword": "amélioration des pratiques d'élevage", - "category": "Agriculture" + "keyword": "désalinisation des eaux", + "category": "Eau" }, { - "keyword": "anti gaspillage", + "keyword": "développement de la planète", "category": "" }, { - "keyword": "antigaspi", - "category": "Economie des ressources" + "keyword": "eaux usées traitées", + "category": "Eau" }, { - "keyword": "antigaspillage", - "category": "Economie des ressources" + "keyword": "eco-prêt à taux zéro", + "category": "Batiments" }, { - "keyword": "aquaculture durable", - "category": "Agriculture" + "keyword": "eco-prêt à taux zéro", + "category": "Batiments" }, { - "keyword": "arrêter de prendre l'avion", - "category": "Transport" + "keyword": "foresterie urbaine", + "category": "Ecosystème" }, { - "keyword": "atténuation du changement climatique", - "category": "General" + "keyword": "forêt urbaine", + "category": "Ecosystème" }, { - "keyword": "avihonte", - "category": "Transport" + "keyword": "gestion de la ressource en eau", + "category": "Eau" }, { - "keyword": "avion à hydrogène", - "category": "Transport" + "keyword": "gestion du littoral", + "category": "Ecosystème" }, { - "keyword": "avion vert", - "category": "Transport" + "keyword": "gestion durable des forêts", + "category": "Ecosystème" }, { - "keyword": "baisse des émissions de carbone", - "category": "General" + "keyword": "gestion durable des terres cultivables", + "category": "Agriculture" }, { - "keyword": "baisse des émissions de gaz à effet de serre", + "keyword": "limiter l’érosion des côtes", "category": "General" }, { - "keyword": "baisse du trafic aérien", - "category": "Transport" + "keyword": "lutte contre le gaspillage d’eau", + "category": "Eau" }, { - "keyword": "bas carbone", + "keyword": "lutter contre l’érosion", "category": "General" }, { - "keyword": "bâtiment à énergie positive", - "category": "Batiments" - }, - { - "keyword": "béton bas carbone", - "category": "Batiments" + "keyword": "mesure environnementale", + "category": "General" }, { - "keyword": "biocarburant", - "category": "Transport" + "keyword": "nous adapter à un futur incertain", + "category": "General" }, { - "keyword": "biochar", - "category": "Agriculture" + "keyword": "prise de conscience environnementale", + "category": "General" }, { - "keyword": "biogaz", - "category": "Energie" + "keyword": "prise de conscience écologique", + "category": "General" }, { - "keyword": "biomasse", - "category": "Energie" + "keyword": "préservation de la ressource en eau", + "category": "Eau" }, { - "keyword": "bois-énergie", - "category": "Energie" + "keyword": "prévention des catastrophes naturelles", + "category": "General" }, { - "keyword": "bon pour la planète", + "keyword": "prévention des inondations", "category": "General" }, { - "keyword": "bonus climatique", - "category": "Transport" + "keyword": "pêche durable", + "category": "Agriculture" }, { - "keyword": "bonus-malus écologique", - "category": "Transport" + "keyword": "reforestation", + "category": "Ecosystème" }, { - "keyword": "captage et stockage", - "category": "General" + "keyword": "renaturer", + "category": "Ecosystème" }, { - "keyword": "capteur de carbone", - "category": "General" + "keyword": "renforcer les digues", + "category": "Eau" }, { - "keyword": "capture et séquestration de carbone", - "category": "General" + "keyword": "renforcer les dunes", + "category": "Ecosystème" }, { - "keyword": "capturer le carbone", - "category": "General" + "keyword": "restriction d’eau", + "category": "Eau" }, { - "keyword": "carburant d'aviation durable", - "category": "Transport" + "keyword": "retenue collinaire", + "category": "Eau" }, { - "keyword": "carburant d'origine non fossile", - "category": "Transport" + "keyword": "revégétalisation", + "category": "Ecosystème" }, { - "keyword": "carburant de synthèse", - "category": "Transport" + "keyword": "revégétaliser", + "category": "Ecosystème" }, { - "keyword": "carburant durable", - "category": "Transport" + "keyword": "récupérateur d'eau", + "category": "Eau" }, { - "keyword": "centrale hydroélectrique", - "category": "Energie" + "keyword": "récupérer l'eau", + "category": "Eau" }, { - "keyword": "changer de modèle agricole", - "category": "Agriculture" + "keyword": "réduction de la demande en eau", + "category": "Eau" }, { - "keyword": "changer de modèle économique", - "category": "General" + "keyword": "réduire l’élevage intensif", + "category": "Agriculture" }, { - "keyword": "changer nos habitudes alimentaires", - "category": "General" + "keyword": "rénovation des batiments", + "category": "Batiments" }, { - "keyword": "ciment de nouvelle génération", + "keyword": "rénovation thermique", "category": "Batiments" }, { - "keyword": "ciment durable", - "category": "Batiments" + "keyword": "réserve d’eau", + "category": "Eau" }, { - "keyword": "consommation plus responsable", - "category": "Economie des ressources" + "keyword": "résistant à la sécheresse", + "category": "General" }, { - "keyword": "consommation responsable", - "category": "Economie des ressources" + "keyword": "résistante à la sécheresse", + "category": "Ecosystème" }, { - "keyword": "contre les émissions de carbone", - "category": "General" + "keyword": "réutilisation des eaux usées traitées", + "category": "Eau" }, { - "keyword": "crit'air", - "category": "Transport" + "keyword": "sauvegarde de la ressource en eau", + "category": "Eau" }, { - "keyword": "décarbonation", + "keyword": "tva verte", "category": "General" }, { - "keyword": "décarboné", + "keyword": "tévéa verte", "category": "General" }, { - "keyword": "décarbonée", - "category": "General" + "keyword": "verdir la politique agricole", + "category": "Agriculture" }, { - "keyword": "décarboner", + "keyword": "vertueux pour la planète", "category": "General" }, { - "keyword": "déchet de canne à sucre", - "category": "Transport" + "keyword": "végétalisation", + "category": "Ecosystème" }, { - "keyword": "décroissance énergétique", - "category": "Energie" + "keyword": "végétaliser", + "category": "Ecosystème" }, { - "keyword": "dépolluer", - "category": "Agriculture" + "keyword": "végétalisé", + "category": "Ecosystème" }, { - "keyword": "dépollution", - "category": "General" + "keyword": "végétalisée", + "category": "Ecosystème" }, { - "keyword": "descente énergétique", - "category": "Energie" + "keyword": "économie d’eau", + "category": "Eau" }, { - "keyword": "diagnostic de performance energétique", - "category": "Batiments" + "keyword": "économiser l'eau", + "category": "Eau" }, { - "keyword": "diminuer les émissions de carbone", - "category": "General" + "keyword": "îlot de fraîcheur", + "category": "Ecosystème" + } + ], + "adaptation_climatique_solutions_indirectes": [ + { + "keyword": "arbre", + "category": "" }, { - "keyword": "diminuer les émissions de gaz à effet de serre", - "category": "General" + "keyword": "barrage", + "category": "Eau" }, { - "keyword": "droit environnemental", + "keyword": "bon pour la santé", "category": "General" }, { - "keyword": "éco conception", - "category": "Industrie" + "keyword": "changer leurs habitudes", + "category": "General" }, { - "keyword": "éco geste", + "keyword": "changer nos comportements", "category": "General" }, { - "keyword": "éco responsable", + "keyword": "changer nos habitudes", "category": "General" }, { - "keyword": "eco-prêt à taux 0", - "category": "Batiments" + "keyword": "digue", + "category": "General" }, { - "keyword": "eco-prêt à taux zéro", - "category": "Batiments" + "keyword": "dune", + "category": "General" }, { - "keyword": "écoconception", - "category": "Industrie" + "keyword": "espace vert", + "category": "" }, { - "keyword": "ecomobilité", - "category": "Transport" + "keyword": "espace vert", + "category": "" }, { - "keyword": "économie circulaire", - "category": "Economie des ressources" + "keyword": "faire baisser la température", + "category": "" }, { - "keyword": "économie d’énergie", - "category": "Energie" + "keyword": "forêt", + "category": "Ecosystème" }, { - "keyword": "économie qui répare", - "category": "Economie des ressources" + "keyword": "gestion de l'eau", + "category": "" }, { - "keyword": "économiser de l’énergie", - "category": "Energie" + "keyword": "gestion des milieux aquatiques", + "category": "Eau" }, { - "keyword": "écoresponsable", - "category": "General" + "keyword": "jachère", + "category": "Agriculture" }, { - "keyword": "efficacité énergétique", - "category": "Energie" + "keyword": "jardin", + "category": "Ecosystème" }, { - "keyword": "énergie durable", - "category": "Energie" + "keyword": "manipuler la terre", + "category": "Agriculture" }, { - "keyword": "énergie renouvelable", - "category": "Energie" + "keyword": "mega bassine", + "category": "Eau" }, { - "keyword": "énergie solaire", - "category": "Energie" + "keyword": "miscanthus", + "category": "Agriculture" }, { - "keyword": "énergie verte", - "category": "Energie" + "keyword": "norme", + "category": "General" }, { - "keyword": "éolien", - "category": "Energie" + "keyword": "ombre", + "category": "Ecosystème" }, { - "keyword": "éolienne", - "category": "Energie" + "keyword": "parc", + "category": "Ecosystème" }, { - "keyword": "étiquetage unique des aliments", - "category": "Agriculture" + "keyword": "planter des arbres", + "category": "Ecosystème" }, { - "keyword": "fiscalité environnementale", - "category": "Industrie" + "keyword": "pratiques vertueuses", + "category": "Agriculture" }, { - "keyword": "flygskam", - "category": "Transport" + "keyword": "sorgho", + "category": "Agriculture" }, { - "keyword": "fn de la vente des voitures thermiques", - "category": "Transport" + "keyword": "verdir", + "category": "" }, { - "keyword": "foresterie urbaine", - "category": "Ecosystème" + "keyword": "verdure", + "category": "" }, { - "keyword": "forêt mosaïque", - "category": "Ecosystème" + "keyword": "vertueux", + "category": "General" }, { - "keyword": "forêt urbaine", - "category": "Ecosystème" - }, + "keyword": "ville durable", + "category": "General" + } + ], + "attenuation_climatique_solutions": [ { - "keyword": "géothermie", - "category": "Energie" + "keyword": "absorption du carbone", + "category": "General" }, { - "keyword": "geste écologique", + "keyword": "agir pour le climat", "category": "General" }, { - "keyword": "gestion durable des forêts", - "category": "Ecosystème" + "keyword": "agriculture bio", + "category": "Agriculture" }, { - "keyword": "gestion durable des terres cultivables", + "keyword": "agriculture biologique", "category": "Agriculture" }, { - "keyword": "honte de prendre l'avion", - "category": "Transport" + "keyword": "agriculture de conservation", + "category": "Agriculture" }, { - "keyword": "huile de friture usagé", - "category": "Transport" + "keyword": "agriculture plus verte", + "category": "Agriculture" }, { - "keyword": "hydroélectricité", - "category": "Energie" + "keyword": "agro écologie", + "category": "Agriculture" }, { - "keyword": "hydrogène", - "category": "Energie" + "keyword": "agro écologique", + "category": "" }, { - "keyword": "hydrogène vert", - "category": "Energie" + "keyword": "agroforesterie", + "category": "Agriculture" }, { - "keyword": "isf climatique", - "category": "Industrie" + "keyword": "agroécologie", + "category": "Agriculture" }, { - "keyword": "isolation par l'extérieur", - "category": "Batiments" + "keyword": "ajustement carbone", + "category": "General" }, { - "keyword": "isolation thermique", - "category": "Batiments" + "keyword": "amélioration des pratiques d'élevage", + "category": "Agriculture" }, { - "keyword": "journée de la biodiversité", - "category": "General" + "keyword": "anti gaspillage", + "category": "" }, { - "keyword": "journée de la terre", - "category": "General" + "keyword": "antigaspi", + "category": "Economie des ressources" }, { - "keyword": "journée mondiale de la vie sauvage", - "category": "General" + "keyword": "antigaspillage", + "category": "Economie des ressources" }, { - "keyword": "limiter la hausse des températures", - "category": "General" + "keyword": "aquaculture durable", + "category": "Agriculture" }, { - "keyword": "limiter les émissions de carbone", + "keyword": "arrêter de prendre l'avion", + "category": "Transport" + }, + { + "keyword": "atténuation du changement climatique", "category": "General" }, { - "keyword": "lutte contre le gaspillage alimentaire", - "category": "Economie des ressources" + "keyword": "avihonte", + "category": "Transport" }, { - "keyword": "lutte contre le gaspillage énergétique", - "category": "Energie" + "keyword": "avion vert", + "category": "Transport" }, { - "keyword": "ma prime rénov", - "category": "Batiments" + "keyword": "avion à hydrogène", + "category": "Transport" }, { - "keyword": "maison autonome", - "category": "Batiments" + "keyword": "baisse des émissions de carbone", + "category": "General" }, { - "keyword": "maison passive", - "category": "Batiments" + "keyword": "baisse des émissions de gaz à effet de serre", + "category": "General" }, { - "keyword": "malus écologique", + "keyword": "baisse du trafic aérien", "category": "Transport" }, { - "keyword": "maprimerénov", - "category": "Batiments" + "keyword": "bas carbone", + "category": "General" }, { - "keyword": "matériaux biosourcés", - "category": "Batiments" + "keyword": "biocarburant", + "category": "Transport" }, { - "keyword": "matériaux plus vertueux", - "category": "Batiments" + "keyword": "biochar", + "category": "Agriculture" }, { - "keyword": "matériaux recyclables", + "keyword": "bioclimatique", "category": "Batiments" }, { - "keyword": "matériaux recyclés", - "category": "Batiments" + "keyword": "biogaz", + "category": "Energie" }, { - "keyword": "mesure environnementale", - "category": "General" + "keyword": "biomasse", + "category": "Energie" }, { - "keyword": "méthanisation", + "keyword": "bois-énergie", "category": "Energie" }, { - "keyword": "méthaniseur", - "category": "Energie" + "keyword": "bon pour la planète", + "category": "General" }, { - "keyword": "mobilité douce", + "keyword": "bonus climatique", "category": "Transport" }, { - "keyword": "mobilité durable", + "keyword": "bonus écologique", "category": "Transport" }, { - "keyword": "moins polluant", - "category": "General" + "keyword": "bonus-malus écologique", + "category": "Transport" }, { - "keyword": "moins prendre l'avion", + "keyword": "borne de recharge", "category": "Transport" }, { - "keyword": "net zéro émission", - "category": "General" + "keyword": "bâtiment à énergie positive", + "category": "Batiments" }, { - "keyword": "objectif climatique", + "keyword": "béton bas carbone", + "category": "Batiments" + }, + { + "keyword": "captage et stockage", "category": "General" }, { - "keyword": "panneau solaire", - "category": "Energie" + "keyword": "capteur de carbone", + "category": "General" }, { - "keyword": "panneaux solaires", - "category": "Energie" + "keyword": "capture et séquestration de carbone", + "category": "General" }, { - "keyword": "pêche durable", - "category": "Agriculture" + "keyword": "capturer le carbone", + "category": "General" }, { - "keyword": "photovoltaïque", - "category": "Energie" + "keyword": "carburant d'aviation durable", + "category": "Transport" }, { - "keyword": "planter des arbres", - "category": "Ecosystème" + "keyword": "carburant d'origine non fossile", + "category": "Transport" }, { - "keyword": "plastique recyclé", - "category": "Economie des ressources" + "keyword": "carburant de synthèse", + "category": "Transport" }, { - "keyword": "pollueur payeur", - "category": "General" + "keyword": "carburant durable", + "category": "Transport" }, { - "keyword": "prime à la casse", - "category": "Transport" + "keyword": "centrale hydroélectrique", + "category": "Energie" }, { - "keyword": "prise de conscience écologique", - "category": "General" + "keyword": "changer de modèle agricole", + "category": "Agriculture" }, { - "keyword": "prise de conscience environnementale", + "keyword": "changer de modèle économique", "category": "General" }, { - "keyword": "produits verts", + "keyword": "changer nos habitudes alimentaires", "category": "General" }, { - "keyword": "protection de la planète", - "category": "Ecosystème" + "keyword": "ciment de nouvelle génération", + "category": "Batiments" }, { - "keyword": "protection des cours d’eau", - "category": "Eau" + "keyword": "ciment durable", + "category": "Batiments" }, { - "keyword": "protection des océans", - "category": "Eau" + "keyword": "consommation plus responsable", + "category": "Economie des ressources" }, { - "keyword": "protection des tourbières", - "category": "Ecosystème" + "keyword": "consommation responsable", + "category": "Economie des ressources" }, { - "keyword": "protection du vivant", - "category": "Ecosystème" + "keyword": "contre les émissions de carbone", + "category": "General" }, { - "keyword": "puits carbone", - "category": "General" + "keyword": "crit'air", + "category": "Transport" }, { - "keyword": "puits de carbone", - "category": "General" + "keyword": "descente énergétique", + "category": "Energie" }, { - "keyword": "quota de pêche", - "category": "Agriculture" + "keyword": "diagnostic de performance energétique", + "category": "Batiments" }, { - "keyword": "recyclage", - "category": "Economie des ressources" + "keyword": "diminuer les émissions de carbone", + "category": "General" }, { - "keyword": "recyclant", - "category": "Economie des ressources" + "keyword": "diminuer les émissions de gaz à effet de serre", + "category": "General" }, { - "keyword": "recycler", - "category": "Economie des ressources" + "keyword": "droit environnemental", + "category": "General" }, { - "keyword": "réduction des émissions de carbone", + "keyword": "décarbonation", "category": "General" }, { - "keyword": "réduction des émissions de gaz à effet de serre", + "keyword": "décarboner", "category": "General" }, { - "keyword": "réduction des gaspillages énergétiques", - "category": "Energie" + "keyword": "décarboné", + "category": "General" }, { - "keyword": "réduction du cheptel", - "category": "Agriculture" + "keyword": "décarbonée", + "category": "General" }, { - "keyword": "réduction du gaspillage alimentaire", - "category": "Economie des ressources" + "keyword": "déchet de canne à sucre", + "category": "Transport" }, { - "keyword": "réduction du gaspillage énergétique", + "keyword": "décroissance énergétique", "category": "Energie" }, { - "keyword": "réduire la consommation d’eau", - "category": "Eau" + "keyword": "dépolluer", + "category": "Agriculture" }, { - "keyword": "réduire le cheptel", - "category": "Agriculture" + "keyword": "dépollution", + "category": "General" }, { - "keyword": "réduire le trafic aérien", - "category": "Transport" + "keyword": "eco-prêt à taux 0", + "category": "Batiments" }, { - "keyword": "réduire les émissions d’azote", - "category": "Agriculture" + "keyword": "eco-prêt à taux zéro", + "category": "Batiments" }, { - "keyword": "réduire les émissions de carbone", - "category": "General" + "keyword": "ecomobilité", + "category": "Transport" }, { - "keyword": "réduire les émissions de gaz à effet de serre", - "category": "General" + "keyword": "efficacité énergétique", + "category": "Energie" }, { - "keyword": "réduire sa consommation de viande", - "category": "Agriculture" + "keyword": "fiscalité environnementale", + "category": "Industrie" }, { - "keyword": "réemploi", - "category": "Economie des ressources" + "keyword": "flygskam", + "category": "Transport" }, { - "keyword": "reforestation", + "keyword": "fn de la vente des voitures thermiques", + "category": "Transport" + }, + { + "keyword": "foresterie urbaine", "category": "Ecosystème" }, { - "keyword": "remplacer les énergies fossiles", - "category": "Energie" + "keyword": "forêt mosaïque", + "category": "Ecosystème" }, { - "keyword": "renaturer", + "keyword": "forêt urbaine", "category": "Ecosystème" }, { - "keyword": "rénovation des batiments", - "category": "Batiments" + "keyword": "geste écologique", + "category": "General" }, { - "keyword": "rénovation thermique", - "category": "Batiments" + "keyword": "gestion durable des forêts", + "category": "Ecosystème" }, { - "keyword": "réseau de chaleur", - "category": "Energie" + "keyword": "gestion durable des terres cultivables", + "category": "Agriculture" }, { - "keyword": "réseaux de chaleur", + "keyword": "géothermie", "category": "Energie" }, { - "keyword": "réservoir d'hydrogène", + "keyword": "honte de prendre l'avion", "category": "Transport" }, { - "keyword": "respect de l’environnement", - "category": "Ecosystème" + "keyword": "huile de friture usagé", + "category": "Transport" }, { - "keyword": "respectueux de l’environnement", - "category": "Ecosystème" + "keyword": "hydrogène", + "category": "Energie" }, { - "keyword": "restauration des tourbières", - "category": "Ecosystème" + "keyword": "hydrogène vert", + "category": "Energie" }, { - "keyword": "restauration des zones humides", - "category": "Ecosystème" + "keyword": "hydroélectricité", + "category": "Energie" }, { - "keyword": "restaurer les tourbières", - "category": "Ecosystème" + "keyword": "isf climatique", + "category": "Industrie" }, { - "keyword": "revégétalisation", - "category": "Ecosystème" + "keyword": "isolation par l'extérieur", + "category": "Batiments" }, { - "keyword": "revégétaliser", - "category": "Ecosystème" + "keyword": "isolation thermique", + "category": "Batiments" }, { - "keyword": "sans émettre de co2", + "keyword": "journée de la biodiversité", "category": "General" }, { - "keyword": "sans émettre de co deux", + "keyword": "journée de la terre", "category": "General" }, { - "keyword": "se débarrasser des énergies fossiles", - "category": "Energie" + "keyword": "journée mondiale de la vie sauvage", + "category": "General" }, { - "keyword": "se décarboner", + "keyword": "leasing électrique", + "category": "Transport" + }, + { + "keyword": "limiter la hausse des températures", "category": "General" }, { - "keyword": "semaine du développement durable", + "keyword": "limiter les émissions de carbone", "category": "General" }, { - "keyword": "séquestration du carbone", - "category": "Industrie" + "keyword": "lutte contre le gaspillage alimentaire", + "category": "Economie des ressources" }, { - "keyword": "sevrage des énergies fossiles", - "category": "General" + "keyword": "lutte contre le gaspillage énergétique", + "category": "Energie" }, { - "keyword": "sobriété", - "category": "General" + "keyword": "ma prime rénov", + "category": "Batiments" }, { - "keyword": "sobriété énergétique", - "category": "Energie" + "keyword": "maison autonome", + "category": "Batiments" }, { - "keyword": "société écologique", - "category": "General" + "keyword": "maison passive", + "category": "Batiments" }, { - "keyword": "sortie des énergies fossiles", - "category": "Energie" + "keyword": "malus écologique", + "category": "Transport" }, { - "keyword": "sortie du charbon", - "category": "Energie" + "keyword": "maprimerénov", + "category": "Batiments" }, { - "keyword": "stockage du carbone", - "category": "General" + "keyword": "matériaux biosourcés", + "category": "Batiments" }, { - "keyword": "stockage du carbone dans les sols", - "category": "General" + "keyword": "matériaux plus vertueux", + "category": "Batiments" }, { - "keyword": "stockage du co deux", - "category": "General" + "keyword": "matériaux recyclables", + "category": "Batiments" }, { - "keyword": "stocker le carbone", - "category": "General" + "keyword": "matériaux recyclés", + "category": "Batiments" }, { - "keyword": "technologie verte", + "keyword": "mesure environnementale", "category": "General" }, { - "keyword": "tévéa verte", - "category": "General" + "keyword": "mobilité douce", + "category": "Transport" }, { - "keyword": "transport décarboné", + "keyword": "mobilité durable", "category": "Transport" }, { - "keyword": "tva verte", + "keyword": "moins polluant", "category": "General" }, { - "keyword": "valorisation des déchets", - "category": "Economie des ressources" + "keyword": "moins prendre l'avion", + "category": "Transport" }, { - "keyword": "végétalisation", - "category": "Ecosystème" + "keyword": "méthanisation", + "category": "Energie" }, { - "keyword": "végétalisé", - "category": "Ecosystème" + "keyword": "méthaniseur", + "category": "Energie" }, { - "keyword": "végétalisée", - "category": "Ecosystème" + "keyword": "net zéro émission", + "category": "General" }, { - "keyword": "végétaliser", - "category": "Ecosystème" + "keyword": "objectif climatique", + "category": "General" }, { - "keyword": "verdir la politique agricole", - "category": "Agriculture" + "keyword": "panneau solaire", + "category": "Energie" }, { - "keyword": "vertueux pour la planète", - "category": "General" + "keyword": "panneaux solaires", + "category": "Energie" }, { - "keyword": "ville écologique", - "category": "General" + "keyword": "photovoltaïque", + "category": "Energie" }, { - "keyword": "zéro carbone", - "category": "General" + "keyword": "planter des arbres", + "category": "Ecosystème" }, { - "keyword": "zéro émission nette", - "category": "General" + "keyword": "plastique recyclé", + "category": "Economie des ressources" }, { - "keyword": "zéro plastique", - "category": "Economie des ressources" - } - ], - "biodiversite_causes_indirectes": [ + "keyword": "pollueur payeur", + "category": "General" + }, { - "keyword": "emballage", - "category": "Economie des ressources" + "keyword": "prime à la casse", + "category": "Transport" }, { - "keyword": "ogm", - "category": "Agriculture" + "keyword": "prise de conscience environnementale", + "category": "General" }, { - "keyword": "acide", + "keyword": "prise de conscience écologique", "category": "General" }, { - "keyword": "activité industrielle", - "category": "Industrie" + "keyword": "produits verts", + "category": "General" }, { - "keyword": "agricole", - "category": "Agriculture" + "keyword": "protection de la planète", + "category": "Ecosystème" }, { - "keyword": "agriculteur", - "category": "Agriculture" + "keyword": "protection des cours d’eau", + "category": "Eau" }, { - "keyword": "agriculture", - "category": "Agriculture" + "keyword": "protection des océans", + "category": "Eau" }, { - "keyword": "agro-industrie", - "category": "Agriculture" + "keyword": "protection des tourbières", + "category": "Ecosystème" }, { - "keyword": "agro-industriel", - "category": "Agriculture" + "keyword": "protection du vivant", + "category": "Ecosystème" }, { - "keyword": "agroalimentaire", - "category": "Agriculture" + "keyword": "puits carbone", + "category": "General" }, { - "keyword": "aménagement du territoire", + "keyword": "puits de carbone", "category": "General" }, { - "keyword": "arsenic", - "category": "Industrie" + "keyword": "pêche durable", + "category": "Agriculture" }, { - "keyword": "bétonner", - "category": "General" + "keyword": "quota de pêche", + "category": "Agriculture" }, { - "keyword": "cancérigène", - "category": "General" + "keyword": "recyclage", + "category": "Economie des ressources" }, { - "keyword": "cancérogène", - "category": "" + "keyword": "recyclant", + "category": "Economie des ressources" }, { - "keyword": "capitalisme", + "keyword": "recycler", "category": "Economie des ressources" }, { - "keyword": "commerce illégal d’espèces", + "keyword": "reforestation", "category": "Ecosystème" }, { - "keyword": "complexe agro-industriel", - "category": "Agriculture" + "keyword": "remplacer les énergies fossiles", + "category": "Energie" }, { - "keyword": "déchet", - "category": "Economie des ressources" + "keyword": "renaturer", + "category": "Ecosystème" }, { - "keyword": "déchet toxique", - "category": "Industrie" + "keyword": "respect de l’environnement", + "category": "Ecosystème" }, { - "keyword": "déchetterie", - "category": "Economie des ressources" + "keyword": "respectueux de l’environnement", + "category": "Ecosystème" }, { - "keyword": "disparition des haies", + "keyword": "restauration des tourbières", "category": "Ecosystème" }, { - "keyword": "emballage en plastique", - "category": "Economie des ressources" + "keyword": "restauration des zones humides", + "category": "Ecosystème" }, { - "keyword": "emballage plastique", - "category": "Economie des ressources" + "keyword": "restaurer les tourbières", + "category": "Ecosystème" }, { - "keyword": "exposition des salariés", - "category": "General" + "keyword": "revégétalisation", + "category": "Ecosystème" }, { - "keyword": "feux", + "keyword": "revégétaliser", "category": "Ecosystème" }, { - "keyword": "feux de forêt", - "category": "Ecosystème" + "keyword": "réduction des gaspillages énergétiques", + "category": "Energie" }, { - "keyword": "fluor", - "category": "" + "keyword": "réduction des émissions de carbone", + "category": "General" }, { - "keyword": "fongicide", - "category": "Agriculture" + "keyword": "réduction des émissions de gaz à effet de serre", + "category": "General" }, { - "keyword": "huile de palme", + "keyword": "réduction du cheptel", "category": "Agriculture" }, { - "keyword": "incendies", - "category": "Ecosystème" + "keyword": "réduction du gaspillage alimentaire", + "category": "Economie des ressources" }, { - "keyword": "incinérateur", - "category": "Economie des ressources" + "keyword": "réduction du gaspillage énergétique", + "category": "Energie" }, { - "keyword": "intrants", - "category": "Agriculture" + "keyword": "réduire la consommation d’eau", + "category": "Eau" }, { - "keyword": "irrigation", + "keyword": "réduire le cheptel", "category": "Agriculture" }, { - "keyword": "jeter", - "category": "General" + "keyword": "réduire le trafic aérien", + "category": "Transport" }, { - "keyword": "mégot", + "keyword": "réduire les émissions de carbone", "category": "General" }, { - "keyword": "micro-plastiques", - "category": "Industrie" + "keyword": "réduire les émissions de gaz à effet de serre", + "category": "General" }, { - "keyword": "nouvelles techniques génomiques", + "keyword": "réduire les émissions d’azote", "category": "Agriculture" }, { - "keyword": "organisme génétiquement modifiée", + "keyword": "réduire sa consommation de viande", "category": "Agriculture" }, { - "keyword": "perturbateur endocrinien", - "category": "General" + "keyword": "réemploi", + "category": "Economie des ressources" }, { - "keyword": "plante exotique envahissante", - "category": "Ecosystème" + "keyword": "rénovation des batiments", + "category": "Batiments" }, { - "keyword": "plante exotique invasive", - "category": "Ecosystème" + "keyword": "rénovation thermique", + "category": "Batiments" }, { - "keyword": "plante exotique très invasive", - "category": "Ecosystème" + "keyword": "réseau de chaleur", + "category": "Energie" }, { - "keyword": "plastique", - "category": "Economie des ressources" + "keyword": "réseaux de chaleur", + "category": "Energie" }, { - "keyword": "plomb", - "category": "Industrie" + "keyword": "réservoir d'hydrogène", + "category": "Transport" }, { - "keyword": "pollue", + "keyword": "sans émettre de co deux", "category": "General" }, { - "keyword": "polluer", + "keyword": "sans émettre de co2", "category": "General" }, { - "keyword": "pollution", + "keyword": "se débarrasser des énergies fossiles", + "category": "Energie" + }, + { + "keyword": "se décarboner", "category": "General" }, { - "keyword": "pollution de l’air", + "keyword": "semaine du développement durable", "category": "General" }, { - "keyword": "rejets industriels", - "category": "Industrie" + "keyword": "sevrage des énergies fossiles", + "category": "General" }, { - "keyword": "site minier", - "category": "Industrie" + "keyword": "sobriété", + "category": "General" }, { - "keyword": "solvant", - "category": "Industrie" + "keyword": "sobriété énergétique", + "category": "Energie" }, { - "keyword": "surconsommation", + "keyword": "société écologique", "category": "General" }, { - "keyword": "tourisme de masse", - "category": "Transport" + "keyword": "sortie des énergies fossiles", + "category": "Energie" }, { - "keyword": "toxique", - "category": "général" + "keyword": "sortie du charbon", + "category": "Energie" }, { - "keyword": "trafic d’espèces", - "category": "Ecosystème" + "keyword": "stockage du carbone", + "category": "General" }, { - "keyword": "urbanisation", + "keyword": "stockage du carbone dans les sols", "category": "General" }, { - "keyword": "urbanisme", + "keyword": "stockage du co deux", "category": "General" }, { - "keyword": "zinc", - "category": "Industrie" - } - ], - "changement_climatique_consequences_indirectes": [ + "keyword": "stocker le carbone", + "category": "General" + }, { - "keyword": "40 degrés", - "category": "" + "keyword": "séquestration du carbone", + "category": "Industrie" }, { - "keyword": "50 degrés", - "category": "" + "keyword": "technologie verte", + "category": "General" }, { - "keyword": "accès à l’eau", - "category": "" + "keyword": "transport décarboné", + "category": "Transport" }, { - "keyword": "anomalie de températures", - "category": "" + "keyword": "tva verte", + "category": "General" }, { - "keyword": "asséché", - "category": "" - }, - { - "keyword": "asséchée", - "category": "" + "keyword": "tévéa verte", + "category": "General" }, { - "keyword": "assécher", - "category": "" + "keyword": "valorisation des déchets", + "category": "Economie des ressources" }, { - "keyword": "augmentation des températures", - "category": "" + "keyword": "verdir la politique agricole", + "category": "Agriculture" }, { - "keyword": "cancer", - "category": "" + "keyword": "vertueux pour la planète", + "category": "General" }, { - "keyword": "cinquante degrés", - "category": "" + "keyword": "ville écologique", + "category": "General" }, { - "keyword": "crue", - "category": "" + "keyword": "végétalisation", + "category": "Ecosystème" }, { - "keyword": "crue centennale", - "category": "" + "keyword": "végétaliser", + "category": "Ecosystème" }, { - "keyword": "cyclone", - "category": "" + "keyword": "végétalisé", + "category": "Ecosystème" }, { - "keyword": "désertification", - "category": "" + "keyword": "végétalisée", + "category": "Ecosystème" }, { - "keyword": "dévastation", + "keyword": "zéro carbone", "category": "General" }, { - "keyword": "érosion", - "category": "" + "keyword": "zéro plastique", + "category": "Economie des ressources" }, { - "keyword": "étouffer", - "category": "" + "keyword": "zéro émission nette", + "category": "General" }, { - "keyword": "feux", - "category": "" + "keyword": "éco conception", + "category": "Industrie" }, { - "keyword": "feux de forêt", - "category": "" + "keyword": "éco geste", + "category": "General" }, { - "keyword": "forte chaleur", - "category": "" + "keyword": "éco responsable", + "category": "General" }, { - "keyword": "forte pluie", - "category": "" + "keyword": "écoconception", + "category": "Industrie" }, { - "keyword": "gel printanier", - "category": "" + "keyword": "économie circulaire", + "category": "Economie des ressources" }, { - "keyword": "il n'y a plus de saison", - "category": "" + "keyword": "économie d’énergie", + "category": "Energie" }, { - "keyword": "importante précipitation", - "category": "" + "keyword": "économie qui répare", + "category": "Economie des ressources" }, { - "keyword": "incendies", - "category": "" + "keyword": "économiser de l’énergie", + "category": "Energie" }, { - "keyword": "inondable", - "category": "Batiments" + "keyword": "écoresponsable", + "category": "General" }, { - "keyword": "inondation", - "category": "" + "keyword": "énergie durable", + "category": "Energie" }, { - "keyword": "la roya", - "category": "" + "keyword": "énergie renouvelable", + "category": "Energie" }, { - "keyword": "les soulèvements de la terre", - "category": "" + "keyword": "énergie solaire", + "category": "Energie" }, { - "keyword": "malade", - "category": "" + "keyword": "énergie verte", + "category": "Energie" }, { - "keyword": "maladie", - "category": "" + "keyword": "éolien", + "category": "Energie" }, { - "keyword": "maladies transmises par des insectes", - "category": "" + "keyword": "éolienne", + "category": "Energie" }, { - "keyword": "mois le plus chaud", - "category": "" - }, + "keyword": "étiquetage unique des aliments", + "category": "Agriculture" + } + ], + "attenuation_climatique_solutions_indirectes": [ { - "keyword": "ouragan", - "category": "" + "keyword": "activisme climatique", + "category": "General" }, { - "keyword": "pathologie", - "category": "" + "keyword": "activiste pour le climat", + "category": "General" }, { - "keyword": "période la plus chaude", - "category": "" + "keyword": "agriculture durable", + "category": "Agriculture" }, { - "keyword": "plante exotique envahissante", - "category": "Ecosystème" + "keyword": "alternative", + "category": "General" }, { - "keyword": "plante exotique invasive", - "category": "Ecosystème" + "keyword": "alternative durable", + "category": "General" }, { - "keyword": "plante exotique très invasive", - "category": "Ecosystème" + "keyword": "approche systémique", + "category": "General" }, { - "keyword": "pluie extrême", + "keyword": "arbre", "category": "" }, { - "keyword": "pluie intense", - "category": "" + "keyword": "atténuation", + "category": "General" }, { - "keyword": "pluie torrentielle", - "category": "" + "keyword": "bardage en bois", + "category": "Batiments" }, { - "keyword": "plus chaud que la normale", - "category": "" + "keyword": "biodégradable", + "category": "Economie des ressources" }, { - "keyword": "plus chaude que la normale", - "category": "" + "keyword": "bois d’oeuvre", + "category": "Batiments" }, { - "keyword": "plus de saisons", - "category": "" + "keyword": "bon pour la santé", + "category": "General" }, { - "keyword": "plus sec que la normale", - "category": "" + "keyword": "bonus automobile", + "category": "Transport" }, { - "keyword": "pluviométrie importante", - "category": "" + "keyword": "borne électrique", + "category": "Transport" }, { - "keyword": "pollution de l'air", - "category": "" + "keyword": "bus", + "category": "Transport" }, { - "keyword": "prolifération des moustiques", - "category": "" + "keyword": "bus électrique", + "category": "Transport" }, { - "keyword": "quarante degrés", - "category": "" + "keyword": "camion xxl", + "category": "Transport" }, { - "keyword": "restriction", - "category": "General" + "keyword": "camion électrique", + "category": "Transport" }, { - "keyword": "sécurité alimentaire", - "category": "" + "keyword": "centrale nucléaire", + "category": "Energie" }, { - "keyword": "submersion", - "category": "" + "keyword": "changement de chaudière", + "category": "Batiments" }, { - "keyword": "submersion marine", - "category": "" + "keyword": "changer leurs habitudes", + "category": "General" }, { - "keyword": "surchauffe", - "category": "" + "keyword": "changer nos comportements", + "category": "General" }, { - "keyword": "tempête xynthia", - "category": "" + "keyword": "changer nos habitudes", + "category": "General" }, { - "keyword": "très chaud", - "category": "" - } - ], - "biodiversite_causes": [ + "keyword": "compostage", + "category": "Economie des ressources" + }, { - "keyword": "a69", + "keyword": "covoiturage", "category": "Transport" }, { - "keyword": "acidification des océans", - "category": "Ecosystème" + "keyword": "déconstruire", + "category": "General" }, { - "keyword": "acidification du milieu marin", - "category": "Ecosystème" + "keyword": "décroissance", + "category": "General" }, { - "keyword": "agribusiness", - "category": "Agriculture" + "keyword": "désobéissance civile", + "category": "General" }, { - "keyword": "agriculture conventionnelle", - "category": "Agriculture" + "keyword": "développement durable", + "category": "General" }, { - "keyword": "agriculture extensive", - "category": "Agriculture" + "keyword": "epr", + "category": "Energie" }, { - "keyword": "agriculture industrielle", - "category": "Agriculture" + "keyword": "espace vert", + "category": "Ecosystème" }, { - "keyword": "agriculture intensive", - "category": "Agriculture" + "keyword": "faire baisser la température", + "category": "" }, { - "keyword": "artificialisation des milieux naturels", - "category": "Ecosystème" + "keyword": "falloir ralentir", + "category": "General" }, { - "keyword": "artificialisation des sols", + "keyword": "forêt", "category": "Ecosystème" }, { - "keyword": "assèchement des zones humides", - "category": "Ecosystème" + "keyword": "fret ferroviaire", + "category": "Transport" }, { - "keyword": "atteinte à la biodiversité", - "category": "Ecosystème" - }, - { - "keyword": "braconnage", - "category": "Ecosystème" + "keyword": "habitude durable", + "category": "Economie des ressources" }, { - "keyword": "cadmium", + "keyword": "industrie verte", "category": "Industrie" }, { - "keyword": "changement d’usage des terres", - "category": "Ecosystème" + "keyword": "intercités", + "category": "Transport" }, { - "keyword": "chlordécone", - "category": "Agriculture" + "keyword": "isolation", + "category": "Batiments" }, { - "keyword": "condition dégradée d’habitation", - "category": "Ecosystème" + "keyword": "isoler la façade", + "category": "Batiments" }, { - "keyword": "coupe rase", - "category": "Agriculture" + "keyword": "isoler les fenêtres", + "category": "Batiments" }, { - "keyword": "décharge sauvage", - "category": "Economie des ressources" + "keyword": "jachère", + "category": "Agriculture" }, { - "keyword": "déforestation", - "category": "Ecosystème" + "keyword": "label ab", + "category": "Agriculture" }, { - "keyword": "dégradation de l'habitat", - "category": "Ecosystème" + "keyword": "label bio", + "category": "Agriculture" }, { - "keyword": "dégradation des ecosystèmes", - "category": "Ecosystème" + "keyword": "label hve", + "category": "Agriculture" }, { - "keyword": "dépôt sauvage", - "category": "Economie des ressources" + "keyword": "label éco", + "category": "Industrie" }, { - "keyword": "destruction de la biodiversité", - "category": "Ecosystème" + "keyword": "label écologique", + "category": "Industrie" }, { - "keyword": "destruction des habitats naturels", - "category": "Ecosystème" + "keyword": "leasing social", + "category": "Transport" }, { - "keyword": "destruction des milieux naturels", - "category": "Ecosystème" + "keyword": "ligne tgv", + "category": "Transport" }, { - "keyword": "écocide", - "category": "Ecosystème" + "keyword": "made in france", + "category": "Industrie" }, { - "keyword": "engrais azoté", - "category": "Agriculture" + "keyword": "manifestation pour le climat", + "category": "General" }, { - "keyword": "engrais de synthèse", + "keyword": "manipuler la terre", "category": "Agriculture" }, { - "keyword": "engrais phosphaté", - "category": "Agriculture" + "keyword": "marche du siècle", + "category": "General" }, { - "keyword": "épandage", - "category": "Ecosystème" + "keyword": "marche pour le climat", + "category": "General" }, { - "keyword": "étalement urbain", - "category": "Ecosystème" + "keyword": "marche à pied", + "category": "Transport" }, { - "keyword": "extractivisme", - "category": "Industrie" + "keyword": "matériau isolant", + "category": "Batiments" }, { - "keyword": "extractiviste", - "category": "Industrie" + "keyword": "matériaux isolants", + "category": "" }, { - "keyword": "glyphosate", - "category": "Agriculture" + "keyword": "militant écologiste", + "category": "General" }, { - "keyword": "herbicide", - "category": "Agriculture" + "keyword": "militante écologiste", + "category": "General" }, { - "keyword": "intrant chimique", + "keyword": "moins de viande", "category": "Agriculture" }, { - "keyword": "mauvaise nouvelle pour la planète", + "keyword": "norme", "category": "General" }, { - "keyword": "métaux lourds", - "category": "Industrie" + "keyword": "nucléaire", + "category": "Energie" }, { - "keyword": "néonicotinoïde", - "category": "Agriculture" + "keyword": "ombre", + "category": "Ecosystème" }, { - "keyword": "pas très écolo", - "category": "General" + "keyword": "parc", + "category": "Ecosystème" }, { - "keyword": "pêche industrielle", - "category": "Industrie" + "keyword": "pass rail", + "category": "Transport" }, { - "keyword": "perte d’habitats", - "category": "Ecosystème" + "keyword": "passer à l'électrique", + "category": "Transport" }, { - "keyword": "perturbation des écosystèmes", - "category": "Ecosystème" + "keyword": "permaculture", + "category": "Agriculture" }, { - "keyword": "perturbation des habitats", + "keyword": "planter des arbres", "category": "Ecosystème" }, { - "keyword": "pesticide", - "category": "Agriculture" + "keyword": "plus durable", + "category": "General" }, { - "keyword": "pfas", - "category": "Industrie" + "keyword": "plus d’oxygène", + "category": "" }, { - "keyword": "pfoa", - "category": "Industrie" + "keyword": "poid lourd électrique", + "category": "Transport" }, { - "keyword": "pfos", - "category": "Industrie" + "keyword": "polyculture élevage", + "category": "Agriculture" }, { - "keyword": "polluant", - "category": "General" + "keyword": "pompe à chaleur", + "category": "Batiments" }, { - "keyword": "pollution atmosphérique", + "keyword": "prairie", "category": "Ecosystème" }, { - "keyword": "pollution chimique", + "keyword": "pratiques vertueuses", "category": "Agriculture" }, { - "keyword": "pollution de l’eau", - "category": "Eau" + "keyword": "principe de précaution", + "category": "General" }, { - "keyword": "pollution de la mer", - "category": "Eau" + "keyword": "produire en europe", + "category": "Industrie" }, { - "keyword": "pollution des sols", - "category": "Ecosystème" + "keyword": "préserver", + "category": "General" }, { - "keyword": "pollution environnementale", - "category": "Ecosystème" + "keyword": "recharge", + "category": "Transport" }, { - "keyword": "pollution plastique", - "category": "General" + "keyword": "relocaliser la production", + "category": "Industrie" }, { - "keyword": "pollution record", - "category": "General" + "keyword": "replantation", + "category": "Ecosystème" }, { - "keyword": "pression sur les milieux naturels", + "keyword": "replanter", "category": "Ecosystème" }, { - "keyword": "productivisme", + "keyword": "responsable", "category": "General" }, { - "keyword": "productiviste", + "keyword": "restreindre", "category": "General" }, { - "keyword": "produit phytosanitaire", - "category": "Agriculture" + "keyword": "restriction", + "category": "General" }, { - "keyword": "ptfe", - "category": "Industrie" + "keyword": "réacteur nucléaire", + "category": "Energie" }, { - "keyword": "surpêche", - "category": "Agriculture" - } - ], - "changement_climatique_causes": [ - { - "keyword": "a69", - "category": "Transport" + "keyword": "réguler les températures", + "category": "General" }, { - "keyword": "agriculture conventionnelle", - "category": "Agriculture" + "keyword": "rénovation", + "category": "Batiments" }, { - "keyword": "agriculture extensive", - "category": "Agriculture" + "keyword": "rénovation énergétique", + "category": "Batiments" }, { - "keyword": "agriculture industrielle", - "category": "Agriculture" + "keyword": "résistance thermique", + "category": "Batiments" }, { - "keyword": "agriculture intensive", - "category": "Agriculture" + "keyword": "saf", + "category": "Transport" }, { - "keyword": "co deux", - "category": "General" + "keyword": "se déplacer en vélo", + "category": "Transport" }, { - "keyword": "co2", + "keyword": "taxe carbone", "category": "General" }, { - "keyword": "combustibles fossiles", - "category": "Energie" + "keyword": "ter", + "category": "Transport" }, { - "keyword": "déforestation", - "category": "Ecosystème" + "keyword": "tgv", + "category": "Transport" }, { - "keyword": "dyoxide de carbone", - "category": "General" + "keyword": "train", + "category": "Transport" }, { - "keyword": "élevage intensif", - "category": "Agriculture" + "keyword": "trains régionaux", + "category": "Transport" }, { - "keyword": "émission de carbone", - "category": "General" + "keyword": "tramway", + "category": "Transport" }, { - "keyword": "émissions anthropiques", - "category": "General" + "keyword": "transport collectif", + "category": "Transport" }, { - "keyword": "émissions importées", - "category": "General" + "keyword": "transport en commun", + "category": "Transport" }, { - "keyword": "émissions liées à la consommation", - "category": "General" + "keyword": "transport ferroviaire", + "category": "Transport" }, { - "keyword": "émissions territoriales", - "category": "General" + "keyword": "transport fluvial", + "category": "Transport" }, { - "keyword": "énergies fossiles", - "category": "Energie" - }, - { - "keyword": "fuel lourd", - "category": "Energie" - }, - { - "keyword": "fumée industrielle", - "category": "Industrie" - }, - { - "keyword": "gaz à effet de serre", - "category": "General" - }, - { - "keyword": "greenwashing", - "category": "General" - }, - { - "keyword": "inaction climatique", - "category": "General" - }, - { - "keyword": "insuffisance climatique", - "category": "General" - }, - { - "keyword": "mauvaise nouvelle pour le climat", - "category": "General" - }, - { - "keyword": "mauvaise nouvelle pour la planète", - "category": "General" + "keyword": "transport maritime", + "category": "Transport" }, { - "keyword": "méthane", - "category": "General" + "keyword": "tri à la source", + "category": "Economie des ressources" }, { - "keyword": "pas très écolo", - "category": "General" + "keyword": "té heu air", + "category": "Transport" }, { - "keyword": "polluant", - "category": "General" + "keyword": "tégévé", + "category": "Transport" }, { - "keyword": "pollution industrielle", - "category": "Industrie" + "keyword": "verdir", + "category": "" }, { - "keyword": "pollution record", - "category": "General" + "keyword": "verdure", + "category": "" }, { - "keyword": "productivisme", + "keyword": "vertueux", "category": "General" }, { - "keyword": "productiviste", + "keyword": "ville durable", "category": "General" - } - ], - "biodiversite_concepts_generaux_indirectes": [ - { - "keyword": "abeille", - "category": "" }, { - "keyword": "agences régionales de santé", - "category": "" + "keyword": "voitures électriques", + "category": "Transport" }, { - "keyword": "alimentation", + "keyword": "végan", "category": "Agriculture" }, { - "keyword": "ars", - "category": "" - }, - { - "keyword": "autorité de santé", - "category": "" + "keyword": "végane", + "category": "Agriculture" }, { - "keyword": "bloc d’immeubles", - "category": "" + "keyword": "végétarien", + "category": "Agriculture" }, { - "keyword": "corail", - "category": "" + "keyword": "végétarienne", + "category": "Agriculture" }, { - "keyword": "coraux", - "category": "" + "keyword": "véhicule électrique", + "category": "Transport" }, { - "keyword": "dégrader", - "category": "" + "keyword": "vélo", + "category": "Transport" }, { - "keyword": "désertification", - "category": "" + "keyword": "zad", + "category": "Ecosystème" }, { - "keyword": "diversité génétique", - "category": "" + "keyword": "zadisme", + "category": "General" }, { - "keyword": "eau", - "category": "" + "keyword": "zadiste", + "category": "General" }, { - "keyword": "eaux", - "category": "" + "keyword": "économie de carburant", + "category": "Transport" }, { - "keyword": "écolo", - "category": "" + "keyword": "écotaxe", + "category": "Transport" }, { - "keyword": "écologie", - "category": "" + "keyword": "éducation au changement climatique", + "category": "General" }, { - "keyword": "écologiste", - "category": "" - }, + "keyword": "épargne citoyenne", + "category": "Economie des ressources" + } + ], + "biodiversite_causes": [ { - "keyword": "écosystème", - "category": "" + "keyword": "a69", + "category": "Transport" }, { - "keyword": "environnement", - "category": "" + "keyword": "acidification des océans", + "category": "Ecosystème" }, { - "keyword": "environnemental", - "category": "" + "keyword": "acidification du milieu marin", + "category": "Ecosystème" }, { - "keyword": "environnementaux", - "category": "" + "keyword": "agribusiness", + "category": "Agriculture" }, { - "keyword": "environnementale", - "category": "" + "keyword": "agriculture conventionnelle", + "category": "Agriculture" }, { - "keyword": "faune", - "category": "" + "keyword": "agriculture extensive", + "category": "Agriculture" }, { - "keyword": "flore", - "category": "" + "keyword": "agriculture industrielle", + "category": "Agriculture" }, { - "keyword": "forêt", - "category": "" + "keyword": "agriculture intensive", + "category": "Agriculture" }, { - "keyword": "générations à venir", - "category": "" + "keyword": "artificialisation des milieux naturels", + "category": "Ecosystème" }, { - "keyword": "générations futures", - "category": "" + "keyword": "artificialisation des sols", + "category": "Ecosystème" }, { - "keyword": "impact sur la santé", - "category": "" + "keyword": "assèchement des zones humides", + "category": "Ecosystème" }, { - "keyword": "insecte", - "category": "" + "keyword": "atteinte à la biodiversité", + "category": "Ecosystème" }, { - "keyword": "littoral", - "category": "" + "keyword": "braconnage", + "category": "Ecosystème" }, { - "keyword": "marais", - "category": "" + "keyword": "cadmium", + "category": "Industrie" }, { - "keyword": "mer", - "category": "" + "keyword": "changement d’usage des terres", + "category": "Ecosystème" }, { - "keyword": "modèle agricole", - "category": "" + "keyword": "chlordécone", + "category": "Agriculture" }, { - "keyword": "nature", - "category": "" + "keyword": "condition dégradée d’habitation", + "category": "Ecosystème" }, { - "keyword": "naturel", - "category": "" + "keyword": "coupe rase", + "category": "Agriculture" }, { - "keyword": "naturelle", - "category": "" + "keyword": "destruction de la biodiversité", + "category": "Ecosystème" }, { - "keyword": "océan", - "category": "" + "keyword": "destruction des habitats naturels", + "category": "Ecosystème" }, { - "keyword": "oms", - "category": "" + "keyword": "destruction des milieux naturels", + "category": "Ecosystème" }, { - "keyword": "organisation mondiale de la santé", - "category": "" + "keyword": "décharge sauvage", + "category": "Economie des ressources" }, { - "keyword": "planétaire", - "category": "" + "keyword": "déforestation", + "category": "Ecosystème" }, { - "keyword": "planète", - "category": "" + "keyword": "dégradation de l'habitat", + "category": "Ecosystème" }, { - "keyword": "poisson", - "category": "" + "keyword": "dégradation des ecosystèmes", + "category": "Ecosystème" }, { - "keyword": "pollinisation", - "category": "" + "keyword": "dépôt sauvage", + "category": "Economie des ressources" }, { - "keyword": "récif corallien", - "category": "" + "keyword": "engrais azoté", + "category": "Agriculture" }, { - "keyword": "revue nature", - "category": "" + "keyword": "engrais de synthèse", + "category": "Agriculture" }, { - "keyword": "terre", - "category": "" + "keyword": "engrais phosphaté", + "category": "Agriculture" }, { - "keyword": "vie sous-marine", - "category": "" + "keyword": "extractivisme", + "category": "Industrie" }, { - "keyword": "vivant", - "category": "" - } - ], - "changement_climatique_constat": [ - { - "keyword": "accord de paris", - "category": "" + "keyword": "extractiviste", + "category": "Industrie" }, { - "keyword": "ademe", - "category": "" + "keyword": "glyphosate", + "category": "Agriculture" }, { - "keyword": "anthropocène", - "category": "" + "keyword": "herbicide", + "category": "Agriculture" }, { - "keyword": "anti-écolo", - "category": "" + "keyword": "intrant chimique", + "category": "Agriculture" }, { - "keyword": "bilan carbone", - "category": "" + "keyword": "mauvaise nouvelle pour la planète", + "category": "General" }, { - "keyword": "bonne nouvelle pour la planète", - "category": "" + "keyword": "métaux lourds", + "category": "Industrie" }, { - "keyword": "capacité planétaire", - "category": "" + "keyword": "néonicotinoïde", + "category": "Agriculture" }, { - "keyword": "climatique", - "category": "" + "keyword": "pas très écolo", + "category": "General" }, { - "keyword": "climatologue", - "category": "" + "keyword": "perte d’habitats", + "category": "Ecosystème" }, { - "keyword": "climatoscepticisme", - "category": "" + "keyword": "perturbation des habitats", + "category": "Ecosystème" }, { - "keyword": "conditions de vie sur terre", - "category": "" + "keyword": "perturbation des écosystèmes", + "category": "Ecosystème" }, { - "keyword": "conférence climat", - "category": "" + "keyword": "pesticide", + "category": "Agriculture" }, { - "keyword": "conférence des nations unies sur le climat", - "category": "" + "keyword": "pfas", + "category": "Industrie" }, { - "keyword": "conférence des nations unies sur les changements climatiques", - "category": "" + "keyword": "pfoa", + "category": "Industrie" }, { - "keyword": "conférence des parties", - "category": "" + "keyword": "pfos", + "category": "Industrie" }, { - "keyword": "convention des nations unies sur le climat", - "category": "" + "keyword": "polluant", + "category": "General" }, { - "keyword": "cop quinze", - "category": "" + "keyword": "pollution atmosphérique", + "category": "Ecosystème" }, { - "keyword": "cop trente", - "category": "" + "keyword": "pollution chimique", + "category": "Agriculture" }, { - "keyword": "cop vingt-et-un", - "category": "" + "keyword": "pollution de la mer", + "category": "Eau" }, { - "keyword": "cop vingt-huit", - "category": "" + "keyword": "pollution de l’eau", + "category": "Eau" }, { - "keyword": "cop vingt-neuf", - "category": "" + "keyword": "pollution des sols", + "category": "Ecosystème" }, { - "keyword": "cop vingt-sept", - "category": "" + "keyword": "pollution environnementale", + "category": "Ecosystème" }, { - "keyword": "cop vingt-six", - "category": "" + "keyword": "pollution plastique", + "category": "General" }, { - "keyword": "cop15", - "category": "" + "keyword": "pollution record", + "category": "General" }, { - "keyword": "cop21", - "category": "" + "keyword": "pression sur les milieux naturels", + "category": "Ecosystème" }, { - "keyword": "cop26", - "category": "" + "keyword": "productivisme", + "category": "General" }, { - "keyword": "cop27", - "category": "" + "keyword": "productiviste", + "category": "General" }, { - "keyword": "cop28", - "category": "" + "keyword": "produit phytosanitaire", + "category": "Agriculture" }, { - "keyword": "cop29", - "category": "" + "keyword": "ptfe", + "category": "Industrie" }, { - "keyword": "cop30", - "category": "" + "keyword": "pêche industrielle", + "category": "Industrie" }, { - "keyword": "crédit carbone", - "category": "" + "keyword": "surpêche", + "category": "Agriculture" }, { - "keyword": "crise planétaire", - "category": "" + "keyword": "écocide", + "category": "Ecosystème" }, { - "keyword": "croissance verte", - "category": "" + "keyword": "épandage", + "category": "Ecosystème" }, { - "keyword": "cycle du carbone", - "category": "" - }, + "keyword": "étalement urbain", + "category": "Ecosystème" + } + ], + "biodiversite_causes_indirectes": [ { - "keyword": "d'ici 2050", - "category": "" + "keyword": "acide", + "category": "General" }, { - "keyword": "défi climatique", - "category": "" + "keyword": "activité industrielle", + "category": "Industrie" }, { - "keyword": "déstabilisation atmosphérique", - "category": "" + "keyword": "agricole", + "category": "Agriculture" }, { - "keyword": "destruction de la planète", - "category": "" + "keyword": "agriculteur", + "category": "Agriculture" }, { - "keyword": "écologique", - "category": "" + "keyword": "agriculture", + "category": "Agriculture" }, { - "keyword": "effet de serre", - "category": "" + "keyword": "agro-industrie", + "category": "Agriculture" }, { - "keyword": "émissions mondiales de co2", - "category": "General" + "keyword": "agro-industriel", + "category": "Agriculture" }, { - "keyword": "émissions mondiales de co deux", - "category": "General" + "keyword": "agroalimentaire", + "category": "Agriculture" }, { - "keyword": "empreinte carbone", - "category": "" + "keyword": "aménagement du territoire", + "category": "General" }, { - "keyword": "enjeu environnemental", - "category": "" + "keyword": "arsenic", + "category": "Industrie" }, { - "keyword": "expert du climat", + "keyword": "bétonner", "category": "General" }, { - "keyword": "experte du climat", - "category": "" + "keyword": "cancérigène", + "category": "General" }, { - "keyword": "france nature environnement", + "keyword": "cancérogène", "category": "" }, { - "keyword": "giec", - "category": "" + "keyword": "capitalisme", + "category": "Economie des ressources" }, { - "keyword": "green deal", - "category": "" + "keyword": "commerce illégal d’espèces", + "category": "Ecosystème" }, { - "keyword": "habitabilité de la planète", - "category": "" + "keyword": "complexe agro-industriel", + "category": "Agriculture" }, { - "keyword": "habiter le monde", - "category": "" + "keyword": "disparition des haies", + "category": "Ecosystème" }, { - "keyword": "haut conseil pour le climat", - "category": "" + "keyword": "déchet", + "category": "Economie des ressources" }, { - "keyword": "hydrologue", - "category": "" + "keyword": "déchet toxique", + "category": "Industrie" }, { - "keyword": "impact carbone", - "category": "" + "keyword": "déchetterie", + "category": "Economie des ressources" }, { - "keyword": "intérêt environnemental", - "category": "" + "keyword": "emballage", + "category": "Economie des ressources" }, { - "keyword": "méga-orage", - "category": "" + "keyword": "emballage en plastique", + "category": "Economie des ressources" }, { - "keyword": "mix énergétique", - "category": "" + "keyword": "emballage plastique", + "category": "Economie des ressources" }, { - "keyword": "mutation écologique", + "keyword": "exposition des salariés", "category": "General" }, { - "keyword": "neutralité carbone", - "category": "" + "keyword": "feux", + "category": "Ecosystème" }, { - "keyword": "neutralité climatique", - "category": "" + "keyword": "feux de forêt", + "category": "Ecosystème" }, { - "keyword": "pacte vert", + "keyword": "fluor", "category": "" }, { - "keyword": "planification écologique", - "category": "General" + "keyword": "fongicide", + "category": "Agriculture" }, { - "keyword": "pollution émise localement", - "category": "" + "keyword": "huile de palme", + "category": "Agriculture" }, { - "keyword": "réchauffement de l’atmosphère", - "category": "" + "keyword": "incendies", + "category": "Ecosystème" }, { - "keyword": "réchauffement des océans", - "category": "" + "keyword": "incinérateur", + "category": "Economie des ressources" }, { - "keyword": "réchauffement des températures", - "category": "" + "keyword": "intrants", + "category": "Agriculture" }, { - "keyword": "réchauffement planétaire", - "category": "" + "keyword": "irrigation", + "category": "Agriculture" }, { - "keyword": "ressource planétaire", - "category": "" + "keyword": "jeter", + "category": "General" }, { - "keyword": "revue nature climate change", - "category": "" + "keyword": "micro-plastiques", + "category": "Industrie" }, { - "keyword": "seuil de réchauffement", - "category": "" + "keyword": "mégot", + "category": "General" }, { - "keyword": "soutenabilité environnementale", - "category": "" + "keyword": "nouvelles techniques génomiques", + "category": "Agriculture" }, { - "keyword": "température extrême", - "category": "" + "keyword": "ogm", + "category": "Agriculture" }, { - "keyword": "températures plus hautes", - "category": "" + "keyword": "organisme génétiquement modifiée", + "category": "Agriculture" }, { - "keyword": "transition agricole", + "keyword": "perturbateur endocrinien", "category": "General" }, { - "keyword": "transition agro écologique", - "category": "" + "keyword": "plante exotique envahissante", + "category": "Ecosystème" }, { - "keyword": "transition agroécologique", - "category": "" + "keyword": "plante exotique invasive", + "category": "Ecosystème" }, { - "keyword": "transition climatique", - "category": "General" + "keyword": "plante exotique très invasive", + "category": "Ecosystème" }, { - "keyword": "transition écologique", - "category": "General" + "keyword": "plastique", + "category": "Economie des ressources" }, { - "keyword": "transition en dehors des énergies fossiles", - "category": "Energie" + "keyword": "plomb", + "category": "Industrie" }, { - "keyword": "transition énergétique", - "category": "Energie" + "keyword": "pollue", + "category": "General" }, { - "keyword": "transition verte", + "keyword": "polluer", "category": "General" }, { - "keyword": "un climat qui change", - "category": "" - } - ], - "changement_climatique_consequences": [ - { - "keyword": "acidification des océans", - "category": "" + "keyword": "pollution", + "category": "General" }, { - "keyword": "aléas climatiques", - "category": "" + "keyword": "pollution de l’air", + "category": "General" }, { - "keyword": "année la plus chaude", - "category": "" + "keyword": "rejets industriels", + "category": "Industrie" }, { - "keyword": "arrêt des centrales nucléaires", - "category": "" + "keyword": "site minier", + "category": "Industrie" }, { - "keyword": "augmentation des précipitations", - "category": "" + "keyword": "solvant", + "category": "Industrie" }, { - "keyword": "augmentation des risques de sécheresse", - "category": "" + "keyword": "surconsommation", + "category": "General" }, { - "keyword": "baisse de production agricole", - "category": "" + "keyword": "tourisme de masse", + "category": "Transport" }, { - "keyword": "baisse des récoltes", - "category": "" + "keyword": "toxique", + "category": "général" }, { - "keyword": "baisse des rendements agricoles", - "category": "" + "keyword": "trafic d’espèces", + "category": "Ecosystème" }, { - "keyword": "blanchissement des coraux", - "category": "" + "keyword": "urbanisation", + "category": "General" }, { - "keyword": "canicule", - "category": "" + "keyword": "urbanisme", + "category": "General" }, { - "keyword": "canicule marine", + "keyword": "zinc", + "category": "Industrie" + } + ], + "biodiversite_concepts_generaux": [ + { + "keyword": "ademe", "category": "" }, { - "keyword": "catastophe écologique", + "keyword": "anti-écolo", "category": "" }, { - "keyword": "catastrophe climatique", + "keyword": "biodiversité", "category": "" }, { - "keyword": "chaleur extrême", + "keyword": "bonne nouvelle pour la planète", "category": "" }, { - "keyword": "chaleur record", + "keyword": "capacité planétaire", "category": "" }, { - "keyword": "chenille processionnaire", + "keyword": "convention des nations unies sur la diversité biologique", "category": "" }, { - "keyword": "climatique extrême", + "keyword": "convention sur la diversité biologique", "category": "" }, { - "keyword": "conflit d’usage de l’eau", + "keyword": "cop 15", "category": "" }, { - "keyword": "décès à cause de la chaleur", + "keyword": "cop biodiversité", "category": "" }, { - "keyword": "déficit de pluie", + "keyword": "cop de montréal", "category": "" }, { - "keyword": "diminution de la banquise", + "keyword": "cop quinze", "category": "" }, { - "keyword": "diminution des glaciers", + "keyword": "cop sur la biodiversité", "category": "" }, { - "keyword": "diminution des rendements agricoles", + "keyword": "cop15", "category": "" }, { - "keyword": "disparition des coraux", + "keyword": "d'ici 2050", "category": "" }, { - "keyword": "disparition des forêts", + "keyword": "destruction de la planète", "category": "" }, { - "keyword": "disparition des glaciers", + "keyword": "disparition des espèces", "category": "" }, { - "keyword": "disparition des récifs coralliens", + "keyword": "diversité biologique", "category": "" }, { - "keyword": "écocide", + "keyword": "diversité des êtres vivants", "category": "" }, { - "keyword": "effondrement de la falaise", + "keyword": "diversité du vivant", "category": "" }, { - "keyword": "élévation de la température", + "keyword": "déclin du vivant", "category": "" }, { - "keyword": "élévation des températures", + "keyword": "enjeu environnemental", "category": "" }, { - "keyword": "élévation du niveau de la mer", + "keyword": "faune sauvage", "category": "" }, { - "keyword": "élévation du niveau des océans", + "keyword": "fertilité des sols", "category": "" }, { - "keyword": "élévation du niveau marin", + "keyword": "france nature environnement", "category": "" }, { - "keyword": "érosion côtière", + "keyword": "green deal", "category": "" }, { - "keyword": "érosion des côtes", + "keyword": "habiter le monde", "category": "" }, { - "keyword": "érosion du littoral", + "keyword": "hydrologue", "category": "" }, { - "keyword": "espèce invasive", + "keyword": "impact environnementale", "category": "" }, { - "keyword": "été le plus chaud", + "keyword": "intégrité écologique", "category": "" }, { - "keyword": "fonte de la banquise", + "keyword": "intérêt environnemental", "category": "" }, { - "keyword": "fonte des calottes glacières", + "keyword": "ipbes", "category": "" }, { - "keyword": "fonte des glaces", - "category": "" + "keyword": "mutation écologique", + "category": "General" }, { - "keyword": "fonte des glaciers", + "keyword": "pacte vert", "category": "" }, { - "keyword": "fonte du permafrost", - "category": "" + "keyword": "planification écologique", + "category": "General" }, { - "keyword": "glissement de terrain", + "keyword": "politique climatique", "category": "" }, { - "keyword": "hausse de la température du globe", + "keyword": "ressource planétaire", "category": "" }, { - "keyword": "hausse des températures", + "keyword": "résilience des écosystèmes", "category": "" }, { - "keyword": "hausse du niveau de la mer", + "keyword": "sixième extinction de masse", "category": "" }, { - "keyword": "hausse du niveau des océans", + "keyword": "sommet sur la biodiversité", "category": "" }, { - "keyword": "hausse du niveau marin", + "keyword": "spécialiste de la biodiversité", "category": "" }, { - "keyword": "impact sur l'environnement", + "keyword": "tourbières", "category": "" }, { - "keyword": "inondations à répétition", + "keyword": "transition agro écologique", "category": "" }, { - "keyword": "intensification du cycle de l’eau", + "keyword": "transition agroécologique", "category": "" }, { - "keyword": "jour le plus chaud", + "keyword": "transition écologique", "category": "" }, { - "keyword": "l'été le plus chaud", + "keyword": "uicn", "category": "" }, { - "keyword": "l'hiver le plus chaud", + "keyword": "union internationale pour la conservation de la nature", "category": "" }, { - "keyword": "l'hiver le plus sec", + "keyword": "zones humides", "category": "" }, { - "keyword": "la planète se réchauffe", + "keyword": "écologique", "category": "" }, { - "keyword": "le climat du futur", + "keyword": "écosystème forestier", "category": "" }, { - "keyword": "les eaux se réchauffent", + "keyword": "écosystèmes dégradés", "category": "" }, { - "keyword": "maladaptation", + "keyword": "écosystémique", "category": "" - }, + } + ], + "biodiversite_concepts_generaux_indirectes": [ { - "keyword": "malle adaptation", + "keyword": "abeille", "category": "" }, { - "keyword": "manque d'eau", + "keyword": "agences régionales de santé", "category": "" }, { - "keyword": "manquer d'eau", - "category": "" + "keyword": "alimentation", + "category": "Agriculture" }, { - "keyword": "météorologique extrême", + "keyword": "ars", "category": "" }, { - "keyword": "migrant climatique", + "keyword": "autorité de santé", "category": "" }, { - "keyword": "migration climatique", + "keyword": "bloc d’immeubles", "category": "" }, { - "keyword": "montée des eaux", + "keyword": "corail", "category": "" }, { - "keyword": "montée du niveau de la mer", + "keyword": "coraux", "category": "" }, { - "keyword": "montée du niveau des océans", + "keyword": "diversité génétique", "category": "" }, { - "keyword": "mortalité forestière", + "keyword": "dégrader", "category": "" }, { - "keyword": "mort à cause de la canicule", + "keyword": "désertification", "category": "" }, { - "keyword": "morte à cause de la canicule", + "keyword": "eau", "category": "" }, { - "keyword": "mort à cause de la chaleur", + "keyword": "environnement", "category": "" }, { - "keyword": "morte à cause de la chaleur", + "keyword": "environnemental", "category": "" }, { - "keyword": "mort liées à la chaleur", + "keyword": "environnementale", "category": "" }, { - "keyword": "mort liées à la canicule", + "keyword": "environnementaux", "category": "" }, { - "keyword": "moustique tigre", + "keyword": "faune", "category": "" }, { - "keyword": "pénurie d'eau", + "keyword": "flore", "category": "" }, { - "keyword": "pénurie de neige", + "keyword": "forêt", "category": "" }, { - "keyword": "perte agricole", + "keyword": "générations futures", "category": "" }, { - "keyword": "pollution à l’ozone", + "keyword": "générations à venir", "category": "" }, { - "keyword": "pollution atmosphérique", + "keyword": "impact sur la santé", "category": "" }, { - "keyword": "pollution aux particules fines", + "keyword": "insecte", "category": "" }, { - "keyword": "printemps le plus pluvieux", + "keyword": "littoral", "category": "" }, { - "keyword": "prolifération de moustiques", + "keyword": "marais", "category": "" }, { - "keyword": "raréfaction de la ressource en eau", + "keyword": "mer", "category": "" }, { - "keyword": "rareté de la ressource en eau", + "keyword": "modèle agricole", "category": "" }, { - "keyword": "rareté saisonnière de la ressource en eau", + "keyword": "nature", "category": "" }, { - "keyword": "record de température", + "keyword": "naturel", "category": "" }, { - "keyword": "réfugiés climatique", - "category": "General" + "keyword": "naturelle", + "category": "" }, { - "keyword": "retrait gonflement des argiles", + "keyword": "océan", "category": "" }, { - "keyword": "salinisation des sols", + "keyword": "oms", "category": "" }, { - "keyword": "sécheresse", + "keyword": "organisation mondiale de la santé", "category": "" }, { - "keyword": "stress hydrique", + "keyword": "planète", "category": "" }, { - "keyword": "température record", + "keyword": "planétaire", "category": "" }, { - "keyword": "trop grande chaleur", + "keyword": "poisson", "category": "" }, { - "keyword": "urgence écologique", + "keyword": "pollinisation", "category": "" }, { - "keyword": "vague de chaleur", + "keyword": "revue nature", "category": "" }, { - "keyword": "zoonose", + "keyword": "récif corallien", "category": "" - } - ], - "attenuation_climatique_solutions_indirectes": [ - { - "keyword": "activisme climatique", - "category": "General" }, { - "keyword": "activiste pour le climat", - "category": "General" + "keyword": "terre", + "category": "" }, { - "keyword": "agriculture durable", - "category": "Agriculture" + "keyword": "vie sous-marine", + "category": "" }, { - "keyword": "alternative", - "category": "General" + "keyword": "vivant", + "category": "" }, { - "keyword": "alternative durable", - "category": "General" + "keyword": "écolo", + "category": "" }, { - "keyword": "approche systémique", - "category": "General" + "keyword": "écologie", + "category": "" }, { - "keyword": "arbre", + "keyword": "écologiste", "category": "" }, { - "keyword": "atténuation", - "category": "General" - }, + "keyword": "écosystème", + "category": "" + } + ], + "biodiversite_consequences": [ { - "keyword": "bardage en bois", - "category": "Batiments" + "keyword": "baisse de production agricole", + "category": "" }, { - "keyword": "biodégradable", - "category": "Economie des ressources" + "keyword": "baisse des rendements agricoles", + "category": "" }, { - "keyword": "bois d’oeuvre", - "category": "Batiments" + "keyword": "baisse des récoltes", + "category": "" }, { - "keyword": "bon pour la santé", - "category": "General" + "keyword": "baisse du stockage du carbone dans les sols", + "category": "" }, { - "keyword": "bonus automobile", - "category": "Transport" + "keyword": "bioérosion", + "category": "" }, { - "keyword": "borne électrique", - "category": "Transport" + "keyword": "bruit routier", + "category": "" }, { - "keyword": "bus", - "category": "Transport" + "keyword": "catastophe écologique", + "category": "" }, { - "keyword": "bus électrique", - "category": "Transport" + "keyword": "crise d'extinction de masse", + "category": "" }, { - "keyword": "camion électrique", - "category": "Transport" + "keyword": "diminution des rendements agricoles", + "category": "" }, { - "keyword": "camion xxl", - "category": "Transport" + "keyword": "disparition des espèces", + "category": "" }, { - "keyword": "centrale nucléaire", - "category": "Energie" + "keyword": "disparition des forêts", + "category": "" }, { - "keyword": "changement de chaudière", - "category": "Batiments" + "keyword": "disparition des insectes", + "category": "" }, { - "keyword": "changer leurs habitudes", - "category": "General" + "keyword": "disparition des oiseaux", + "category": "" }, { - "keyword": "changer nos comportements", - "category": "General" + "keyword": "disparition du vivant", + "category": "" }, { - "keyword": "changer nos habitudes", - "category": "General" + "keyword": "dégradation des puits de carbone", + "category": "" }, { - "keyword": "compostage", - "category": "Economie des ressources" + "keyword": "dégradation des sols", + "category": "" }, { - "keyword": "covoiturage", - "category": "Transport" + "keyword": "espèce en voie de disparition", + "category": "" }, { - "keyword": "déconstruire", - "category": "General" + "keyword": "espèce envahissante", + "category": "" }, { - "keyword": "décroissance", - "category": "General" + "keyword": "espèce exotique envahissante", + "category": "" }, { - "keyword": "désobéissance civile", - "category": "General" + "keyword": "espèce invasive", + "category": "" }, { - "keyword": "développement durable", - "category": "General" + "keyword": "espèce menacée", + "category": "" }, { - "keyword": "économie de carburant", - "category": "Transport" + "keyword": "espèce menacée d’extinction", + "category": "" }, { - "keyword": "écotaxe", - "category": "Transport" + "keyword": "espèce éteinte", + "category": "" }, { - "keyword": "éducation au changement climatique", - "category": "General" + "keyword": "espèces en danger", + "category": "" }, { - "keyword": "épargne citoyenne", - "category": "Economie des ressources" + "keyword": "impact sur l'environnement", + "category": "" }, { - "keyword": "epr", - "category": "Energie" + "keyword": "liste rouge de l'uicn", + "category": "" }, { - "keyword": "espace vert", - "category": "Ecosystème" + "keyword": "liste rouge mondiale des espèces menacées", + "category": "" }, { - "keyword": "faire baisser la température", + "keyword": "migration des espèces", "category": "" }, { - "keyword": "falloir ralentir", - "category": "General" + "keyword": "mortalité des forêts", + "category": "" }, { - "keyword": "forêt", - "category": "Ecosystème" + "keyword": "mortalité forestière", + "category": "" }, { - "keyword": "fret ferroviaire", - "category": "Transport" + "keyword": "moustique tigre", + "category": "" }, { - "keyword": "habitude durable", - "category": "Economie des ressources" + "keyword": "nature empoisonée", + "category": "" }, { - "keyword": "industrie verte", - "category": "Industrie" + "keyword": "perte agricole", + "category": "" }, { - "keyword": "intercités", - "category": "Transport" + "keyword": "perte de biodiversité", + "category": "" }, { - "keyword": "isolation", - "category": "Batiments" + "keyword": "perturbation du cycle de l’eau", + "category": "" }, { - "keyword": "isoler la façade", - "category": "Batiments" + "keyword": "pollution sonore", + "category": "" }, { - "keyword": "isoler les fenêtres", - "category": "Batiments" + "keyword": "santé végétale", + "category": "" }, { - "keyword": "jachère", - "category": "Agriculture" + "keyword": "sol pollué", + "category": "" }, { - "keyword": "label ab", - "category": "Agriculture" + "keyword": "urgence écologique", + "category": "" }, { - "keyword": "label bio", - "category": "Agriculture" + "keyword": "zoonose", + "category": "" }, { - "keyword": "label éco", - "category": "Industrie" + "keyword": "zoonotique", + "category": "" }, { - "keyword": "label écologique", - "category": "Industrie" + "keyword": "écosystème dégradé", + "category": "Ecosystème" + } + ], + "biodiversite_consequences_indirectes": [ + { + "keyword": "assécher", + "category": "" }, { - "keyword": "label hve", - "category": "Agriculture" + "keyword": "asséché", + "category": "" }, { - "keyword": "leasing social", - "category": "Transport" + "keyword": "asséchée", + "category": "" }, { - "keyword": "ligne tgv", - "category": "Transport" + "keyword": "cancer", + "category": "" }, { - "keyword": "made in france", - "category": "Industrie" + "keyword": "chant des oiseaux", + "category": "" }, { - "keyword": "manifestation pour le climat", - "category": "General" + "keyword": "contaminé", + "category": "" }, { - "keyword": "manipuler la terre", - "category": "Agriculture" + "keyword": "contaminée", + "category": "" }, { - "keyword": "marche à pied", - "category": "Transport" + "keyword": "dengue", + "category": "" }, { - "keyword": "marche du siècle", - "category": "General" + "keyword": "dépérissement", + "category": "" }, { - "keyword": "marche pour le climat", + "keyword": "dévastation", "category": "General" }, { - "keyword": "matériau isolant", - "category": "Batiments" + "keyword": "extinction", + "category": "" }, { - "keyword": "matériaux isolants", + "keyword": "les soulèvements de la terre", "category": "" }, { - "keyword": "militant écologiste", - "category": "General" + "keyword": "malade", + "category": "" }, { - "keyword": "militante écologiste", - "category": "General" + "keyword": "maladie", + "category": "" }, { - "keyword": "moins de viande", - "category": "Agriculture" + "keyword": "maladies infectieuses", + "category": "" }, { - "keyword": "norme", - "category": "General" + "keyword": "maladies transmises par des insectes", + "category": "" }, { - "keyword": "nucléaire", - "category": "Energie" + "keyword": "menacées de disparition", + "category": "" }, { - "keyword": "ombre", - "category": "Ecosystème" + "keyword": "pathologie", + "category": "" }, { - "keyword": "parc", - "category": "Ecosystème" + "keyword": "pathologie", + "category": "" }, { - "keyword": "pass rail", - "category": "Transport" + "keyword": "prolifération des moustiques", + "category": "" }, { - "keyword": "passer à l'électrique", - "category": "Transport" + "keyword": "restriction", + "category": "General" }, { - "keyword": "permaculture", - "category": "Agriculture" + "keyword": "santé animale", + "category": "" }, { - "keyword": "planter des arbres", - "category": "Ecosystème" + "keyword": "santé humaine", + "category": "" }, { - "keyword": "plus d’oxygène", + "keyword": "sécurité alimentaire", "category": "" + } + ], + "biodiversite_solutions": [ + { + "keyword": "agriculture bio", + "category": "Agriculture" }, { - "keyword": "plus durable", - "category": "General" + "keyword": "agriculture biologique", + "category": "Agriculture" }, { - "keyword": "poid lourd électrique", - "category": "Transport" + "keyword": "agriculture de conservation", + "category": "Agriculture" }, { - "keyword": "polyculture élevage", + "keyword": "agriculture plus verte", "category": "Agriculture" }, { - "keyword": "pompe à chaleur", - "category": "Batiments" + "keyword": "agriculture régénératrice", + "category": "Agriculture" }, { - "keyword": "prairie", - "category": "Ecosystème" + "keyword": "agro écologie", + "category": "Agriculture" }, { - "keyword": "pratiques vertueuses", + "keyword": "agro écologique", + "category": "" + }, + { + "keyword": "agroforesterie", "category": "Agriculture" }, { - "keyword": "préserver", - "category": "General" + "keyword": "agroécologie", + "category": "Agriculture" }, { - "keyword": "principe de précaution", - "category": "General" + "keyword": "aire naturelle protégée", + "category": "Ecosystème" }, { - "keyword": "produire en europe", - "category": "Industrie" + "keyword": "aires protégées", + "category": "Ecosystème" }, { - "keyword": "réacteur nucléaire", - "category": "Energie" + "keyword": "amoureux de la nature", + "category": "Ecosystème" }, { - "keyword": "recharge", - "category": "Transport" + "keyword": "amélioration des pratiques d’élevages", + "category": "Agriculture" }, { - "keyword": "réguler les températures", - "category": "General" + "keyword": "bien-être des animaux", + "category": "Agriculture" }, { - "keyword": "relocaliser la production", - "category": "Industrie" + "keyword": "bioplastique", + "category": "Economie des ressources" }, { - "keyword": "rénovation", - "category": "Batiments" + "keyword": "changer de modèle agricole", + "category": "Agriculture" }, { - "keyword": "rénovation énergétique", - "category": "Batiments" + "keyword": "changer nos habitudes alimentaires", + "category": "General" }, { - "keyword": "replantation", + "keyword": "conservation de la nature", "category": "Ecosystème" }, { - "keyword": "replanter", + "keyword": "conserver la nature", "category": "Ecosystème" }, { - "keyword": "résistance thermique", - "category": "Batiments" + "keyword": "corridor écologique", + "category": "Ecosystème" }, { - "keyword": "responsable", + "keyword": "droit de l’environnement", "category": "General" }, { - "keyword": "restreindre", + "keyword": "droit environnemental", "category": "General" }, { - "keyword": "restriction", + "keyword": "dépollution", "category": "General" }, { - "keyword": "saf", - "category": "Transport" + "keyword": "espèce protégée", + "category": "" }, { - "keyword": "se déplacer en vélo", - "category": "Transport" + "keyword": "fiscalité environnementale", + "category": "Industrie" }, { - "keyword": "taxe carbone", - "category": "General" + "keyword": "foncière forestière", + "category": "Ecosystème" }, { - "keyword": "té heu air", - "category": "Transport" + "keyword": "foresterie urbaine", + "category": "Ecosystème" }, { - "keyword": "tégévé", - "category": "Transport" + "keyword": "forêt mosaïque", + "category": "Ecosystème" }, { - "keyword": "ter", - "category": "Transport" + "keyword": "forêt urbaine", + "category": "Ecosystème" }, { - "keyword": "tgv", - "category": "Transport" + "keyword": "gestion durable des forêts", + "category": "Ecosystème" }, { - "keyword": "train", - "category": "Transport" + "keyword": "journée de la biodiversité", + "category": "General" }, { - "keyword": "trains régionaux", - "category": "Transport" + "keyword": "journée de la terre", + "category": "General" }, { - "keyword": "tramway", - "category": "Transport" + "keyword": "journée mondiale de la vie sauvage", + "category": "General" }, { - "keyword": "transport collectif", - "category": "Transport" + "keyword": "mesure environnementale", + "category": "General" }, { - "keyword": "transport en commun", - "category": "Transport" + "keyword": "moins polluant", + "category": "General" }, { - "keyword": "transport ferroviaire", - "category": "Transport" + "keyword": "nettoyage des fonds marins", + "category": "Ecosystème" }, { - "keyword": "transport fluvial", - "category": "Transport" + "keyword": "nettoyage des océans", + "category": "Ecosystème" }, { - "keyword": "transport maritime", - "category": "Transport" + "keyword": "planter des arbres", + "category": "Ecosystème" }, { - "keyword": "tri à la source", + "keyword": "plastique recyclé", "category": "Economie des ressources" }, { - "keyword": "végan", - "category": "Agriculture" + "keyword": "pollueur payeur", + "category": "General" }, { - "keyword": "végane", + "keyword": "pratiques agricoles durables", "category": "Agriculture" }, { - "keyword": "végétarien", - "category": "Agriculture" + "keyword": "prise de conscience environnementale", + "category": "General" }, { - "keyword": "végétarienne", - "category": "Agriculture" + "keyword": "prise de conscience écologique", + "category": "General" }, { - "keyword": "véhicule électrique", - "category": "Transport" + "keyword": "produits verts", + "category": "General" }, { - "keyword": "vélo", - "category": "Transport" + "keyword": "protection de l'environnement", + "category": "Ecosystème" }, { - "keyword": "verdir", - "category": "" + "keyword": "protection de la barrière de corail", + "category": "Ecosystème" }, { - "keyword": "verdure", - "category": "" + "keyword": "protection de la mangrove", + "category": "Ecosystème" }, { - "keyword": "vertueux", - "category": "General" + "keyword": "protection de la nature", + "category": "Ecosystème" }, { - "keyword": "ville durable", - "category": "General" + "keyword": "protection des coraux", + "category": "Ecosystème" }, { - "keyword": "voitures électriques", - "category": "Transport" + "keyword": "protection des cours d’eau", + "category": "Eau" }, { - "keyword": "zad", + "keyword": "protection des côtes", "category": "Ecosystème" }, { - "keyword": "zadisme", - "category": "General" + "keyword": "protection des espèces", + "category": "Ecosystème" }, { - "keyword": "zadiste", - "category": "General" - } - ], - "changement_climatique_causes_indirectes": [ + "keyword": "protection des oiseaux", + "category": "Ecosystème" + }, { - "keyword": "activité industrielle", - "category": "Industrie" + "keyword": "protection des tourbières", + "category": "Ecosystème" }, { - "keyword": "agricole", - "category": "Agriculture" + "keyword": "protection des zones côtières", + "category": "Ecosystème" }, { - "keyword": "agriculteur", - "category": "Agriculture" + "keyword": "protection des zones humides", + "category": "Ecosystème" }, { - "keyword": "agriculture", - "category": "Agriculture" + "keyword": "protection du récif corallien", + "category": "Ecosystème" }, { - "keyword": "agro-industrie", - "category": "Agriculture" + "keyword": "protection du vivant", + "category": "Ecosystème" }, { - "keyword": "agro-industriel", - "category": "Agriculture" + "keyword": "protéger la nature", + "category": "Ecosystème" }, { - "keyword": "agroalimentaire", - "category": "Agriculture" + "keyword": "protéger le vivant", + "category": "Ecosystème" }, { - "keyword": "aliments transformés", - "category": "General" + "keyword": "préservation d'espèce", + "category": "Ecosystème" }, { - "keyword": "aménagement du territoire", - "category": "General" + "keyword": "préservation de la biodiversité", + "category": "Ecosystème" }, { - "keyword": "automobile", - "category": "Transport" + "keyword": "préservation des milieux", + "category": "Ecosystème" }, { - "keyword": "autoroutes", - "category": "Transport" + "keyword": "préserver les fonds marins", + "category": "Ecosystème" }, { - "keyword": "aviation", - "category": "Transport" + "keyword": "recyclant", + "category": "Economie des ressources" }, { - "keyword": "avion", - "category": "Transport" + "keyword": "reduire les emballages", + "category": "Economie des ressources" }, { - "keyword": "azote", - "category": "General" + "keyword": "reforestation", + "category": "Ecosystème" }, { - "keyword": "capitalisme", - "category": "Economie des ressources" + "keyword": "renaturer", + "category": "Ecosystème" }, { - "keyword": "carburant", - "category": "Energie" + "keyword": "respectueux de l'environnement", + "category": "Ecosystème" }, { - "keyword": "charbon", - "category": "Energie" + "keyword": "respectueux de l’environnement", + "category": "Ecosystème" }, { - "keyword": "chauffage", - "category": "Energie" + "keyword": "restauration de la biodiversité", + "category": "Ecosystème" }, { - "keyword": "chauffage au fuel", - "category": "Energie" + "keyword": "restauration de la nature", + "category": "Ecosystème" }, { - "keyword": "chauffage au gaz", - "category": "Energie" + "keyword": "restauration des coraux", + "category": "Ecosystème" }, { - "keyword": "climatisation", - "category": "Batiments" + "keyword": "restauration des forêts", + "category": "Ecosystème" }, { - "keyword": "déchet", - "category": "Economie des ressources" + "keyword": "restauration des milieux", + "category": "Ecosystème" }, { - "keyword": "déperdition de chaleur", - "category": "Batiments" + "keyword": "restauration des tourbières", + "category": "Ecosystème" }, { - "keyword": "diesel", - "category": "Energie" + "keyword": "restauration des zones humides", + "category": "Ecosystème" + }, + { + "keyword": "restauration des écosystèmes", + "category": "Ecosystème" + }, + { + "keyword": "restauration du récif corallien", + "category": "Ecosystème" + }, + { + "keyword": "restaurer la biodiversité", + "category": "Ecosystème" + }, + { + "keyword": "restaurer la nature", + "category": "Ecosystème" }, { - "keyword": "élevage", - "category": "Agriculture" + "keyword": "restaurer la qualité de l’air", + "category": "Ecosystème" }, { - "keyword": "élevage bovine", - "category": "Agriculture" + "keyword": "restaurer la qualité des sols", + "category": "Ecosystème" }, { - "keyword": "emballage en plastique", - "category": "Economie des ressources" + "keyword": "restaurer les tourbières", + "category": "Ecosystème" }, { - "keyword": "emballage plastique", - "category": "Economie des ressources" + "keyword": "revégétalisation", + "category": "Ecosystème" }, { - "keyword": "emissions mondiales", - "category": "General" + "keyword": "revégétaliser", + "category": "Ecosystème" }, { - "keyword": "essence", - "category": "Energie" + "keyword": "réduire la consommation d’eau", + "category": "Eau" }, { - "keyword": "fioul", - "category": "Energie" + "keyword": "réduire le cheptel", + "category": "Agriculture" }, { - "keyword": "forage pétrolier", - "category": "Energie" + "keyword": "réintroduction d'espèce", + "category": "Ecosystème" }, { - "keyword": "fuel", - "category": "Energie" + "keyword": "réserve de biosphère", + "category": "Ecosystème" }, { - "keyword": "gaspillage alimentaire", - "category": "Economie des ressources" + "keyword": "réserve naturelle", + "category": "Ecosystème" }, { - "keyword": "gaz", - "category": "Energie" + "keyword": "résistant à la sécheresse", + "category": "Ecosystème" }, { - "keyword": "gaz carbonique", + "keyword": "résistante à la sécheresse", "category": "General" }, { - "keyword": "gaz de schiste", - "category": "Energie" + "keyword": "sauver des espèces", + "category": "Ecosystème" }, { - "keyword": "gaz naturel", - "category": "Energie" + "keyword": "semaine du développement durable", + "category": "General" }, { - "keyword": "îlot de chaleur", - "category": "Batiments" + "keyword": "sobriété", + "category": "General" }, { - "keyword": "industrialisation", - "category": "Industrie" + "keyword": "société écologique", + "category": "General" }, { - "keyword": "industrie", - "category": "Industrie" + "keyword": "sol vivant", + "category": "Ecosystème" }, { - "keyword": "infrastructures routières", - "category": "Transport" + "keyword": "solutions fondées sur la nature", + "category": "General" }, { - "keyword": "kérosène", - "category": "Energie" + "keyword": "verdir la politique agricole", + "category": "Agriculture" }, { - "keyword": "lignite", - "category": "Energie" + "keyword": "vertueux pour la planète", + "category": "General" }, { - "keyword": "logement mal isolé", - "category": "Batiments" + "keyword": "ville écologique", + "category": "General" }, { - "keyword": "malbouffe", - "category": "Agriculture" + "keyword": "végétalisation", + "category": "" }, { - "keyword": "méga-camions", - "category": "Transport" + "keyword": "végétalisation des espaces urbains", + "category": "Ecosystème" }, { - "keyword": "or noir", - "category": "Energie" + "keyword": "végétalisation des villes", + "category": "Ecosystème" }, { - "keyword": "passoire énergétique", - "category": "Batiments" + "keyword": "végétaliser", + "category": "Ecosystème" }, { - "keyword": "passoire thermique", - "category": "Batiments" + "keyword": "végétalisé", + "category": "Ecosystème" }, { - "keyword": "pétrole", - "category": "Energie" + "keyword": "végétalisée", + "category": "Ecosystème" }, { - "keyword": "pollue", - "category": "General" + "keyword": "zone naturelle protégée", + "category": "" }, { - "keyword": "polluer", + "keyword": "éco geste", "category": "General" }, { - "keyword": "pollution", + "keyword": "éco responsable", "category": "General" }, { - "keyword": "prendre l'avion", - "category": "Transport" + "keyword": "économie circulaire", + "category": "Economie des ressources" }, { - "keyword": "puit de pétrole", - "category": "Energie" + "keyword": "écoresponsable", + "category": "General" }, { - "keyword": "secteur tertiaire", - "category": "General" + "keyword": "équilibre pour la faune et la flore", + "category": "Ecosystème" }, { - "keyword": "serres chauffées", + "keyword": "étiquetage unique des aliments", "category": "Agriculture" - }, + } + ], + "biodiversite_solutions_indirectes": [ { - "keyword": "solvant", - "category": "Industrie" + "keyword": "agriculture durable", + "category": "Agriculture" }, { - "keyword": "super-poids lourds", - "category": "Transport" + "keyword": "alternative", + "category": "" }, { - "keyword": "suv", - "category": "Transport" + "keyword": "approche systémique", + "category": "" }, { - "keyword": "trafic routier", - "category": "Transport" + "keyword": "aquaculture durable", + "category": "Agriculture" }, { - "keyword": "transport", - "category": "Transport" + "keyword": "arbre", + "category": "" }, { - "keyword": "transport aérien", - "category": "Transport" + "keyword": "atténuation", + "category": "" }, { - "keyword": "transport routier", - "category": "Transport" + "keyword": "biochar", + "category": "Agriculture" }, { - "keyword": "transporteur", - "category": "Transport" + "keyword": "déconstruire", + "category": "General" }, { - "keyword": "urbanisme", + "keyword": "décroissance", "category": "General" }, { - "keyword": "usine", - "category": "Industrie" + "keyword": "espace vert", + "category": "Ecosystème" }, { - "keyword": "vache", - "category": "Agriculture" + "keyword": "gestion des milieux aquatiques", + "category": "Ecosystème" }, { - "keyword": "viande", + "keyword": "gestion durable des terres cultivables", "category": "Agriculture" }, { - "keyword": "voiture", - "category": "Transport" + "keyword": "habitude durable", + "category": "Economie des ressources" }, { - "keyword": "voiture thermique", - "category": "Transport" + "keyword": "infrastructure résiliente", + "category": "Batiments" }, { - "keyword": "vol paris new york", - "category": "Transport" + "keyword": "jachère", + "category": "Agriculture" }, { - "keyword": "vol direct", - "category": "Transport" + "keyword": "jardin", + "category": "Ecosystème" }, { - "keyword": "voyager", - "category": "Transport" - } - ], - "adaptation_climatique_solutions": [ + "keyword": "manger bio", + "category": "Agriculture" + }, { - "keyword": "adaptation au changement climatique", + "keyword": "militant écologiste", "category": "General" }, { - "keyword": "adaptation au dérèglement climatique", + "keyword": "militante écologiste", "category": "General" }, { - "keyword": "adaptation au réchauffement climatique", - "category": "General" + "keyword": "nettoyage des plages", + "category": "Ecosystème" }, { - "keyword": "adaptation climatique", + "keyword": "norme", "category": "General" }, { - "keyword": "agro écologie", - "category": "Agriculture" + "keyword": "parc", + "category": "Ecosystème" }, { - "keyword": "agro écologique", + "keyword": "permaculture", "category": "Agriculture" }, { - "keyword": "agroécologie", - "category": "Agriculture" + "keyword": "plus durable", + "category": "General" }, { - "keyword": "agroforesterie", - "category": "Agriculture" + "keyword": "plus d’oxygène", + "category": "" }, { - "keyword": "amélioration des pratiques d’élevage", + "keyword": "polyculture élevage", "category": "Agriculture" }, { - "keyword": "aquaculture durable", - "category": "Agriculture" + "keyword": "prairie", + "category": "Ecosystème" }, { - "keyword": "bon pour la planète", - "category": "General" + "keyword": "pratiques vertueuses", + "category": "Agriculture" }, { - "keyword": "changer nos habitudes alimentaires", + "keyword": "principe de précaution", "category": "General" }, { - "keyword": "désalinisation des eaux", - "category": "Eau" - }, - { - "keyword": "développement de la planète", - "category": "" - }, - { - "keyword": "eaux usées traitées", - "category": "Eau" - }, - { - "keyword": "économie d’eau", - "category": "Eau" + "keyword": "préserver", + "category": "General" }, { - "keyword": "économiser l'eau", - "category": "Eau" + "keyword": "pêche durable", + "category": "Agriculture" }, { - "keyword": "foresterie urbaine", + "keyword": "replantation", "category": "Ecosystème" }, { - "keyword": "forêt urbaine", + "keyword": "replanter", "category": "Ecosystème" }, { - "keyword": "gestion de la ressource en eau", - "category": "Eau" + "keyword": "responsable", + "category": "General" }, { - "keyword": "gestion du littoral", - "category": "Ecosystème" + "keyword": "restreindre", + "category": "General" }, { - "keyword": "gestion durable des forêts", - "category": "Ecosystème" + "keyword": "restriction", + "category": "General" }, { - "keyword": "gestion durable des terres cultivables", + "keyword": "réduire l’élevage intensif", "category": "Agriculture" }, { - "keyword": "îlot de fraîcheur", + "keyword": "toit-jardin", "category": "Ecosystème" }, { - "keyword": "limiter l’érosion des côtes", - "category": "General" + "keyword": "variété rustique", + "category": "Ecosystème" }, { - "keyword": "lutte contre le gaspillage d’eau", - "category": "Eau" + "keyword": "verdir", + "category": "" }, { - "keyword": "lutter contre l’érosion", - "category": "General" + "keyword": "verdure", + "category": "" }, { - "keyword": "mesure environnementale", + "keyword": "vertueux", "category": "General" }, { - "keyword": "nous adapter à un futur incertain", - "category": "General" + "keyword": "ville durable", + "category": "" }, { - "keyword": "pêche durable", - "category": "Agriculture" + "keyword": "végétation", + "category": "General" }, { - "keyword": "préservation de la ressource en eau", - "category": "Eau" + "keyword": "zan", + "category": "Ecosystème" }, { - "keyword": "prévention des catastrophes naturelles", - "category": "General" + "keyword": "zéro artificialisation nette", + "category": "Ecosystème" }, { - "keyword": "prévention des inondations", - "category": "General" - }, + "keyword": "épargne citoyenne", + "category": "Economie des ressources" + } + ], + "changement climatique_constat": [ { - "keyword": "prise de conscience écologique", - "category": "General" + "keyword": "politique climatique", + "category": "" }, { - "keyword": "prise de conscience environnementale", - "category": "General" + "keyword": "scope un et deux", + "category": "" + } + ], + "changement_climatique_cause": [ + { + "keyword": "ferme-usine", + "category": "Agriculture" + } + ], + "changement_climatique_causes": [ + { + "keyword": "a69", + "category": "Transport" }, { - "keyword": "récupérateur d'eau", - "category": "Eau" + "keyword": "agriculture conventionnelle", + "category": "Agriculture" }, { - "keyword": "récupérer l'eau", - "category": "Eau" + "keyword": "agriculture extensive", + "category": "Agriculture" }, { - "keyword": "réduction de la demande en eau", - "category": "Eau" + "keyword": "agriculture industrielle", + "category": "Agriculture" }, { - "keyword": "réduire l’élevage intensif", + "keyword": "agriculture intensive", "category": "Agriculture" }, { - "keyword": "reforestation", - "category": "Ecosystème" + "keyword": "co deux", + "category": "General" }, { - "keyword": "renaturer", - "category": "Ecosystème" + "keyword": "co2", + "category": "General" }, { - "keyword": "renforcer les digues", - "category": "Eau" + "keyword": "combustibles fossiles", + "category": "Energie" }, { - "keyword": "renforcer les dunes", - "category": "Ecosystème" + "keyword": "dyoxide de carbone", + "category": "General" }, { - "keyword": "rénovation des batiments", - "category": "Batiments" + "keyword": "déforestation", + "category": "Ecosystème" }, { - "keyword": "rénovation thermique", - "category": "Batiments" + "keyword": "fuel lourd", + "category": "Energie" }, { - "keyword": "réserve d’eau", - "category": "Eau" + "keyword": "fumée industrielle", + "category": "Industrie" }, { - "keyword": "résistant à la sécheresse", + "keyword": "gaz à effet de serre", "category": "General" }, { - "keyword": "résistante à la sécheresse", - "category": "Ecosystème" + "keyword": "greenwashing", + "category": "General" }, { - "keyword": "restriction d’eau", - "category": "Eau" + "keyword": "inaction climatique", + "category": "General" }, { - "keyword": "retenue collinaire", - "category": "Eau" + "keyword": "insuffisance climatique", + "category": "General" }, { - "keyword": "réutilisation des eaux usées traitées", - "category": "Eau" + "keyword": "mauvaise nouvelle pour la planète", + "category": "General" }, { - "keyword": "revégétalisation", - "category": "Ecosystème" + "keyword": "mauvaise nouvelle pour le climat", + "category": "General" }, { - "keyword": "revégétaliser", - "category": "Ecosystème" + "keyword": "méthane", + "category": "General" }, { - "keyword": "sauvegarde de la ressource en eau", - "category": "Eau" + "keyword": "pas très écolo", + "category": "General" }, { - "keyword": "tévéa verte", + "keyword": "polluant", "category": "General" }, { - "keyword": "tva verte", + "keyword": "pollution industrielle", + "category": "Industrie" + }, + { + "keyword": "pollution record", "category": "General" }, { - "keyword": "végétalisation", - "category": "Ecosystème" + "keyword": "productivisme", + "category": "General" }, { - "keyword": "végétalisé", - "category": "Ecosystème" + "keyword": "productiviste", + "category": "General" }, { - "keyword": "végétalisée", - "category": "Ecosystème" + "keyword": "élevage intensif", + "category": "Agriculture" }, { - "keyword": "végétaliser", - "category": "Ecosystème" + "keyword": "émission de carbone", + "category": "General" }, { - "keyword": "verdir la politique agricole", - "category": "Agriculture" + "keyword": "émissions anthropiques", + "category": "General" }, { - "keyword": "vertueux pour la planète", + "keyword": "émissions importées", "category": "General" - } - ], - "biodiversite_concepts_generaux": [ + }, { - "keyword": "ademe", - "category": "" + "keyword": "émissions liées à la consommation", + "category": "General" }, { - "keyword": "anti-écolo", - "category": "" + "keyword": "émissions territoriales", + "category": "General" }, { - "keyword": "biodiversité", - "category": "" + "keyword": "énergies fossiles", + "category": "Energie" + } + ], + "changement_climatique_causes_indirectes": [ + { + "keyword": "activité industrielle", + "category": "Industrie" }, { - "keyword": "bonne nouvelle pour la planète", - "category": "" + "keyword": "agricole", + "category": "Agriculture" }, { - "keyword": "capacité planétaire", - "category": "" + "keyword": "agriculteur", + "category": "Agriculture" }, { - "keyword": "convention des nations unies sur la diversité biologique", - "category": "" + "keyword": "agriculture", + "category": "Agriculture" }, { - "keyword": "convention sur la diversité biologique", - "category": "" + "keyword": "agro-industrie", + "category": "Agriculture" }, { - "keyword": "cop 15", - "category": "" + "keyword": "agro-industriel", + "category": "Agriculture" }, { - "keyword": "cop biodiversité", - "category": "" + "keyword": "agroalimentaire", + "category": "Agriculture" }, { - "keyword": "cop de montréal", - "category": "" + "keyword": "aliments transformés", + "category": "General" }, { - "keyword": "cop quinze", - "category": "" + "keyword": "aménagement du territoire", + "category": "General" }, { - "keyword": "cop sur la biodiversité", - "category": "" + "keyword": "automobile", + "category": "Transport" }, { - "keyword": "cop15", - "category": "" + "keyword": "autoroutes", + "category": "Transport" }, { - "keyword": "d'ici 2050", - "category": "" + "keyword": "aviation", + "category": "Transport" }, { - "keyword": "déclin du vivant", - "category": "" + "keyword": "avion", + "category": "Transport" }, { - "keyword": "destruction de la planète", - "category": "" + "keyword": "azote", + "category": "General" }, { - "keyword": "disparition des espèces", - "category": "" + "keyword": "capitalisme", + "category": "Economie des ressources" }, { - "keyword": "diversité biologique", - "category": "" + "keyword": "carburant", + "category": "Energie" }, { - "keyword": "diversité des êtres vivants", - "category": "" + "keyword": "charbon", + "category": "Energie" }, { - "keyword": "diversité du vivant", - "category": "" + "keyword": "chauffage", + "category": "Energie" }, { - "keyword": "écologique", - "category": "" + "keyword": "chauffage au fuel", + "category": "Energie" }, { - "keyword": "écosystème forestier", - "category": "" + "keyword": "chauffage au gaz", + "category": "Energie" }, { - "keyword": "écosystèmes dégradés", - "category": "" + "keyword": "climatisation", + "category": "Batiments" }, { - "keyword": "écosystémique", - "category": "" + "keyword": "diesel", + "category": "Energie" }, { - "keyword": "enjeu environnemental", - "category": "" + "keyword": "déchet", + "category": "Economie des ressources" }, { - "keyword": "faune sauvage", - "category": "" + "keyword": "déperdition de chaleur", + "category": "Batiments" }, { - "keyword": "fertilité des sols", - "category": "" + "keyword": "emballage en plastique", + "category": "Economie des ressources" }, { - "keyword": "france nature environnement", - "category": "" + "keyword": "emballage plastique", + "category": "Economie des ressources" }, { - "keyword": "green deal", - "category": "" + "keyword": "emissions mondiales", + "category": "General" }, { - "keyword": "habiter le monde", - "category": "" + "keyword": "essence", + "category": "Energie" }, { - "keyword": "hydrologue", - "category": "" + "keyword": "fioul", + "category": "Energie" }, { - "keyword": "impact environnementale", - "category": "" + "keyword": "forage pétrolier", + "category": "Energie" }, { - "keyword": "intégrité écologique", - "category": "" + "keyword": "fuel", + "category": "Energie" }, { - "keyword": "intérêt environnemental", - "category": "" + "keyword": "gaspillage alimentaire", + "category": "Economie des ressources" }, { - "keyword": "ipbes", - "category": "" + "keyword": "gaz", + "category": "Energie" }, { - "keyword": "mutation écologique", + "keyword": "gaz carbonique", "category": "General" }, { - "keyword": "pacte vert", - "category": "" + "keyword": "gaz de schiste", + "category": "Energie" }, { - "keyword": "planification écologique", - "category": "General" + "keyword": "gaz naturel", + "category": "Energie" }, { - "keyword": "politique climatique", - "category": "" + "keyword": "industrialisation", + "category": "Industrie" }, { - "keyword": "résilience des écosystèmes", - "category": "" + "keyword": "industrie", + "category": "Industrie" }, { - "keyword": "ressource planétaire", - "category": "" + "keyword": "infrastructures routières", + "category": "Transport" }, { - "keyword": "sixième extinction de masse", - "category": "" + "keyword": "kérosène", + "category": "Energie" }, { - "keyword": "sommet sur la biodiversité", - "category": "" + "keyword": "lignite", + "category": "Energie" }, { - "keyword": "spécialiste de la biodiversité", - "category": "" + "keyword": "logement mal isolé", + "category": "Batiments" }, { - "keyword": "tourbières", - "category": "" + "keyword": "malbouffe", + "category": "Agriculture" }, { - "keyword": "transition agro écologique", - "category": "" + "keyword": "méga-camions", + "category": "Transport" }, { - "keyword": "transition agroécologique", - "category": "" + "keyword": "or noir", + "category": "Energie" }, { - "keyword": "transition écologique", - "category": "" + "keyword": "passoire thermique", + "category": "Batiments" }, { - "keyword": "uicn", - "category": "" + "keyword": "passoire énergétique", + "category": "Batiments" }, { - "keyword": "union internationale pour la conservation de la nature", - "category": "" + "keyword": "pollue", + "category": "General" }, { - "keyword": "zones humides", - "category": "" - } - ], - "changement_climatique_constat_indirectes": [ - { - "keyword": "agences régionales de santé", - "category": "" + "keyword": "polluer", + "category": "General" }, { - "keyword": "air frais", - "category": "" + "keyword": "pollution", + "category": "General" }, { - "keyword": "alimentation", - "category": "Agriculture" + "keyword": "prendre l'avion", + "category": "Transport" }, { - "keyword": "ars", - "category": "" + "keyword": "puit de pétrole", + "category": "Energie" }, { - "keyword": "atmosphère", - "category": "" + "keyword": "pétrole", + "category": "Energie" }, { - "keyword": "autorité de santé", - "category": "" + "keyword": "secteur tertiaire", + "category": "General" }, { - "keyword": "baisse des températures", - "category": "" + "keyword": "serres chauffées", + "category": "Agriculture" }, { - "keyword": "banquise", - "category": "" + "keyword": "solvant", + "category": "Industrie" }, { - "keyword": "bâtiment", - "category": "Batiments" + "keyword": "super-poids lourds", + "category": "Transport" }, { - "keyword": "batterie", - "category": "" + "keyword": "suv", + "category": "Transport" }, { - "keyword": "bloc d’immeubles", - "category": "" + "keyword": "trafic routier", + "category": "Transport" }, { - "keyword": "bouquet énergétique", - "category": "" + "keyword": "transport", + "category": "Transport" }, { - "keyword": "climat", - "category": "" + "keyword": "transport aérien", + "category": "Transport" }, { - "keyword": "climatosceptique", - "category": "" + "keyword": "transport routier", + "category": "Transport" }, { - "keyword": "consommation énergétique", - "category": "Energie" + "keyword": "transporteur", + "category": "Transport" }, { - "keyword": "défi de notre siècle", - "category": "" + "keyword": "urbanisme", + "category": "General" }, { - "keyword": "eau", - "category": "" + "keyword": "usine", + "category": "Industrie" }, { - "keyword": "eau de pluie", - "category": "" + "keyword": "vache", + "category": "Agriculture" }, { - "keyword": "eaux", - "category": "" + "keyword": "viande", + "category": "Agriculture" }, { - "keyword": "éco-anxiété", - "category": "" + "keyword": "voiture", + "category": "Transport" }, { - "keyword": "écolo", - "category": "" + "keyword": "voiture thermique", + "category": "Transport" }, { - "keyword": "écologie", - "category": "" + "keyword": "vol direct", + "category": "Transport" }, { - "keyword": "écologiste", - "category": "" + "keyword": "vol paris new york", + "category": "Transport" }, { - "keyword": "écosystème", - "category": "" + "keyword": "voyager", + "category": "Transport" }, { - "keyword": "énergie", - "category": "" + "keyword": "élevage", + "category": "Agriculture" }, { - "keyword": "environnement", - "category": "" + "keyword": "élevage bovine", + "category": "Agriculture" }, { - "keyword": "facture énergétique", + "keyword": "îlot de chaleur", + "category": "Batiments" + } + ], + "changement_climatique_consequences": [ + { + "keyword": "acidification des océans", "category": "" }, { - "keyword": "fraîcheur", + "keyword": "aléas climatiques", "category": "" }, { - "keyword": "générations à venir", + "keyword": "année la plus chaude", "category": "" }, { - "keyword": "générations futures", + "keyword": "arrêt des centrales nucléaires", "category": "" }, { - "keyword": "glacier", + "keyword": "augmentation des précipitations", "category": "" }, { - "keyword": "inégalité", + "keyword": "augmentation des risques de sécheresse", "category": "" }, { - "keyword": "jamais un tel phénomène", + "keyword": "baisse de production agricole", "category": "" }, { - "keyword": "mer", + "keyword": "baisse des rendements agricoles", "category": "" }, { - "keyword": "mix électrique", + "keyword": "baisse des récoltes", "category": "" }, { - "keyword": "modèle agricole", + "keyword": "blanchissement des coraux", "category": "" }, { - "keyword": "océan", + "keyword": "canicule", "category": "" }, { - "keyword": "oms", + "keyword": "canicule marine", "category": "" }, { - "keyword": "organisation mondiale de la santé", + "keyword": "catastophe écologique", "category": "" }, { - "keyword": "performance énergétique", + "keyword": "catastrophe climatique", "category": "" }, { - "keyword": "permafrost", + "keyword": "chaleur extrême", "category": "" }, { - "keyword": "planétaire", + "keyword": "chaleur record", "category": "" }, { - "keyword": "planète", + "keyword": "chenille processionnaire", "category": "" }, { - "keyword": "pont thermique", - "category": "Batiments" + "keyword": "climatique extrême", + "category": "" }, { - "keyword": "revue nature", + "keyword": "conflit d’usage de l’eau", "category": "" }, { - "keyword": "santé publique", + "keyword": "diminution de la banquise", "category": "" }, { - "keyword": "sol", + "keyword": "diminution des glaciers", "category": "" }, { - "keyword": "température", + "keyword": "diminution des rendements agricoles", "category": "" }, { - "keyword": "terre", + "keyword": "disparition des coraux", "category": "" - } - ], - "biodiversite_solutions": [ - { - "keyword": "agriculture bio", - "category": "Agriculture" }, { - "keyword": "agriculture biologique", - "category": "Agriculture" + "keyword": "disparition des forêts", + "category": "" }, { - "keyword": "agriculture de conservation", - "category": "Agriculture" + "keyword": "disparition des glaciers", + "category": "" }, { - "keyword": "agriculture plus verte", - "category": "Agriculture" + "keyword": "disparition des récifs coralliens", + "category": "" }, { - "keyword": "agriculture régénératrice", - "category": "Agriculture" + "keyword": "décès à cause de la chaleur", + "category": "" }, { - "keyword": "agro écologie", - "category": "Agriculture" + "keyword": "déficit de pluie", + "category": "" }, { - "keyword": "agro écologique", + "keyword": "effondrement de la falaise", "category": "" }, { - "keyword": "agroécologie", - "category": "Agriculture" + "keyword": "espèce invasive", + "category": "" }, { - "keyword": "agroforesterie", - "category": "Agriculture" + "keyword": "fonte de la banquise", + "category": "" }, { - "keyword": "aire naturelle protégée", - "category": "Ecosystème" + "keyword": "fonte des calottes glacières", + "category": "" }, { - "keyword": "aires protégées", - "category": "Ecosystème" + "keyword": "fonte des glaces", + "category": "" }, { - "keyword": "amélioration des pratiques d’élevages", - "category": "Agriculture" + "keyword": "fonte des glaciers", + "category": "" }, { - "keyword": "amoureux de la nature", - "category": "Ecosystème" + "keyword": "fonte du permafrost", + "category": "" }, { - "keyword": "bien-être des animaux", - "category": "Agriculture" + "keyword": "glissement de terrain", + "category": "" }, { - "keyword": "bioplastique", - "category": "Economie des ressources" + "keyword": "hausse de la température du globe", + "category": "" }, { - "keyword": "changer de modèle agricole", - "category": "Agriculture" + "keyword": "hausse des températures", + "category": "" }, { - "keyword": "changer nos habitudes alimentaires", - "category": "General" + "keyword": "hausse du niveau de la mer", + "category": "" }, { - "keyword": "conservation de la nature", - "category": "Ecosystème" + "keyword": "hausse du niveau des océans", + "category": "" }, { - "keyword": "conserver la nature", - "category": "Ecosystème" + "keyword": "hausse du niveau marin", + "category": "" }, { - "keyword": "corridor écologique", - "category": "Ecosystème" + "keyword": "impact sur l'environnement", + "category": "" }, { - "keyword": "dépollution", - "category": "General" + "keyword": "inondations à répétition", + "category": "" }, { - "keyword": "droit de l’environnement", - "category": "General" + "keyword": "intensification du cycle de l’eau", + "category": "" }, { - "keyword": "droit environnemental", - "category": "General" + "keyword": "jour le plus chaud", + "category": "" }, { - "keyword": "éco geste", - "category": "General" + "keyword": "l'hiver le plus chaud", + "category": "" }, { - "keyword": "éco responsable", - "category": "General" + "keyword": "l'hiver le plus sec", + "category": "" }, { - "keyword": "économie circulaire", - "category": "Economie des ressources" + "keyword": "l'été le plus chaud", + "category": "" }, { - "keyword": "écoresponsable", - "category": "General" + "keyword": "la planète se réchauffe", + "category": "" }, { - "keyword": "équilibre pour la faune et la flore", - "category": "Ecosystème" + "keyword": "le climat du futur", + "category": "" }, { - "keyword": "espèce protégée", + "keyword": "les eaux se réchauffent", "category": "" }, { - "keyword": "étiquetage unique des aliments", - "category": "Agriculture" + "keyword": "maladaptation", + "category": "" }, { - "keyword": "fiscalité environnementale", - "category": "Industrie" + "keyword": "malle adaptation", + "category": "" }, { - "keyword": "foncière forestière", - "category": "Ecosystème" + "keyword": "manque d'eau", + "category": "" }, { - "keyword": "foresterie urbaine", - "category": "Ecosystème" + "keyword": "manquer d'eau", + "category": "" }, { - "keyword": "forêt mosaïque", - "category": "Ecosystème" + "keyword": "migrant climatique", + "category": "" }, { - "keyword": "forêt urbaine", - "category": "Ecosystème" + "keyword": "migration climatique", + "category": "" }, { - "keyword": "gestion durable des forêts", - "category": "Ecosystème" + "keyword": "montée des eaux", + "category": "" }, { - "keyword": "journée de la biodiversité", - "category": "General" + "keyword": "montée du niveau de la mer", + "category": "" }, { - "keyword": "journée de la terre", - "category": "General" + "keyword": "montée du niveau des océans", + "category": "" }, { - "keyword": "journée mondiale de la vie sauvage", - "category": "General" + "keyword": "mort liées à la canicule", + "category": "" }, { - "keyword": "mesure environnementale", - "category": "General" + "keyword": "mort liées à la chaleur", + "category": "" }, { - "keyword": "moins polluant", - "category": "General" + "keyword": "mort à cause de la canicule", + "category": "" }, { - "keyword": "nettoyage des fonds marins", - "category": "Ecosystème" + "keyword": "mort à cause de la chaleur", + "category": "" }, { - "keyword": "nettoyage des océans", - "category": "Ecosystème" + "keyword": "mortalité forestière", + "category": "" }, { - "keyword": "planter des arbres", - "category": "Ecosystème" + "keyword": "morte à cause de la canicule", + "category": "" }, { - "keyword": "plastique recyclé", - "category": "Economie des ressources" + "keyword": "morte à cause de la chaleur", + "category": "" }, { - "keyword": "pollueur payeur", - "category": "General" + "keyword": "moustique tigre", + "category": "" }, { - "keyword": "pratiques agricoles durables", - "category": "Agriculture" + "keyword": "météorologique extrême", + "category": "" }, { - "keyword": "préservation d'espèce", - "category": "Ecosystème" + "keyword": "perte agricole", + "category": "" }, { - "keyword": "préservation de la biodiversité", - "category": "Ecosystème" + "keyword": "pénurie de neige", + "category": "" }, { - "keyword": "préservation des milieux", - "category": "Ecosystème" + "keyword": "pollution atmosphérique", + "category": "" }, { - "keyword": "préserver les fonds marins", - "category": "Ecosystème" + "keyword": "pollution aux particules fines", + "category": "" }, { - "keyword": "prise de conscience écologique", - "category": "General" + "keyword": "pollution à l’ozone", + "category": "" }, { - "keyword": "prise de conscience environnementale", - "category": "General" + "keyword": "printemps le plus pluvieux", + "category": "" }, { - "keyword": "produits verts", - "category": "General" + "keyword": "prolifération de moustiques", + "category": "" }, { - "keyword": "protection de l'environnement", - "category": "Ecosystème" + "keyword": "pénurie d'eau", + "category": "" }, { - "keyword": "protection de la barrière de corail", - "category": "Ecosystème" + "keyword": "rareté de la ressource en eau", + "category": "" }, { - "keyword": "protection de la mangrove", - "category": "Ecosystème" + "keyword": "rareté saisonnière de la ressource en eau", + "category": "" }, { - "keyword": "protection de la nature", - "category": "Ecosystème" + "keyword": "raréfaction de la ressource en eau", + "category": "" }, { - "keyword": "protection des coraux", - "category": "Ecosystème" + "keyword": "record de température", + "category": "" }, { - "keyword": "protection des côtes", - "category": "Ecosystème" + "keyword": "retrait gonflement des argiles", + "category": "" }, { - "keyword": "protection des cours d’eau", - "category": "Eau" + "keyword": "réfugiés climatique", + "category": "General" }, { - "keyword": "protection des espèces", - "category": "Ecosystème" + "keyword": "salinisation des sols", + "category": "" }, { - "keyword": "protection des oiseaux", - "category": "Ecosystème" + "keyword": "stress hydrique", + "category": "" }, { - "keyword": "protection des tourbières", - "category": "Ecosystème" + "keyword": "sécheresse", + "category": "" }, { - "keyword": "protection des zones côtières", - "category": "Ecosystème" + "keyword": "température record", + "category": "" }, { - "keyword": "protection des zones humides", - "category": "Ecosystème" + "keyword": "trop grande chaleur", + "category": "" }, { - "keyword": "protection du récif corallien", - "category": "Ecosystème" + "keyword": "urgence écologique", + "category": "" }, { - "keyword": "protection du vivant", - "category": "Ecosystème" + "keyword": "vague de chaleur", + "category": "" }, { - "keyword": "protéger la nature", - "category": "Ecosystème" + "keyword": "zoonose", + "category": "" }, { - "keyword": "protéger le vivant", - "category": "Ecosystème" + "keyword": "écocide", + "category": "" }, { - "keyword": "recyclant", - "category": "Economie des ressources" + "keyword": "élévation de la température", + "category": "" }, { - "keyword": "réduire la consommation d’eau", - "category": "Eau" + "keyword": "élévation des températures", + "category": "" }, { - "keyword": "réduire le cheptel", - "category": "Agriculture" + "keyword": "élévation du niveau de la mer", + "category": "" }, { - "keyword": "reduire les emballages", - "category": "Economie des ressources" + "keyword": "élévation du niveau des océans", + "category": "" }, { - "keyword": "reforestation", - "category": "Ecosystème" + "keyword": "élévation du niveau marin", + "category": "" }, { - "keyword": "réintroduction d'espèce", - "category": "Ecosystème" + "keyword": "érosion côtière", + "category": "" }, { - "keyword": "renaturer", - "category": "Ecosystème" + "keyword": "érosion des côtes", + "category": "" }, { - "keyword": "réserve de biosphère", - "category": "Ecosystème" + "keyword": "érosion du littoral", + "category": "" }, { - "keyword": "réserve naturelle", - "category": "Ecosystème" + "keyword": "été le plus chaud", + "category": "" + } + ], + "changement_climatique_consequences_indirectes": [ + { + "keyword": "40 degrés", + "category": "" }, { - "keyword": "résistant à la sécheresse", - "category": "General" + "keyword": "50 degrés", + "category": "" }, { - "keyword": "résistante à la sécheresse", - "category": "General" + "keyword": "accès à l’eau", + "category": "" }, { - "keyword": "respectueux de l'environnement", - "category": "Ecosystème" + "keyword": "anomalie de températures", + "category": "" }, { - "keyword": "respectueux de l’environnement", - "category": "Ecosystème" + "keyword": "assécher", + "category": "" }, { - "keyword": "restauration de la biodiversité", - "category": "Ecosystème" + "keyword": "asséché", + "category": "" }, { - "keyword": "restauration de la nature", - "category": "Ecosystème" + "keyword": "asséchée", + "category": "" }, { - "keyword": "restauration des coraux", - "category": "Ecosystème" + "keyword": "augmentation des températures", + "category": "" }, { - "keyword": "restauration des écosystèmes", - "category": "Ecosystème" + "keyword": "cancer", + "category": "" }, { - "keyword": "restauration des forêts", - "category": "Ecosystème" + "keyword": "cinquante degrés", + "category": "" }, { - "keyword": "restauration des milieux", - "category": "Ecosystème" + "keyword": "crue", + "category": "" }, { - "keyword": "restauration des tourbières", - "category": "Ecosystème" + "keyword": "crue centennale", + "category": "" }, { - "keyword": "restauration des zones humides", - "category": "Ecosystème" + "keyword": "cyclone", + "category": "" }, { - "keyword": "restauration du récif corallien", - "category": "Ecosystème" + "keyword": "désertification", + "category": "" }, { - "keyword": "restaurer la biodiversité", - "category": "Ecosystème" + "keyword": "dévastation", + "category": "General" }, { - "keyword": "restaurer la nature", - "category": "Ecosystème" + "keyword": "feux", + "category": "" }, { - "keyword": "restaurer la qualité de l’air", - "category": "Ecosystème" + "keyword": "feux de forêt", + "category": "" }, { - "keyword": "restaurer la qualité des sols", - "category": "Ecosystème" + "keyword": "forte chaleur", + "category": "" }, { - "keyword": "restaurer les tourbières", - "category": "Ecosystème" + "keyword": "forte pluie", + "category": "" }, { - "keyword": "revégétalisation", - "category": "Ecosystème" + "keyword": "gel printanier", + "category": "" }, { - "keyword": "revégétaliser", - "category": "Ecosystème" + "keyword": "il n'y a plus de saison", + "category": "" }, { - "keyword": "sauver des espèces", - "category": "Ecosystème" + "keyword": "importante précipitation", + "category": "" }, { - "keyword": "semaine du développement durable", - "category": "General" + "keyword": "incendies", + "category": "" }, { - "keyword": "sobriété", - "category": "General" + "keyword": "inondable", + "category": "Batiments" }, { - "keyword": "société écologique", - "category": "General" + "keyword": "inondation", + "category": "" }, { - "keyword": "sol vivant", - "category": "Ecosystème" + "keyword": "la roya", + "category": "" }, { - "keyword": "solutions fondées sur la nature", - "category": "General" + "keyword": "les soulèvements de la terre", + "category": "" }, { - "keyword": "végétalisation", + "keyword": "malade", "category": "" }, { - "keyword": "végétalisation des espaces urbains", - "category": "Ecosystème" + "keyword": "maladie", + "category": "" }, { - "keyword": "végétalisation des villes", - "category": "Ecosystème" + "keyword": "maladies transmises par des insectes", + "category": "" }, { - "keyword": "végétalisé", - "category": "Ecosystème" + "keyword": "mois le plus chaud", + "category": "" }, { - "keyword": "végétalisée", - "category": "Ecosystème" + "keyword": "ouragan", + "category": "" }, { - "keyword": "végétaliser", - "category": "Ecosystème" + "keyword": "pathologie", + "category": "" }, { - "keyword": "verdir la politique agricole", - "category": "Agriculture" + "keyword": "plante exotique envahissante", + "category": "Ecosystème" }, { - "keyword": "vertueux pour la planète", - "category": "General" + "keyword": "plante exotique invasive", + "category": "Ecosystème" }, { - "keyword": "ville écologique", - "category": "General" + "keyword": "plante exotique très invasive", + "category": "Ecosystème" }, { - "keyword": "zone naturelle protégée", + "keyword": "pluie extrême", "category": "" - } - ], - "biodiversite_solutions_indirectes": [ - { - "keyword": "agriculture durable", - "category": "Agriculture" }, { - "keyword": "alternative", + "keyword": "pluie intense", "category": "" }, { - "keyword": "approche systémique", + "keyword": "pluie torrentielle", "category": "" }, { - "keyword": "aquaculture durable", - "category": "Agriculture" + "keyword": "plus chaud que la normale", + "category": "" }, { - "keyword": "arbre", + "keyword": "plus chaude que la normale", "category": "" }, { - "keyword": "atténuation", + "keyword": "plus de saisons", "category": "" }, { - "keyword": "biochar", - "category": "Agriculture" + "keyword": "plus sec que la normale", + "category": "" }, { - "keyword": "déconstruire", - "category": "General" + "keyword": "pluviométrie importante", + "category": "" }, { - "keyword": "décroissance", - "category": "General" + "keyword": "pollution de l'air", + "category": "" }, { - "keyword": "épargne citoyenne", - "category": "Economie des ressources" + "keyword": "prolifération des moustiques", + "category": "" }, { - "keyword": "espace vert", - "category": "Ecosystème" + "keyword": "période la plus chaude", + "category": "" }, { - "keyword": "gestion des milieux aquatiques", - "category": "Ecosystème" + "keyword": "quarante degrés", + "category": "" }, { - "keyword": "gestion durable des terres cultivables", - "category": "Agriculture" + "keyword": "restriction", + "category": "General" }, { - "keyword": "habitude durable", - "category": "Economie des ressources" + "keyword": "submersion", + "category": "" }, { - "keyword": "infrastructure résiliente", - "category": "Batiments" + "keyword": "submersion marine", + "category": "" }, { - "keyword": "jachère", - "category": "Agriculture" + "keyword": "surchauffe", + "category": "" }, { - "keyword": "jardin", - "category": "Ecosystème" + "keyword": "sécurité alimentaire", + "category": "" }, { - "keyword": "manger bio", - "category": "Agriculture" + "keyword": "tempête xynthia", + "category": "" }, { - "keyword": "militant écologiste", - "category": "General" + "keyword": "très chaud", + "category": "" }, { - "keyword": "militante écologiste", - "category": "General" + "keyword": "érosion", + "category": "" }, { - "keyword": "nettoyage des plages", - "category": "Ecosystème" - }, + "keyword": "étouffer", + "category": "" + } + ], + "changement_climatique_constat": [ { - "keyword": "norme", - "category": "General" + "keyword": "accord de paris", + "category": "" }, { - "keyword": "parc", - "category": "Ecosystème" + "keyword": "ademe", + "category": "" }, { - "keyword": "pêche durable", - "category": "Agriculture" + "keyword": "anthropocène", + "category": "" }, { - "keyword": "permaculture", - "category": "Agriculture" + "keyword": "anti-écolo", + "category": "" }, { - "keyword": "planter des arbres", - "category": "Ecosystème" + "keyword": "bilan carbone", + "category": "" }, { - "keyword": "plus d’oxygène", + "keyword": "bonne nouvelle pour la planète", "category": "" }, { - "keyword": "plus durable", - "category": "General" + "keyword": "capacité planétaire", + "category": "" }, { - "keyword": "polyculture élevage", - "category": "Agriculture" + "keyword": "climatique", + "category": "" }, { - "keyword": "prairie", - "category": "Ecosystème" + "keyword": "climatologue", + "category": "" }, { - "keyword": "pratiques vertueuses", - "category": "Agriculture" + "keyword": "climatoscepticisme", + "category": "" }, { - "keyword": "préserver", - "category": "General" + "keyword": "conditions de vie sur terre", + "category": "" }, { - "keyword": "principe de précaution", - "category": "General" + "keyword": "conférence climat", + "category": "" }, { - "keyword": "réduire l’élevage intensif", - "category": "Agriculture" + "keyword": "conférence des nations unies sur le climat", + "category": "" }, { - "keyword": "replantation", - "category": "Ecosystème" + "keyword": "conférence des nations unies sur les changements climatiques", + "category": "" }, { - "keyword": "replanter", - "category": "Ecosystème" + "keyword": "conférence des parties", + "category": "" }, { - "keyword": "responsable", - "category": "General" + "keyword": "convention des nations unies sur le climat", + "category": "" }, { - "keyword": "restreindre", - "category": "General" + "keyword": "cop quinze", + "category": "" }, { - "keyword": "restriction", - "category": "General" + "keyword": "cop trente", + "category": "" }, { - "keyword": "toit-jardin", - "category": "Ecosystème" + "keyword": "cop vingt-et-un", + "category": "" }, { - "keyword": "variété rustique", - "category": "Ecosystème" + "keyword": "cop vingt-huit", + "category": "" }, { - "keyword": "végétation", - "category": "General" + "keyword": "cop vingt-neuf", + "category": "" }, { - "keyword": "verdir", + "keyword": "cop vingt-sept", "category": "" }, { - "keyword": "verdure", + "keyword": "cop vingt-six", "category": "" }, { - "keyword": "vertueux", - "category": "General" + "keyword": "cop15", + "category": "" }, { - "keyword": "ville durable", + "keyword": "cop21", "category": "" }, { - "keyword": "zan", - "category": "Ecosystème" + "keyword": "cop26", + "category": "" }, { - "keyword": "zéro artificialisation nette", - "category": "Ecosystème" - } - ], - "adaptation_climatique_solutions_indirectes": [ - { - "keyword": "arbre", + "keyword": "cop27", "category": "" }, { - "keyword": "barrage", - "category": "Eau" + "keyword": "cop28", + "category": "" }, { - "keyword": "bon pour la santé", - "category": "General" + "keyword": "cop29", + "category": "" }, { - "keyword": "changer leurs habitudes", - "category": "General" + "keyword": "cop30", + "category": "" }, { - "keyword": "changer nos comportements", - "category": "General" + "keyword": "crise planétaire", + "category": "" }, { - "keyword": "changer nos habitudes", - "category": "General" + "keyword": "croissance verte", + "category": "" }, { - "keyword": "digue", - "category": "General" + "keyword": "crédit carbone", + "category": "" }, { - "keyword": "dune", - "category": "General" + "keyword": "cycle du carbone", + "category": "" }, { - "keyword": "espace vert", + "keyword": "d'ici 2050", "category": "" }, { - "keyword": "espace vert", + "keyword": "destruction de la planète", "category": "" }, { - "keyword": "faire baisser la température", + "keyword": "défi climatique", "category": "" }, { - "keyword": "forêt", - "category": "Ecosystème" + "keyword": "déstabilisation atmosphérique", + "category": "" }, { - "keyword": "gestion de l'eau", + "keyword": "effet de serre", "category": "" }, { - "keyword": "gestion des milieux aquatiques", - "category": "Eau" + "keyword": "empreinte carbone", + "category": "" }, { - "keyword": "jachère", - "category": "Agriculture" + "keyword": "enjeu environnemental", + "category": "" }, { - "keyword": "jardin", - "category": "Ecosystème" + "keyword": "expert du climat", + "category": "General" }, { - "keyword": "manipuler la terre", - "category": "Agriculture" + "keyword": "experte du climat", + "category": "" }, { - "keyword": "mega bassine", - "category": "Eau" + "keyword": "france nature environnement", + "category": "" }, { - "keyword": "miscanthus", - "category": "Agriculture" + "keyword": "giec", + "category": "" }, { - "keyword": "norme", - "category": "General" + "keyword": "green deal", + "category": "" }, { - "keyword": "ombre", - "category": "Ecosystème" + "keyword": "habitabilité de la planète", + "category": "" }, { - "keyword": "parc", - "category": "Ecosystème" + "keyword": "habiter le monde", + "category": "" }, { - "keyword": "planter des arbres", - "category": "Ecosystème" + "keyword": "haut conseil pour le climat", + "category": "" }, { - "keyword": "pratiques vertueuses", - "category": "Agriculture" + "keyword": "hydrologue", + "category": "" }, { - "keyword": "sorgho", - "category": "Agriculture" + "keyword": "impact carbone", + "category": "" }, { - "keyword": "verdir", + "keyword": "intérêt environnemental", "category": "" }, { - "keyword": "verdure", + "keyword": "mix énergétique", "category": "" }, { - "keyword": "vertueux", + "keyword": "mutation écologique", "category": "General" }, { - "keyword": "ville durable", - "category": "General" - } - ], - "biodiversite_consequences_indirectes": [ - { - "keyword": "asséché", + "keyword": "méga-orage", "category": "" }, { - "keyword": "asséchée", + "keyword": "neutralité carbone", "category": "" }, { - "keyword": "assécher", + "keyword": "neutralité climatique", "category": "" }, { - "keyword": "cancer", + "keyword": "pacte vert", "category": "" }, { - "keyword": "chant des oiseaux", - "category": "" + "keyword": "planification écologique", + "category": "General" }, { - "keyword": "contaminé", + "keyword": "pollution émise localement", "category": "" }, { - "keyword": "contaminée", + "keyword": "ressource planétaire", "category": "" }, { - "keyword": "dengue", + "keyword": "revue nature climate change", "category": "" }, { - "keyword": "dépérissement", + "keyword": "réchauffement de l’atmosphère", "category": "" }, { - "keyword": "dévastation", - "category": "General" + "keyword": "réchauffement des océans", + "category": "" }, { - "keyword": "extinction", + "keyword": "réchauffement des températures", "category": "" }, { - "keyword": "les soulèvements de la terre", + "keyword": "réchauffement planétaire", "category": "" }, { - "keyword": "malade", + "keyword": "seuil de réchauffement", "category": "" }, { - "keyword": "maladie", + "keyword": "soutenabilité environnementale", "category": "" }, { - "keyword": "maladies infectieuses", + "keyword": "température extrême", "category": "" }, { - "keyword": "maladies transmises par des insectes", + "keyword": "températures plus hautes", "category": "" }, { - "keyword": "menacées de disparition", - "category": "" + "keyword": "transition agricole", + "category": "General" }, { - "keyword": "pathologie", + "keyword": "transition agro écologique", "category": "" }, { - "keyword": "pathologie", + "keyword": "transition agroécologique", "category": "" }, { - "keyword": "prolifération des moustiques", - "category": "" + "keyword": "transition climatique", + "category": "General" }, { - "keyword": "restriction", + "keyword": "transition en dehors des énergies fossiles", + "category": "Energie" + }, + { + "keyword": "transition verte", "category": "General" }, { - "keyword": "santé animale", - "category": "" + "keyword": "transition écologique", + "category": "General" }, { - "keyword": "santé humaine", + "keyword": "transition énergétique", + "category": "Energie" + }, + { + "keyword": "un climat qui change", "category": "" }, { - "keyword": "sécurité alimentaire", + "keyword": "écologique", "category": "" + }, + { + "keyword": "émissions mondiales de co deux", + "category": "General" + }, + { + "keyword": "émissions mondiales de co2", + "category": "General" } ], - "biodiversite_consequences": [ + "changement_climatique_constat_indirectes": [ { - "keyword": "baisse de production agricole", + "keyword": "agences régionales de santé", "category": "" }, { - "keyword": "baisse des récoltes", + "keyword": "air frais", "category": "" }, { - "keyword": "baisse des rendements agricoles", - "category": "" + "keyword": "alimentation", + "category": "Agriculture" }, { - "keyword": "baisse du stockage du carbone dans les sols", + "keyword": "ars", "category": "" }, { - "keyword": "bioérosion", + "keyword": "atmosphère", "category": "" }, { - "keyword": "bruit routier", + "keyword": "autorité de santé", "category": "" }, { - "keyword": "catastophe écologique", + "keyword": "baisse des températures", "category": "" }, { - "keyword": "crise d'extinction de masse", + "keyword": "banquise", "category": "" }, { - "keyword": "dégradation des puits de carbone", + "keyword": "batterie", "category": "" }, { - "keyword": "dégradation des sols", + "keyword": "bloc d’immeubles", "category": "" }, { - "keyword": "diminution des rendements agricoles", + "keyword": "bouquet énergétique", "category": "" }, { - "keyword": "disparition des espèces", - "category": "" + "keyword": "bâtiment", + "category": "Batiments" }, { - "keyword": "disparition des forêts", + "keyword": "climat", "category": "" }, { - "keyword": "disparition des insectes", + "keyword": "climatosceptique", "category": "" }, { - "keyword": "disparition des oiseaux", + "keyword": "consommation énergétique", + "category": "Energie" + }, + { + "keyword": "défi de notre siècle", "category": "" }, { - "keyword": "disparition du vivant", + "keyword": "eau", "category": "" }, { - "keyword": "écosystème dégradé", - "category": "Ecosystème" + "keyword": "eau de pluie", + "category": "" }, { - "keyword": "espèce en voie de disparition", + "keyword": "environnement", "category": "" }, { - "keyword": "espèce envahissante", + "keyword": "facture énergétique", "category": "" }, { - "keyword": "espèce éteinte", + "keyword": "fraîcheur", "category": "" }, { - "keyword": "espèce exotique envahissante", + "keyword": "glacier", "category": "" }, { - "keyword": "espèce invasive", + "keyword": "générations futures", "category": "" }, { - "keyword": "espèce menacée", + "keyword": "générations à venir", "category": "" }, { - "keyword": "espèce menacée d’extinction", + "keyword": "inégalité", "category": "" }, { - "keyword": "espèces en danger", + "keyword": "jamais un tel phénomène", "category": "" }, { - "keyword": "impact sur l'environnement", + "keyword": "mer", "category": "" }, { - "keyword": "liste rouge de l'uicn", + "keyword": "mix électrique", "category": "" }, { - "keyword": "liste rouge mondiale des espèces menacées", + "keyword": "modèle agricole", "category": "" }, { - "keyword": "migration des espèces", + "keyword": "océan", "category": "" }, { - "keyword": "mortalité des forêts", + "keyword": "oms", "category": "" }, { - "keyword": "mortalité forestière", + "keyword": "organisation mondiale de la santé", "category": "" }, { - "keyword": "moustique tigre", + "keyword": "performance énergétique", "category": "" }, { - "keyword": "nature empoisonée", + "keyword": "permafrost", "category": "" }, { - "keyword": "perte agricole", + "keyword": "planète", "category": "" }, { - "keyword": "perte de biodiversité", + "keyword": "planétaire", "category": "" }, { - "keyword": "perturbation du cycle de l’eau", + "keyword": "pont thermique", + "category": "Batiments" + }, + { + "keyword": "revue nature", "category": "" }, { - "keyword": "pollution sonore", + "keyword": "santé publique", "category": "" }, { - "keyword": "santé végétale", + "keyword": "sol", "category": "" }, { - "keyword": "sol pollué", + "keyword": "température", "category": "" }, { - "keyword": "urgence écologique", + "keyword": "terre", "category": "" }, { - "keyword": "zoonose", + "keyword": "éco-anxiété", "category": "" }, { - "keyword": "zoonotique", + "keyword": "écolo", "category": "" - } - ], - "adaptation_cilmatique_solutions": [ + }, { - "keyword": "eco-prêt à taux zéro", - "category": "Batiments" + "keyword": "écologie", + "category": "" }, { - "keyword": "eco-prêt à taux zéro", - "category": "Batiments" - } - ], - "changement_climatique_cause": [ + "keyword": "écologiste", + "category": "" + }, { - "keyword": "ferme-usine", - "category": "Agriculture" - } - ], - "theme": [ + "keyword": "écosystème", + "category": "" + }, { - "keyword": "keyword", - "category": "Avis Final Consortium" + "keyword": "énergie", + "category": "" } ], "changement_climatique_constats_indirectes": [ @@ -5167,25 +5157,13 @@ "category": "" } ], - "changement climatique_constat": [ - { - "keyword": "politique climatique", - "category": "" - }, + "theme": [ { - "keyword": "scope un et deux", - "category": "" + "keyword": "keyword", + "category": "Avis Final Consortium" } ], "ressources_indirectes": [ - { - "keyword": "déchet", - "category": "Economie circulaire" - }, - { - "keyword": "gaspillage", - "category": "Concepts généraux" - }, { "keyword": "abondance", "category": "Concepts généraux" @@ -5255,15 +5233,15 @@ "category": "Eau" }, { - "keyword": "asséché", + "keyword": "assécher", "category": "Eau" }, { - "keyword": "asséchée", + "keyword": "asséché", "category": "Eau" }, { - "keyword": "assécher", + "keyword": "asséchée", "category": "Eau" }, { @@ -5278,14 +5256,14 @@ "keyword": "besoin énergétique", "category": "Energie" }, - { - "keyword": "bétonner", - "category": "Sols" - }, { "keyword": "bouquet énergétique", "category": "Energie" }, + { + "keyword": "bétonner", + "category": "Sols" + }, { "keyword": "cadmium", "category": "Sols" @@ -5355,7 +5333,7 @@ "category": "Economie circulaire" }, { - "keyword": "déchèterie", + "keyword": "déchet", "category": "Economie circulaire" }, { @@ -5375,7 +5353,11 @@ "category": "Forêt" }, { - "keyword": "déchetterie", + "keyword": "déchetterie", + "category": "Economie circulaire" + }, + { + "keyword": "déchèterie", "category": "Economie circulaire" }, { @@ -5406,14 +5388,6 @@ "keyword": "eaux douces", "category": "Eau" }, - { - "keyword": "éco-sac wc", - "category": "Eau" - }, - { - "keyword": "écologie", - "category": "Eau" - }, { "keyword": "emballage en plastique", "category": "Economie circulaire" @@ -5458,45 +5432,49 @@ "keyword": "forestière", "category": "Forêt" }, - { - "keyword": "forêt", - "category": "Forêt" - }, { "keyword": "forte pluie", "category": "Eau" }, + { + "keyword": "forêt", + "category": "Forêt" + }, { "keyword": "fuite d'eau", "category": "Eau" }, { - "keyword": "gâchis", + "keyword": "gaspillage", "category": "Concepts généraux" }, { - "keyword": "gâchis alimentaire", + "keyword": "gaz naturel", + "category": "Energie" + }, + { + "keyword": "gigantisme", "category": "Concepts généraux" }, { - "keyword": "gaz naturel", - "category": "Energie" + "keyword": "gisement", + "category": "Métaux et minerais" }, { - "keyword": "générations à venir", + "keyword": "gâchis", "category": "Concepts généraux" }, { - "keyword": "générations futures", + "keyword": "gâchis alimentaire", "category": "Concepts généraux" }, { - "keyword": "gigantisme", + "keyword": "générations futures", "category": "Concepts généraux" }, { - "keyword": "gisement", - "category": "Métaux et minerais" + "keyword": "générations à venir", + "category": "Concepts généraux" }, { "keyword": "habiter le monde", @@ -5562,18 +5540,6 @@ "keyword": "mauvaise gestion", "category": "Concepts généraux" }, - { - "keyword": "mégot", - "category": "Concepts généraux" - }, - { - "keyword": "métaux lourds", - "category": "Sols" - }, - { - "keyword": "métaux lourds", - "category": "Eau" - }, { "keyword": "mines", "category": "Métaux et minerais" @@ -5586,6 +5552,18 @@ "keyword": "modèle agricole", "category": "Concepts généraux" }, + { + "keyword": "mégot", + "category": "Concepts généraux" + }, + { + "keyword": "métaux lourds", + "category": "Sols" + }, + { + "keyword": "métaux lourds", + "category": "Eau" + }, { "keyword": "nature empoisonée", "category": "Concepts généraux" @@ -5599,13 +5577,9 @@ "category": "Concepts généraux" }, { - "keyword": "pénurie", + "keyword": "planète", "category": "Concepts généraux" }, - { - "keyword": "pétrole", - "category": "Energie" - }, { "keyword": "planétaire", "category": "Concepts généraux" @@ -5614,10 +5588,6 @@ "keyword": "planétaire", "category": "Concepts généraux" }, - { - "keyword": "planète", - "category": "Concepts généraux" - }, { "keyword": "plastique", "category": "Economie circulaire" @@ -5662,6 +5632,14 @@ "keyword": "puit de pétrole", "category": "Energie" }, + { + "keyword": "pénurie", + "category": "Concepts généraux" + }, + { + "keyword": "pétrole", + "category": "Energie" + }, { "keyword": "ressource en eau", "category": "Eau" @@ -5765,13 +5743,17 @@ { "keyword": "zinc", "category": "Eau" + }, + { + "keyword": "éco-sac wc", + "category": "Eau" + }, + { + "keyword": "écologie", + "category": "Eau" } ], "ressources_solutions": [ - { - "keyword": "économie circulaire", - "category": "Economie circulaire" - }, { "keyword": "acv", "category": "Economie circulaire" @@ -5880,6 +5862,10 @@ "keyword": "agro écologique", "category": "Sols" }, + { + "keyword": "agroforesterie", + "category": "Forêt" + }, { "keyword": "agroécologie", "category": "Air" @@ -5896,10 +5882,6 @@ "keyword": "agroécologie", "category": "Sols" }, - { - "keyword": "agroforesterie", - "category": "Forêt" - }, { "keyword": "amélioration des pratiques d’élevage", "category": "Air" @@ -6017,67 +5999,27 @@ "category": "Concepts généraux" }, { - "keyword": "déchet valorisé", - "category": "Economie circulaire" - }, - { - "keyword": "décroissance énergétique", + "keyword": "descente énergétique", "category": "Energie" }, - { - "keyword": "dépollution", - "category": "Concepts généraux" - }, { "keyword": "désalinisation des eaux", "category": "Eau" }, - { - "keyword": "descente énergétique", - "category": "Energie" - }, { "keyword": "droit environnemental", "category": "Concepts généraux" }, { - "keyword": "éco conception", - "category": "Economie circulaire" - }, - { - "keyword": "éco responsable", - "category": "Concepts généraux" - }, - { - "keyword": "écoconception", - "category": "Economie circulaire" - }, - { - "keyword": "écologie industrielle", - "category": "Concepts généraux" - }, - { - "keyword": "économie d’eau", - "category": "Eau" - }, - { - "keyword": "économie d’énergie", - "category": "Energie" - }, - { - "keyword": "économie du réemploi", - "category": "Economie circulaire" - }, - { - "keyword": "économie qui répare", + "keyword": "déchet valorisé", "category": "Economie circulaire" }, { - "keyword": "économiser de l’énergie", + "keyword": "décroissance énergétique", "category": "Energie" }, { - "keyword": "écoresponsable", + "keyword": "dépollution", "category": "Concepts généraux" }, { @@ -6088,38 +6030,10 @@ "keyword": "efficacité énergétique", "category": "Energie" }, - { - "keyword": "énergie durable", - "category": "Energie" - }, - { - "keyword": "énergie renouvelable", - "category": "Energie" - }, - { - "keyword": "énergie solaire", - "category": "Energie" - }, - { - "keyword": "énergie verte", - "category": "Energie" - }, - { - "keyword": "éolien", - "category": "Energie" - }, - { - "keyword": "éolienne", - "category": "Energie" - }, { "keyword": "epr", "category": "Energie" }, - { - "keyword": "éviter le plastique", - "category": "Economie circulaire" - }, { "keyword": "fin de l'abondance", "category": "Concepts généraux" @@ -6136,10 +6050,6 @@ "keyword": "gaspiller moins", "category": "Economie circulaire" }, - { - "keyword": "géothermie", - "category": "Energie" - }, { "keyword": "gestion de la ressource en eau", "category": "Eau" @@ -6165,13 +6075,17 @@ "category": "Sols" }, { - "keyword": "hydroélectricité", + "keyword": "géothermie", "category": "Energie" }, { "keyword": "hydrogène vert", "category": "Energie" }, + { + "keyword": "hydroélectricité", + "category": "Energie" + }, { "keyword": "indice de réparabilité", "category": "Economie circulaire" @@ -6200,10 +6114,6 @@ "keyword": "lutte contre le gaspillage d’eau", "category": "Eau" }, - { - "keyword": "maîtrise de la demande", - "category": "Concepts généraux" - }, { "keyword": "malus écologique", "category": "Concepts généraux" @@ -6220,6 +6130,10 @@ "keyword": "matériaux recyclés", "category": "Economie circulaire" }, + { + "keyword": "maîtrise de la demande", + "category": "Concepts généraux" + }, { "keyword": "moins consommer", "category": "Concepts généraux" @@ -6260,10 +6174,6 @@ "keyword": "partage des ressources", "category": "Concepts généraux" }, - { - "keyword": "pêche durable", - "category": "Eau" - }, { "keyword": "permaculture", "category": "Air" @@ -6300,6 +6210,18 @@ "keyword": "poubelle jaune", "category": "Economie circulaire" }, + { + "keyword": "prise de conscience environnementale", + "category": "Concepts généraux" + }, + { + "keyword": "prise de conscience écologique", + "category": "Concepts généraux" + }, + { + "keyword": "protection des cours d’eau", + "category": "Eau" + }, { "keyword": "préservation de la ressource en eau", "category": "Eau" @@ -6313,40 +6235,64 @@ "category": "Eau" }, { - "keyword": "prise de conscience écologique", - "category": "Concepts généraux" + "keyword": "pêche durable", + "category": "Eau" }, { - "keyword": "prise de conscience environnementale", + "keyword": "recyclage", + "category": "Economie circulaire" + }, + { + "keyword": "recyclant", + "category": "Economie circulaire" + }, + { + "keyword": "recycler", + "category": "Economie circulaire" + }, + { + "keyword": "recyclerie", + "category": "Economie circulaire" + }, + { + "keyword": "reduire les emballages", + "category": "Economie circulaire" + }, + { + "keyword": "repair cafés", + "category": "Economie circulaire" + }, + { + "keyword": "respect de l’environnement", "category": "Concepts généraux" }, { - "keyword": "protection des cours d’eau", - "category": "Eau" + "keyword": "respectueux de l’environnement", + "category": "Concepts généraux" }, { - "keyword": "récupérateur d’eau", - "category": "Eau" + "keyword": "ressource renouvelable", + "category": "Concepts généraux" }, { - "keyword": "récupérer l'eau", + "keyword": "restriction d’eau", "category": "Eau" }, { - "keyword": "recyclage", - "category": "Economie circulaire" + "keyword": "retenue collinaire", + "category": "Eau" }, { - "keyword": "recyclant", - "category": "Economie circulaire" + "keyword": "revégétaliser", + "category": "Sols" }, { - "keyword": "recycler", - "category": "Economie circulaire" + "keyword": "récupérateur d’eau", + "category": "Eau" }, { - "keyword": "recyclerie", - "category": "Economie circulaire" + "keyword": "récupérer l'eau", + "category": "Eau" }, { "keyword": "réduction de la consommation", @@ -6380,22 +6326,6 @@ "keyword": "réduction du gaspillage énergétique", "category": "Energie" }, - { - "keyword": "réduire l’élevage intensif", - "category": "Air" - }, - { - "keyword": "réduire l’élevage intensif", - "category": "Eau" - }, - { - "keyword": "réduire l’élevage intensif", - "category": "Forêt" - }, - { - "keyword": "réduire l’élevage intensif", - "category": "Sols" - }, { "keyword": "réduire la consommation d’eau", "category": "Eau" @@ -6417,8 +6347,20 @@ "category": "Air" }, { - "keyword": "reduire les emballages", - "category": "Economie circulaire" + "keyword": "réduire l’élevage intensif", + "category": "Air" + }, + { + "keyword": "réduire l’élevage intensif", + "category": "Eau" + }, + { + "keyword": "réduire l’élevage intensif", + "category": "Forêt" + }, + { + "keyword": "réduire l’élevage intensif", + "category": "Sols" }, { "keyword": "réduire sa consommation de viande", @@ -6428,10 +6370,6 @@ "keyword": "réemploi", "category": "Economie circulaire" }, - { - "keyword": "repair cafés", - "category": "Economie circulaire" - }, { "keyword": "réparabilité", "category": "Economie circulaire" @@ -6448,26 +6386,6 @@ "keyword": "réserve d’eau", "category": "Eau" }, - { - "keyword": "respect de l’environnement", - "category": "Concepts généraux" - }, - { - "keyword": "respectueux de l’environnement", - "category": "Concepts généraux" - }, - { - "keyword": "ressource renouvelable", - "category": "Concepts généraux" - }, - { - "keyword": "restriction d’eau", - "category": "Eau" - }, - { - "keyword": "retenue collinaire", - "category": "Eau" - }, { "keyword": "réutilisation des eaux", "category": "Eau" @@ -6476,18 +6394,10 @@ "keyword": "réutilisation des ressources", "category": "Economie circulaire" }, - { - "keyword": "revégétaliser", - "category": "Sols" - }, { "keyword": "sauvegarde de la ressource en eau", "category": "Eau" }, - { - "keyword": "sécurité environnementale", - "category": "Concepts généraux" - }, { "keyword": "semaine du développement durable", "category": "Concepts généraux" @@ -6533,25 +6443,29 @@ "category": "Concepts généraux" }, { - "keyword": "tévéa verte", + "keyword": "sécurité environnementale", "category": "Concepts généraux" }, { - "keyword": "tri à la source", + "keyword": "tri des ordures", "category": "Economie circulaire" }, { - "keyword": "tri des ordures", + "keyword": "tri sélectif", "category": "Economie circulaire" }, { - "keyword": "tri sélectif", + "keyword": "tri à la source", "category": "Economie circulaire" }, { "keyword": "tva verte", "category": "Concepts généraux" }, + { + "keyword": "tévéa verte", + "category": "Concepts généraux" + }, { "keyword": "un environnement alimentaire sain", "category": "Concepts généraux" @@ -6572,6 +6486,10 @@ "keyword": "ville écologique", "category": "Concepts généraux" }, + { + "keyword": "zone naturelle protégée", + "category": "Forêt" + }, { "keyword": "zéro déchet", "category": "Economie circulaire" @@ -6585,15 +6503,79 @@ "category": "Economie circulaire" }, { - "keyword": "zone naturelle protégée", - "category": "Forêt" - } - ], - "ressources_solutions_indirectes": [ + "keyword": "éco conception", + "category": "Economie circulaire" + }, { - "keyword": "plus durable", + "keyword": "éco responsable", + "category": "Concepts généraux" + }, + { + "keyword": "écoconception", + "category": "Economie circulaire" + }, + { + "keyword": "écologie industrielle", + "category": "Concepts généraux" + }, + { + "keyword": "économie circulaire", + "category": "Economie circulaire" + }, + { + "keyword": "économie du réemploi", + "category": "Economie circulaire" + }, + { + "keyword": "économie d’eau", + "category": "Eau" + }, + { + "keyword": "économie d’énergie", + "category": "Energie" + }, + { + "keyword": "économie qui répare", + "category": "Economie circulaire" + }, + { + "keyword": "économiser de l’énergie", + "category": "Energie" + }, + { + "keyword": "écoresponsable", "category": "Concepts généraux" }, + { + "keyword": "énergie durable", + "category": "Energie" + }, + { + "keyword": "énergie renouvelable", + "category": "Energie" + }, + { + "keyword": "énergie solaire", + "category": "Energie" + }, + { + "keyword": "énergie verte", + "category": "Energie" + }, + { + "keyword": "éolien", + "category": "Energie" + }, + { + "keyword": "éolienne", + "category": "Energie" + }, + { + "keyword": "éviter le plastique", + "category": "Economie circulaire" + } + ], + "ressources_solutions_indirectes": [ { "keyword": "agriculture durable", "category": "Air" @@ -6666,32 +6648,16 @@ "keyword": "consommer autrement", "category": "Concepts généraux" }, - { - "keyword": "déconstruire", - "category": "Concepts généraux" - }, - { - "keyword": "décroissance", - "category": "Concepts généraux" - }, { "keyword": "durée de vie", "category": "Economie circulaire" }, { - "keyword": "écolo", + "keyword": "déconstruire", "category": "Concepts généraux" }, { - "keyword": "économie d'énergie", - "category": "Energie" - }, - { - "keyword": "économie de carburant", - "category": "Energie" - }, - { - "keyword": "épargne citoyenne", + "keyword": "décroissance", "category": "Concepts généraux" }, { @@ -6719,11 +6685,11 @@ "category": "Concepts généraux" }, { - "keyword": "méga bassine", + "keyword": "mousseur", "category": "Eau" }, { - "keyword": "mousseur", + "keyword": "méga bassine", "category": "Eau" }, { @@ -6738,6 +6704,10 @@ "keyword": "plus d'oxygène", "category": "Air" }, + { + "keyword": "plus durable", + "category": "Concepts généraux" + }, { "keyword": "polyculture élevage", "category": "Air" @@ -6758,10 +6728,6 @@ "keyword": "pratique vertueuse", "category": "Concepts généraux" }, - { - "keyword": "préserver", - "category": "Concepts généraux" - }, { "keyword": "produits en vrac", "category": "Economie circulaire" @@ -6771,20 +6737,16 @@ "category": "Economie circulaire" }, { - "keyword": "rationnement", + "keyword": "préserver", "category": "Concepts généraux" }, { - "keyword": "rationner", + "keyword": "rationnement", "category": "Concepts généraux" }, { - "keyword": "réacteur nucléaire", - "category": "Energie" - }, - { - "keyword": "réparation", - "category": "Economie circulaire" + "keyword": "rationner", + "category": "Concepts généraux" }, { "keyword": "replantation", @@ -6834,16 +6796,24 @@ "keyword": "restriction", "category": "Concepts généraux" }, + { + "keyword": "réacteur nucléaire", + "category": "Energie" + }, + { + "keyword": "réparation", + "category": "Economie circulaire" + }, { "keyword": "se nourrir mieux", "category": "Concepts généraux" }, { - "keyword": "toilette à double débit", + "keyword": "toilette sèche", "category": "Eau" }, { - "keyword": "toilette sèche", + "keyword": "toilette à double débit", "category": "Eau" }, { @@ -6854,6 +6824,14 @@ "keyword": "trier", "category": "Economie circulaire" }, + { + "keyword": "vertueux", + "category": "Concepts généraux" + }, + { + "keyword": "vrac", + "category": "Economie circulaire" + }, { "keyword": "végan", "category": "Air" @@ -6903,19 +6881,23 @@ "category": "Sols" }, { - "keyword": "vertueux", + "keyword": "écolo", "category": "Concepts généraux" }, { - "keyword": "vrac", - "category": "Economie circulaire" + "keyword": "économie d'énergie", + "category": "Energie" + }, + { + "keyword": "économie de carburant", + "category": "Energie" + }, + { + "keyword": "épargne citoyenne", + "category": "Concepts généraux" } ], "ressources": [ - { - "keyword": "trier ses déchets", - "category": "Economie circulaire" - }, { "keyword": "accès à l’eau", "category": "Eau" @@ -7009,12 +6991,8 @@ "category": "Sols" }, { - "keyword": "baisse de production agricole", - "category": "Eau" - }, - { - "keyword": "baisse des récoltes", - "category": "Sols" + "keyword": "baisse de production agricole", + "category": "Eau" }, { "keyword": "baisse des rendements agricoles", @@ -7025,11 +7003,7 @@ "category": "Sols" }, { - "keyword": "bétonisation", - "category": "Eau" - }, - { - "keyword": "bétonisation", + "keyword": "baisse des récoltes", "category": "Sols" }, { @@ -7044,6 +7018,14 @@ "keyword": "bois énergie", "category": "Forêt" }, + { + "keyword": "bétonisation", + "category": "Eau" + }, + { + "keyword": "bétonisation", + "category": "Sols" + }, { "keyword": "canicule", "category": "Eau" @@ -7073,11 +7055,11 @@ "category": "Concepts généraux" }, { - "keyword": "crise écologique", + "keyword": "crise environnementale", "category": "Concepts généraux" }, { - "keyword": "crise environnementale", + "keyword": "crise écologique", "category": "Concepts généraux" }, { @@ -7088,6 +7070,22 @@ "keyword": "d'ici 2050", "category": "Concepts généraux" }, + { + "keyword": "dessalement de l’eau de mer", + "category": "Eau" + }, + { + "keyword": "destruction de la planète", + "category": "Concepts généraux" + }, + { + "keyword": "diminution des rendements agricoles", + "category": "Eau" + }, + { + "keyword": "diminution des rendements agricoles", + "category": "Sols" + }, { "keyword": "décharge sauvage", "category": "Economie circulaire" @@ -7112,22 +7110,6 @@ "keyword": "dépôt sauvage", "category": "Economie circulaire" }, - { - "keyword": "dessalement de l’eau de mer", - "category": "Eau" - }, - { - "keyword": "destruction de la planète", - "category": "Concepts généraux" - }, - { - "keyword": "diminution des rendements agricoles", - "category": "Eau" - }, - { - "keyword": "diminution des rendements agricoles", - "category": "Sols" - }, { "keyword": "eau de ruissellement", "category": "Eau" @@ -7148,26 +7130,6 @@ "keyword": "eaux souterraines", "category": "Eau" }, - { - "keyword": "écocide", - "category": "Concepts généraux" - }, - { - "keyword": "écologique", - "category": "Concepts généraux" - }, - { - "keyword": "écosystème forestier", - "category": "Forêt" - }, - { - "keyword": "élevage intensif", - "category": "Eau" - }, - { - "keyword": "élevage intensif", - "category": "Sols" - }, { "keyword": "engrais azoté", "category": "Air" @@ -7204,38 +7166,6 @@ "keyword": "engrais de synthèse", "category": "Sols" }, - { - "keyword": "épandage", - "category": "Sols" - }, - { - "keyword": "épandage", - "category": "Air" - }, - { - "keyword": "épandage", - "category": "Eau" - }, - { - "keyword": "épuisement des ressources", - "category": "Concepts généraux" - }, - { - "keyword": "érosion des sols", - "category": "Sols" - }, - { - "keyword": "érosion éolienne", - "category": "Sols" - }, - { - "keyword": "érosion hydrique", - "category": "Sols" - }, - { - "keyword": "étalement urbain", - "category": "Sols" - }, { "keyword": "eutrophisation", "category": "Eau" @@ -7328,14 +7258,14 @@ "keyword": "manque d’eau", "category": "Eau" }, - { - "keyword": "matériaux polluants", - "category": "Concepts généraux" - }, { "keyword": "matière critique", "category": "Métaux et minerais" }, + { + "keyword": "matériaux polluants", + "category": "Concepts généraux" + }, { "keyword": "mauvaise santé des sols", "category": "Sols" @@ -7344,22 +7274,6 @@ "keyword": "mesure environnementale", "category": "Concepts généraux" }, - { - "keyword": "métal critique", - "category": "Métaux et minerais" - }, - { - "keyword": "métal rare", - "category": "Métaux et minerais" - }, - { - "keyword": "métaux critiques", - "category": "Métaux et minerais" - }, - { - "keyword": "métaux rares", - "category": "Métaux et minerais" - }, { "keyword": "minerais", "category": "Métaux et minerais" @@ -7385,25 +7299,33 @@ "category": "Forêt" }, { - "keyword": "nappe d'eau", - "category": "Eau" + "keyword": "métal critique", + "category": "Métaux et minerais" }, { - "keyword": "nappe phréatique", - "category": "Eau" + "keyword": "métal rare", + "category": "Métaux et minerais" }, { - "keyword": "pacte vert", - "category": "Concepts généraux" + "keyword": "métaux critiques", + "category": "Métaux et minerais" }, { - "keyword": "pénurie d’eau", + "keyword": "métaux rares", + "category": "Métaux et minerais" + }, + { + "keyword": "nappe d'eau", "category": "Eau" }, { - "keyword": "pénurie de neige", + "keyword": "nappe phréatique", "category": "Eau" }, + { + "keyword": "pacte vert", + "category": "Concepts généraux" + }, { "keyword": "perte agricole", "category": "Eau" @@ -7424,6 +7346,10 @@ "keyword": "pesticide", "category": "Sols" }, + { + "keyword": "pénurie de neige", + "category": "Eau" + }, { "keyword": "pfas", "category": "Eau" @@ -7484,10 +7410,6 @@ "keyword": "pollution record", "category": "Air" }, - { - "keyword": "préserver les fonds marins", - "category": "Eau" - }, { "keyword": "problème de sécurité alimentaire", "category": "Concepts généraux" @@ -7496,6 +7418,10 @@ "keyword": "produits verts", "category": "Concepts généraux" }, + { + "keyword": "préserver les fonds marins", + "category": "Eau" + }, { "keyword": "ptfe", "category": "Sols" @@ -7504,6 +7430,10 @@ "keyword": "ptfe", "category": "Eau" }, + { + "keyword": "pénurie d’eau", + "category": "Eau" + }, { "keyword": "qualité de l’eau", "category": "Eau" @@ -7513,29 +7443,25 @@ "category": "Eau" }, { - "keyword": "raréfaction de l’eau", + "keyword": "rareté de la ressource en eau", "category": "Eau" }, { - "keyword": "raréfaction de la ressource en eau", + "keyword": "rareté saisonnière de la ressource en eau", "category": "Eau" }, { - "keyword": "rareté de la ressource en eau", + "keyword": "raréfaction de la ressource en eau", "category": "Eau" }, { - "keyword": "rareté saisonnière de la ressource en eau", + "keyword": "raréfaction de l’eau", "category": "Eau" }, { "keyword": "rejet polluant", "category": "Concepts généraux" }, - { - "keyword": "réserve d'eau", - "category": "Eau" - }, { "keyword": "ressource minérale", "category": "Métaux et minerais" @@ -7552,6 +7478,10 @@ "keyword": "ressources planétaires", "category": "Concepts généraux" }, + { + "keyword": "réserve d'eau", + "category": "Eau" + }, { "keyword": "salinisation des nappes", "category": "Eau" @@ -7568,10 +7498,6 @@ "keyword": "santé des sols", "category": "Sols" }, - { - "keyword": "sécheresse", - "category": "Eau" - }, { "keyword": "sevrage aux énergies fossiles", "category": "Energie" @@ -7624,6 +7550,10 @@ "keyword": "surpêche", "category": "Eau" }, + { + "keyword": "sécheresse", + "category": "Eau" + }, { "keyword": "tassement des sols", "category": "Sols" @@ -7636,10 +7566,6 @@ "keyword": "transformation écologique", "category": "Concepts généraux" }, - { - "keyword": "transition écologique", - "category": "Concepts généraux" - }, { "keyword": "transition en dehors des énergies fossiles", "category": "Energie" @@ -7648,10 +7574,18 @@ "keyword": "transition en dehors des énergies fossiles", "category": "Energie" }, + { + "keyword": "transition écologique", + "category": "Concepts généraux" + }, { "keyword": "transition énergétique", "category": "Energie" }, + { + "keyword": "trier ses déchets", + "category": "Economie circulaire" + }, { "keyword": "urgence écologique", "category": "Concepts généraux" @@ -7659,6 +7593,58 @@ { "keyword": "vague de chaleur", "category": "Eau" + }, + { + "keyword": "écocide", + "category": "Concepts généraux" + }, + { + "keyword": "écologique", + "category": "Concepts généraux" + }, + { + "keyword": "écosystème forestier", + "category": "Forêt" + }, + { + "keyword": "élevage intensif", + "category": "Eau" + }, + { + "keyword": "élevage intensif", + "category": "Sols" + }, + { + "keyword": "épandage", + "category": "Sols" + }, + { + "keyword": "épandage", + "category": "Air" + }, + { + "keyword": "épandage", + "category": "Eau" + }, + { + "keyword": "épuisement des ressources", + "category": "Concepts généraux" + }, + { + "keyword": "érosion des sols", + "category": "Sols" + }, + { + "keyword": "érosion hydrique", + "category": "Sols" + }, + { + "keyword": "érosion éolienne", + "category": "Sols" + }, + { + "keyword": "étalement urbain", + "category": "Sols" } ] } \ No newline at end of file diff --git a/test/sitemap/test_detect_keywords.py b/test/sitemap/test_detect_keywords.py index 30703210..7df14d11 100644 --- a/test/sitemap/test_detect_keywords.py +++ b/test/sitemap/test_detect_keywords.py @@ -91,7 +91,7 @@ def test_one_theme_get_themes_keywords_duration(): 'timestamp': 1706437080216, } ] - themes = ['changement_climatique_constat', 'ressources'] + themes = ['changement_climatique_constat', 'ressources_indirectes'] (themes_output, keywords_output, number_of_keywords, @@ -115,13 +115,13 @@ def test_one_theme_get_themes_keywords_duration(): assert number_of_keywords == 1 assert number_of_keywords_climat == 1 assert number_of_keywords_biodiversite == 0 - assert number_of_keywords_ressources == 1 + assert number_of_keywords_ressources == 0 assert number_of_changement_climatique_constat == 1 assert number_of_changement_climatique_causes_directes == 0 assert number_of_changement_climatique_consequences == 0 assert number_of_attenuation_climatique_solutions_directes == 0 assert number_of_adaptation_climatique_solutions_directes == 0 - assert number_of_ressources == 1 + assert number_of_ressources == 0 assert number_of_ressources_solutions == 0 assert number_of_biodiversite_concepts_generaux == 0 assert number_of_biodiversite_causes_directes == 0 @@ -1328,19 +1328,19 @@ def test_different_steps_transform_false_positive_keywords_to_positive(): }, {'keyword': 'agroforesterie', 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 + 150, - 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect + 'theme': 'attenuation_climatique_solutions_indirectes' # should stay indirect }, {'keyword': 'alternative durable', 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 + 150, - 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect + 'theme': 'attenuation_climatique_solutions_indirectes' # should stay indirect }, {'keyword': 'planification écologique', 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 4 + 150, - 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect + 'theme': 'attenuation_climatique_solutions_indirectes' # should stay indirect }, {'keyword': 'nucléaire', 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 + 150, - 'theme': 'attenuation_climatique_solutions_indirectes' # should be stayed to indirect + 'theme': 'attenuation_climatique_solutions_indirectes' # should stay indirect } ] @@ -1379,6 +1379,143 @@ def test_different_steps_transform_false_positive_keywords_to_positive(): assert transform_false_positive_keywords_to_positive(tag_wanted_duration_second_window_number(keywords_with_timestamp,start, duration_seconds=15), start) == expected_output +def test_transform_false_positive_keywords_to_positive_different_and_same_subject(): + keywords_with_timestamp = [ + {'keyword': 'climatique', + 'timestamp': original_timestamp + 150, + 'theme': 'changement_climatique_constat' + }, + {'keyword': "activisme climatique", + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 151, + 'theme': 'attenuation_climatique_solutions_indirectes' # should be transformed to direct + }, + {'keyword': 'industrie verte', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'agroforesterie', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'alternative durable', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'planification écologique', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 4 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'nucléaire', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + } + ] + + expected_output = [ + {'keyword': 'climatique', + 'timestamp': original_timestamp + 150, + 'window_number': 0, + 'theme': 'changement_climatique_constat' + }, + {'keyword': "activisme climatique", + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 151, + 'window_number': 1, + 'theme': 'attenuation_climatique_solutions' # should be transformed to direct + }, + {'keyword': 'industrie verte', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 150, + 'window_number': 1, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'agroforesterie', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 + 150, + 'window_number': 2, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'alternative durable', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 + 150, + 'window_number': 3, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'planification écologique', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 4 + 150, + 'window_number': 4, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'nucléaire', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 + 150, + 'window_number': 6, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + } + ] + + assert transform_false_positive_keywords_to_positive(tag_wanted_duration_second_window_number(keywords_with_timestamp,start, duration_seconds=15), start) == expected_output + + + +def test_transform_false_positive_keywords_to_positive_different_subject(): + keywords_with_timestamp = [ + {'keyword': 'climatique', + 'timestamp': original_timestamp + 150, + 'theme': 'changement_climatique_constat' + }, + {'keyword': 'industrie verte', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'agroforesterie', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'alternative durable', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'planification écologique', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 4 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'nucléaire', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 + 150, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + } + ] + + expected_output = [ + {'keyword': 'climatique', + 'timestamp': original_timestamp + 150, + 'window_number': 0, + 'theme': 'changement_climatique_constat' + }, + {'keyword': 'industrie verte', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 1 + 150, + 'window_number': 1, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'agroforesterie', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 2 + 150, + 'window_number': 2, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'alternative durable', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 3 + 150, + 'window_number': 3, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'planification écologique', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 4 + 150, + 'window_number': 4, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + }, + {'keyword': 'nucléaire', + 'timestamp': original_timestamp + get_keyword_time_separation_ms(15) * 6 + 150, + 'window_number': 6, + 'theme': 'biodiversite_concepts_generaux_indirectes' # should stay indirect + } + ] + + assert transform_false_positive_keywords_to_positive(tag_wanted_duration_second_window_number(keywords_with_timestamp,start, duration_seconds=15), start) == expected_output + def test_count_different_window_number(): keywords_with_timestamp = [ diff --git a/test/sitemap/test_main_import_api.py b/test/sitemap/test_main_import_api.py index b1b877b4..b5ae8cda 100644 --- a/test/sitemap/test_main_import_api.py +++ b/test/sitemap/test_main_import_api.py @@ -49,19 +49,20 @@ def test_second_row_api_import(): primary_key = "9f0fb1987371c1dc0b4a165a11feb7ca7ed9b6f9f40d3d6b4fc0748e2ca59c3f" specific_keyword = get_keyword(primary_key) assert set(specific_keyword.theme) == set([ - 'adaptation_climatique_solutions', + 'adaptation_climatique_solutions_indirectes', 'attenuation_climatique_solutions', - 'biodiversite_causes', - 'biodiversite_solutions', - 'biodiversite_concepts_generaux', - 'changement_climatique_causes', + 'attenuation_climatique_solutions_indirectes', + 'biodiversite_causes_indirectes', + 'biodiversite_solutions_indirectes', + 'biodiversite_concepts_generaux_indirectes', + 'changement_climatique_causes_indirectes', 'changement_climatique_consequences', 'changement_climatique_constat', - 'ressources', + 'ressources_indirectes', 'ressources_solutions', ]) - assert specific_keyword.number_of_keywords == 5 + assert specific_keyword.number_of_keywords == 3 def test_third_row_api_import(): diff --git a/transform_excel_to_json.py b/transform_excel_to_json.py index 471856b4..305b3840 100644 --- a/transform_excel_to_json.py +++ b/transform_excel_to_json.py @@ -32,6 +32,10 @@ if ("#" not in keyword): THEME_KEYWORDS[theme_name].append({"keyword": keyword, "category": category}) +# Sort keywords alphabetically for each theme +for theme_name in THEME_KEYWORDS: + THEME_KEYWORDS[theme_name] = sorted(THEME_KEYWORDS[theme_name], key=lambda x: x["keyword"]) + # Convert the THEME_KEYWORDS dictionary to a JSON string with open(output_file, 'w', encoding='utf-8') as f: logging.info(f"Json written - {len(THEME_KEYWORDS)} themes inside {output_file}") From 78a0997b90f20399293c9367985960f5b11e05ee Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Wed, 9 Oct 2024 14:32:57 +0000 Subject: [PATCH 43/73] [no ci]: 1.0.22 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 049fbdfd..6354049a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.21" +version = "1.0.22" description = "" authors = [ "Rambier Estelle ", From 3ff6470fe9b982eb9702aeb0890c04fc2208f1e3 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 10 Oct 2024 09:48:44 +0200 Subject: [PATCH 44/73] chores(memory leak): do not use json_load but directly read an array (#261) --- README.md | 4 +-- .../mediatree/channel_program.py | 26 ++++++++----------- ...l_program.json => channel_program_data.py} | 2 +- transform_program.py | 8 +++--- 4 files changed, 17 insertions(+), 23 deletions(-) rename quotaclimat/data_processing/mediatree/{channel_program.json => channel_program_data.py} (99%) diff --git a/README.md b/README.md index f363ea88..30dff057 100644 --- a/README.md +++ b/README.md @@ -370,11 +370,11 @@ poetry run python3 quotaclimat/transform_excel_to_json.py ``` ## Program Metadata table -The media perimeter is defined here : "quotaclimat/data_processing/mediatree/channel_program.json" +The media perimeter is defined here : "quotaclimat/data_processing/mediatree/channel_program_data.py" To evolve the media perimeter, we use `program_grid_start` and `program_grid_end` columns to version all evolutions. -To calculate the right total duration for each channel, after updating "quotaclimat/data_processing/mediatree/channel_program.json" you need to execute this command to update `postgres/program_metadata.json` +To calculate the right total duration for each channel, after updating "quotaclimat/data_processing/mediatree/channel_program_data.py" you need to execute this command to update `postgres/program_metadata.json` ``` poetry run python3 transform_program.py ``` diff --git a/quotaclimat/data_processing/mediatree/channel_program.py b/quotaclimat/data_processing/mediatree/channel_program.py index d7f205c7..b1edac4f 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.py +++ b/quotaclimat/data_processing/mediatree/channel_program.py @@ -4,26 +4,22 @@ from datetime import datetime import json from quotaclimat.data_processing.mediatree.utils import get_epoch_from_datetime, EPOCH__5MIN_MARGIN, EPOCH__1MIN_MARGIN, get_timestamp_from_yyyymmdd,format_hour_minute - +from quotaclimat.data_processing.mediatree.channel_program_data import channels_programs def get_programs(): logging.debug("Getting program tv/radio...") try: - current_dir = os.path.dirname(os.path.abspath(__file__)) - json_file_path = os.path.join(current_dir, 'channel_program.json') - logging.info(f"Reading {json_file_path}") - with open(json_file_path, 'r') as file: - json_data = json.load(file) - df_programs = pd.DataFrame(json_data) - - df_programs[['start', 'end', 'program_grid_start', 'program_grid_end']] = df_programs.apply(lambda x: pd.Series({ - 'start': format_hour_minute(x['start']), - 'end': format_hour_minute(x['end']), - 'program_grid_start': get_timestamp_from_yyyymmdd(x['program_grid_start']), - 'program_grid_end': get_timestamp_from_yyyymmdd(x['program_grid_end']) - }), axis=1) + logging.info(f"Reading channels_programs") + df_programs = pd.DataFrame(channels_programs) + + df_programs[['start', 'end', 'program_grid_start', 'program_grid_end']] = df_programs.apply(lambda x: pd.Series({ + 'start': format_hour_minute(x['start']), + 'end': format_hour_minute(x['end']), + 'program_grid_start': get_timestamp_from_yyyymmdd(x['program_grid_start']), + 'program_grid_end': get_timestamp_from_yyyymmdd(x['program_grid_end']) + }), axis=1) except (Exception) as error: - logging.error(f"Could not read channel_program.json {error}") + logging.error(f"Could not read channel_program_data.py {error}") raise Exception return df_programs diff --git a/quotaclimat/data_processing/mediatree/channel_program.json b/quotaclimat/data_processing/mediatree/channel_program_data.py similarity index 99% rename from quotaclimat/data_processing/mediatree/channel_program.json rename to quotaclimat/data_processing/mediatree/channel_program_data.py index 16d9f663..8a30fdd7 100644 --- a/quotaclimat/data_processing/mediatree/channel_program.json +++ b/quotaclimat/data_processing/mediatree/channel_program_data.py @@ -1,4 +1,4 @@ -[ +channels_programs = [ {"channel_name":"tf1","start":"6:55","end":"9:30","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"Bonjour ! La Matinale","program_type":"Information - Magazine"}, {"channel_name":"tf1","start":"13:00","end":"13:40","weekday":"weekday","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 13h","program_type":"Information - Journal"}, {"channel_name":"tf1","start":"13:00","end":"13:40","weekday":"5","program_grid_start":"2023-04-01","program_grid_end":"","program_name":"JT 13h","program_type":"Information - Journal"}, diff --git a/transform_program.py b/transform_program.py index cbe6ed19..db7d720f 100644 --- a/transform_program.py +++ b/transform_program.py @@ -5,6 +5,8 @@ import hashlib import sys import logging +from quotaclimat.data_processing.mediatree.channel_program_data import channels_programs + logging.basicConfig(level = logging.INFO) # Function to calculate duration in minutes between two time strings @@ -20,7 +22,6 @@ def generate_program_id(channel_name, weekday, program_name, program_grid_start) data_str = f"{channel_name}-{weekday}-{program_name}-{program_grid_start}" return hashlib.sha256(data_str.encode()).hexdigest() -input_file_path = "quotaclimat/data_processing/mediatree/channel_program.json" output_file_path = "postgres/program_metadata.json" # Detailed information for each channel @@ -142,12 +143,9 @@ def generate_program_id(channel_name, weekday, program_name, program_grid_start) } -with open(input_file_path, 'r', encoding='utf-8') as input_file: - data = json.load(input_file) - programs = [] -for program_data in data: +for program_data in channels_programs: start_time = program_data['start'] end_time = program_data['end'] duration_minutes = calculate_duration(start_time, end_time) From e11ef9ab6ce0f2a0982c8164d3cd3b9c8c0c007e Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 10 Oct 2024 07:49:23 +0000 Subject: [PATCH 45/73] [no ci]: 1.0.23 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6354049a..d5c7ef4f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.22" +version = "1.0.23" description = "" authors = [ "Rambier Estelle ", From acada532a57c61fcfc872695e6f60bf427f254f9 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 10 Oct 2024 10:11:10 +0200 Subject: [PATCH 46/73] feat/multiple-update-from-ci (#262) --- .../scaleway-start-import-job-update.yml | 26 +++++++++++++++++-- README.md | 2 ++ postgres/schemas/models.py | 5 +++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scaleway-start-import-job-update.yml b/.github/workflows/scaleway-start-import-job-update.yml index 5746f99a..9f6214bd 100644 --- a/.github/workflows/scaleway-start-import-job-update.yml +++ b/.github/workflows/scaleway-start-import-job-update.yml @@ -8,7 +8,27 @@ jobs: start-job-image: strategy: matrix: - start_date: ["2023-04-01", "2023-05-01","2023-06-01","2023-07-01"] + dates: [ + {start_date: "2023-04-01", end_date: "2023-05-01"} + ,{start_date: "2023-05-01", end_date: "2023-06-01"} + ,{start_date: "2023-06-01", end_date: "2023-07-01"} + ,{start_date: "2023-07-01", end_date: "2023-08-01"} + ,{start_date: "2023-08-01", end_date: "2023-09-01"} + ,{start_date: "2023-09-01", end_date: "2023-10-01"} + ,{start_date: "2023-10-01", end_date: "2023-11-01"} + ,{start_date: "2023-11-01", end_date: "2023-12-01"} + ,{start_date: "2023-12-01", end_date: "2024-01-01"} + ,{start_date: "2024-01-01", end_date: "2024-02-01"} + ,{start_date: "2024-02-01", end_date: "2024-03-01"} + ,{start_date: "2024-03-01", end_date: "2024-04-01"} + ,{start_date: "2024-04-01", end_date: "2024-05-01"} + ,{start_date: "2024-05-01", end_date: "2024-06-01"} + ,{start_date: "2024-06-01", end_date: "2024-07-01"} + ,{start_date: "2024-07-01", end_date: "2024-08-01"} + ,{start_date: "2024-08-01", end_date: "2024-09-01"} + ,{start_date: "2024-09-01", end_date: "2024-10-01"} + ,{start_date: "2024-10-01", end_date: "2024-11-01"} + ] runs-on: ubuntu-latest steps: - name: start import job to reapply logic to all elements start_date matrix @@ -19,4 +39,6 @@ jobs: SCW_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID }} SCW_ZONE: ${{ secrets.SCW_ZONE }} with: - args: jobs definition start ${{ secrets.SCALEWAY_JOB_IMPORT_ID }} environment-variables.UPDATE=true environment-variables.START_DATE_UPDATE=${{ matrix.start_date }} \ No newline at end of file + args: jobs definition start ${{ secrets.SCALEWAY_JOB_IMPORT_ID }} environment-variables.UPDATE=true \ + environment-variables.START_DATE_UPDATE=${{ matrix.dates.start_date }} \ + environment-variables.END_DATE=${{ matrix.dates.end_date }} \ No newline at end of file diff --git a/README.md b/README.md index 30dff057..10c22270 100644 --- a/README.md +++ b/README.md @@ -380,6 +380,8 @@ poetry run python3 transform_program.py ``` The SQL queries are based on this file that generate the Program Metadata table. +Program data will not be updated to avoid lock concurrent issues when using `UPDATE=true` for keywords logic. Note: The default case will update them. + **With the docker-entrypoint.sh this command is done automatically, so for production uses, you will not have to run this command.** ## Production monitoring diff --git a/postgres/schemas/models.py b/postgres/schemas/models.py index a9613d11..ebc939a0 100644 --- a/postgres/schemas/models.py +++ b/postgres/schemas/models.py @@ -140,7 +140,10 @@ def create_tables(): Base.metadata.create_all(engine, checkfirst=True) update_channel_metadata(engine) - update_program_metadata(engine) + if(os.environ.get("UPDATE") != "true"): + update_program_metadata(engine) + else: + logging.warning("No program update as UPDATE=true as it can create lock issues") logging.info("Table creation done, if not already done.") except (Exception) as error: logging.error(error) From 0536febef120fb0ab9c55e005727acea46c4510b Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 10 Oct 2024 08:11:45 +0000 Subject: [PATCH 47/73] [no ci]: 1.0.24 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d5c7ef4f..8aede172 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.23" +version = "1.0.24" description = "" authors = [ "Rambier Estelle ", From 696b2805ed70f1c5c300a85804848cc92ac0f4bc Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 10 Oct 2024 17:36:39 +0200 Subject: [PATCH 48/73] ci: rollback action-scaleway --- .github/workflows/scaleway-start-import-job-update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scaleway-start-import-job-update.yml b/.github/workflows/scaleway-start-import-job-update.yml index 9f6214bd..c26c6605 100644 --- a/.github/workflows/scaleway-start-import-job-update.yml +++ b/.github/workflows/scaleway-start-import-job-update.yml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-latest steps: - name: start import job to reapply logic to all elements start_date matrix - uses: jawher/action-scw@v2.34.0 + uses: jawher/action-scw@v2.32.1 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} From fb04744c3395a12097ae0b09bb3954cb50501537 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 10 Oct 2024 15:42:48 +0000 Subject: [PATCH 49/73] [no ci]: 1.0.25 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8aede172..2b5d7732 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.24" +version = "1.0.25" description = "" authors = [ "Rambier Estelle ", From 191e22cd662c6d70f1016dd1f8fa41d0b8820ee0 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 10 Oct 2024 18:36:11 +0200 Subject: [PATCH 50/73] Fix/ci scaleway jobs (#263) * test ci * ci --- .github/workflows/scaleway-start-import-job-update.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scaleway-start-import-job-update.yml b/.github/workflows/scaleway-start-import-job-update.yml index c26c6605..cafa5a8e 100644 --- a/.github/workflows/scaleway-start-import-job-update.yml +++ b/.github/workflows/scaleway-start-import-job-update.yml @@ -32,13 +32,11 @@ jobs: runs-on: ubuntu-latest steps: - name: start import job to reapply logic to all elements start_date matrix - uses: jawher/action-scw@v2.32.1 + uses: jawher/action-scw@v2.34.0 env: SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }} SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }} SCW_ORGANIZATION_ID: ${{ secrets.SCW_ORGANIZATION_ID }} SCW_ZONE: ${{ secrets.SCW_ZONE }} with: - args: jobs definition start ${{ secrets.SCALEWAY_JOB_IMPORT_ID }} environment-variables.UPDATE=true \ - environment-variables.START_DATE_UPDATE=${{ matrix.dates.start_date }} \ - environment-variables.END_DATE=${{ matrix.dates.end_date }} \ No newline at end of file + args: jobs definition start ${{ secrets.SCALEWAY_JOB_IMPORT_ID }} environment-variables.UPDATE=true environment-variables.START_DATE_UPDATE=${{ matrix.dates.start_date }} environment-variables.END_DATE=${{ matrix.dates.end_date }} \ No newline at end of file From f28836ec9ebe802bb8ce4e7322e20e59745d6c3a Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 10 Oct 2024 16:36:50 +0000 Subject: [PATCH 51/73] [no ci]: 1.0.26 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2b5d7732..c855ee3c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.25" +version = "1.0.26" description = "" authors = [ "Rambier Estelle ", From 55322126ad46ed69cb99c2fb65f2d9fb6d504cf9 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 11 Oct 2024 11:58:58 +0200 Subject: [PATCH 52/73] chores: update stop words with link cause technic --- .../mediatree/keyword/stop_words.py | 168 +++++++++++++++++- 1 file changed, 161 insertions(+), 7 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index dcf93e64..ede6c425 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -1,7 +1,7 @@ # Based on advertising STOP_WORDS = [ "bonus écologique" - ,"groupe verlaine isolation thermique" + ,"verlaine isolation thermique" ,"haute isolation thermique fabriqué en france" ,"ou covoiturage tous les moyens sont bon" ,"blablacar et recevez cent euros de prime covoiturage" @@ -16,6 +16,30 @@ ,"photovoltaïques vie" ,"garanti photovoltaïques" ,"photovoltaïque verlaine" + ,"installation photovoltaïque de trois kilowatt" + ,"photovoltaïque de groupe verlaine" + ,"installation photovoltaïque de trois kilos" + ,"installation photovoltaïque peut vous faire économiser jusqu'" + ,"installation photovoltaïque et garantis vingt-cinq ans" + ,"centrale photovoltaïque et pompes à chaleur groupe verlaine" + ,"centrale photovoltaïque pompes à chaleur groupe verlaine" + ,"climat de confiance" + ,"panneau photovoltaïque et bornes de recharge thompson groupe verlaine" + ,"photovoltaïque pour réduire vos factures d' électricité groupe verlaine" + ,"centrale photovoltaïque mobile facile" + ,"photovoltaïque groupe verlaine" + ,"photovoltaïque de groupe verlaine" + ,"centrale photovoltaïque a posé en toute simplicité" + ,"centrale photovoltaïque à poser en toute simplicité" + ,"centrale photovoltaïque de quatre cents watts" + ,"centrale photovoltaïque produisait et consommer votre propre énergie" + ,"verlaine isolation centrales photovoltaïques" + ,"verlaine isolation photovoltaïque et pompe à chaleur" + ,"verlaine isolation centrales photovoltaïques et pompes" + ,"verlaine isolation photovoltaïque et pompes à chaleurs" + ,"verlaine isolation photovoltaïques pompes à chaleur" + ,"verlaine isolation photovoltaïque pompe à chaleur" + ,"on refait son isolation change sans chauffage" ,"installe des panneaux photovoltaïques et des bornes de recharge" ,"le leader du photovoltaïque chez les particulier" ,"panneaux solaires pour produire votre énergie" @@ -28,6 +52,10 @@ ,"votre expert en panneaux solaires" # mon kits solaires point fr ,"le top des panneaux solaires" ,"panneaux solaires garantie à vie" + ,"avec des panneaux solaires c' est jusqu' à mille cinq" + ,"de panneaux solaires cinq mille huit" + ,"en panneaux solaires c' est une banque décidé" + ,"en panneaux solaires est une bande décidé" ,"économies d' énergie impact environnemental des vies" ,"économies d' énergie l' impact environnemental des vies" ,"ou des entreprises font des économies d' énergie ou l' impact environnemental des vies" @@ -69,38 +97,78 @@ ,'énergie renouvelable stéphane' ,"énergie renouvelable pour moins polluer" ,"énergie renouvelable pour dépenser moins" + ,"grand acheteur d' énergie renouvelable" + ,"énergie renouvelable au monde" ,"par des garanties d' origine renouvelable" ,"énergies renouvelables groupe verlaine" ,"borne de recharge offert" + ,"localise une borne de recharge" ,"edf installe votre borne de recharge" ,"pour faire installer ma borne de recharge" - ,"si vous avez une borne de recharge partager" + ,"borne de recharge partager" + ,"votre borne de recharge que vous habitez" + ,"borne de recharge j' ai pas hésité" + ,"borne de recharge et deux mois" ,"une borne de recharge bien installé" ,"vous avez une borne de recharge" ,"en ce moment borne de recharge" + ,"vous offre la borne de recharge" ,"profiter de la borne de recharge offert" + ,"borne de recharge est offert" ,"borne de recharge offerte" ,"faire installer une borne de recharge" ,"en copropriété une borne de recharge" - ,"peugeot vous offre la borne de recharge" ,"pour les plus branchées la borne de recharge" ,"leasing électrique à" + ,"dispositif mon leasing électrique" ,"gouvernemental mon leasing électrique" ,"éligibles au leasing électrique" ,"éligible au leasing électrique" + ,"ce leasing électrique ça rendait vraiment la voiture" ,"offre mon leasing électrique" ,"leasing électrique économise" ,"climatique c' est pour ça que je suis au crédit coopératif" ,"installateur de pompe à chaleur air" ,"pompe à chaleur atlantique" + ,"isolation photovoltaïque et pompe à chaleur pour une réno" + ,"centrale photovoltaïque du futur" # thompson + ,"leader du photovoltaïque" + ,"centrale photovoltaïque à partir" ,"et plus durable et avec spoticar" ,"l' éolien jeanjean" - ,"bd thierry rénovation énergétique point fr" - ,"le mouvement de la rénovation énergétique" + ,"rénovation énergétique point fr" + ,"la rénovation énergétique la météo avec" + ,"papa la rénovation énergétique" + ,"mouvement de la rénovation énergétique" + ,"la rénovation énergétique réussie c' est simple" + ,"rénovation énergétique avec point p" + ,"projets de rénovation énergétique avec" + ,"lancé dans la rénovation énergétique de sa maison" + ,"lance dans la rénovation énergétique de sa maison" + ,"lancer dans la rénovation énergétique de sa maison" + ,"rénovation énergétique rendez-vous sur" + ,"rénovation énergétique contacté effie" + ,"rénovation énergétique contacter effie" + ,"rénovation énergétique contacté effie" + ,"rénovation énergétique contactés effie" + ,"rénovation énergétique contactés effie" + ,"rénovation énergétique contacté efi" + ,"rénovation énergétique groupe verlaine" + ,"des travaux de rénovation énergétique jusqu' au" + ,"edf c' est une rénovation énergétique" + ,"rénovation énergétique c' était la météo avec groupe verlaine" + ,"pour votre rénovation énergétique france renov le service public" + ,"rendre la rénovation énergétique accessible au plus grand nombre à découvrir" + ,"de rénovation énergétique avec castorama" + ,"rénovation énergétique rendez vous " + ,"pour la rénovation énergétique par contre" + ,"experts de la rénovation énergétique il te conseille" + ,"la rénovation énergétique il te conseille" ,"mon parcours rénovation diagnostic" - ,"leroy merlin la rénovation énergétique" + ,"merlin la rénovation énergétique" ,"rénovation énergétique la météo avec groupe verlaine" ,"rénovation globale groupe verlaine" + ,"bien démarrer votre rénovation énergétique" ,"en machine le gaspillage" ,"l' économie circulaire liddell" ,"l' économie circulaire carrefour" @@ -117,18 +185,36 @@ ,"salon de jardin miami fabriqué avec quatre-vingts pour cent de matériaux recyclés" ,"l' entreprise de julie fabrique des meubles en matériaux recyclés" ,"jardin miami fabriqué avec quatre-vingts pour cent de matériaux recyclés" - ,"cristaline est capable de recycler" ,"nous-mêmes du plastique recyclé" ,"trois usines exclusivement dédiée aux recyclage" ,"trois usines exclusivement dédiés au recyclage" ,"trois usines exclusivement dédiées au recyclage" ,"vivement dédiées au recyclage" + ,"un gouvernement de recyclage" ,"trier devient plus simple" ,"grâce à vous qui trier vos bouteilles" ,"nous les recycle pour en faire de nouvelles" ,"cristalline est capable de recycler" + ,"cristalline et capable de recycler" + ,"recycler des lunettes" + ,"recycler des milliers de tonnes" + ,"nous les recycler pour en faire" + ,"recycler en disant on a déjà recycler" + ,"recycler en dix ans on a déjà recycler" + ,"recycler en dix ans on a déjà recyclé" + ,"recycler et créer des contrats" + ,"pour recycler votre épave" + ,"la recycler la vieille" ,"ou les notices de panneaux photovoltaïques" + ,"grâce aux dons à la réparation au recyclage" + ,"renforcement de nos filières de recyclage" + ,"est partout en france le recyclage de pare-brise" + ,"est le royaume du recyclage il faut juste" + ,"en termes de tri des déchets le recyclage ou d' énergies renouvelables" ,"recyclage depuis trente ans" # cristalline + ,"cristaline l' eau préférée" + ,"eau minérale naturelle" + ,"packs d' eau" ,"est à fond sur le tri sélectif" ,"transition énergétique baisse de lumière" ,"transition énergétique co" @@ -170,6 +256,74 @@ ,"isolation par l' extérieur" ,"votre énergie avec l' installation de panneaux solaires" ,"offrez à vos clients un devis précis pour améliorer la performance énergétique" + ,"augmenter la performance énergétique et la" + ,"performance énergétique de votre logement groupe verlaine" + ,"gaz très haute performance énergétique plus confortable" ,"pergola bioclimatique" ,"on imagine des murs végétalisé" + ,"pêche durable liddell" + ,"pêche durable littell" + ,"pêche durable l' idéal" + ,"maprimerénov leroy" + ,"maprimerénov et économiser jusqu' à" + ,"maprimerénov une offre comme ça même chez lapeyre" + ,"aux aides maprimerénov et de faisabilité sous condition" + ,"leroy merlin quand on refait son isolation" + ,"météo avec parc saint-paul" + ,"économies d' énergie l' impact environnemental des vies" + ,"économies d' énergie impact environnemental des vies" + ,"compliqué d' économiser de l' énergie alors engie vous aide" + ,"pour faire des économies d' énergie juliette" + ,"total énergie" + ,"option énergies vertes" + ,"devenir franchisés dans les énergies renouvelables" + ,"écologiques pour remplacer votre" + ,"accrochages c' est aussi plus écologique" + ,"transition écologique avec le groupe tf1" + ,"planète radio" + ,"responsable service" + ,"plus responsable chez électro dépôt" + ,"haut responsable" + ,"responsable politique" + ,"vous êtes responsable" + ,"responsable du" + ,"responsables du" + ,"la responsable" + ,"le responsable" + ,"les responsables" + ,"chaque responsable" + ,"pas responsable" + ,"responsable de" + ,"comme responsable" + ,"du responsable" + ,"verger écoresponsable" + ,"français écoresponsable sont à" + ,"érigés en barrage" + ,"partie du barrage" + ,"barrage au" + ,"barrage et affrontement" + ,"barrage à des" + ,"barrage filtrant" + ,"par terre" + ,"pieds sur terre" + ,"tremblement de terre" + ,"paradis sur terre" + ,"terre battue" + ,"rituel de la forêt" + ,"électrique ou hydrogène il existe" + ,"électrique hydrogène il existe" + ,"de l' ombre et de la lumière" + ,"vélo pour aller chercher le pain" + ,"camion ou du vélo" + ,"vélo liddell" + ,"vélo électrique de décathlon" + ,"vélo électrique nakamura" + ,"votre trajet à vélo un vrai" + ,"c' est quoi un vélo électrique" + ,"à vélo avec les forfaits kilométriques alliance" + ,"vue sur mer" + ,"issu de l' agriculture biologique en boutique" + ,"agriculture biologique pour les produits de beauté" + ,"vous aimez les voitures électriques" # renault + ,"and roll des voitures électriques" ] From 5eaa934907aa52f135cbf29facdfc4b3362badac Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 11 Oct 2024 09:59:37 +0000 Subject: [PATCH 53/73] [no ci]: 1.0.27 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c855ee3c..73b2e4a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.26" +version = "1.0.27" description = "" authors = [ "Rambier Estelle ", From 5a05c35bfd370f1a43de2497915a3f02b0feba2b Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Mon, 14 Oct 2024 11:58:53 +0200 Subject: [PATCH 54/73] chores: update stop words --- .../mediatree/keyword/stop_words.py | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index ede6c425..47a92dbe 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -94,7 +94,7 @@ ,'huile de coude étaient aussi est aussi une énergie renouvelable ' ,"franchisés dans les énergies renouvelable" ,"franchisé dans les énergies renouvelable" - ,'énergie renouvelable stéphane' + ,'énergie renouvelable stéphan' ,"énergie renouvelable pour moins polluer" ,"énergie renouvelable pour dépenser moins" ,"grand acheteur d' énergie renouvelable" @@ -102,10 +102,18 @@ ,"par des garanties d' origine renouvelable" ,"énergies renouvelables groupe verlaine" ,"borne de recharge offert" + ,"plus de mille bornes de recharge" ,"localise une borne de recharge" ,"edf installe votre borne de recharge" ,"pour faire installer ma borne de recharge" ,"borne de recharge partager" + ,"localisent une borne de recharge" + ,"bornes de recharge offert" + ,"presque impérativement avoir une borne de recharge" + ,"bornes de recharge et des mois de loyer" + ,"bornes de recharge et deux" + ,"si vous avez une borne de recharge partager" + ,"cent pour cent électriques bornes de recharge" ,"votre borne de recharge que vous habitez" ,"borne de recharge j' ai pas hésité" ,"borne de recharge et deux mois" @@ -186,7 +194,9 @@ ,"l' entreprise de julie fabrique des meubles en matériaux recyclés" ,"jardin miami fabriqué avec quatre-vingts pour cent de matériaux recyclés" ,"nous-mêmes du plastique recyclé" + ,"nous-même du plastique recyclé" ,"trois usines exclusivement dédiée aux recyclage" + ,"trois usines exclusivement dédié au recyclage" ,"trois usines exclusivement dédiés au recyclage" ,"trois usines exclusivement dédiées au recyclage" ,"vivement dédiées au recyclage" @@ -196,7 +206,9 @@ ,"nous les recycle pour en faire de nouvelles" ,"cristalline est capable de recycler" ,"cristalline et capable de recycler" + ,"vos bouteilles nous les recycler" ,"recycler des lunettes" + ,"est capable de recycler recycler" ,"recycler des milliers de tonnes" ,"nous les recycler pour en faire" ,"recycler en disant on a déjà recycler" @@ -215,6 +227,7 @@ ,"cristaline l' eau préférée" ,"eau minérale naturelle" ,"packs d' eau" + ,"d' gien eau" ,"est à fond sur le tri sélectif" ,"transition énergétique baisse de lumière" ,"transition énergétique co" @@ -239,6 +252,7 @@ ,"énergie c' est trop cher je vous réponds fait comme marc" ,"énergie une étude révèle que six français sur dix" ,"énergie choisissez edf" + ,"énergie et notre avenir économisant" ,"voiture de l' année" ,"voiture année" ,"carrefour point fr les publicités de voiture" @@ -251,8 +265,6 @@ ,"future voiture d' occasion reconditionnée" ,"vous appel parce que ma voiture" ,"disposition une voiture le temps" - ,"bornes de recharge et des mois de loyer" - ,"cent pour cent électriques bornes de recharge" ,"isolation par l' extérieur" ,"votre énergie avec l' installation de panneaux solaires" ,"offrez à vos clients un devis précis pour améliorer la performance énergétique" @@ -274,6 +286,7 @@ ,"économies d' énergie impact environnemental des vies" ,"compliqué d' économiser de l' énergie alors engie vous aide" ,"pour faire des économies d' énergie juliette" + ,"elle voudrait faire des économies de chauffage" ,"total énergie" ,"option énergies vertes" ,"devenir franchisés dans les énergies renouvelables" @@ -318,6 +331,7 @@ ,"vélo liddell" ,"vélo électrique de décathlon" ,"vélo électrique nakamura" + ,"sofinco tu peux acheter un vélo électrique" ,"votre trajet à vélo un vrai" ,"c' est quoi un vélo électrique" ,"à vélo avec les forfaits kilométriques alliance" @@ -326,4 +340,12 @@ ,"agriculture biologique pour les produits de beauté" ,"vous aimez les voitures électriques" # renault ,"and roll des voitures électriques" + ,"conduisiez une voiture électrique l' application" + ,"engie pourquoi l' ordinaire devrait être la norme" + ,"de plus en plus d' énergie éolien comme celui-ci" # amazon + ,"l' eau filtrée britta" + ,"bonne maman beaucoup de noisette huile de palme" + ,"sans pesticides pour des recettes" + ,"chez céréales bio" + ,"agir pour la préserver découvrez comment" #gouv.fr ] From e48756e38edb9297d52daa91c3bf324ba9b852e9 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Mon, 14 Oct 2024 09:59:30 +0000 Subject: [PATCH 55/73] [no ci]: 1.0.28 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 73b2e4a2..5ad58295 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.27" +version = "1.0.28" description = "" authors = [ "Rambier Estelle ", From 36312352cd1f2b6857310fd59ecba83c035014fd Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Mon, 14 Oct 2024 18:51:19 +0200 Subject: [PATCH 56/73] test: add stop words (#269) * test: add stop words * add more stop words --- .../data_processing/mediatree/detect_keywords.py | 3 ++- .../mediatree/keyword/stop_words.py | 12 +++++++++++- test/sitemap/test_keywords.py | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 test/sitemap/test_keywords.py diff --git a/quotaclimat/data_processing/mediatree/detect_keywords.py b/quotaclimat/data_processing/mediatree/detect_keywords.py index 7df795a4..eff1a301 100644 --- a/quotaclimat/data_processing/mediatree/detect_keywords.py +++ b/quotaclimat/data_processing/mediatree/detect_keywords.py @@ -108,10 +108,11 @@ def filter_keyword_with_same_timestamp(keywords_with_timestamp: List[dict])-> Li return keywords_with_timestamp def remove_stopwords(plaintext: str) -> str: + logging.debug(f"Removing stopwords {plaintext}") stopwords = STOP_WORDS for word in stopwords: plaintext = plaintext.replace(word, '') - + return plaintext @sentry_sdk.trace diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index 47a92dbe..ad37ddd4 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -46,6 +46,7 @@ ,"installateur panneaux de photovoltaïques" ,"installateurs de panneaux photovoltaïques" ,"installateur de panneaux photovoltaïques" + ,"panneaux photovoltaïques et même sur les vêtements" ,"installateur de panneaux solaires" ,"installateurs de panneaux solaires" ,"verlaine installation de panneaux solaires" @@ -85,6 +86,9 @@ ,"on installe des panneaux photovoltaïques borne de recharge" ,"on installe des panneaux photovoltaïques des bornes de recharge" ,"le leader du photovoltaïque" + ,"leader photovoltaïque" + ,"leader chez du les photovoltaïque" + ,"chez les photovoltaïque particuliers" ,"en train d" ,"consigne de vote" ,"climat de confiance" @@ -205,8 +209,10 @@ ,"grâce à vous qui trier vos bouteilles" ,"nous les recycle pour en faire de nouvelles" ,"cristalline est capable de recycler" + ,"cristallines est capable de recycler" ,"cristalline et capable de recycler" - ,"vos bouteilles nous les recycler" + ,"cristallines et capable de recycler" + ,"trier vos bouteilles nous les recycler" ,"recycler des lunettes" ,"est capable de recycler recycler" ,"recycler des milliers de tonnes" @@ -218,6 +224,7 @@ ,"pour recycler votre épave" ,"la recycler la vieille" ,"ou les notices de panneaux photovoltaïques" + ,'leader du photovoltaïque' ,"grâce aux dons à la réparation au recyclage" ,"renforcement de nos filières de recyclage" ,"est partout en france le recyclage de pare-brise" @@ -276,6 +283,7 @@ ,"pêche durable liddell" ,"pêche durable littell" ,"pêche durable l' idéal" + ,"saumon ici issus de la pêche durable" ,"maprimerénov leroy" ,"maprimerénov et économiser jusqu' à" ,"maprimerénov une offre comme ça même chez lapeyre" @@ -339,6 +347,7 @@ ,"issu de l' agriculture biologique en boutique" ,"agriculture biologique pour les produits de beauté" ,"vous aimez les voitures électriques" # renault + ,"renault fabrique et entretient des voitures électriques" ,"and roll des voitures électriques" ,"conduisiez une voiture électrique l' application" ,"engie pourquoi l' ordinaire devrait être la norme" @@ -348,4 +357,5 @@ ,"sans pesticides pour des recettes" ,"chez céréales bio" ,"agir pour la préserver découvrez comment" #gouv.fr + ,"oasis de verdure au milieu" ] diff --git a/test/sitemap/test_keywords.py b/test/sitemap/test_keywords.py new file mode 100644 index 00000000..b2aa67e9 --- /dev/null +++ b/test/sitemap/test_keywords.py @@ -0,0 +1,15 @@ +import logging +import os +import pandas as pd +from quotaclimat.data_processing.mediatree.utils import * +from quotaclimat.data_processing.mediatree.detect_keywords import * + +def test_get_remove_stopwords_recycler(): + ad = "nous les recycler pour en faire de nouvelles en fabriquant nous-mêmes du plastique recyclé pour cela nous avons créé trois usines exclusivement dédié au recyclage dès cette année cristallines est capable de recycler autant de bouteilles" + + assert remove_stopwords(ad) == " de nouvelles en fabriquant pour cela nous avons créé dès cette année autant de bouteilles" + +def test_get_remove_stopwords_no_modification(): + ad = "no keywords" + + assert remove_stopwords(ad) == ad From 0beaad082d8209aafac20e8dc566135eb210d1b8 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Mon, 14 Oct 2024 16:51:54 +0000 Subject: [PATCH 57/73] [no ci]: 1.0.29 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5ad58295..cd2a54b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.28" +version = "1.0.29" description = "" authors = [ "Rambier Estelle ", From 4f1247915f9aeec3fba189f77fa081195969d370 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Tue, 15 Oct 2024 16:59:10 +0200 Subject: [PATCH 58/73] Stop words linked to ads (#270) * wip stop words * stop words --- .../mediatree/keyword/stop_words.py | 177 ++++++++++++++++-- 1 file changed, 159 insertions(+), 18 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index ad37ddd4..c8a3e8a8 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -12,13 +12,21 @@ ,"verlaine photovoltaïques" ,"verlaine le climat" ,"photovoltaïque groupe" - ,"groupe verlaine isolation photovoltaïques" + ,"contrat d' entretien pour pompes à chaleur et photovoltaïque" # verlaine + ,"groupe verlaine pro installations photovoltaïque" + ,"groupe verlaine pro installation photovoltaïque" + ,"installateur groupe de verlaine panneaux installateur photovoltaïques de garantie panneaux à photovoltaïques" + ,"frigos on installe des panneaux photovoltaïques et des bornes de recharge" + ,"groupe verlaine isolation centrale photovoltaïque pompes à chaleur" + ,"groupe verlaine isolation photovoltaïques pompes à chaleur" + ,"groupe verlaine isolation photovoltaïque" + ,"groupe verlaine isolation" ,"photovoltaïques vie" ,"garanti photovoltaïques" ,"photovoltaïque verlaine" - ,"installation photovoltaïque de trois kilowatt" + ,"installation de panneaux photovoltaïques vous avez dit" + ,"installation photovoltaïque de trois" ,"photovoltaïque de groupe verlaine" - ,"installation photovoltaïque de trois kilos" ,"installation photovoltaïque peut vous faire économiser jusqu'" ,"installation photovoltaïque et garantis vingt-cinq ans" ,"centrale photovoltaïque et pompes à chaleur groupe verlaine" @@ -36,16 +44,23 @@ ,"verlaine isolation centrales photovoltaïques" ,"verlaine isolation photovoltaïque et pompe à chaleur" ,"verlaine isolation centrales photovoltaïques et pompes" - ,"verlaine isolation photovoltaïque et pompes à chaleurs" ,"verlaine isolation photovoltaïques pompes à chaleur" ,"verlaine isolation photovoltaïque pompe à chaleur" ,"on refait son isolation change sans chauffage" ,"installe des panneaux photovoltaïques et des bornes de recharge" - ,"le leader du photovoltaïque chez les particulier" + ,"photovoltaïques et des bornes de recharge pour que ça profite" + ,"photovoltaïques et des bornes de recharge et pour que ça profite" + ,"bornes de recharge et d' un" + ,"euros par mois bornes de recharge" + ,"leader du photovoltaïque chez les particulier" + ,"leader du photovoltaïque chez du photovoltaïque" + ,"leader du photovoltaïque chez photovoltaïque " ,"panneaux solaires pour produire votre énergie" - ,"installateur panneaux de photovoltaïques" - ,"installateurs de panneaux photovoltaïques" - ,"installateur de panneaux photovoltaïques" + ,"installation des panneaux solaires c' est moi" + ,"à la crème solaire c' est pour les panneaux solaires" + ,"installateur panneaux de photovoltaïque" + ,"installateurs de panneaux photovoltaïque" + ,"installateur de panneaux photovoltaïque" ,"panneaux photovoltaïques et même sur les vêtements" ,"installateur de panneaux solaires" ,"installateurs de panneaux solaires" @@ -85,7 +100,8 @@ ,"panneaux photovoltaïques garanti à vie" ,"on installe des panneaux photovoltaïques borne de recharge" ,"on installe des panneaux photovoltaïques des bornes de recharge" - ,"le leader du photovoltaïque" + ,"mille bornes de recharge entre particuliers" + ,"leader photovoltaïque du photovoltaïque" ,"leader photovoltaïque" ,"leader chez du les photovoltaïque" ,"chez les photovoltaïque particuliers" @@ -105,6 +121,8 @@ ,"énergie renouvelable au monde" ,"par des garanties d' origine renouvelable" ,"énergies renouvelables groupe verlaine" + ,"spécialisée dans les énergies renouvelables" + ,"spécialisée dans les énergies renouvelables" ,"borne de recharge offert" ,"plus de mille bornes de recharge" ,"localise une borne de recharge" @@ -120,31 +138,41 @@ ,"cent pour cent électriques bornes de recharge" ,"votre borne de recharge que vous habitez" ,"borne de recharge j' ai pas hésité" + ,"edf installe votre bornes de recharge" + ,"bornes de recharge et installation offerte" + ,"bornes de recharge et d' un mois" + ,"une borne de recharge bien installés c' est simple" ,"borne de recharge et deux mois" ,"une borne de recharge bien installé" ,"vous avez une borne de recharge" ,"en ce moment borne de recharge" ,"vous offre la borne de recharge" - ,"profiter de la borne de recharge offert" ,"borne de recharge est offert" - ,"borne de recharge offerte" + ,"borne de recharge offert" ,"faire installer une borne de recharge" ,"en copropriété une borne de recharge" ,"pour les plus branchées la borne de recharge" + ,"frigos on installe des panneaux photovoltaïques et des bornes de recharge" + ,"frigo on installe des panneaux photovoltaïques et des bornes de recharge" ,"leasing électrique à" ,"dispositif mon leasing électrique" ,"gouvernemental mon leasing électrique" ,"éligibles au leasing électrique" + ,"éligible au dispositif mon leasing électrique" ,"éligible au leasing électrique" + ,"zéro euro bonus aide au leasing électrique" + ,"leasing électrique avec renault" ,"ce leasing électrique ça rendait vraiment la voiture" ,"offre mon leasing électrique" ,"leasing électrique économise" + ,"par mois seulement grâce à mon leasing électrique" ,"climatique c' est pour ça que je suis au crédit coopératif" ,"installateur de pompe à chaleur air" ,"pompe à chaleur atlantique" + ,"pompe à chaleur je suis fait pour la chaleur" ,"isolation photovoltaïque et pompe à chaleur pour une réno" ,"centrale photovoltaïque du futur" # thompson - ,"leader du photovoltaïque" + ,"centrale la photovoltaïque scène du futur" # thompson ,"centrale photovoltaïque à partir" ,"et plus durable et avec spoticar" ,"l' éolien jeanjean" @@ -203,15 +231,22 @@ ,"trois usines exclusivement dédié au recyclage" ,"trois usines exclusivement dédiés au recyclage" ,"trois usines exclusivement dédiées au recyclage" + ,"recyclage dès cette année cristallines est capable de recycler" + ,"tout le travail de cristaline pour le recyclage" ,"vivement dédiées au recyclage" ,"un gouvernement de recyclage" ,"trier devient plus simple" ,"grâce à vous qui trier vos bouteilles" ,"nous les recycle pour en faire de nouvelles" + ,"cristalline pour travail le de recyclage" ,"cristalline est capable de recycler" ,"cristallines est capable de recycler" + ,"recycler les deux sont garantis" + ,"avec mma chez soi pièce neuve ou recycler" ,"cristalline et capable de recycler" ,"cristallines et capable de recycler" + ,"de recycler de recycler" # bug mediatree + ,"eau cristalline" ,"trier vos bouteilles nous les recycler" ,"recycler des lunettes" ,"est capable de recycler recycler" @@ -223,7 +258,8 @@ ,"recycler et créer des contrats" ,"pour recycler votre épave" ,"la recycler la vieille" - ,"ou les notices de panneaux photovoltaïques" + ,"les notices de panneaux photovoltaïques" + ,"photovoltaïque pour professionnels" # veraline ,'leader du photovoltaïque' ,"grâce aux dons à la réparation au recyclage" ,"renforcement de nos filières de recyclage" @@ -245,14 +281,18 @@ ,"transition énergétique c' est aux lumières" ,"vendez votre voiture point fr" ,"votre voiture obtenait un prix" - ,"recharge ma brosse à dents" + ,"recharge ma brosse" + ,"tu sais l' autonomie la recharge rapide" ,"qui bossait dans l' eau" # maif ,"je croyais que dégât des eaux" # maif - ,"un goût généreux et le respect de la nature sans résidu de pesticides" # tramier + ,"sans résidu de pesticides tramier" # tramier + ,"ingrédients peut transformer sans pesticides" + ,"des pommes gala avec moins de pesticides" ,"écoresponsables offre valable" #aldi ,"écoresponsable offre valable" #aldi ,"vergers écoresponsables" #aldi ,"factures avec l' installation de panneaux solaires" + ,"son panneau solaire apporteront" ,"panneaux solaires et faire des économies carrefour" ,"garantie carrefour énergie" ,"économies sur votre énergie" @@ -277,6 +317,7 @@ ,"offrez à vos clients un devis précis pour améliorer la performance énergétique" ,"augmenter la performance énergétique et la" ,"performance énergétique de votre logement groupe verlaine" + ,"groupe verlaine au service du développement durable" ,"gaz très haute performance énergétique plus confortable" ,"pergola bioclimatique" ,"on imagine des murs végétalisé" @@ -289,7 +330,17 @@ ,"maprimerénov une offre comme ça même chez lapeyre" ,"aux aides maprimerénov et de faisabilité sous condition" ,"leroy merlin quand on refait son isolation" - ,"météo avec parc saint-paul" + ,"parc saint-paul" + ,"parc strasbourgeois" + ,"parc de la villette" + ,"parc machines" + ,"parc bordelais" + ,"parc astérix" + ,"parc automobile" + ,"parc de la tête d' or" + ,"parc lumineux" + ,"parc d' attractions" + ,"atmosphère cinéma" ,"économies d' énergie l' impact environnemental des vies" ,"économies d' énergie impact environnemental des vies" ,"compliqué d' économiser de l' énergie alors engie vous aide" @@ -297,7 +348,11 @@ ,"elle voudrait faire des économies de chauffage" ,"total énergie" ,"option énergies vertes" - ,"devenir franchisés dans les énergies renouvelables" + ,"franchisés dans les énergies renouvelable" # verlaine + ,"franchisé dans les énergies renouvelable" # verlaine + ,"spécialiser dans les énergies renouvelable" # verlaine + ,"énergies renouvelables renouvelables groupe verlaine" + ,"franchisé dans les énergies les renouvelables énergies renouvelables" ,"écologiques pour remplacer votre" ,"accrochages c' est aussi plus écologique" ,"transition écologique avec le groupe tf1" @@ -315,6 +370,8 @@ ,"chaque responsable" ,"pas responsable" ,"responsable de" + ,"responsables politiques" + ,"responsable politique" ,"comme responsable" ,"du responsable" ,"verger écoresponsable" @@ -325,6 +382,8 @@ ,"barrage et affrontement" ,"barrage à des" ,"barrage filtrant" + ,"présents sur ce barrage" + ,"barrages d' agriculteurs" ,"par terre" ,"pieds sur terre" ,"tremblement de terre" @@ -334,11 +393,15 @@ ,"électrique ou hydrogène il existe" ,"électrique hydrogène il existe" ,"de l' ombre et de la lumière" + ,"une ombre celle des violences" ,"vélo pour aller chercher le pain" + ,"services auto moto camion vélo" + ,"services autos motos camions vélos" ,"camion ou du vélo" ,"vélo liddell" ,"vélo électrique de décathlon" ,"vélo électrique nakamura" + ,"ça marche aussi pour les vélos" # carglass ,"sofinco tu peux acheter un vélo électrique" ,"votre trajet à vélo un vrai" ,"c' est quoi un vélo électrique" @@ -347,15 +410,93 @@ ,"issu de l' agriculture biologique en boutique" ,"agriculture biologique pour les produits de beauté" ,"vous aimez les voitures électriques" # renault + ,"vous aimiez les voitures électriques" + ,"les voitures de demain électrique" + ,"excellente voitures électriques ou hybrides" + ,"rendre nos voitures cent pour cent électrique accessib" ,"renault fabrique et entretient des voitures électriques" ,"and roll des voitures électriques" ,"conduisiez une voiture électrique l' application" ,"engie pourquoi l' ordinaire devrait être la norme" ,"de plus en plus d' énergie éolien comme celui-ci" # amazon ,"l' eau filtrée britta" + ,"brita l' eau filtrée" + ,"britta l' eau filtrée" ,"bonne maman beaucoup de noisette huile de palme" ,"sans pesticides pour des recettes" ,"chez céréales bio" ,"agir pour la préserver découvrez comment" #gouv.fr ,"oasis de verdure au milieu" -] + ,"se recharge charge jusqu'" + ,"scènes reconstituées dans un flacon réutilisables sa recharge" + ,"son empreinte carbone une formule d' origine naturelle" + ,"act for food pour offrir une alimentation plus saine" + ,"on optimise aussi la consommation d' eau on favorise la biodiversité" + ,"c' est le métier abeille assurances" + ,"face aux risques climatiques elles font" # pub assurance + ,"mon épargne travaille aussi pour les générations futures" + ,"cheveux là sans chaleur extrême" + ,"ses cheveux la sans chaleur extrêm" + ,"chaleur extrême chaque beauty" + ,"rénovation gd mat" + ,"pas trop le moment de décider l' eau froide" + ,"écologique la redoute" + ,"agence de la transition écologique avec le groupe tf1" + ,"c' est aussi plus écologique avec moins de consommation de carburant" + ,"moins de rejets de co deux sur une autoroute à péage en flux libre" + ,"la consigne a été bien suivie" + ,"les véhicules les plus polluants adrien" + ,"byd le leader mondial du véhicule électrique" + ,"chaque jour les changements climatiques envoyé vite vos vidéos" # rfi + ,"changements environnementaux et climatiques dans leurs localités participer aux formations en ligne et envoyez vos vidéos de trois minutes" # rfi + ,"redonner ou recycler" + ,"cite toujours utile pour faire le tri" + ,"crèmes abeille royale" + ,"agit pour la protection des abeilles" + ,"isolation photovoltaïques de pompe à chaleur pour une rénovation globale groupe verlaine" + ,"isolation photovoltaïque et pompes à chaleur pour une rénovation" + ,"verlaine photovoltaïque isolation pompes centrale à photovoltaïque" + ,"on peut installer une pompe à chaleur un ballon thermodynamique ou des panneaux solaires plus respectueux de l' environnement" + ,"des gaz renouvelables et de l' hydrogène vert et gaz nous transportons le gaz et connectons les énergies d' avenir" + ,"des gaz renouvelables et de l' hydrogène gèrent gaz nous transportons le gaz et connectons les énergies d' avenir" + ,"des gaz renouvelé renouvelables et de l' hydrogène" + ,"connectons les énergies d' avenir" + ,"senseo et produit de façon plus durable plus responsable" + ,"durable plus responsable senseo" + ,"surtout reconditionné pour être plus durable" + ,"conseils adaptés à votre alimentation" + ,"qui vous font économiser du carburant" + ,"recharge nissan" + ,"recharge ionity" + ,"je suis super agiles et je me recharge rapidement" + ,"qui se recharge pendant que vous vous" + ,"électrique pour être plus responsable mais surtout reconditionné" + ,"électriques pour être plus responsable mais surtout reconditionné" + ,"entreprises engagées responsable sur le territoire caisse" + ,"assurance vie responsable" + ,"avec habitat et jardin" + ,"spécialiste de la maison du jardin" + ,"mobilier de jardin" + ,"les moustiques profiter du jardin" + ,"jardin gardena" + ,"nous dépendons tous ce réseau c' est la biodiversité" #gouv + ,"les valeurs plus écoresponsable au sein de la caisse d" + ,"c' est pas du recyclage en faire du reconditionnement" + ,"meilleures astuces antigaspillage" + ,"mur végétalisé les tuiles se transforment en panneaux solaires" + ,"vous aide à améliorer la performance énergétique" + ,"quotidien prenez les transports en commun" + ,"ce moment au pouvoir acheter une voiture électrique peut être" + ,"pouvoir acheter une voiture électrique ça pouvait être une prise" + ,"connaître la valeur de votre voiture simplement et rapidement" + ,"la citroën c4 you c' est une voiture très familial" + ,"ça rentre vraiment la voiture électrique accessible oui mais fiat" + ,"ça rendait vraiment la voiture électrique accessible oui mais fiat" + ,"étiez nombreux à l' attendre la voiture électrique accessible à tous" + ,"ournisseur officiel d' électricité renouvelable de paris" + ,"garanties d' origine renouvelable promotion valable sur l' abonne" + ,"électricité de gaz cent pour cent renouvelable songez simplement" + ,"bien se chauffer au bois point ademe point fr" + ,"ceci est un message de l' ademe" + ,"ceci est un message à l' ademe" +] \ No newline at end of file From 7604fb5833b5e2ff3d1f33b110d071940f3c2d42 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Tue, 15 Oct 2024 14:59:48 +0000 Subject: [PATCH 59/73] [no ci]: 1.0.30 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index cd2a54b8..98c003ba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.29" +version = "1.0.30" description = "" authors = [ "Rambier Estelle ", From 6ac72c80791d76de782e38fca0724342454f4756 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Tue, 15 Oct 2024 17:28:35 +0200 Subject: [PATCH 60/73] Data quality: normalize channel title (#271) * wip * test: add real tests --- README.md | 1 + quotaclimat/data_processing/mediatree/api_import.py | 3 +++ test/sitemap/test_mediatree.py | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 10c22270..250e2344 100644 --- a/README.md +++ b/README.md @@ -399,3 +399,4 @@ There is a debt regarding the cleanest of the code right now. Let's just not mak ## Thanks * [Eleven-Strategy](https://www.welcometothejungle.com/fr/companies/eleven-strategy) +* [Kevin Tessier](https://kevintessier.fr) \ No newline at end of file diff --git a/quotaclimat/data_processing/mediatree/api_import.py b/quotaclimat/data_processing/mediatree/api_import.py index 2cdda10a..770e9cc9 100644 --- a/quotaclimat/data_processing/mediatree/api_import.py +++ b/quotaclimat/data_processing/mediatree/api_import.py @@ -255,6 +255,9 @@ def parse_reponse_subtitle(response_sub, channel = None, channel_program = "", c inplace=True ) + logging.debug("setting channel_title") + new_df['channel_title'] = new_df.apply(lambda x: get_channel_title_for_name(x['channel_name']), axis=1) + logging.debug(f"setting program {channel_program}") # weird error if not using this way: (ValueError) format number 1 of "20h30 le samedi" is not recognized new_df['channel_program'] = new_df.apply(lambda x: channel_program, axis=1) diff --git a/test/sitemap/test_mediatree.py b/test/sitemap/test_mediatree.py index c1a9e24c..53ec7bec 100644 --- a/test/sitemap/test_mediatree.py +++ b/test/sitemap/test_mediatree.py @@ -41,7 +41,7 @@ "text": "france" } ], - "channel":{"name":"m6","title":"M6","radio":false},"start":1704798000, + "channel":{"name":"m6","title":"fake m6","radio":false},"start":1704798000, "plaintext":"test1" }, { @@ -51,7 +51,7 @@ "text": "adaptation" } ], - "channel":{"name":"tf1","title":"TF1","radio":false},"start":1704798120, + "channel":{"name":"tf1","title":"fake TF1","radio":false},"start":1704798120, "plaintext":"test2"} ], "elapsed_time_ms":335} From eafeb1c33b83e76be7ffbf0894075fb416f0a6ce Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Tue, 15 Oct 2024 15:29:09 +0000 Subject: [PATCH 61/73] [no ci]: 1.0.31 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 98c003ba..6d3fb458 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.30" +version = "1.0.31" description = "" authors = [ "Rambier Estelle ", From 4e416ef2177266b43fe5bbd3111ea88e77b0e813 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Wed, 16 Oct 2024 16:23:39 +0200 Subject: [PATCH 62/73] chores: update stop words --- .../mediatree/keyword/stop_words.py | 132 ++++++++---------- 1 file changed, 55 insertions(+), 77 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index c8a3e8a8..556a9e92 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -16,8 +16,9 @@ ,"groupe verlaine pro installations photovoltaïque" ,"groupe verlaine pro installation photovoltaïque" ,"installateur groupe de verlaine panneaux installateur photovoltaïques de garantie panneaux à photovoltaïques" - ,"frigos on installe des panneaux photovoltaïques et des bornes de recharge" + ,"groupe verlaine isolation centrale photovoltaïque pompes à chaleur" + ,"groupe verlaine isolation centrale photovoltaïque et pompes à chaleur" ,"groupe verlaine isolation photovoltaïques pompes à chaleur" ,"groupe verlaine isolation photovoltaïque" ,"groupe verlaine isolation" @@ -25,6 +26,9 @@ ,"garanti photovoltaïques" ,"photovoltaïque verlaine" ,"installation de panneaux photovoltaïques vous avez dit" + ,"installation de panneaux photovoltaïques et bien merci" + ,"centrales photovoltaïques pour seulement" + ,"vation énergétique du toit solaire photovoltaïque" ,"installation photovoltaïque de trois" ,"photovoltaïque de groupe verlaine" ,"installation photovoltaïque peut vous faire économiser jusqu'" @@ -58,8 +62,12 @@ ,"panneaux solaires pour produire votre énergie" ,"installation des panneaux solaires c' est moi" ,"à la crème solaire c' est pour les panneaux solaires" + ,"panneaux de photovoltaïques panneaux avec photovoltaïques contrat avec demain" ,"installateur panneaux de photovoltaïque" + ,"installateur de de panneaux photovoltaïque" ,"installateurs de panneaux photovoltaïque" + ,"panneaux photovoltaïque photovoltaïques garanti" + ,"photovoltaïques garantie à" ,"installateur de panneaux photovoltaïque" ,"panneaux photovoltaïques et même sur les vêtements" ,"installateur de panneaux solaires" @@ -68,6 +76,19 @@ ,"votre expert en panneaux solaires" # mon kits solaires point fr ,"le top des panneaux solaires" ,"panneaux solaires garantie à vie" + ,"euros équipée de panneaux solaires" + ,"euros équipée de panneaux solaire" + ,"euros équipé de panneaux solaires" + ,"je finis d' installer les panneaux solaires" + ,"panneaux solaires avec carrefour énergie" + ,"d' achat comme avec les panneaux solaires bifaces sial" + ,"relations menuiserie panneaux solaires ou tout autre projet de rénovation" + ,"isolation menuiserie panneaux solaires" + ,"je finis d' installer mes panneaux solaire" + ,"panneaux solaires by facial" + ,"une suspension à énergie solaire pour seulement quatre-vingt" + ,"végétation omniprésente panneaux solaires point d' eau et solutions innovante" + ,"monte les panneaux solaires que j' ai commandé chez oscaro" ,"avec des panneaux solaires c' est jusqu' à mille cinq" ,"de panneaux solaires cinq mille huit" ,"en panneaux solaires c' est une banque décidé" @@ -97,7 +118,7 @@ ,"panneaux solaires découvrez les offres" ,"on monte les panneaux solaires que j'ai" ,"énergie solaire avec avicenne" - ,"panneaux photovoltaïques garanti à vie" + ,"panneaux photovoltaïques garanti" ,"on installe des panneaux photovoltaïques borne de recharge" ,"on installe des panneaux photovoltaïques des bornes de recharge" ,"mille bornes de recharge entre particuliers" @@ -120,6 +141,26 @@ ,"grand acheteur d' énergie renouvelable" ,"énergie renouvelable au monde" ,"par des garanties d' origine renouvelable" + ,"verlaine isolation centrales photovoltaïques pompes à chaleur" + ,"verlaine isolation centrales photovoltaïques et pompes à chaleur" + ,"installation de panneaux photovoltaïques plus d' infos sur tugo" + ,"groupe verlaine panneaux photovoltaïques et bornes de recharge" + ,"verlaine installation de centrale photovoltaïque" + ,"verlaine centrales photovoltaïque" + ,"verlaine l' expert du photovoltaïque" + ,"verlaine propres installations photovoltaïque" + ,"doré un poulet votre installation photovoltaïque" + ,"programme avec solar box solutions photovoltaïques" + ,"verlaine installation photovoltaïque" + ,"verlaine installations photovoltaïque" + ,"expert en installation de panneaux photovoltaïque" + ,"green installe votre centrales photovoltaïque" + ,"green solution photovoltaïque" + ,"lantique alimenté par une centrale photovoltaïque" + ,"green solutions photovoltaïques" + ,"energy le kit de huit panneaux photovoltaïque" + ,"énergie le kit de huit panneaux photovoltaïque" + ,"installation photovoltaïque garanti" ,"énergies renouvelables groupe verlaine" ,"spécialisée dans les énergies renouvelables" ,"spécialisée dans les énergies renouvelables" @@ -154,6 +195,7 @@ ,"pour les plus branchées la borne de recharge" ,"frigos on installe des panneaux photovoltaïques et des bornes de recharge" ,"frigo on installe des panneaux photovoltaïques et des bornes de recharge" + ,"frigos on installe des panneaux on photovoltaïques" ,"leasing électrique à" ,"dispositif mon leasing électrique" ,"gouvernemental mon leasing électrique" @@ -227,14 +269,16 @@ ,"jardin miami fabriqué avec quatre-vingts pour cent de matériaux recyclés" ,"nous-mêmes du plastique recyclé" ,"nous-même du plastique recyclé" + ,"nous-mêmes le plastique recyclé" + ,"nos même du plastique recyclé" ,"trois usines exclusivement dédiée aux recyclage" ,"trois usines exclusivement dédié au recyclage" ,"trois usines exclusivement dédiés au recyclage" ,"trois usines exclusivement dédiées au recyclage" - ,"recyclage dès cette année cristallines est capable de recycler" - ,"tout le travail de cristaline pour le recyclage" ,"vivement dédiées au recyclage" ,"un gouvernement de recyclage" + ,"en france le recyclage brise" #carglass + ,"recyclage du pare-brise" #carglass ,"trier devient plus simple" ,"grâce à vous qui trier vos bouteilles" ,"nous les recycle pour en faire de nouvelles" @@ -346,6 +390,12 @@ ,"compliqué d' économiser de l' énergie alors engie vous aide" ,"pour faire des économies d' énergie juliette" ,"elle voudrait faire des économies de chauffage" + ,"bonus pompe à chaleur d' edf" + ,"budget chauffage votre pompe à chaleur" + ,"budget chauffage la pompe à chaleur" + ,"tu vois loulou on a bien fait de refaire l' isolation" # france tirer les neuf pts gauff point fr + ,"pour installer un système plus écologique comme une pompe à chaleur" # france tirer les neuf pts gauff point fr + ,"on regarde ensemble comment bénéficier de maprimerénov" ,"total énergie" ,"option énergies vertes" ,"franchisés dans les énergies renouvelable" # verlaine @@ -427,76 +477,4 @@ ,"chez céréales bio" ,"agir pour la préserver découvrez comment" #gouv.fr ,"oasis de verdure au milieu" - ,"se recharge charge jusqu'" - ,"scènes reconstituées dans un flacon réutilisables sa recharge" - ,"son empreinte carbone une formule d' origine naturelle" - ,"act for food pour offrir une alimentation plus saine" - ,"on optimise aussi la consommation d' eau on favorise la biodiversité" - ,"c' est le métier abeille assurances" - ,"face aux risques climatiques elles font" # pub assurance - ,"mon épargne travaille aussi pour les générations futures" - ,"cheveux là sans chaleur extrême" - ,"ses cheveux la sans chaleur extrêm" - ,"chaleur extrême chaque beauty" - ,"rénovation gd mat" - ,"pas trop le moment de décider l' eau froide" - ,"écologique la redoute" - ,"agence de la transition écologique avec le groupe tf1" - ,"c' est aussi plus écologique avec moins de consommation de carburant" - ,"moins de rejets de co deux sur une autoroute à péage en flux libre" - ,"la consigne a été bien suivie" - ,"les véhicules les plus polluants adrien" - ,"byd le leader mondial du véhicule électrique" - ,"chaque jour les changements climatiques envoyé vite vos vidéos" # rfi - ,"changements environnementaux et climatiques dans leurs localités participer aux formations en ligne et envoyez vos vidéos de trois minutes" # rfi - ,"redonner ou recycler" - ,"cite toujours utile pour faire le tri" - ,"crèmes abeille royale" - ,"agit pour la protection des abeilles" - ,"isolation photovoltaïques de pompe à chaleur pour une rénovation globale groupe verlaine" - ,"isolation photovoltaïque et pompes à chaleur pour une rénovation" - ,"verlaine photovoltaïque isolation pompes centrale à photovoltaïque" - ,"on peut installer une pompe à chaleur un ballon thermodynamique ou des panneaux solaires plus respectueux de l' environnement" - ,"des gaz renouvelables et de l' hydrogène vert et gaz nous transportons le gaz et connectons les énergies d' avenir" - ,"des gaz renouvelables et de l' hydrogène gèrent gaz nous transportons le gaz et connectons les énergies d' avenir" - ,"des gaz renouvelé renouvelables et de l' hydrogène" - ,"connectons les énergies d' avenir" - ,"senseo et produit de façon plus durable plus responsable" - ,"durable plus responsable senseo" - ,"surtout reconditionné pour être plus durable" - ,"conseils adaptés à votre alimentation" - ,"qui vous font économiser du carburant" - ,"recharge nissan" - ,"recharge ionity" - ,"je suis super agiles et je me recharge rapidement" - ,"qui se recharge pendant que vous vous" - ,"électrique pour être plus responsable mais surtout reconditionné" - ,"électriques pour être plus responsable mais surtout reconditionné" - ,"entreprises engagées responsable sur le territoire caisse" - ,"assurance vie responsable" - ,"avec habitat et jardin" - ,"spécialiste de la maison du jardin" - ,"mobilier de jardin" - ,"les moustiques profiter du jardin" - ,"jardin gardena" - ,"nous dépendons tous ce réseau c' est la biodiversité" #gouv - ,"les valeurs plus écoresponsable au sein de la caisse d" - ,"c' est pas du recyclage en faire du reconditionnement" - ,"meilleures astuces antigaspillage" - ,"mur végétalisé les tuiles se transforment en panneaux solaires" - ,"vous aide à améliorer la performance énergétique" - ,"quotidien prenez les transports en commun" - ,"ce moment au pouvoir acheter une voiture électrique peut être" - ,"pouvoir acheter une voiture électrique ça pouvait être une prise" - ,"connaître la valeur de votre voiture simplement et rapidement" - ,"la citroën c4 you c' est une voiture très familial" - ,"ça rentre vraiment la voiture électrique accessible oui mais fiat" - ,"ça rendait vraiment la voiture électrique accessible oui mais fiat" - ,"étiez nombreux à l' attendre la voiture électrique accessible à tous" - ,"ournisseur officiel d' électricité renouvelable de paris" - ,"garanties d' origine renouvelable promotion valable sur l' abonne" - ,"électricité de gaz cent pour cent renouvelable songez simplement" - ,"bien se chauffer au bois point ademe point fr" - ,"ceci est un message de l' ademe" - ,"ceci est un message à l' ademe" -] \ No newline at end of file +] From 69e65a117e4c75a3e1e34670ad7da955e25e0fcc Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Wed, 16 Oct 2024 14:24:18 +0000 Subject: [PATCH 63/73] [no ci]: 1.0.32 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6d3fb458..44aa6fc3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.31" +version = "1.0.32" description = "" authors = [ "Rambier Estelle ", From 483e45931430a6285d1b09a5586a0e25bdbe90e7 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Wed, 16 Oct 2024 17:14:28 +0200 Subject: [PATCH 64/73] chores: update stop words --- .../mediatree/keyword/stop_words.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index 556a9e92..a4e9a1a2 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -477,4 +477,22 @@ ,"chez céréales bio" ,"agir pour la préserver découvrez comment" #gouv.fr ,"oasis de verdure au milieu" + ,"feux de forêt elle sait soraya" + ,"feux de forêt luc il fait un barbecue en forêt" + ,"feux de forêt saint-luc il fait un barbecue en forêt" + ,"produisait enfin votre propre énergie" + ,"mettant en commun toutes nos énergies que nous avançons" + ,"numériques au service des énergies vertes thématique de cette" + ,"consommer votre propre énergie avec" #verlaine + ,"consommez votre propre énergie avec" #verlaine + ,"robinet pour économiser l' énergie" + ,"souscrire un contrat d' énergie" + ,"programme avec tuquoi énergie expert" + ,"tucoy énergie" + ,"option énergies vertes profitez d' une" + ,"grâce à leur énergie leur engagement leur passion" + ,"logement social énergies renouvelables chaque jour la banque" + ,"économies d' énergie totalenergies" + ,"d' énergie avec total énergies" + ," en main vos économies d' énergie" ] From 4ce016e86d085fbab90c490ce678208dc003b777 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Wed, 16 Oct 2024 15:15:14 +0000 Subject: [PATCH 65/73] [no ci]: 1.0.33 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 44aa6fc3..d27973f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.32" +version = "1.0.33" description = "" authors = [ "Rambier Estelle ", From 1d87854f6821065aa9a7f550504f437d4bb7f5f2 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 17 Oct 2024 09:38:38 +0200 Subject: [PATCH 66/73] chores: update stop words --- .../mediatree/keyword/stop_words.py | 69 ++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index a4e9a1a2..cf42ce9a 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -3,6 +3,11 @@ "bonus écologique" ,"verlaine isolation thermique" ,"haute isolation thermique fabriqué en france" + ,"robert laine isolation thermique" + ,"robert helen isolation thermique" + ,"robert allen isolation thermique" + ,"concept spécialiste de l' isolation thermique" + ,"thermiques groupe verlaine" ,"ou covoiturage tous les moyens sont bon" ,"blablacar et recevez cent euros de prime covoiturage" ,"conditions sébastien point fr covoiturage" @@ -16,7 +21,11 @@ ,"groupe verlaine pro installations photovoltaïque" ,"groupe verlaine pro installation photovoltaïque" ,"installateur groupe de verlaine panneaux installateur photovoltaïques de garantie panneaux à photovoltaïques" - + ,"boosté vos économies travaux d' isolation bornes de recharge" + ,"booster vos économies travaux d' isolation bornes de recharge" + ,"il y a des affaires à faire sur l' isolation le chauffage les panneaux solaires" + ,"il y a plein d' offre sur l' isolation le chauffage les panneaux solaires" + ,"fenêtre double vitrage haute isolation thermique fabriqués dans notre usi" ,"groupe verlaine isolation centrale photovoltaïque pompes à chaleur" ,"groupe verlaine isolation centrale photovoltaïque et pompes à chaleur" ,"groupe verlaine isolation photovoltaïques pompes à chaleur" @@ -50,6 +59,9 @@ ,"verlaine isolation centrales photovoltaïques et pompes" ,"verlaine isolation photovoltaïques pompes à chaleur" ,"verlaine isolation photovoltaïque pompe à chaleur" + ,"votre projet de centrale photovoltaïque" + ,"verlaine installation de centrales photovoltaïques" + ,"green installe votre centrale photovoltaïque" ,"on refait son isolation change sans chauffage" ,"installe des panneaux photovoltaïques et des bornes de recharge" ,"photovoltaïques et des bornes de recharge pour que ça profite" @@ -63,7 +75,9 @@ ,"installation des panneaux solaires c' est moi" ,"à la crème solaire c' est pour les panneaux solaires" ,"panneaux de photovoltaïques panneaux avec photovoltaïques contrat avec demain" + ,"panneaux avec photovoltaïques contrat" ,"installateur panneaux de photovoltaïque" + ,"photovoltaïque chez les particuliers à passer au solaire" #edf ,"installateur de de panneaux photovoltaïque" ,"installateurs de panneaux photovoltaïque" ,"panneaux photovoltaïque photovoltaïques garanti" @@ -76,19 +90,29 @@ ,"votre expert en panneaux solaires" # mon kits solaires point fr ,"le top des panneaux solaires" ,"panneaux solaires garantie à vie" + ,"euros équipé de panneaux solaires avec carrefour énergie" ,"euros équipée de panneaux solaires" ,"euros équipée de panneaux solaire" ,"euros équipé de panneaux solaires" + ,"euros équipés de panneaux solaires" + ,"euros équipées de panneaux solaires" ,"je finis d' installer les panneaux solaires" ,"panneaux solaires avec carrefour énergie" ,"d' achat comme avec les panneaux solaires bifaces sial" ,"relations menuiserie panneaux solaires ou tout autre projet de rénovation" + ,"isolation menuiseries panneaux solaires ou tout autre projet de rénovation" ,"isolation menuiserie panneaux solaires" ,"je finis d' installer mes panneaux solaire" ,"panneaux solaires by facial" + ,"pompe à chaleur ou le panneau solaire groupe verlaine" + ,"vous-même vos panneaux solaires" ,"une suspension à énergie solaire pour seulement quatre-vingt" ,"végétation omniprésente panneaux solaires point d' eau et solutions innovante" ,"monte les panneaux solaires que j' ai commandé chez oscaro" + ,"fameux panneaux solaires cette batterie" + ,"chauffage les panneaux solaires pour faire des économies" + ,"chauffages les panneaux solaires pour faire des économies" + ,"les panneaux solaires pour faire des économies d' énergie" ,"avec des panneaux solaires c' est jusqu' à mille cinq" ,"de panneaux solaires cinq mille huit" ,"en panneaux solaires c' est une banque décidé" @@ -122,7 +146,13 @@ ,"on installe des panneaux photovoltaïques borne de recharge" ,"on installe des panneaux photovoltaïques des bornes de recharge" ,"mille bornes de recharge entre particuliers" + ,"verlaine installateur de panneaux photovoltaïques" + ,"panneaux contrat photovoltaïques" ,"leader photovoltaïque du photovoltaïque" + ,"leader photovoltaïque du chez photovoltaïque" + ,"panneaux photovoltaïques avec contrat" + ,"énergie avec le leader du photovoltaïque photovoltaïque" + ,"photovoltaïque leader chez du les photovoltaïque" ,"leader photovoltaïque" ,"leader chez du les photovoltaïque" ,"chez les photovoltaïque particuliers" @@ -161,6 +191,10 @@ ,"energy le kit de huit panneaux photovoltaïque" ,"énergie le kit de huit panneaux photovoltaïque" ,"installation photovoltaïque garanti" + ,"photovoltaïques photovoltaïques garanti" + ,"photovoltaïques à garanti" + ,"rlaine installateur de panneaux de photovoltaïques" + ,"installateur panneaux de photovoltaïques panneaux photovoltaïques" ,"énergies renouvelables groupe verlaine" ,"spécialisée dans les énergies renouvelables" ,"spécialisée dans les énergies renouvelables" @@ -279,12 +313,21 @@ ,"un gouvernement de recyclage" ,"en france le recyclage brise" #carglass ,"recyclage du pare-brise" #carglass + ,"pare-brise pour les recycler" + ,"pare-brise pour les recycler" ,"trier devient plus simple" ,"grâce à vous qui trier vos bouteilles" ,"nous les recycle pour en faire de nouvelles" ,"cristalline pour travail le de recyclage" ,"cristalline est capable de recycler" + ,"cristaline est capable de recycler" + ,"cristallin est capable de recycler" + ,"cristalline et capables de recycler" ,"cristallines est capable de recycler" + ,"batterie chez norauto pour la recycler" + ,"cristaline pour le recyclage" + ,"les réparer ou les recycler boulanger" + ,"point fr le geste utile pour recycler" ,"recycler les deux sont garantis" ,"avec mma chez soi pièce neuve ou recycler" ,"cristalline et capable de recycler" @@ -337,6 +380,7 @@ ,"vergers écoresponsables" #aldi ,"factures avec l' installation de panneaux solaires" ,"son panneau solaire apporteront" + ,"panneaux solaires pour faire des économies d' énergie" ,"panneaux solaires et faire des économies carrefour" ,"garantie carrefour énergie" ,"économies sur votre énergie" @@ -398,6 +442,8 @@ ,"on regarde ensemble comment bénéficier de maprimerénov" ,"total énergie" ,"option énergies vertes" + ,"important que de passer à l' énergie verte tellement important" + ,"important est de passer à l' énergie verte tellement important" ,"franchisés dans les énergies renouvelable" # verlaine ,"franchisé dans les énergies renouvelable" # verlaine ,"spécialiser dans les énergies renouvelable" # verlaine @@ -442,15 +488,25 @@ ,"rituel de la forêt" ,"électrique ou hydrogène il existe" ,"électrique hydrogène il existe" + ,"gaz renouvelables et de l' hydrogène gèrent gaz" + ,"gaz renouvelables et de l' hydrogène vert et gaz" + ,"nous transportons le gaz" ,"de l' ombre et de la lumière" ,"une ombre celle des violences" ,"vélo pour aller chercher le pain" ,"services auto moto camion vélo" + ,"qu' est-ce qui vous fait aimer le vélo électrique" ,"services autos motos camions vélos" ,"camion ou du vélo" ,"vélo liddell" + ,"kit solaire point solaire fr" + ,"installer des panneaux solaires par exemple d' accord" + ,"expert panne en panneaux solaires" + ,"vélo décathlon" ,"vélo électrique de décathlon" + ,"vélo électriques de elops" ,"vélo électrique nakamura" + ,"on rachète votre ancien vélo" ,"ça marche aussi pour les vélos" # carglass ,"sofinco tu peux acheter un vélo électrique" ,"votre trajet à vélo un vrai" @@ -495,4 +551,15 @@ ,"économies d' énergie totalenergies" ,"d' énergie avec total énergies" ," en main vos économies d' énergie" + ,"ademe point fr ceci est un" + ,"ceci est un message de l' ademe" + ,"contribution recyclage offre valable" + ,"contributions recyclage offre valable" + ,"les joies du recyclage moi j' ai peur" + ,"reconditionnés pour une alternative plus responsable chez électro" + ,"l' ombre en préservant les arbres" + ,"nos régions aujourd' hui les circuits courts" + ,"stocker le carbone ou faire de l' ombre en préservant les arbres" + ,"opter pour de l' énergie renouvelable cette option" + ,"se prélassait à l' ombre" ] From 85c3ddbc069ffb5f39851050450968cbb9d3cbba Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 17 Oct 2024 07:39:17 +0000 Subject: [PATCH 67/73] [no ci]: 1.0.34 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d27973f3..eef124ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.33" +version = "1.0.34" description = "" authors = [ "Rambier Estelle ", From 033357aa3aa5501c5c51fa98a8175930c13d0745 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 17 Oct 2024 19:39:16 +0200 Subject: [PATCH 68/73] wip (#272) --- .../mediatree/detect_keywords.py | 13 ++ .../mediatree/keyword/keyword.py | 208 +++++++++++++++--- .../mediatree/keyword/stop_words.py | 54 ++++- 3 files changed, 231 insertions(+), 44 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/detect_keywords.py b/quotaclimat/data_processing/mediatree/detect_keywords.py index eff1a301..9f2be80a 100644 --- a/quotaclimat/data_processing/mediatree/detect_keywords.py +++ b/quotaclimat/data_processing/mediatree/detect_keywords.py @@ -107,12 +107,25 @@ def filter_keyword_with_same_timestamp(keywords_with_timestamp: List[dict])-> Li return keywords_with_timestamp +def replace_word_with_context(text: str) -> str: + word = "groupe verlaine" + replacement = "" + pattern = f".{{0,50}}{re.escape(word)}.{{0,50}}" + + # Replace the matched word along with its surrounding context + result = re.sub(pattern, replacement, text) + + return result def remove_stopwords(plaintext: str) -> str: logging.debug(f"Removing stopwords {plaintext}") stopwords = STOP_WORDS for word in stopwords: plaintext = plaintext.replace(word, '') + if "groupe verlaine" in plaintext: + logging.debug(f"special groupe verlaine case") + plaintext = replace_word_with_context(plaintext) + return plaintext @sentry_sdk.trace diff --git a/quotaclimat/data_processing/mediatree/keyword/keyword.py b/quotaclimat/data_processing/mediatree/keyword/keyword.py index d60e2a16..50e0292d 100644 --- a/quotaclimat/data_processing/mediatree/keyword/keyword.py +++ b/quotaclimat/data_processing/mediatree/keyword/keyword.py @@ -40,6 +40,10 @@ "keyword": "aquaculture durable", "category": "Agriculture" }, + { + "keyword": "arbre planté", + "category": "Ecosystème" + }, { "keyword": "bon pour la planète", "category": "General" @@ -112,6 +116,30 @@ "keyword": "nous adapter à un futur incertain", "category": "General" }, + { + "keyword": "plantant des arbres", + "category": "Ecosystème" + }, + { + "keyword": "plantation d'arbres", + "category": "Ecosystème" + }, + { + "keyword": "plante des arbres", + "category": "Ecosystème" + }, + { + "keyword": "plantent des arbres", + "category": "Ecosystème" + }, + { + "keyword": "planter des arbres", + "category": "Ecosystème" + }, + { + "keyword": "planté des arbres", + "category": "Ecosystème" + }, { "keyword": "prise de conscience environnementale", "category": "General" @@ -258,10 +286,6 @@ } ], "adaptation_climatique_solutions_indirectes": [ - { - "keyword": "arbre", - "category": "" - }, { "keyword": "barrage", "category": "Eau" @@ -308,7 +332,7 @@ }, { "keyword": "gestion de l'eau", - "category": "" + "category": "Eau" }, { "keyword": "gestion des milieux aquatiques", @@ -346,10 +370,6 @@ "keyword": "parc", "category": "Ecosystème" }, - { - "keyword": "planter des arbres", - "category": "Ecosystème" - }, { "keyword": "pratiques vertueuses", "category": "Agriculture" @@ -440,6 +460,10 @@ "keyword": "aquaculture durable", "category": "Agriculture" }, + { + "keyword": "arbre planté", + "category": "Ecosystème" + }, { "keyword": "arrêter de prendre l'avion", "category": "Transport" @@ -856,10 +880,30 @@ "keyword": "photovoltaïque", "category": "Energie" }, + { + "keyword": "plantant des arbres", + "category": "Ecosystème" + }, + { + "keyword": "plantation d'arbres", + "category": "Ecosystème" + }, + { + "keyword": "plante des arbres", + "category": "Ecosystème" + }, + { + "keyword": "plantent des arbres", + "category": "Ecosystème" + }, { "keyword": "planter des arbres", "category": "Ecosystème" }, + { + "keyword": "planté des arbres", + "category": "Ecosystème" + }, { "keyword": "plastique recyclé", "category": "Economie des ressources" @@ -1262,10 +1306,6 @@ "keyword": "approche systémique", "category": "General" }, - { - "keyword": "arbre", - "category": "" - }, { "keyword": "atténuation", "category": "General" @@ -1506,10 +1546,6 @@ "keyword": "permaculture", "category": "Agriculture" }, - { - "keyword": "planter des arbres", - "category": "Ecosystème" - }, { "keyword": "plus durable", "category": "General" @@ -1812,6 +1848,10 @@ "keyword": "destruction de la biodiversité", "category": "Ecosystème" }, + { + "keyword": "destruction de la planète", + "category": "Ecosystème" + }, { "keyword": "destruction des habitats naturels", "category": "Ecosystème" @@ -2288,10 +2328,6 @@ "keyword": "d'ici 2050", "category": "" }, - { - "keyword": "destruction de la planète", - "category": "" - }, { "keyword": "disparition des espèces", "category": "" @@ -2450,6 +2486,10 @@ "keyword": "alimentation", "category": "Agriculture" }, + { + "keyword": "arbre", + "category": "" + }, { "keyword": "ars", "category": "" @@ -2944,6 +2984,10 @@ "keyword": "amélioration des pratiques d’élevages", "category": "Agriculture" }, + { + "keyword": "arbre planté", + "category": "Ecosystème" + }, { "keyword": "bien-être des animaux", "category": "Agriculture" @@ -3040,10 +3084,30 @@ "keyword": "nettoyage des océans", "category": "Ecosystème" }, + { + "keyword": "plantant des arbres", + "category": "Ecosystème" + }, + { + "keyword": "plantation d'arbres", + "category": "Ecosystème" + }, + { + "keyword": "plante des arbres", + "category": "Ecosystème" + }, + { + "keyword": "plantent des arbres", + "category": "Ecosystème" + }, { "keyword": "planter des arbres", "category": "Ecosystème" }, + { + "keyword": "planté des arbres", + "category": "Ecosystème" + }, { "keyword": "plastique recyclé", "category": "Economie des ressources" @@ -3326,7 +3390,7 @@ }, { "keyword": "zone naturelle protégée", - "category": "" + "category": "Ecosystème" }, { "keyword": "éco geste", @@ -3592,6 +3656,10 @@ "keyword": "combustibles fossiles", "category": "Energie" }, + { + "keyword": "destruction de la planète", + "category": "Ecosystème" + }, { "keyword": "dyoxide de carbone", "category": "General" @@ -4104,6 +4172,10 @@ "keyword": "déficit de pluie", "category": "" }, + { + "keyword": "déstabilisation atmosphérique", + "category": "" + }, { "keyword": "effondrement de la falaise", "category": "" @@ -4336,10 +4408,18 @@ "keyword": "sécheresse", "category": "" }, + { + "keyword": "température extrême", + "category": "" + }, { "keyword": "température record", "category": "" }, + { + "keyword": "températures plus hautes", + "category": "" + }, { "keyword": "trop grande chaleur", "category": "" @@ -4434,6 +4514,10 @@ "keyword": "cancer", "category": "" }, + { + "keyword": "cerné par les eaux", + "category": "" + }, { "keyword": "cinquante degrés", "category": "" @@ -4458,6 +4542,26 @@ "keyword": "dévastation", "category": "General" }, + { + "keyword": "eau boueuse", + "category": "" + }, + { + "keyword": "eaux boueuses", + "category": "" + }, + { + "keyword": "eaux déchainées", + "category": "" + }, + { + "keyword": "emporté par les eaux", + "category": "" + }, + { + "keyword": "englouti par les eaux", + "category": "" + }, { "keyword": "feux", "category": "" @@ -4498,10 +4602,22 @@ "keyword": "inondation", "category": "" }, + { + "keyword": "l'eau est monté", + "category": "" + }, + { + "keyword": "l'eau qui est monté", + "category": "" + }, { "keyword": "la roya", "category": "" }, + { + "keyword": "les eaux sont montées", + "category": "" + }, { "keyword": "les soulèvements de la terre", "category": "" @@ -4518,6 +4634,10 @@ "keyword": "maladies transmises par des insectes", "category": "" }, + { + "keyword": "millimètre d'eau", + "category": "" + }, { "keyword": "mois le plus chaud", "category": "" @@ -4530,6 +4650,10 @@ "keyword": "pathologie", "category": "" }, + { + "keyword": "piégé par les eaux", + "category": "" + }, { "keyword": "plante exotique envahissante", "category": "Ecosystème" @@ -4594,6 +4718,26 @@ "keyword": "restriction", "category": "General" }, + { + "keyword": "ruissellement de l'eau", + "category": "" + }, + { + "keyword": "ruissellement des eaux", + "category": "" + }, + { + "keyword": "sous l'eau", + "category": "" + }, + { + "keyword": "sous les eaux", + "category": "" + }, + { + "keyword": "submergé par les eaux", + "category": "" + }, { "keyword": "submersion", "category": "" @@ -4614,6 +4758,10 @@ "keyword": "tempête xynthia", "category": "" }, + { + "keyword": "trop d'eau", + "category": "" + }, { "keyword": "très chaud", "category": "" @@ -4768,10 +4916,6 @@ "keyword": "d'ici 2050", "category": "" }, - { - "keyword": "destruction de la planète", - "category": "" - }, { "keyword": "défi climatique", "category": "" @@ -4900,14 +5044,6 @@ "keyword": "soutenabilité environnementale", "category": "" }, - { - "keyword": "température extrême", - "category": "" - }, - { - "keyword": "températures plus hautes", - "category": "" - }, { "keyword": "transition agricole", "category": "General" @@ -4970,6 +5106,10 @@ "keyword": "alimentation", "category": "Agriculture" }, + { + "keyword": "arbre", + "category": "" + }, { "keyword": "ars", "category": "" diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index cf42ce9a..a365ba2c 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -1,7 +1,6 @@ # Based on advertising STOP_WORDS = [ "bonus écologique" - ,"verlaine isolation thermique" ,"haute isolation thermique fabriqué en france" ,"robert laine isolation thermique" ,"robert helen isolation thermique" @@ -14,23 +13,32 @@ ,"sur dacia point fr covoiturage" ,"dacia point fr un covoiturage" ,"engie peut vous aider par exemple avec des panneaux solaires" - ,"verlaine photovoltaïques" ,"verlaine le climat" ,"photovoltaïque groupe" ,"contrat d' entretien pour pompes à chaleur et photovoltaïque" # verlaine ,"groupe verlaine pro installations photovoltaïque" ,"groupe verlaine pro installation photovoltaïque" ,"installateur groupe de verlaine panneaux installateur photovoltaïques de garantie panneaux à photovoltaïques" + ,"panneaux à photovoltaïques garantis" ,"boosté vos économies travaux d' isolation bornes de recharge" ,"booster vos économies travaux d' isolation bornes de recharge" ,"il y a des affaires à faire sur l' isolation le chauffage les panneaux solaires" ,"il y a plein d' offre sur l' isolation le chauffage les panneaux solaires" ,"fenêtre double vitrage haute isolation thermique fabriqués dans notre usi" - ,"groupe verlaine isolation centrale photovoltaïque pompes à chaleur" - ,"groupe verlaine isolation centrale photovoltaïque et pompes à chaleur" - ,"groupe verlaine isolation photovoltaïques pompes à chaleur" - ,"groupe verlaine isolation photovoltaïque" - ,"groupe verlaine isolation" + ,"verlaine isolation centrale photovoltaïque pompes à chaleur" + ,"verlaine isolation centrale photovoltaïque et pompes à chaleur" + ,"verlaine isolation centrale photovoltaïque" + ,"verlaine isolation photovoltaïques pompes à chaleur" + ,"verlaine isolation photovoltaïque" + ,"verlaine isolation thermique" + ,"verlaine isolation" + ,"verlaine centrale photovoltaïque" + ,"verlaine photovoltaïques isolation photovoltaïque" + ,"centrale photovoltaïque de groupe" + ,"photovoltaïque chaleur groupe verlaine" + ,"verlaine photovoltaïque" + ,"photovoltaïque pompes à chaleur pour une rénovation globale groupe verlaine" + ,"photovoltaïques pompes à chaleur pour une rénovation globale" ,"photovoltaïques vie" ,"garanti photovoltaïques" ,"photovoltaïque verlaine" @@ -44,16 +52,20 @@ ,"installation photovoltaïque et garantis vingt-cinq ans" ,"centrale photovoltaïque et pompes à chaleur groupe verlaine" ,"centrale photovoltaïque pompes à chaleur groupe verlaine" + ,"pompes à chaleur groupe verlaine" ,"climat de confiance" ,"panneau photovoltaïque et bornes de recharge thompson groupe verlaine" ,"photovoltaïque pour réduire vos factures d' électricité groupe verlaine" ,"centrale photovoltaïque mobile facile" ,"photovoltaïque groupe verlaine" ,"photovoltaïque de groupe verlaine" + ,"verlaine centrale photovoltaïque" ,"centrale photovoltaïque a posé en toute simplicité" ,"centrale photovoltaïque à poser en toute simplicité" - ,"centrale photovoltaïque de quatre cents watts" + ,"photovoltaïque de quatre" ,"centrale photovoltaïque produisait et consommer votre propre énergie" + ,"verlaine isolation photovoltaïques pompes photovoltaïque" + ,"verlaine isolation photovoltaïques une pompe" ,"verlaine isolation centrales photovoltaïques" ,"verlaine isolation photovoltaïque et pompe à chaleur" ,"verlaine isolation centrales photovoltaïques et pompes" @@ -69,11 +81,13 @@ ,"bornes de recharge et d' un" ,"euros par mois bornes de recharge" ,"leader du photovoltaïque chez les particulier" + ,"leader foot du photovoltaïque" ,"leader du photovoltaïque chez du photovoltaïque" ,"leader du photovoltaïque chez photovoltaïque " ,"panneaux solaires pour produire votre énergie" ,"installation des panneaux solaires c' est moi" ,"à la crème solaire c' est pour les panneaux solaires" + ,"photovoltaïque centrale de photovoltaïque" ,"panneaux de photovoltaïques panneaux avec photovoltaïques contrat avec demain" ,"panneaux avec photovoltaïques contrat" ,"installateur panneaux de photovoltaïque" @@ -143,10 +157,14 @@ ,"on monte les panneaux solaires que j'ai" ,"énergie solaire avec avicenne" ,"panneaux photovoltaïques garanti" + ,"photovoltaïques avec garanti" ,"on installe des panneaux photovoltaïques borne de recharge" ,"on installe des panneaux photovoltaïques des bornes de recharge" ,"mille bornes de recharge entre particuliers" - ,"verlaine installateur de panneaux photovoltaïques" + ,"verlaine installateur de panneaux photovoltaïques photovoltaïque" + ,"verlaine installateur de panneaux photovoltaïque" + ,"verlaine installations photovoltaïques photovoltaïque" + ,"photovoltaïque vie" ,"panneaux contrat photovoltaïques" ,"leader photovoltaïque du photovoltaïque" ,"leader photovoltaïque du chez photovoltaïque" @@ -154,6 +172,7 @@ ,"énergie avec le leader du photovoltaïque photovoltaïque" ,"photovoltaïque leader chez du les photovoltaïque" ,"leader photovoltaïque" + ,"leader football du photovoltaïque" ,"leader chez du les photovoltaïque" ,"chez les photovoltaïque particuliers" ,"en train d" @@ -172,6 +191,9 @@ ,"énergie renouvelable au monde" ,"par des garanties d' origine renouvelable" ,"verlaine isolation centrales photovoltaïques pompes à chaleur" + ,"verlaine programme centrale avec photovoltaïque" + ,"verlaine installateur de pac le photovoltaïque" + ,"euro de plus une centrale photovoltaïque" ,"verlaine isolation centrales photovoltaïques et pompes à chaleur" ,"installation de panneaux photovoltaïques plus d' infos sur tugo" ,"groupe verlaine panneaux photovoltaïques et bornes de recharge" @@ -191,13 +213,20 @@ ,"energy le kit de huit panneaux photovoltaïque" ,"énergie le kit de huit panneaux photovoltaïque" ,"installation photovoltaïque garanti" + ,"groupe verlaine isolation centrales photovoltaïques pompes à chaleur" + ,"verlaine isolation photovoltaïque centrale photovoltaïque et pompes à chaleur" + ,"installations photovoltaïques garantis" ,"photovoltaïques photovoltaïques garanti" + ,"photovoltaïques vingt-cinq" + ,"centrale photovoltaïques mobile" ,"photovoltaïques à garanti" + ,"photovoltaïques garantis à vie" ,"rlaine installateur de panneaux de photovoltaïques" ,"installateur panneaux de photovoltaïques panneaux photovoltaïques" ,"énergies renouvelables groupe verlaine" ,"spécialisée dans les énergies renouvelables" ,"spécialisée dans les énergies renouvelables" + ,"offrant un écosystème technologique durable" ,"borne de recharge offert" ,"plus de mille bornes de recharge" ,"localise une borne de recharge" @@ -211,6 +240,7 @@ ,"bornes de recharge et deux" ,"si vous avez une borne de recharge partager" ,"cent pour cent électriques bornes de recharge" + ,"cent des panneaux photovoltaïques" ,"votre borne de recharge que vous habitez" ,"borne de recharge j' ai pas hésité" ,"edf installe votre bornes de recharge" @@ -248,6 +278,7 @@ ,"pompe à chaleur je suis fait pour la chaleur" ,"isolation photovoltaïque et pompe à chaleur pour une réno" ,"centrale photovoltaïque du futur" # thompson + ,"centrale du photovoltaïque futur" ,"centrale la photovoltaïque scène du futur" # thompson ,"centrale photovoltaïque à partir" ,"et plus durable et avec spoticar" @@ -283,6 +314,7 @@ ,"mon parcours rénovation diagnostic" ,"merlin la rénovation énergétique" ,"rénovation énergétique la météo avec groupe verlaine" + ,"photovoltaïque et pompe à chaleur pour une rénovation" ,"rénovation globale groupe verlaine" ,"bien démarrer votre rénovation énergétique" ,"en machine le gaspillage" @@ -382,6 +414,7 @@ ,"son panneau solaire apporteront" ,"panneaux solaires pour faire des économies d' énergie" ,"panneaux solaires et faire des économies carrefour" + ,"ou des panneaux solaires plus respectueux" ,"garantie carrefour énergie" ,"économies sur votre énergie" ,"énergie c' est trop cher je vous réponds fait comme marc" @@ -562,4 +595,5 @@ ,"stocker le carbone ou faire de l' ombre en préservant les arbres" ,"opter pour de l' énergie renouvelable cette option" ,"se prélassait à l' ombre" -] + ,"senseo et produits de façon plus durable plus responsable" +] \ No newline at end of file From e8382ffbbb2b4de385ea5f37907516a43d74a7dd Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Thu, 17 Oct 2024 17:39:48 +0000 Subject: [PATCH 69/73] [no ci]: 1.0.35 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index eef124ed..988b78ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.34" +version = "1.0.35" description = "" authors = [ "Rambier Estelle ", From dab7b73ae019849d2ce175054f81f3ef83cc72ec Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 18 Oct 2024 10:11:42 +0200 Subject: [PATCH 70/73] chores: ombre to adapation only - stop words --- .../mediatree/keyword/keyword.py | 4 -- .../mediatree/keyword/stop_words.py | 53 +++++++++++++++++-- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/quotaclimat/data_processing/mediatree/keyword/keyword.py b/quotaclimat/data_processing/mediatree/keyword/keyword.py index 50e0292d..b434ea1d 100644 --- a/quotaclimat/data_processing/mediatree/keyword/keyword.py +++ b/quotaclimat/data_processing/mediatree/keyword/keyword.py @@ -1526,10 +1526,6 @@ "keyword": "nucléaire", "category": "Energie" }, - { - "keyword": "ombre", - "category": "Ecosystème" - }, { "keyword": "parc", "category": "Ecosystème" diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index a365ba2c..c4e0647d 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -213,7 +213,6 @@ ,"energy le kit de huit panneaux photovoltaïque" ,"énergie le kit de huit panneaux photovoltaïque" ,"installation photovoltaïque garanti" - ,"groupe verlaine isolation centrales photovoltaïques pompes à chaleur" ,"verlaine isolation photovoltaïque centrale photovoltaïque et pompes à chaleur" ,"installations photovoltaïques garantis" ,"photovoltaïques photovoltaïques garanti" @@ -251,7 +250,8 @@ ,"une borne de recharge bien installé" ,"vous avez une borne de recharge" ,"en ce moment borne de recharge" - ,"vous offre la borne de recharge" + ,"borne de recharge portes ouvertes" + ,"offre la borne de recharge" ,"borne de recharge est offert" ,"borne de recharge offert" ,"faire installer une borne de recharge" @@ -358,6 +358,7 @@ ,"cristallines est capable de recycler" ,"batterie chez norauto pour la recycler" ,"cristaline pour le recyclage" + ,"cristalline pour le recyclage" ,"les réparer ou les recycler boulanger" ,"point fr le geste utile pour recycler" ,"recycler les deux sont garantis" @@ -415,6 +416,7 @@ ,"panneaux solaires pour faire des économies d' énergie" ,"panneaux solaires et faire des économies carrefour" ,"ou des panneaux solaires plus respectueux" + ,"chocolat plus respectueux de l' environnement" ,"garantie carrefour énergie" ,"économies sur votre énergie" ,"énergie c' est trop cher je vous réponds fait comme marc" @@ -452,6 +454,7 @@ ,"aux aides maprimerénov et de faisabilité sous condition" ,"leroy merlin quand on refait son isolation" ,"parc saint-paul" + ,"parc saint paul" ,"parc strasbourgeois" ,"parc de la villette" ,"parc machines" @@ -460,7 +463,9 @@ ,"parc automobile" ,"parc de la tête d' or" ,"parc lumineux" - ,"parc d' attractions" + ,"parc d' attraction" + ,"parc immobilier" + ,"parc animalier" ,"atmosphère cinéma" ,"économies d' énergie l' impact environnemental des vies" ,"économies d' énergie impact environnemental des vies" @@ -471,8 +476,16 @@ ,"budget chauffage votre pompe à chaleur" ,"budget chauffage la pompe à chaleur" ,"tu vois loulou on a bien fait de refaire l' isolation" # france tirer les neuf pts gauff point fr - ,"pour installer un système plus écologique comme une pompe à chaleur" # france tirer les neuf pts gauff point fr + ,"système plus écologique comme une pompe à chaleur" # france tirer les neuf pts gauff point fr + ,"système plus écologiques comme une pompe à chaleur" # france tirer les neuf pts gauff point fr ,"on regarde ensemble comment bénéficier de maprimerénov" + ,"transition énergétique l' objectif c' est de réduire leurs émissions de co deux et leur budget énergie" # carrefour + ,"énergie et notre avenir" + ,"énergie est notre avenir" + ,"totalenergies est le partenaire de notre transition énergétique" + ,"total énergie je conseille à mes clients dans la transition énergétique" + ,"nous progressons pour que la transition énergétique soit une réussite" + ,"transition énergétique tout en les accompagnant" ,"total énergie" ,"option énergies vertes" ,"important que de passer à l' énergie verte tellement important" @@ -498,13 +511,24 @@ ,"les responsables" ,"chaque responsable" ,"pas responsable" + ,"autorités responsables" + ,"épargne responsable banque populaire" + ,"bactéries responsable" + ,"virus responsable" + ,"responsable commercial" ,"responsable de" + ,"ce responsable" ,"responsables politiques" ,"responsable politique" ,"comme responsable" ,"du responsable" ,"verger écoresponsable" + ,"responsable trois paires pour seulement deux" ,"français écoresponsable sont à" + ,"spécialisée dans la formation des responsables de demain" + ,"le monde agit pour un habitat plus responsable" + ,"permettre de manger mieux et plus responsable en privilégiant des pratiques" + ,"assurance vie responsable et solidaire et performant maif" ,"érigés en barrage" ,"partie du barrage" ,"barrage au" @@ -585,7 +609,9 @@ ,"d' énergie avec total énergies" ," en main vos économies d' énergie" ,"ademe point fr ceci est un" + ,"ceci est un message à l' ademe" ,"ceci est un message de l' ademe" + ,"est un message du ministère de la transition écologique" ,"contribution recyclage offre valable" ,"contributions recyclage offre valable" ,"les joies du recyclage moi j' ai peur" @@ -594,6 +620,25 @@ ,"nos régions aujourd' hui les circuits courts" ,"stocker le carbone ou faire de l' ombre en préservant les arbres" ,"opter pour de l' énergie renouvelable cette option" + ,"spécialisé dans les énergies renouvelables plus d' infos sur" + ,"des pyrénées quelles énergies renouvelables bien évidemment" ,"se prélassait à l' ombre" ,"senseo et produits de façon plus durable plus responsable" + ,"prêt transition énergétique un prêt à taux réduit" # cic + ,"engie soutient les pros dans leur transition énergétique" + ,"fondation goodplanet soutient la transition agro écologique" + ,"banque coopérative dédié à la transition écologique" + ,"matériels professionnels climatiques retrouvez nos produits" + ,"ce moment au pouvoir acheter une voiture électrique peut être une prise de" + ,"pouvoir acheter une voiture électrique ça pouvait être une prise" + ,"pouvoir acheter une voiture électrique peut être une triste date" + ,"connaître la valeur de votre voiture simplement" + ,"ça rentre vraiment la voiture électrique accessible oui mais fiat" + ,"ça rendait vraiment la voiture électrique accessible oui mais fiat" + ,"écouter sud radio en voiture" + ,"citroën c4 you c' est une voiture" + ,"pare-brise de sa nouvelle voiture" + ,"habitat et jardin point com" + ,"votre programme avec habitat et jardin" + ,"entretenir facilement votre jardin" ] \ No newline at end of file From d49edb30c86f04c0bbe774e3a0d7e0159485a357 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 18 Oct 2024 08:12:22 +0000 Subject: [PATCH 71/73] [no ci]: 1.0.36 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 988b78ca..03744126 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.35" +version = "1.0.36" description = "" authors = [ "Rambier Estelle ", From d2cb63a7aec4fa98e7890f7bacee0b1f8ac61935 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Fri, 18 Oct 2024 10:57:49 +0200 Subject: [PATCH 72/73] chores: stop words ads --- .../mediatree/keyword/stop_words.py | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/quotaclimat/data_processing/mediatree/keyword/stop_words.py b/quotaclimat/data_processing/mediatree/keyword/stop_words.py index c4e0647d..d4b5a5bc 100644 --- a/quotaclimat/data_processing/mediatree/keyword/stop_words.py +++ b/quotaclimat/data_processing/mediatree/keyword/stop_words.py @@ -78,6 +78,9 @@ ,"installe des panneaux photovoltaïques et des bornes de recharge" ,"photovoltaïques et des bornes de recharge pour que ça profite" ,"photovoltaïques et des bornes de recharge et pour que ça profite" + ,"photovoltaïques des bornes de recharge et pour que ça profite" + ,"photovoltaïques borne de recharge et pour que ça profite" + ,"bornes de recharge et pour que ça profite" ,"bornes de recharge et d' un" ,"euros par mois bornes de recharge" ,"leader du photovoltaïque chez les particulier" @@ -359,6 +362,7 @@ ,"batterie chez norauto pour la recycler" ,"cristaline pour le recyclage" ,"cristalline pour le recyclage" + ,"recyclage du le pare-brise" ,"les réparer ou les recycler boulanger" ,"point fr le geste utile pour recycler" ,"recycler les deux sont garantis" @@ -368,6 +372,7 @@ ,"de recycler de recycler" # bug mediatree ,"eau cristalline" ,"trier vos bouteilles nous les recycler" + ,"bouteilles nous les recyclant pour en" ,"recycler des lunettes" ,"est capable de recycler recycler" ,"recycler des milliers de tonnes" @@ -451,8 +456,11 @@ ,"maprimerénov leroy" ,"maprimerénov et économiser jusqu' à" ,"maprimerénov une offre comme ça même chez lapeyre" + ,"comment bénéficier de maprimerénov sur ton projet des experts" + ,"rénovation énergétique rendez vous sur france" ,"aux aides maprimerénov et de faisabilité sous condition" ,"leroy merlin quand on refait son isolation" + ,"engie home services et installer une pompe à chaleur" ,"parc saint-paul" ,"parc saint paul" ,"parc strasbourgeois" @@ -473,16 +481,19 @@ ,"pour faire des économies d' énergie juliette" ,"elle voudrait faire des économies de chauffage" ,"bonus pompe à chaleur d' edf" + ,"installer un système plus écologiques comme une pompe à chaleur air eau" ,"budget chauffage votre pompe à chaleur" ,"budget chauffage la pompe à chaleur" ,"tu vois loulou on a bien fait de refaire l' isolation" # france tirer les neuf pts gauff point fr ,"système plus écologique comme une pompe à chaleur" # france tirer les neuf pts gauff point fr ,"système plus écologiques comme une pompe à chaleur" # france tirer les neuf pts gauff point fr ,"on regarde ensemble comment bénéficier de maprimerénov" + ,"point de départ pour bien démarrer votre rénovation énergétique" ,"transition énergétique l' objectif c' est de réduire leurs émissions de co deux et leur budget énergie" # carrefour ,"énergie et notre avenir" ,"énergie est notre avenir" ,"totalenergies est le partenaire de notre transition énergétique" + ,"déjà cent ans que toutes nos énergies" #totalenergies ,"total énergie je conseille à mes clients dans la transition énergétique" ,"nous progressons pour que la transition énergétique soit une réussite" ,"transition énergétique tout en les accompagnant" @@ -497,6 +508,7 @@ ,"franchisé dans les énergies les renouvelables énergies renouvelables" ,"écologiques pour remplacer votre" ,"accrochages c' est aussi plus écologique" + ,"par l' ademe l' agence de la transition écologique avec le groupe tf1" ,"transition écologique avec le groupe tf1" ,"planète radio" ,"responsable service" @@ -533,10 +545,17 @@ ,"partie du barrage" ,"barrage au" ,"barrage et affrontement" - ,"barrage à des" + ,"barrage à" + ,"faire barrage" ,"barrage filtrant" ,"présents sur ce barrage" + ,"barrages sur les routes" + ,"barrage sur les routes" + ,"barrages à signaler" ,"barrages d' agriculteurs" + ,"barrages de la ligue" + ,"barrage routier" + ,"barrage de la police" ,"par terre" ,"pieds sur terre" ,"tremblement de terre" @@ -576,6 +595,8 @@ ,"vous aimiez les voitures électriques" ,"les voitures de demain électrique" ,"excellente voitures électriques ou hybrides" + ,"hybride sans recharge" + ,"sans recharge" ,"rendre nos voitures cent pour cent électrique accessib" ,"renault fabrique et entretient des voitures électriques" ,"and roll des voitures électriques" @@ -624,6 +645,7 @@ ,"des pyrénées quelles énergies renouvelables bien évidemment" ,"se prélassait à l' ombre" ,"senseo et produits de façon plus durable plus responsable" + ,"senseo et produits de façon plus durable et plus responsable" ,"prêt transition énergétique un prêt à taux réduit" # cic ,"engie soutient les pros dans leur transition énergétique" ,"fondation goodplanet soutient la transition agro écologique" @@ -637,8 +659,27 @@ ,"ça rendait vraiment la voiture électrique accessible oui mais fiat" ,"écouter sud radio en voiture" ,"citroën c4 you c' est une voiture" + ,"combien vaut votre voiture sur vendez votre voiture point fr" + ,"révision de ma voiture électrique en plus ça me coûte la peau" + ,"révision de la voiture électrique en plus ça me coûte la peau" ,"pare-brise de sa nouvelle voiture" ,"habitat et jardin point com" ,"votre programme avec habitat et jardin" ,"entretenir facilement votre jardin" + ,"chet ecomaison réemploi" + ,"ecomaison réemploi et recycle" + ,"ecomaison réemploi" + ,"éhicule électrique la banque postale" + ,"quotidien prenez les transports en commun" + ,"trajets courts privilégiez la marche le vélo" + ,"trajets courts privilégiez la marche ou le vélo" + ,"remettre en état son vélo" + ,"ça va plutôt vélo pour la sortie vélo" + ,"comptoir de la mer point fr" + ,"univers de la mer et au comptoir de la mer" + ,"isolation thermique et phonique sécurité" + ,"se lancer dans la décarbonation je leur propose expertise" + ,"réparation point écho" + ,"sa recharge permet de réduire de quatre-vingts pour cent son empreint" + ,"sa recharge permet de réduire de quatre-vingt pourcent son empreint" ] \ No newline at end of file From e7eed786372b9f639c4565b32e5305e54f7036e3 Mon Sep 17 00:00:00 2001 From: barometre-github-actions Date: Fri, 18 Oct 2024 08:58:32 +0000 Subject: [PATCH 73/73] [no ci]: 1.0.37 bumping version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 03744126..2c37c7f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quotaclimat" -version = "1.0.36" +version = "1.0.37" description = "" authors = [ "Rambier Estelle ",