diff --git a/.github/workflows/summarize_progress.yml b/.github/workflows/summarize_progress.yml new file mode 100644 index 0000000000..32bbf5fd17 --- /dev/null +++ b/.github/workflows/summarize_progress.yml @@ -0,0 +1,28 @@ +name: summarize_progress + +on: + schedule: + - cron: '30 23 * * 5' + +jobs: + ci: + runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push the + # added or changed files to the repository. + contents: write + steps: + - uses: actions/checkout@v2 + + - name: Install poetry + uses: abatilo/actions-poetry@v2 + + - name: Execute Check Process + run: | + chmod +x .scripts/summarize_progress.sh + .scripts/summarize_progress.sh + shell: bash + + - uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: Weekly Update -- Summarize Progress \ No newline at end of file diff --git a/.scripts/poetry.lock b/.scripts/poetry.lock index 7fa4a914bc..51aa16cda8 100644 --- a/.scripts/poetry.lock +++ b/.scripts/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand. [[package]] name = "certifi" @@ -22,6 +22,105 @@ files = [ {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, ] +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + [[package]] name = "googletrans" version = "3.1.0a0" @@ -151,6 +250,8 @@ files = [ {file = "lxml-4.9.3-cp27-cp27m-macosx_11_0_x86_64.whl", hash = "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c"}, {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d"}, {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef"}, + {file = "lxml-4.9.3-cp27-cp27m-win32.whl", hash = "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7"}, + {file = "lxml-4.9.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1"}, {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb"}, {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e"}, {file = "lxml-4.9.3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991"}, @@ -257,6 +358,27 @@ files = [ {file = "polib-1.1.1.tar.gz", hash = "sha256:e02c355ae5e054912e3b0d16febc56510eff7e49d60bf22aecb463bd2f2a2dfa"}, ] +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + [[package]] name = "rfc3986" version = "1.5.0" @@ -312,7 +434,23 @@ tmserver = ["cheroot (==9.0.0)"] trados = ["BeautifulSoup4 (>=4.3)"] yaml = ["ruamel.yaml (==0.17.21)"] +[[package]] +name = "urllib3" +version = "2.1.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, + {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "3e5dc631f7647aaa206c3b276ca58abd9162711ce9d618ad7be743d4f7b4c52c" +content-hash = "4c36095f6eed9772d24fda2b7fd4491f9c72ce40992ed2b39f5151d2ee5754bc" diff --git a/.scripts/pyproject.toml b/.scripts/pyproject.toml index cdb505ad0e..8c9487037d 100644 --- a/.scripts/pyproject.toml +++ b/.scripts/pyproject.toml @@ -10,7 +10,7 @@ python = "^3.10" polib = "1.1.1" googletrans = "3.1.0a0" translate-toolkit = "3.8.1" - +requests = "2.31.0" [build-system] requires = ["poetry-core"] diff --git a/.scripts/summarize_progress.sh b/.scripts/summarize_progress.sh new file mode 100755 index 0000000000..b715de1f32 --- /dev/null +++ b/.scripts/summarize_progress.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +WORK_DIR=.scripts +cd $WORK_DIR + +source utils/install_poetry.sh + +poetry lock +poetry install +poetry run bash -c " + python summarize_progress/main.py +" diff --git a/.scripts/summarize_progress/dist/summarize_progress.md b/.scripts/summarize_progress/dist/summarize_progress.md new file mode 100644 index 0000000000..145d5cbe28 --- /dev/null +++ b/.scripts/summarize_progress/dist/summarize_progress.md @@ -0,0 +1,498 @@ +- // + - about.po-----------------------------✅ + - bugs.po------------------------------✅ + - contents.po--------------------------✅ + - copyright.po-------------------------✅ + - glossary.po--------------------------✅ + - license.po---------------------------✅ + - sphinx.po----------------------------✅ +- c-api/ + - abstract.po--------------------------✅ + - allocation.po------------------------✅ + - apiabiversion.po---------------------✅ + - arg.po-------------------------------Ongoing, 47.59 % + - bool.po------------------------------Ongoing, 90.91 % + - buffer.po----------------------------Ongoing, 14.91 % + - bytearray.po-------------------------✅ + - bytes.po-----------------------------Ongoing, 51.61 % + - call.po------------------------------Ongoing, 98.96 % + - capsule.po---------------------------Ongoing, 6.25 % + - cell.po------------------------------✅ + - code.po------------------------------Ongoing, 19.3 % + - codec.po-----------------------------✅ + - complex.po---------------------------✅ + - concrete.po--------------------------✅ + - contextvars.po-----------------------Ongoing, 6.67 % + - conversion.po------------------------Ongoing, 11.54 % + - coro.po------------------------------✅ + - datetime.po--------------------------Ongoing, 82.69 % + - descriptor.po------------------------✅ + - dict.po------------------------------Ongoing, 22.92 % + - exceptions.po------------------------Ongoing, 59.78 % + - file.po------------------------------✅ + - float.po-----------------------------Ongoing, 8.57 % + - frame.po-----------------------------❌, 💻 xingularity + - function.po--------------------------Ongoing, 67.65 % + - gcsupport.po-------------------------Ongoing, 2.0 % + - gen.po-------------------------------✅ + - import.po----------------------------Ongoing, 21.82 % + - index.po-----------------------------✅ + - init.po------------------------------Ongoing, 25.42 % + - init_config.po-----------------------Ongoing, 12.87 % + - intro.po-----------------------------Ongoing, 98.43 % + - iter.po------------------------------✅ + - iterator.po--------------------------Ongoing, 25.0 % + - list.po------------------------------✅ + - long.po------------------------------Ongoing, 13.85 % + - mapping.po---------------------------Ongoing, 11.11 % + - marshal.po---------------------------❌ + - memory.po----------------------------Ongoing, 25.65 % + - memoryview.po------------------------Ongoing, 27.27 % + - method.po----------------------------✅ + - module.po----------------------------Ongoing, 12.07 % + - none.po------------------------------Ongoing, 57.14 % + - number.po----------------------------Ongoing, 12.5 % + - objbuffer.po-------------------------✅ + - object.po----------------------------Ongoing, 12.0 % + - objimpl.po---------------------------❌ + - perfmaps.po--------------------------❌ + - refcounting.po-----------------------✅ + - reflection.po------------------------Ongoing, 12.5 % + - sequence.po--------------------------Ongoing, 10.0 % + - set.po-------------------------------Ongoing, 17.86 % + - slice.po-----------------------------Ongoing, 9.52 % + - stable.po----------------------------Ongoing, 83.72 % + - structures.po------------------------Ongoing, 30.86 % + - sys.po-------------------------------Ongoing, 10.53 % + - tuple.po-----------------------------Ongoing, 7.5 % + - type.po------------------------------Ongoing, 7.07 % + - typehints.po-------------------------✅ + - typeobj.po---------------------------Ongoing, 42.35 % + - unicode.po---------------------------Ongoing, 13.8 % + - utilities.po-------------------------✅ + - veryhigh.po--------------------------Ongoing, 3.51 % + - weakref.po---------------------------Ongoing, 8.33 % +- distributing/ + - index.po-----------------------------✅ +- extending/ + - building.po--------------------------Ongoing, 22.22 % + - embedding.po-------------------------Ongoing, 4.44 % + - extending.po-------------------------Ongoing, 5.56 % + - index.po-----------------------------✅ + - newtypes.po--------------------------Ongoing, 12.36 % + - newtypes_tutorial.po-----------------Ongoing, 0.82 % + - windows.po---------------------------❌ +- faq/ + - design.po----------------------------✅ + - extending.po-------------------------✅ + - general.po---------------------------✅ + - gui.po-------------------------------✅ + - index.po-----------------------------✅ + - installed.po-------------------------✅ + - library.po---------------------------✅ + - programming.po-----------------------Ongoing, 98.72 % + - windows.po---------------------------✅ +- howto/ + - annotations.po-----------------------✅ + - argparse.po--------------------------Ongoing, 57.61 %, 💻 sweslo17 + - clinic.po----------------------------✅ + - cporting.po--------------------------Ongoing, 20.0 % + - curses.po----------------------------Ongoing, 17.14 % + - descriptor.po------------------------Ongoing, 10.17 % + - enum.po------------------------------❌ + - functional.po------------------------Ongoing, 7.25 % + - index.po-----------------------------✅ + - instrumentation.po-------------------✅ + - ipaddress.po-------------------------Ongoing, 10.42 % + - isolating-extensions.po--------------❌ + - logging-cookbook.po------------------Ongoing, 1.63 % + - logging.po---------------------------Ongoing, 11.06 % + - perf_profiling.po--------------------❌, 💻 mattwang44 + - pyporting.po-------------------------Ongoing, 13.83 % + - regex.po-----------------------------Ongoing, 20.91 % + - sockets.po---------------------------Ongoing, 98.28 % + - sorting.po---------------------------✅ + - unicode.po---------------------------Ongoing, 3.31 % + - urllib2.po---------------------------Ongoing, 16.67 % +- includes/ + - wasm-notavail.po---------------------❌ +- installing/ + - index.po-----------------------------✅ +- library/ + - 2to3.po------------------------------Ongoing, 32.23 % + - __future__.po------------------------✅ + - __main__.po--------------------------Ongoing, 3.7 % + - _thread.po---------------------------Ongoing, 9.62 % + - abc.po-------------------------------✅ + - aifc.po------------------------------Ongoing, 22.22 % + - allos.po-----------------------------✅ + - archiving.po-------------------------✅ + - argparse.po--------------------------Ongoing, 12.13 % + - array.po-----------------------------✅ + - ast.po-------------------------------Ongoing, 2.98 %, 💻 mattwang44 + - asyncio-api-index.po-----------------Ongoing, 97.0 % + - asyncio-dev.po-----------------------✅ + - asyncio-eventloop.po-----------------Ongoing, 6.6 %, 💻 xchux + - asyncio-exceptions.po----------------✅ + - asyncio-extending.po-----------------❌ + - asyncio-future.po--------------------✅ + - asyncio-llapi-index.po---------------✅ + - asyncio-platforms.po-----------------✅ + - asyncio-policy.po--------------------Ongoing, 1.49 % + - asyncio-protocol.po------------------Ongoing, 3.26 % + - asyncio-queue.po---------------------✅ + - asyncio-runner.po--------------------Ongoing, 17.14 % + - asyncio-stream.po--------------------Ongoing, 89.66 % + - asyncio-subprocess.po----------------Ongoing, 9.09 % + - asyncio-sync.po----------------------Ongoing, 83.15 % + - asyncio-task.po----------------------Ongoing, 7.17 % + - asyncio.po---------------------------✅ + - atexit.po----------------------------Ongoing, 10.53 % + - audioop.po---------------------------Ongoing, 12.0 % + - audit_events.po----------------------✅ + - base64.po----------------------------Ongoing, 15.0 %, 💻 Yang92047111 + - bdb.po-------------------------------Ongoing, 1.83 % + - binary.po----------------------------✅ + - binascii.po--------------------------Ongoing, 25.0 % + - bisect.po----------------------------✅ + - builtins.po--------------------------✅ + - bz2.po-------------------------------Ongoing, 4.17 % + - calendar.po--------------------------Ongoing, 74.74 % + - cgi.po-------------------------------Ongoing, 17.43 % + - cgitb.po-----------------------------Ongoing, 50.0 % + - chunk.po-----------------------------Ongoing, 43.59 % + - cmath.po-----------------------------Ongoing, 5.36 % + - cmd.po-------------------------------Ongoing, 10.87 % + - cmdline.po---------------------------✅ + - code.po------------------------------Ongoing, 6.45 % + - codecs.po----------------------------Ongoing, 49.53 % + - codeop.po----------------------------Ongoing, 7.14 % + - collections.abc.po-------------------Ongoing, 54.47 % + - collections.po-----------------------✅ + - colorsys.po--------------------------✅ + - compileall.po------------------------Ongoing, 13.56 % + - concurrency.po-----------------------✅ + - concurrent.futures.po----------------Ongoing, 97.89 % + - concurrent.po------------------------✅ + - configparser.po----------------------Ongoing, 9.34 % + - constants.po-------------------------✅ + - contextlib.po------------------------Ongoing, 5.34 % + - contextvars.po-----------------------Ongoing, 4.35 % + - copy.po------------------------------✅ + - copyreg.po---------------------------Ongoing, 41.67 % + - crypt.po-----------------------------Ongoing, 34.29 % + - crypto.po----------------------------✅ + - csv.po-------------------------------✅ + - ctypes.po----------------------------Ongoing, 14.35 % + - curses.ascii.po----------------------Ongoing, 7.25 % + - curses.panel.po----------------------Ongoing, 4.35 % + - curses.po----------------------------Ongoing, 11.57 % + - custominterp.po----------------------❌ + - dataclasses.po-----------------------Ongoing, 75.0 % + - datatypes.po-------------------------✅ + - datetime.po--------------------------Ongoing, 29.81 % + - dbm.po-------------------------------Ongoing, 18.18 % + - debug.po-----------------------------✅ + - decimal.po---------------------------Ongoing, 2.37 %, 💻 0gien + - development.po-----------------------Ongoing, 33.33 % + - devmode.po---------------------------Ongoing, 10.2 % + - dialog.po----------------------------Ongoing, 7.02 % + - difflib.po---------------------------Ongoing, 12.69 % + - dis.po-------------------------------Ongoing, 8.54 % + - distribution.po----------------------Ongoing, 50.0 % + - doctest.po---------------------------Ongoing, 6.01 % + - email.charset.po---------------------Ongoing, 13.64 %, 💻 isabellechiu + - email.compat32-message.po------------Ongoing, 2.88 % + - email.contentmanager.po--------------Ongoing, 7.32 % + - email.encoders.po--------------------Ongoing, 13.33 % + - email.errors.po----------------------Ongoing, 4.17 % + - email.examples.po--------------------Ongoing, 8.33 % + - email.generator.po-------------------Ongoing, 7.32 % + - email.header.po----------------------Ongoing, 7.89 % + - email.headerregistry.po--------------Ongoing, 34.95 % + - email.iterators.po-------------------Ongoing, 9.09 % + - email.message.po---------------------Ongoing, 2.91 % + - email.mime.po------------------------Ongoing, 26.32 % + - email.parser.po----------------------Ongoing, 4.26 % + - email.po-----------------------------Ongoing, 24.0 % + - email.policy.po----------------------Ongoing, 8.91 % + - email.utils.po-----------------------Ongoing, 12.9 % + - ensurepip.po-------------------------Ongoing, 97.3 % + - enum.po------------------------------✅ + - errno.po-----------------------------Ongoing, 0.75 % + - exceptions.po------------------------Ongoing, 8.47 % + - faulthandler.po----------------------Ongoing, 2.38 % + - fcntl.po-----------------------------Ongoing, 22.22 % + - filecmp.po---------------------------Ongoing, 2.5 % + - fileformats.po-----------------------Ongoing, 50.0 % + - fileinput.po-------------------------Ongoing, 4.65 % + - filesys.po---------------------------✅ + - fnmatch.po---------------------------Ongoing, 51.43 % + - fractions.po-------------------------Ongoing, 6.67 % + - frameworks.po------------------------Ongoing, 33.33 % + - ftplib.po----------------------------Ongoing, 98.55 % + - functional.po------------------------Ongoing, 66.67 % + - functions.po-------------------------Ongoing, 67.25 %, 💻 StevenHsuYL + - functools.po-------------------------Ongoing, 7.78 % + - gc.po--------------------------------Ongoing, 98.25 % + - getopt.po----------------------------Ongoing, 10.53 % + - getpass.po---------------------------Ongoing, 91.67 % + - gettext.po---------------------------Ongoing, 16.38 % + - glob.po------------------------------✅ + - graphlib.po--------------------------✅ + - grp.po-------------------------------Ongoing, 41.38 % + - gzip.po------------------------------Ongoing, 31.15 % + - hashlib.po---------------------------Ongoing, 18.52 %, 💻 mattwang44 + - heapq.po-----------------------------✅ + - hmac.po------------------------------✅ + - html.entities.po---------------------✅ + - html.parser.po-----------------------✅ + - html.po------------------------------✅ + - http.client.po-----------------------Ongoing, 14.55 % + - http.cookiejar.po--------------------Ongoing, 7.79 % + - http.cookies.po----------------------Ongoing, 26.79 % + - http.po------------------------------Ongoing, 98.35 % + - http.server.po-----------------------Ongoing, 11.43 % + - i18n.po------------------------------Ongoing, 33.33 % + - idle.po------------------------------Ongoing, 6.92 % + - imaplib.po---------------------------Ongoing, 12.5 % + - imghdr.po----------------------------Ongoing, 53.66 % + - importlib.metadata.po----------------Ongoing, 1.59 % + - importlib.po-------------------------Ongoing, 13.44 % + - importlib.resources.abc.po-----------Ongoing, 3.33 % + - importlib.resources.po---------------Ongoing, 5.0 % + - index.po-----------------------------✅ + - inspect.po---------------------------Ongoing, 17.63 % + - internet.po--------------------------✅ + - intro.po-----------------------------Ongoing, 60.0 % + - io.po--------------------------------Ongoing, 25.19 %, 💻 cschan1828 + - ipaddress.po-------------------------Ongoing, 1.35 % + - ipc.po-------------------------------❌ + - itertools.po-------------------------Ongoing, 45.73 % + - json.po------------------------------Ongoing, 25.34 % + - keyword.po---------------------------✅ + - language.po--------------------------❌ + - linecache.po-------------------------Ongoing, 35.71 % + - locale.po----------------------------Ongoing, 18.24 % + - logging.config.po--------------------Ongoing, 7.28 % + - logging.handlers.po------------------Ongoing, 33.46 % + - logging.po---------------------------Ongoing, 20.69 % + - lzma.po------------------------------Ongoing, 11.21 % + - mailbox.po---------------------------Ongoing, 8.87 % + - mailcap.po---------------------------Ongoing, 6.67 % + - markup.po----------------------------❌ + - marshal.po---------------------------✅ + - math.po------------------------------Ongoing, 4.76 % + - mimetypes.po-------------------------Ongoing, 18.0 % + - mm.po--------------------------------✅ + - mmap.po------------------------------Ongoing, 12.5 % + - modulefinder.po----------------------Ongoing, 7.69 % + - modules.po---------------------------Ongoing, 33.33 % + - msilib.po----------------------------Ongoing, 5.15 % + - msvcrt.po----------------------------Ongoing, 10.71 % + - multiprocessing.po-------------------Ongoing, 4.49 % + - multiprocessing.shared_memory.po-----Ongoing, 10.0 %, 💻 mattwang44 + - netdata.po---------------------------✅ + - netrc.po-----------------------------✅ + - nis.po-------------------------------Ongoing, 20.0 % + - nntplib.po---------------------------Ongoing, 13.48 % + - numbers.po---------------------------✅ + - numeric.po---------------------------Ongoing, 33.33 % + - operator.po--------------------------Ongoing, 98.89 % + - optparse.po--------------------------Ongoing, 8.65 % + - os.path.po---------------------------✅ + - os.po--------------------------------Ongoing, 18.2 % + - ossaudiodev.po-----------------------Ongoing, 20.41 % + - pathlib.po---------------------------Ongoing, 48.19 %, 💻 mindihx + - pdb.po-------------------------------Ongoing, 9.92 %, 💻 mattwang44 + - persistence.po-----------------------❌ + - pickle.po----------------------------Ongoing, 13.72 % + - pickletools.po-----------------------Ongoing, 23.53 %, 💻 mattwang44 + - pipes.po-----------------------------Ongoing, 25.0 % + - pkgutil.po---------------------------Ongoing, 10.64 % + - platform.po--------------------------Ongoing, 94.92 % + - plistlib.po--------------------------Ongoing, 11.63 % + - poplib.po----------------------------Ongoing, 20.75 % + - posix.po-----------------------------✅ + - pprint.po----------------------------Ongoing, 21.28 % + - profile.po---------------------------Ongoing, 23.57 % + - pty.po-------------------------------Ongoing, 21.05 % + - pwd.po-------------------------------✅ + - py_compile.po------------------------Ongoing, 26.67 % + - pyclbr.po----------------------------Ongoing, 8.0 % + - pydoc.po-----------------------------Ongoing, 30.43 % + - pyexpat.po---------------------------Ongoing, 5.93 % + - python.po----------------------------❌ + - queue.po-----------------------------✅ + - quopri.po----------------------------✅ + - random.po----------------------------Ongoing, 89.42 % + - re.po--------------------------------Ongoing, 35.07 %, 💻 ascodeasice + - readline.po--------------------------Ongoing, 2.08 % + - reprlib.po---------------------------Ongoing, 12.9 % + - resource.po--------------------------Ongoing, 36.52 % + - rlcompleter.po-----------------------Ongoing, 16.67 % + - runpy.po-----------------------------Ongoing, 7.5 % + - sched.po-----------------------------Ongoing, 20.83 % + - secrets.po---------------------------✅ + - security_warnings.po-----------------✅ + - select.po----------------------------Ongoing, 33.33 % + - selectors.po-------------------------Ongoing, 8.93 % + - shelve.po----------------------------Ongoing, 24.32 % + - shlex.po-----------------------------Ongoing, 5.41 % + - shutil.po----------------------------Ongoing, 15.12 % + - signal.po----------------------------Ongoing, 17.65 % + - site.po------------------------------Ongoing, 31.48 % + - smtplib.po---------------------------Ongoing, 17.7 % + - sndhdr.po----------------------------Ongoing, 67.57 % + - socket.po----------------------------Ongoing, 22.4 %, 💻 weijay0804 + - socketserver.po----------------------Ongoing, 5.75 % + - spwd.po------------------------------Ongoing, 52.17 % + - sqlite3.po---------------------------Ongoing, 15.79 % + - ssl.po-------------------------------Ongoing, 15.16 %, 💻 timmy0123 + - stat.po------------------------------Ongoing, 2.47 % + - statistics.po------------------------Ongoing, 99.48 % + - stdtypes.po--------------------------Ongoing, 33.55 % + - string.po----------------------------Ongoing, 35.35 % + - stringprep.po------------------------Ongoing, 4.0 % + - struct.po----------------------------Ongoing, 45.56 %, 💻 Cliying94 + - subprocess.po------------------------Ongoing, 14.83 % + - sunau.po-----------------------------✅ + - superseded.po------------------------✅ + - symtable.po--------------------------✅ + - sys.monitoring.po--------------------❌, 💻 mattwang44 + - sys.po-------------------------------Ongoing, 28.54 % + - sys_path_init.po---------------------❌ + - sysconfig.po-------------------------Ongoing, 40.44 % + - syslog.po----------------------------Ongoing, 29.03 % + - tabnanny.po--------------------------✅ + - tarfile.po---------------------------Ongoing, 11.49 % + - telnetlib.po-------------------------Ongoing, 17.65 % + - tempfile.po--------------------------✅ + - termios.po---------------------------Ongoing, 25.0 % + - test.po------------------------------Ongoing, 5.02 % + - text.po------------------------------✅ + - textwrap.po--------------------------Ongoing, 8.33 % + - threading.po-------------------------Ongoing, 4.07 %, 💻 SivanYeh + - time.po------------------------------Ongoing, 32.55 % + - timeit.po----------------------------✅ + - tk.po--------------------------------✅ + - tkinter.colorchooser.po--------------Ongoing, 33.33 % + - tkinter.dnd.po-----------------------Ongoing, 10.0 % + - tkinter.font.po----------------------Ongoing, 8.57 % + - tkinter.messagebox.po----------------Ongoing, 21.43 % + - tkinter.po---------------------------Ongoing, 24.35 % + - tkinter.scrolledtext.po--------------Ongoing, 14.29 % + - tkinter.tix.po-----------------------Ongoing, 11.11 % + - tkinter.ttk.po-----------------------Ongoing, 3.18 % + - token.po-----------------------------Ongoing, 1.52 % + - tokenize.po--------------------------Ongoing, 11.63 % + - tomllib.po---------------------------✅ + - trace.po-----------------------------Ongoing, 5.13 % + - traceback.po-------------------------Ongoing, 12.22 % + - tracemalloc.po-----------------------Ongoing, 15.97 % + - tty.po-------------------------------Ongoing, 72.73 % + - turtle.po----------------------------Ongoing, 21.25 % + - types.po-----------------------------Ongoing, 5.77 % + - typing.po----------------------------Ongoing, 30.0 %, 💻 rockleona + - undoc.po-----------------------------Ongoing, 22.22 % + - unicodedata.po-----------------------Ongoing, 21.88 % + - unittest.mock-examples.po------------❌, 💻 ken71301 + - unittest.mock.po---------------------Ongoing, 35.66 %, 💻 ken71301 + - unittest.po--------------------------Ongoing, 27.78 % + - unix.po------------------------------✅ + - urllib.error.po----------------------✅ + - urllib.parse.po----------------------Ongoing, 18.12 % + - urllib.po----------------------------✅ + - urllib.request.po--------------------Ongoing, 29.43 % + - urllib.robotparser.po----------------✅ + - uu.po--------------------------------Ongoing, 46.67 % + - uuid.po------------------------------✅, 💻 933yee + - venv.po------------------------------Ongoing, 60.18 % + - warnings.po--------------------------Ongoing, 20.0 % + - wave.po------------------------------Ongoing, 9.43 % + - weakref.po---------------------------Ongoing, 4.71 % + - webbrowser.po------------------------Ongoing, 55.84 %, 💻 griiid + - windows.po---------------------------✅ + - winreg.po----------------------------Ongoing, 14.45 % + - winsound.po--------------------------Ongoing, 29.41 % + - wsgiref.po---------------------------✅ + - xdrlib.po----------------------------Ongoing, 10.71 % + - xml.dom.minidom.po-------------------Ongoing, 13.73 % + - xml.dom.po---------------------------Ongoing, 29.91 % + - xml.dom.pulldom.po-------------------Ongoing, 40.74 % + - xml.etree.elementtree.po-------------Ongoing, 16.02 % + - xml.po-------------------------------✅ + - xml.sax.handler.po-------------------Ongoing, 5.83 % + - xml.sax.po---------------------------Ongoing, 18.75 % + - xml.sax.reader.po--------------------Ongoing, 8.0 % + - xml.sax.utils.po---------------------Ongoing, 14.29 % + - xmlrpc.client.po---------------------Ongoing, 23.0 % + - xmlrpc.po----------------------------✅ + - xmlrpc.server.po---------------------Ongoing, 18.37 %, 💻 paultsaich + - zipapp.po----------------------------Ongoing, 8.82 % + - zipfile.po---------------------------Ongoing, 9.9 % + - zipimport.po-------------------------Ongoing, 8.33 % + - zlib.po------------------------------✅ + - zoneinfo.po--------------------------Ongoing, 6.67 % +- reference/ + - compound_stmts.po--------------------Ongoing, 26.19 % + - datamodel.po-------------------------Ongoing, 34.96 % + - executionmodel.po--------------------Ongoing, 31.63 % + - expressions.po-----------------------Ongoing, 36.54 % + - grammar.po---------------------------Ongoing, 33.33 % + - import.po----------------------------Ongoing, 13.68 % + - index.po-----------------------------✅ + - introduction.po----------------------Ongoing, 35.48 % + - lexical_analysis.po------------------Ongoing, 46.73 % + - simple_stmts.po----------------------Ongoing, 37.18 % + - toplevel_components.po---------------✅ +- tutorial/ + - appendix.po--------------------------✅ + - appetite.po--------------------------✅ + - classes.po---------------------------✅ + - controlflow.po-----------------------✅ + - datastructures.po--------------------✅ + - errors.po----------------------------✅ + - floatingpoint.po---------------------✅ + - index.po-----------------------------✅ + - inputoutput.po-----------------------✅ + - interactive.po-----------------------✅ + - interpreter.po-----------------------✅ + - introduction.po----------------------✅, 💻 avatar220928 + - modules.po---------------------------✅ + - stdlib.po----------------------------✅ + - stdlib2.po---------------------------✅ + - venv.po------------------------------✅ + - whatnow.po---------------------------✅ +- using/ + - cmdline.po---------------------------Ongoing, 18.35 % + - configure.po-------------------------Ongoing, 35.11 % + - editors.po---------------------------Ongoing, 33.33 % + - index.po-----------------------------✅ + - mac.po-------------------------------✅ + - unix.po------------------------------✅ + - windows.po---------------------------Ongoing, 26.48 % +- whatsnew/ + - 2.0.po-------------------------------Ongoing, 6.59 % + - 2.1.po-------------------------------Ongoing, 12.23 % + - 2.2.po-------------------------------Ongoing, 2.62 % + - 2.3.po-------------------------------Ongoing, 4.91 % + - 2.4.po-------------------------------Ongoing, 6.34 % + - 2.5.po-------------------------------Ongoing, 12.63 % + - 2.6.po-------------------------------Ongoing, 8.32 % + - 2.7.po-------------------------------Ongoing, 4.64 % + - 3.0.po-------------------------------Ongoing, 17.56 % + - 3.1.po-------------------------------Ongoing, 35.71 % + - 3.10.po------------------------------✅ + - 3.11.po------------------------------Ongoing, 94.79 % + - 3.12.po------------------------------Ongoing, 43.82 %, 💻 mattwang44 + - 3.2.po-------------------------------Ongoing, 24.32 % + - 3.3.po-------------------------------Ongoing, 47.13 % + - 3.4.po-------------------------------Ongoing, 20.35 % + - 3.5.po-------------------------------Ongoing, 23.29 % + - 3.6.po-------------------------------Ongoing, 18.38 % + - 3.7.po-------------------------------Ongoing, 19.82 % + - 3.8.po-------------------------------Ongoing, 29.58 % + - 3.9.po-------------------------------Ongoing, 24.52 % + - changelog.po-------------------------✅ + - index.po-----------------------------✅ diff --git a/.scripts/summarize_progress/main.py b/.scripts/summarize_progress/main.py new file mode 100644 index 0000000000..c51541d347 --- /dev/null +++ b/.scripts/summarize_progress/main.py @@ -0,0 +1,138 @@ +import re +import polib +import glob +import datetime +import requests + +from pathlib import Path + + +def entry_check(pofile: polib.POFile) -> str: + ''' + Check the po file with how many entries are translated or not. + ''' + + lines_tranlated = len(pofile.translated_entries()) + lines_untranlated = len(pofile.untranslated_entries()) + + if lines_tranlated == 0: + result = "❌" + elif lines_untranlated == 0: + result = "✅" + else: + lines_all = lines_tranlated + lines_untranlated + progress = lines_tranlated / lines_all + progress_percentage = round(progress * 100, 2) + result = f"Ongoing, {progress_percentage} %" + + return result + + +def get_open_issues_count() -> int: + ''' + Fetch GitHub API to get the number of OPEN ISSUES. + ''' + + url = f"https://api.github.com/search/issues?q=repo:python/python-docs-zh-tw+type:issue+state:open" + headers = { + "Accept": "application/vnd.github+json", + "X-GitHub-Api-Version": "2022-11-28", + } + r = requests.get(url=url, headers=headers) + result = r.json() + + return result["total_count"] + + +def get_github_issues() -> list: + ''' + Fetch GitHub API to collect the infomation of OPEN ISSUES, + including issue title and assignee. + + Steps: + 1. Fetch GitHub API and get open issue list + 2. Filter the issue if it have no assignee + 3. Filter the issue if it have no "Translate" in the title + 4. Filter the issue if it have no correct filepath in the title + ''' + NUMBER_OF_ISSUES = get_open_issues_count() + + url = f"https://api.github.com/search/issues?q=repo:python/python-docs-zh-tw+type:issue+state:open&per_page={NUMBER_OF_ISSUES}" + headers = { + "Accept": "application/vnd.github+json", + "X-GitHub-Api-Version": "2022-11-28", + } + r = requests.get(url=url, headers=headers) + result = r.json() + + result_list = [] + for issue in result["items"]: + if issue["assignee"] is None: + continue + + title = issue["title"] + if "翻譯" not in title and "translate" not in title.lower(): + continue + + match = re.search("(?P[^\s`][a-zA-z-]+)/(?P[a-zA-Z0-9._-]+(.po)?)", title) + if not match: + continue + + dirname, filename = match.group('dirname', 'filename') + if not filename.endswith('.po'): + filename += '.po' + + result_list.append(((dirname, filename), issue["assignee"]["login"])) + + return result_list + +def format_line_file(filename: str, result: str) -> str: + return f" - {filename.ljust(37, '-')}{result}\r\n" + + +def format_line_directory(dirname: str) -> str: + return f"- {dirname}/\r\n" + + +if __name__ == "__main__": + issue_list = get_github_issues() + + ''' + Search all the po file in the directory, + and record the translation progress of each files. + ''' + BASE_DIR = Path("../") + summary = {} + for filepath in glob.glob(str(BASE_DIR / "**/*.po"), recursive=True): + path = Path(filepath) + filename = path.name + dirname = path.parent.name if path.parent.name != BASE_DIR.name else '/' + po = polib.pofile(filepath) + summary.setdefault(dirname, {})[filename] = entry_check(po) + + ''' + Unpack the open issue list, and add assignee after the progress + ''' + for (category, filename), assignee in issue_list: + try: + summary[category][filename] += f", 💻 {assignee}" + except KeyError: + pass + + ''' + Format the lines that will write into the markdown file, + also sort the directory name and file name. + ''' + writeliner = [] + summary_sorted = dict(sorted(summary.items())) + for dirname, filedict in summary_sorted.items(): + writeliner.append(format_line_directory(dirname)) + filedict_sorted = dict(sorted(filedict.items())) + for filename, result in filedict_sorted.items(): + writeliner.append(format_line_file(filename, result)) + + with open( + f"summarize_progress/dist/summarize_progress.md", + "w", + ) as file: + file.writelines(writeliner)