From 17063f9aab838509edeef1d43297ac079536b371 Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Sun, 22 Mar 2026 23:08:29 +0100 Subject: [PATCH 01/12] Add new linter --- .pre-commit-config.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7093afdf5..be098c214 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -46,5 +46,11 @@ repos: - id: deptry args: [".", "--per-rule-ignores", "DEP002=python-docs-theme", "--package-module-name-map", "gitpython=git,sphinx-lint=sphinxlint"] + - repo: https://github.com/djlint/djLint + rev: v1.36.4 + hooks: + - id: djlint-reformat-jinja + - id: djlint-jinja + ci: autoupdate_schedule: quarterly From 4562abfb8c01570dfe24cfb7cf4782efe60099c9 Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Sun, 22 Mar 2026 23:20:03 +0100 Subject: [PATCH 02/12] reformat --- templates/base.html.jinja | 174 +++++++++++++++-------------- templates/build-details.html.jinja | 80 ++++++------- templates/index.html.jinja | 92 +++++++-------- templates/progress_bar.html.jinja | 29 ++--- 4 files changed, 196 insertions(+), 179 deletions(-) diff --git a/templates/base.html.jinja b/templates/base.html.jinja index e90f7b19e..28570b0cc 100644 --- a/templates/base.html.jinja +++ b/templates/base.html.jinja @@ -1,70 +1,85 @@ - + - - - - - - - Python Docs Translation Dashboard - - - - - - -
- -
- -
- {% block main %} - {% endblock %} -
- - - - - - - - -{# Plausible analytics #} - - -{% block extrascript %} -{% endblock %} + + + + {# Plausible analytics #} + + + {% block extrascript %}{% endblock %} diff --git a/templates/build-details.html.jinja b/templates/build-details.html.jinja index 02c7c637a..0ceddc39e 100644 --- a/templates/build-details.html.jinja +++ b/templates/build-details.html.jinja @@ -1,43 +1,43 @@ {% extends "base.html.jinja" %} - {% block main %} - - - - - - - - - - - - {% for project, metadata in build_details | sort(attribute='0.completion') | reverse %} - {% if project.repository %} - - - - - - - - {% endif %} - {% endfor %} - -
languagebranchlast updatedbuild warnings*lint failures
{{ project.language.name }} ({{ project.language.code }}){{ project.branch }}{{ metadata[2].strftime('%Y/%m/%d %T') if metadata[2] else '' }} - {% if project.completion %} - {{ metadata[0] }} - {% else %} - {{ metadata[0] }} - {% endif %} - - {% if project.completion %} - {{ metadata[1] }} - {% else %} - {{ metadata[1] }} - {% endif %} -
- -

* number of Sphinx build process warnings

-

Last updated at {{ generation_time.strftime('%A, %-d %B %Y, %-H:%M:%S %Z') }} (in {{ duration // 60 }}:{{ "{:02}".format(duration % 60) }} minutes).

+ + + + + + + + + + + + {% for project, metadata in build_details | sort(attribute='0.completion') | reverse %} + {% if project.repository %} + + + + + + + + {% endif %} + {% endfor %} + +
languagebranchlast updatedbuild warnings*lint failures
{{ project.language.name }} ({{ project.language.code }}){{ project.branch }}{{ metadata[2].strftime("%Y/%m/%d %T") if metadata[2] else '' }} + {% if project.completion %} + {{ metadata[0] }} + {% else %} + {{ metadata[0] }} + {% endif %} + + {% if project.completion %} + {{ metadata[1] }} + {% else %} + {{ metadata[1] }} + {% endif %} +
+

* number of Sphinx build process warnings

+

+ Last updated at {{ generation_time.strftime("%A, %-d %B %Y, %-H:%M:%S %Z") }} (in {{ duration // 60 }}:{{ "{:02}".format(duration % 60) }} minutes). +

{% endblock %} diff --git a/templates/index.html.jinja b/templates/index.html.jinja index 790318006..52e4a6e10 100644 --- a/templates/index.html.jinja +++ b/templates/index.html.jinja @@ -1,51 +1,55 @@ {% extends "base.html.jinja" %} - {% block main %} -
-
- {% for project in completion_progress | sort(attribute='core_completion,completion') | reverse %} -
-
-
-

{{ project.language.name }}

-
{{ project.translated_name }}
- - - {# core progress bar #} - {% with width=project.core_completion, change=project.core_change, kind='core' %} - {% include 'progress_bar.html.jinja' %} - {% endwith %} - {# overall progress bar #} - {% with width=project.completion, change=project.change, kind='overall', extra_container_class='mt-1' %} - {% include 'progress_bar.html.jinja' %} - {% endwith %} -
+
+
+ {% for project in completion_progress | sort(attribute='core_completion,completion') | reverse %} +
+
+
+

+ {{ project.language.name }} +

+
{{ project.translated_name }}
+ + {# core progress bar #} + {% with width=project.core_completion, change=project.core_change, kind='core' %} + {% include 'progress_bar.html.jinja' %} + {% endwith %} + {# overall progress bar #} + {% with width=project.completion, change=project.change, kind='overall', extra_container_class='mt-1' %} + {% include 'progress_bar.html.jinja' %} + {% endwith %} +
+
+
+ {% endfor %}
-
- {% endfor %} -
-
- -

- Last updated {{ generation_time.strftime('on %A %-d %B %Y at %-H:%M:%S %Z') }} (in {{ duration // 60 }} minutes and {{ duration % 60 }} seconds).
- You can find the scripts used to generate this website on GitHub.
- You can download the data on this page in JSON format. -

+
+

+ Last updated {{ generation_time.strftime("on %A %-d %B %Y at %-H:%M:%S %Z") }} (in {{ duration // 60 }} minutes and {{ duration % 60 }} seconds). +
+ You can find the scripts used to generate this website on GitHub. +
+ You can download the data on this page in JSON format. +

{% endblock %} {% block extrascript %} - + {% endblock %} diff --git a/templates/progress_bar.html.jinja b/templates/progress_bar.html.jinja index a24a2e96d..17f473bf4 100644 --- a/templates/progress_bar.html.jinja +++ b/templates/progress_bar.html.jinja @@ -4,17 +4,20 @@ - change: numeric change value (same units as width) or falsy #}
-
- {{ kind }}: {{ '{:.2f}%'.format(width) }} {% if change >= 0.01 %}({{ '{:+.2f}%'.format(change) }}){% endif %} -
-
- {{ kind }}: {{ '{:.2f}%'.format(width) }} {% if change >= 0.01 %}({{ '{:+.2f}%'.format(change) }}){% endif %} -
+
+ {{ kind }}: {{ '{:.2f}%'.format(width) }} + {% if change >= 0.01 %} + ({{ '{:+.2f}%'.format(change) }}) + {% endif %} +
+
+ {{ kind }}: {{ '{:.2f}%'.format(width) }} + {% if change >= 0.01 %} + ({{ '{:+.2f}%'.format(change) }}) + {% endif %} +
From 2ecce5daa881845d378b3e5bd41fc0acc5f94560 Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Sun, 22 Mar 2026 23:33:40 +0100 Subject: [PATCH 03/12] add meta keywords, move styles to stylesheet, add height and width for logo, set endblock names, add ignore for flask internal links --- djlint.toml | 1 + src/style.css | 10 ++++++++++ templates/base.html.jinja | 11 +++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 djlint.toml diff --git a/djlint.toml b/djlint.toml new file mode 100644 index 000000000..cf12d762c --- /dev/null +++ b/djlint.toml @@ -0,0 +1 @@ +ignore="J018" diff --git a/src/style.css b/src/style.css index 14bd515f5..e721812cc 100644 --- a/src/style.css +++ b/src/style.css @@ -42,6 +42,16 @@ body { outline-offset: 8px; } +.navbar-brand a img { + height: 2rem; +} + +.navbar-brand a span { + font-size: 1.25rem; + font-weight: 700; + color: #4a4a4a; +} + .nav-link svg { vertical-align: middle; margin-top: -4.5px; diff --git a/templates/base.html.jinja b/templates/base.html.jinja index 28570b0cc..5b86078c9 100644 --- a/templates/base.html.jinja +++ b/templates/base.html.jinja @@ -6,6 +6,7 @@ content="width=device-width, initial-scale=1, shrink-to-fit=no"> + Python Docs Translation Dashboard @@ -40,14 +38,14 @@ {% endfor %}
-

+

Last updated {{ generation_time.strftime("on %A %-d %B %Y at %-H:%M:%S %Z") }} (in {{ duration // 60 }} minutes and {{ duration % 60 }} seconds).
You can find the scripts used to generate this website on GitHub.
You can download the data on this page in JSON format.

-{% endblock %} +{% endblock main %} {% block extrascript %} -{% endblock %} +{% endblock extrascript %} From bd4bd65cc3798a342c11bf3aaa395ba3207e7972 Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Mon, 23 Mar 2026 00:23:15 +0100 Subject: [PATCH 08/12] use spaceless tags inside attribute values --- templates/progress_bar.html.jinja | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/progress_bar.html.jinja b/templates/progress_bar.html.jinja index 17f473bf4..7c8633733 100644 --- a/templates/progress_bar.html.jinja +++ b/templates/progress_bar.html.jinja @@ -6,9 +6,9 @@
+ {%- if change and width -%} {# compute the relative change percentage safely #} {%- set rel = (change * 100 / width) -%} background: linear-gradient(to left, #94cf96 {{ rel }}%, #4caf50 {{ rel }}%); + {%- else -%} background-color: #4caf50; + {%- endif -%}"> {{ kind }}: {{ '{:.2f}%'.format(width) }} {% if change >= 0.01 %} ({{ '{:+.2f}%'.format(change) }}) From bc5c228000c4611f162073989ed82ead9e21b7ff Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Mon, 23 Mar 2026 00:34:00 +0100 Subject: [PATCH 09/12] add indentation setting to djlint configuration --- djlint.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/djlint.toml b/djlint.toml index cf12d762c..7eab3e9aa 100644 --- a/djlint.toml +++ b/djlint.toml @@ -1 +1,2 @@ ignore="J018" +indent=2 From 6ee38e5f10f8f567a8371775252b62b012a935ec Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Mon, 23 Mar 2026 00:34:24 +0100 Subject: [PATCH 10/12] reformat --- templates/base.html.jinja | 188 ++++++++++++++--------------- templates/build-details.html.jinja | 80 ++++++------ templates/index.html.jinja | 88 +++++++------- templates/progress_bar.html.jinja | 32 ++--- 4 files changed, 193 insertions(+), 195 deletions(-) diff --git a/templates/base.html.jinja b/templates/base.html.jinja index fe4b48b26..e2a773ecd 100644 --- a/templates/base.html.jinja +++ b/templates/base.html.jinja @@ -1,87 +1,87 @@ - - - - - - Python Docs Translation Dashboard - - - - -
- -
-
- {% block main %} - {% endblock main %} -
- - - - - {# Plausible analytics #} - - - {% block extrascript %} - {% endblock extrascript %} + + + + {# Plausible analytics #} + + + {% block extrascript %} + {% endblock extrascript %} diff --git a/templates/build-details.html.jinja b/templates/build-details.html.jinja index cc91fdb10..93e9f6298 100644 --- a/templates/build-details.html.jinja +++ b/templates/build-details.html.jinja @@ -1,43 +1,43 @@ {% extends "base.html.jinja" %} {% block main %} - - - - - - - - - - - - {% for project, metadata in build_details | sort(attribute='0.completion') | reverse %} - {% if project.repository %} - - - - - - - - {% endif %} - {% endfor %} - -
languagebranchlast updatedbuild warnings*lint failures
{{ project.language.name }} ({{ project.language.code }}){{ project.branch }}{{ metadata[2].strftime("%Y/%m/%d %T") if metadata[2] else '' }} - {% if project.completion %} - {{ metadata[0] }} - {% else %} - {{ metadata[0] }} - {% endif %} - - {% if project.completion %} - {{ metadata[1] }} - {% else %} - {{ metadata[1] }} - {% endif %} -
-

* number of Sphinx build process warnings

-

- Last updated at {{ generation_time.strftime("%A, %-d %B %Y, %-H:%M:%S %Z") }} (in {{ duration // 60 }}:{{ "{:02}".format(duration % 60) }} minutes). -

+ + + + + + + + + + + + {% for project, metadata in build_details | sort(attribute='0.completion') | reverse %} + {% if project.repository %} + + + + + + + + {% endif %} + {% endfor %} + +
languagebranchlast updatedbuild warnings*lint failures
{{ project.language.name }} ({{ project.language.code }}){{ project.branch }}{{ metadata[2].strftime("%Y/%m/%d %T") if metadata[2] else '' }} + {% if project.completion %} + {{ metadata[0] }} + {% else %} + {{ metadata[0] }} + {% endif %} + + {% if project.completion %} + {{ metadata[1] }} + {% else %} + {{ metadata[1] }} + {% endif %} +
+

* number of Sphinx build process warnings

+

+ Last updated at {{ generation_time.strftime("%A, %-d %B %Y, %-H:%M:%S %Z") }} (in {{ duration // 60 }}:{{ "{:02}".format(duration % 60) }} minutes). +

{% endblock main %} diff --git a/templates/index.html.jinja b/templates/index.html.jinja index b237a6269..cb5ae1bd7 100644 --- a/templates/index.html.jinja +++ b/templates/index.html.jinja @@ -1,53 +1,51 @@ {% extends "base.html.jinja" %} {% block main %} -
-
- {% for project in completion_progress | sort(attribute='core_completion,completion') | reverse %} -
-
-
-

- {{ project.language.name }} -

-
{{ project.translated_name }}
- - {# core progress bar #} - {% with width=project.core_completion, change=project.core_change, kind="core" %} - {% include "progress_bar.html.jinja" %} - {% endwith %} - {# overall progress bar #} - {% with width=project.completion, change=project.change, kind="overall", extra_container_class="mt-1" %} - {% include "progress_bar.html.jinja" %} - {% endwith %} -
-
-
- {% endfor %} +
+
+ {% for project in completion_progress | sort(attribute='core_completion,completion') | reverse %} +
+
+
+

+ {{ project.language.name }} +

+
{{ project.translated_name }}
+ + {# core progress bar #} + {% with width=project.core_completion, change=project.core_change, kind="core" %} + {% include "progress_bar.html.jinja" %} + {% endwith %} + {# overall progress bar #} + {% with width=project.completion, change=project.change, kind="overall", extra_container_class="mt-1" %} + {% include "progress_bar.html.jinja" %} + {% endwith %} +
+
+ {% endfor %}
-

- Last updated {{ generation_time.strftime("on %A %-d %B %Y at %-H:%M:%S %Z") }} (in {{ duration // 60 }} minutes and {{ duration % 60 }} seconds). -
- You can find the scripts used to generate this website on GitHub. -
- You can download the data on this page in JSON format. -

+
+

+ Last updated {{ generation_time.strftime("on %A %-d %B %Y at %-H:%M:%S %Z") }} (in {{ duration // 60 }} minutes and {{ duration % 60 }} seconds). +
+ You can find the scripts used to generate this website on GitHub. +
+ You can download the data on this page in JSON format. +

{% endblock main %} {% block extrascript %} - + {% endblock extrascript %} diff --git a/templates/progress_bar.html.jinja b/templates/progress_bar.html.jinja index 7c8633733..19b94d799 100644 --- a/templates/progress_bar.html.jinja +++ b/templates/progress_bar.html.jinja @@ -4,20 +4,20 @@ - change: numeric change value (same units as width) or falsy #}
-
- {{ kind }}: {{ '{:.2f}%'.format(width) }} - {% if change >= 0.01 %} - ({{ '{:+.2f}%'.format(change) }}) - {% endif %} -
-
- {{ kind }}: {{ '{:.2f}%'.format(width) }} - {% if change >= 0.01 %} - ({{ '{:+.2f}%'.format(change) }}) - {% endif %} -
+
+ {{ kind }}: {{ '{:.2f}%'.format(width) }} + {% if change >= 0.01 %} + ({{ '{:+.2f}%'.format(change) }}) + {% endif %} +
+
+ {{ kind }}: {{ '{:.2f}%'.format(width) }} + {% if change >= 0.01 %} + ({{ '{:+.2f}%'.format(change) }}) + {% endif %} +
From 0c0e3183df22700ecc696f0c1f16fe1ef2e94767 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:08:03 +0000 Subject: [PATCH 11/12] Merge branch 'main' into jinja-lint (resolve conflicts) Agent-Logs-Url: https://github.com/python-docs-translations/dashboard/sessions/5fd15b20-fc7a-43ce-9dce-7efaf823b384 Co-authored-by: m-aciek <9288014+m-aciek@users.noreply.github.com> --- __pycache__/completion.cpython-312.pyc | Bin 0 -> 4065 bytes __pycache__/contribute.cpython-312.pyc | Bin 0 -> 1571 bytes __pycache__/generate.cpython-312.pyc | Bin 0 -> 6042 bytes __pycache__/repositories.cpython-312.pyc | Bin 0 -> 2334 bytes __pycache__/translated_names.cpython-312.pyc | Bin 0 -> 1857 bytes tests/__pycache__/support.cpython-312.pyc | Bin 0 -> 1506 bytes .../test_contribute.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 3401 bytes .../test_index.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 1806 bytes ...est_repositories.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 2930 bytes ...translated_names.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 2023 bytes 10 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 __pycache__/completion.cpython-312.pyc create mode 100644 __pycache__/contribute.cpython-312.pyc create mode 100644 __pycache__/generate.cpython-312.pyc create mode 100644 __pycache__/repositories.cpython-312.pyc create mode 100644 __pycache__/translated_names.cpython-312.pyc create mode 100644 tests/__pycache__/support.cpython-312.pyc create mode 100644 tests/__pycache__/test_contribute.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_index.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_repositories.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_translated_names.cpython-312-pytest-9.0.3.pyc diff --git a/__pycache__/completion.cpython-312.pyc b/__pycache__/completion.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d1deb4a04f84be9b9e9371d7a584976bade3a7b4 GIT binary patch literal 4065 zcmcH+OKcm*b@t2Ol3bGdSh8eOrevA2EGBiFCWl$)*ZW z6zC9~dGqGYn>TOXZ~x%+x)HR$d3IB`IE217CwB9+fZcTfZX*dvgn|~#kyMBbxj+&o zOes``UZ5?QR+tRCz*;b&I2Ih%9_NA+Mn-XETnjF1jaA$k&w__QGATJ^PWJY}2}`8p ze4oD4I&{G&xn!^8hQCAh%RKzNX1~N(w5;TLpI!*85K-{=0vK?l#g1 z3kzMEw4wGW5fXW)g)bqUu~*V2m+!P9N;|)Ug6W+W{}NFo(zfP1$ZWk#qnqSSN~97< zB;WBN^iw#sM3$%`B~hkkB>HCvlST3td4s2sNR_A(c^PPl7JLOonR$bHdFJ)PL{ist z+GH%2lXKccZbeV3*$EXVVnQwz!?Gd^ntVcB5fynNt*Kdq)pSA6Yf;K@=dj!&FxbU> zVkxz3I5kuCZcGxi1*Uzq>Dj#`m+jDt!y6*AcoV-4{ zCf!cmN^N_>tJ4h@4UK&2{>1$&?pucD*sr*OYqM+TYo5^B`HE+-JTz1B%sgU{%fCy( zas$x}`;T1&pk}`RZ(O05!mQyI6*UWzNGWVyIj4%9hGaguWo|(*o=$Tsg4-2|JLVd+ z5~;T!FqtL_+)<(uWC3Q==$+4ihH{}InSNq~EixGF9one=#4z_W#{CRXqKm|b;KmWXpRpgeB551v4@@pilqqxaf8(g$p)Jr>CX(GDfB*Jp=~ zB9lJYrn4biHi^6Izhn9Wv=Uon(*sSovoARkNaBAq9n93P?dIBz3_U zxYM$PqVsOIEemLG{}WtA2d=r09MwEd_ZA&jxdNp7lCS8x>a`$$5nl8vRrD8qOUz{yK^<|S%hqpu97gy6XujSx6zFSdw2BU zyus;^95h8RgFEExjG#gCHt39y$`(R)E=#2JWPWi1(mQ;HNz$hs~s>yR^@PfTpmJSU%msb>n$>9|6^}n3b S=kdq(CYs6nx^l zY920;l$W)nfX%FDcrWW}ZVm`7TZ!_x-@K0*UTxvchp_CzMwkiN@R{g1C?jqOX*hCN zO+(>`pR>4%prv?AwVL6#rk&C@r7~DOlQWZiR|ZTb83%ov^0ulHqpuSS{5qCcF)3sd zvf*iRwk8@6N1FvuXTxS@F??WL9oz9mK$^)%`wWa?745Mo*t3@2nAjTL4*YQSLOnRV z9Xz^uY-_e0eW4P3;Su7Q;5D{E`dz_VXs{X@u7rknLPzU^;g8??;H~Q5Q3Ol zYKMQZ#`oX$-SSoWkqSSuv9!aVc!G&k_{a`Fvd1BBaBXgVY5lE@S2y&HrSkZha&T&g zJNp+d&=>*<_l}^R{`Il)(bM;&?e24{^L1ZW)fcV!qBU3O8dnc=ucgaJ&TI#!YN4TO zXsi+%+YXJ__~4$4@w2NhH#ijRs|F&KKxFlT(e=ver5f$|#r)6b>wNDzv#xKvx=C%m zu{E>JPu{--*JDC^h-6r(`FamkdyZ9lj;;RWD@UL~_qfLE-FpAfL-#M0 z`O$6uwOxwr@m-s3_>i~v=KS^fDi^76k&W3;FMV=phx~?4F&}c?;$D>Y&g-0XR6~zR^U+}0veR2<7P-?^gK8-gg*G1(Jin0 zHQEJkkQ||V>^z-OrMx0f;WuGw#$N3`=o%D35MLtC19b2KI`9CEevRB;BHshl_W+#$ zYa<;E(m}B6(;J}=<{lvccPSg$=sHIb(?pFAHK-fS9h&8) z7vYv3VT(lg0M?EZVHQLe`Q8rk#)CnBN^4g6S^WBDEy2q^+JqkBWAv*lNrgeJ4 z^u03io4ic9%BW6+Nn=&De66FmskZY`{mJ9n_TH0P{e9IGt`k<0=x(>Gwj94pbgnji zcjV8fFl~Pv@*oLmTfz*CvG?fTQ|?fd=xT=J8``>BscMfOZaw($p~|>ewaDGDHi4q* ztxiw%SzFtB@8jMSN{eZnH8lguZJJ}CsUiR_{A2>^e-g6Df3tDPszI6UdxBX;z^!uN ziNG$q)T8Wxy1HrWUij(D;R|+ye>bTX@QXX^#jShv&|+4PmTg_w#hq$#yF&D`5jcV8 z>UOyOa(|%C%^#}Mcj=PwtpsDtgZMaAgK0n%5;S#RD=87CJi@jg#)K1HARJ@R6ez-i z!Jfn7j)+#80T;lq=Jlb7m~%ipn@5VHd+h*-6r~vL`1L5ms0f(X#1NPa8HD&7wqSaS z;^rEUgV_47ag35yJCgVt5;{gA&S*3a(UHWkgop%t1=xd?r9sEX(ii9}4Ayv8-bJNU zJ-nBcPmel|&!~FSArl0RnL~@%77C%EJ%obr`ufW9PBfE3wYF#sZmuf8VfN@&aXSN0% zXd1rG$b@ur8F3=f0w5;$GrAgf8_;5G{s^Ye&>za%zbeHam15ugSi=waVq}$eu@e*qv9>nIV9p(oB?v zrzfNyzpf{eIS^;Q(a=55AD;$qG{!}zh}9IMw9XJ)hH$n7)0MK}`Xq4ZCVLaq_?6{{ zFkQ%!Bwb)E;j@(}b$=-1HGGbiPO|;gXLCaYcF1zJCJl1$4hp-2+}1` A&Hw-a literal 0 HcmV?d00001 diff --git a/__pycache__/generate.cpython-312.pyc b/__pycache__/generate.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e56fee13049f3e7249bdd43b61a7d690d3e67de4 GIT binary patch literal 6042 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 literal 0 HcmV?d00001 diff --git a/__pycache__/translated_names.cpython-312.pyc b/__pycache__/translated_names.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c9282ca3e4a703f2ffd66e576c2e1e735ee09935 GIT binary patch literal 1857 zcmZ`(O>7%Q6rS<^cx}gVn>K22t9C`Jf>p;pq^(*SDz(rSRH%>&l^PL+wPzgLUGJKi zF|H#=Diw!RLaMlsgdP$k4n-AGxb@1JOCld?hW3Pz;AZL~N>04l*d_#c(#*U!?`LM- z``&yXk4F*E@3C$vt|Ro568aSGFEUJ(!_m>tLQKi zR$nE80w}2vI)a#n(RI|&>gc9+9o2D4pF4Sp3R@JZEtunR*AbN1o>QTA!DqH(yN)+o zgU8zHsdl|2iuQRYN8L?4F7eEjl*yp3NE%g#aVo=%R$V7g<*r#OW=M&H)Rn0lX# zUUS?U-O6Q%sb@&j4HC}PJ8gUObhhYMXqMGHkFsptXE(CM;l-TqFtUyN`?5iFo~bru zJf|);l*deD>mkeClO zLqt>fFUNM6g4nly9ZgRn^ga|~UYpmOS~>pzwq=!v9Yl0u^x-;hH1+cC9R?s0b8siK zX*A73=ySY?G5YkZjvC=_G=QWv$D=mTMJn>e0sgq1tCd`ZROZ)ai#GA|Tx`BDlN^e3v6|n z)xUs@_qiDriR}YZt{PFL9Eho+$+&9Yz9DA{%Br3CU6_7B&!L;5XlU2n$vcy6E8ey~ z=o;FP`G<+Zv5!e7jEu-L3k{FnoxU@@bbRH^@|k7{?ZjkbtjI7j!5{(55w6@k!04XIUEdRAckYFu^B* z@sDWu2|DsK8he6LPtc)`Y2v+0S_i?hs;!bQqg};zM&fvUDb_)-+_%<7*Z9NN)^2`# PXyfH`&(t0}2J!v^nkUA0 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/support.cpython-312.pyc b/tests/__pycache__/support.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0cabc17707b54d3a8ca5ed6ff5a1032b53803b13 GIT binary patch literal 1506 zcmaJ>&ube;6n?WmB+RkX5(9XXm75!AtmI{_jXruB|@H<_ujmDJM-rI-stDK zxg4Opo{ikD0`NOcMxv)qbQ7IjaKK?5Xe5?37-wy5lzL_z-BGsKei~?~3VZ>Mx&@BL zwS6@SH}oMhGk?)!rODD%G8r5npc>$M!tjm6{=Zm1$8-@k9ORgoG!tDi8WN|wK zhcr?B3IA@wAKA(i`Ac@;1ejjh6Gw%Q9vW{{^xsh6Z&L5%In4epzsw%#=hYvw%j}u{ z$;^wHW!A*_SVp)+ix}Dk4h`l&Lvh#^G*sjO8XDn_SZk&(h|3A6iHaE<(X;sT0Cghm z6w1+@EJ0j_4Y0;*AI`_jlxlzvXSNBVDcN8nqKP~~O=jw$Du*)EdPrDU@P)hPdUnUU zXLtHMERN^?YMVEMFvAA{_Z(zalf3gysMBXMWmga*pw(+>QUEI@uGZrKKViIX0iqMFt zyLS=ATgjbXg2_Y)W0EqKlCrXv#l3(FtZRO{u5^LALlSkHa8xWmm=zS5;Fb`Jxox3C zC$`Z}OEBj0j8)8}BB$gm^Suuqdt+hDlO_l^kta1rs({K=;(LZUcg^z!xA>qr%>^I4 zpNk|ukDJI#sPM|=`NQ(%gYxAab;mfWR1YiWLB-rriG=S<+X)&gW`+p%>@K&gFlSj^ z-|2VA&s)~rzTHVyM42k2%|(?|g%qI~a}mFpSkWCMF|`G!imG2Y%`yF4lu`66Nj5z$ zligQpH8T@mJsmU3W=e{*QOUk`2F5<@29P%ov s6O}Rc3UaTYbdm=pf5@r_ta_>_tQ4uBES!+{Pi~f7dGh&dKob}D9}F}o<^TWy literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_contribute.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_contribute.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d994283e91031f3339aecec2cecba809d813bd00 GIT binary patch literal 3401 zcmb7GT}&I<6~6Ol8)Ngg2F%X}laO6|3wD#xCQ2iAY3%%L!%tanHnG}TW6uC%>>20I zIDlnWS#4IOQXa??M61N)2tIM(PVL(HhMnwQ8UCjX)|Y`qFb}JV02Y zZm;co&pr3tbIv{Y-0%1=ZnqOb`&ae0G-XHVpJZY+TZP#E2M}{eKmwIUG0GU}43nfO zlwo5WWvx?-CihP!6bBRJUx{L(+E)p2g zmTKDHYf(##NyS{ETVN;r2;l~>XG^tP68ocNk3!SbG<5=9j7Ccx?qny6|Q607&*Zv*hjfA`sr1KegZp+Opz^e1(Z6d z4RnxJUNG-0lAS-j7%`jlL1T z>y`Lb4d%~|Yg$%49}0<6*|dVipoV!_l}5#>U{cA1veVkQBKHVN(jsMX5&{>>U$iy~ z;_b1VB#1#%HmKmS5Xk2;qO9?nq{tydW!j+C{fRsl(rHoF>1;Z{=roV>jiv_65-3r7 zfbF*|jY-;gE^)xGLy`d|&*jH^w8_DI_}lFksO&Q@tLc|l5G*hLXoUG+0dLT9;PKg%(5WQ5d`8>t3ymuoF@$q6co&*f@I*-9)$xSF zW8nZr9uC|i^p;_GKXChcqrp4uP~K12FTb?lk&?tS^#OEu(0cRmjBEY18#9hg8>(rT z?Vb0ox{j~A>w#)tb-l6f`e2i0-8Gv|(!Ex5(z%7|s-jfM<(mo5cFj9BkD-R9x%T_* z3%!fN7dK|x*Xl1lN0d8Ct=Dw_udXeL^ch< z=N&}j&ar*Yu1eze+c*0=xRnmB-(U3-VpPGJffyTriE~KXd;h5lM#B1DvkZPZM)3knOa;2Y9Pqg22noj0 zv&>rfRb;_x{SmTUfjz2@B{in*iTsn$)EN^9d5{NALOseah@(8q}(n zG43N1k2tC#bs?N6a$1WeRNzwJ+u`;<^d42cD))^&5S@<0`UrZ%SskC! zRy>Uw(D@3vssd-6zjBA91`4Ri{hYh^u{lms+Hq?yoXBU?p8sFlvZZYjnbqNN)tII3 zovYLh=U{-+*)%VY>FgDN%rVn`*E_(rYf?s3a@yBVfho;`+j*xCi&_rLqTtJSorei8 z_$pG}K6OIMW+i#dr>2!jAAsC#5$EaizCeR+&*5}hN}SQFhZQ9~z{~uYh;c3G)mxG| zRZ}wi00bHg_)~RG(!`94NsjAwEZ)iy{Io|+uXLvgq*0s`b(;zWDyQmBaVjZhNvTqG z_W(aNB5HU#g0X^ir=&_Uh{;J12gg-K*6T*#02O_vl!F{1O6;(syp-0fB9_8{4U^}g zv!sOJW`iUsty5U1!~@`qNzUpX0~d*a8t1VXzs;v5A^+y90Q8Wc4^*h9AmVq>Mr~8M z_IRoG_*!k(47<_VRc`Gowf2=;!=={nTI;1P-CK$P7;jtKS$N>;3n;? z53YOLKXW~BEnHuW{{HMA-u~U&PkYyXFg)*C^Zt0Yf8FDq8@fNV?rodD_1V;esV}`f zizl9WdmeT@YA>Vq52oeQ16@&C%de7W4+SL*I7cMp}ihn_VL6Ia|1+>4$?+iGxR^^NzQd85RG ztM{)icou96iN*RwW?n9PdP<(2|7XTGOiz!N?>#Z^i`6Mpd9uL&&jzmsMYmlb8>z(X$d~enghyPQMltDA)A-#iGoW$@v z^r}4;c_Jpy37d`da6e2TPmwwb9oz;*{f(UUquQ@f4SfI3wcYuk%(a!c zwl(f`DBD!iS8OBHW~%9h<0KWF_m*4UDz&`z0>NZ+m_n>;CjVEaWu2|RbLAHU9}avx fw8}8%Zh~q~HJPP*iR(YfteoWfgZBRd42MtN literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_index.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_index.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3216790db6a6b71bb1476f3129b6965952814b11 GIT binary patch literal 1806 zcmZV;OK%%Rc=qA-dhIw5_j~r|zCHu+ z^E}zLcNGBs5JYse9@71rBToSYP;x+33U1j|YO(}ewHlK`iB{FPM0VnCyc+NE^s3Hz zij#1Ss^KQ9NeRdR>5W_z;_Tk&p>KemZC|x7h?K6Tp(K7Aa;PGFybqwd4qyyvjf-bK zB5Z?KB2IMx4MJ_{5&(FJ$JH9+A^$v#;!2<`wWU|V6d=+vuk1e0Ljqr2TT$+VWvLWD z6h`wUiRsXyh}teH$t?Mv_rS)!=OT}?f!nr&K5i3=+&SNZ2-nWXk$OaTh$Bw{3L06J zp|lRFN?R@|EI|>WA9@h2)FNeJlj46-PnV~|4e6Wb)w3^9HhiP|x$0qgFbhAzC zzIO%sHFBlttg6%HshLB_LmXZeK=kTREYrQ!Or6puxlyU06^lDX<(lu745mAlx7e~4 z5i>Aq`oyL_ZZmBGTVAcs`fEN$CfDQ!)b>4QoWql$u+AMIrq#kbw$QR2%K9mHKt$@$ z^eh*#!J6+;Y%jEg8`H79rPTpjY(TkAU8mfzy@tg%BXj28Y+`>ABSKjJBJvQn0!y)u zd@)-gSu(K7tHWacOz){7mYM4nbr<^$RHN@&)MBaA`fNm)9;vX@BBEy0Xr^Jrv%*+x z98)}hnJ1+Z*q8t=1 z?GA7t^x0RpV(J$}m)7$!Vr+96vaQ$F({JXht=DwZpWOGMxkeGQ6)P&LH zN$`(^%5*aruxT>GG+iII9K`XIX@1tS95H&+#3io#1Hcpf!u%5ja6AIy$rC}XgRVRj zGeRA~5RP5T_Dr*sVS2Dtwntd%?Pl9NrSc|!0K8LWix7mxf|M~@#x_MPamr%xh-Yx) zpq&+S<3CJnSFKmMU11zMn*Ee*7pXA+XKa8z=@;FKutYa{YA-l)WNk6zP$7J&KDmY eDL{Ss#dU6QBpjTOBoFsv;?}hC({$|CZ2TYSOV!{2 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_repositories.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_repositories.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f7cadd5172d6fbd9353d4a381905b18c3af33223 GIT binary patch literal 2930 zcmb6bTWl0n^v-iRB8_i_8bK9MEc4obEm(op1 zNaUj=7%?#cqlx&Xq(067 zoV$PMdIG_EoLsaIsR;eWnP>qYti}6)t{@9pf`jrxfW?wj5Cv3{^NJ8k)VvxqTbP}axJ{jmrPO7BmbpeS8$3{1VL7L%oo!O7-zSH?M_>i4+DU;8@p1^<8 zVyMRb97mRN0a+?mN4GS43h8Mn#Q8N7!dA2g`NBAy{WN$N(4~!MrPF9!$i^OWrNOMg zp2D z6LMBz8H#<%WB4}ph>iV%&=i1YpPzg2Hvm@f6Emns53tlN#o}fj~%|$v)E}6FbkRLHCGIfZUZlTB&3zy+)G^SBpDi7NZ zX0g(k#Tgdk(6R~PNnjCW>48xrUGE2K&nsEa7ANVfmso`Ywg=-+jmS!my&mTHecKNCC5+xXu4EQE%0fadu?Lab}Vv`*6#@#Rzz0YJ~g}jSfuK@tb&|1FKFY1>I zSH`{?yRB^@ov^*)qZ+LtL$No16y={9tknu0J}(++ks9Er4I+F_m=unoPkRtLCr*l= zK!kJBIT>u@O-6NcQli25cb^OeU?}7`#@X7K8t-&HeIk-RR`o^8Or>m=R8lP>{OL% zv5$^d+fEVFvZ?L4rnBj2(RQ(qtDUPv4%C@wQx+SbremA#s=;mgkoQqG&SZ#AS&9#{ zXwI;X5ljuI{x123=~}_C^9j!t%fRfxgbw%vu1{fdVxsVEt-kFtJ*18kY*I{^|DJP_YTqgy4>S2W>b>CF7vOf! zqr0u^zINu?57gQZ{IYNE;9%|G;B5PQv#lqm)cfnY|3PAW@6=oK>w7Prm^yZO+k7fB zm)cxQZN9echITu(XF&n^f`;NcpCWhlbyxRYvv29UXZ8-vq)yy?dr1=Gi3Rng38}3MoLX25)FV+)w$}GJrFJX3Lr>gE zwvA~+72Bb<>$BA1@`Tag)*Ddm@ZR-@#RZ+vPw+UgDQ5A;7K=rD2`~-{$RtdwxHjbs zi}{su*&~$jgA)EMuo!>A9eXHz*(LbX5I*NEc8O~meu3C!>XV(^A}sV%;OeLeJrI2N z0WRRLNRW%C+MzI+Z;<1##|Mi45r73r5QIN@Vm?pbK`nO>K>csjc@M3 zJF_#hKWbV#F#5Zr;=CmS{KhvSDRriDhcT;QfrVU1q3U1AiD>~rPD;tBrcqK#RTD`? z*k5qfTwAIQfdFZRj{j9k`gSm2r1DL*eVr8U7}sSP5je=<63X~rXP@W2;_Kv zw>*S|WLH4`RcE-1Jan z_kkcS&I|Ks26SbD3bsduf;%hEP7S3!suc1rnRbFGi{+2+7H)sPa(m<2oi8rx3hnl> z=@HlTZOib?oK2{fv3scX$5*t9C?q;}Wx1#Q*KU1TT}zfl z&>mgRm!eOUMJBzZ+y(Y4cS4)CqT?X#q8QzbJ$==?uAcm-5@Tl&J_g@tr;jNuqr|1vQCefnDzG+g z3=$bT%JM5eKWqgPTH>$Y)W_k{j_ea;D=MhTcupN%oHVjz?(p zl|s>I>|#ct$lEzln?Wb Date: Thu, 30 Apr 2026 08:08:23 +0000 Subject: [PATCH 12/12] Add __pycache__ to .gitignore and remove from tracking Agent-Logs-Url: https://github.com/python-docs-translations/dashboard/sessions/5fd15b20-fc7a-43ce-9dce-7efaf823b384 Co-authored-by: m-aciek <9288014+m-aciek@users.noreply.github.com> --- .gitignore | 2 ++ __pycache__/completion.cpython-312.pyc | Bin 4065 -> 0 bytes __pycache__/contribute.cpython-312.pyc | Bin 1571 -> 0 bytes __pycache__/generate.cpython-312.pyc | Bin 6042 -> 0 bytes __pycache__/repositories.cpython-312.pyc | Bin 2334 -> 0 bytes __pycache__/translated_names.cpython-312.pyc | Bin 1857 -> 0 bytes tests/__pycache__/support.cpython-312.pyc | Bin 1506 -> 0 bytes .../test_contribute.cpython-312-pytest-9.0.3.pyc | Bin 3401 -> 0 bytes .../test_index.cpython-312-pytest-9.0.3.pyc | Bin 1806 -> 0 bytes ...est_repositories.cpython-312-pytest-9.0.3.pyc | Bin 2930 -> 0 bytes ...translated_names.cpython-312-pytest-9.0.3.pyc | Bin 2023 -> 0 bytes 11 files changed, 2 insertions(+) delete mode 100644 __pycache__/completion.cpython-312.pyc delete mode 100644 __pycache__/contribute.cpython-312.pyc delete mode 100644 __pycache__/generate.cpython-312.pyc delete mode 100644 __pycache__/repositories.cpython-312.pyc delete mode 100644 __pycache__/translated_names.cpython-312.pyc delete mode 100644 tests/__pycache__/support.cpython-312.pyc delete mode 100644 tests/__pycache__/test_contribute.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_index.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_repositories.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_translated_names.cpython-312-pytest-9.0.3.pyc diff --git a/.gitignore b/.gitignore index 23175579b..4d0066e56 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ build clones venv +__pycache__ +*.pyc diff --git a/__pycache__/completion.cpython-312.pyc b/__pycache__/completion.cpython-312.pyc deleted file mode 100644 index d1deb4a04f84be9b9e9371d7a584976bade3a7b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4065 zcmcH+OKcm*b@t2Ol3bGdSh8eOrevA2EGBiFCWl$)*ZW z6zC9~dGqGYn>TOXZ~x%+x)HR$d3IB`IE217CwB9+fZcTfZX*dvgn|~#kyMBbxj+&o zOes``UZ5?QR+tRCz*;b&I2Ih%9_NA+Mn-XETnjF1jaA$k&w__QGATJ^PWJY}2}`8p ze4oD4I&{G&xn!^8hQCAh%RKzNX1~N(w5;TLpI!*85K-{=0vK?l#g1 z3kzMEw4wGW5fXW)g)bqUu~*V2m+!P9N;|)Ug6W+W{}NFo(zfP1$ZWk#qnqSSN~97< zB;WBN^iw#sM3$%`B~hkkB>HCvlST3td4s2sNR_A(c^PPl7JLOonR$bHdFJ)PL{ist z+GH%2lXKccZbeV3*$EXVVnQwz!?Gd^ntVcB5fynNt*Kdq)pSA6Yf;K@=dj!&FxbU> zVkxz3I5kuCZcGxi1*Uzq>Dj#`m+jDt!y6*AcoV-4{ zCf!cmN^N_>tJ4h@4UK&2{>1$&?pucD*sr*OYqM+TYo5^B`HE+-JTz1B%sgU{%fCy( zas$x}`;T1&pk}`RZ(O05!mQyI6*UWzNGWVyIj4%9hGaguWo|(*o=$Tsg4-2|JLVd+ z5~;T!FqtL_+)<(uWC3Q==$+4ihH{}InSNq~EixGF9one=#4z_W#{CRXqKm|b;KmWXpRpgeB551v4@@pilqqxaf8(g$p)Jr>CX(GDfB*Jp=~ zB9lJYrn4biHi^6Izhn9Wv=Uon(*sSovoARkNaBAq9n93P?dIBz3_U zxYM$PqVsOIEemLG{}WtA2d=r09MwEd_ZA&jxdNp7lCS8x>a`$$5nl8vRrD8qOUz{yK^<|S%hqpu97gy6XujSx6zFSdw2BU zyus;^95h8RgFEExjG#gCHt39y$`(R)E=#2JWPWi1(mQ;HNz$hs~s>yR^@PfTpmJSU%msb>n$>9|6^}n3b S=kdq(CYs6nx^l zY920;l$W)nfX%FDcrWW}ZVm`7TZ!_x-@K0*UTxvchp_CzMwkiN@R{g1C?jqOX*hCN zO+(>`pR>4%prv?AwVL6#rk&C@r7~DOlQWZiR|ZTb83%ov^0ulHqpuSS{5qCcF)3sd zvf*iRwk8@6N1FvuXTxS@F??WL9oz9mK$^)%`wWa?745Mo*t3@2nAjTL4*YQSLOnRV z9Xz^uY-_e0eW4P3;Su7Q;5D{E`dz_VXs{X@u7rknLPzU^;g8??;H~Q5Q3Ol zYKMQZ#`oX$-SSoWkqSSuv9!aVc!G&k_{a`Fvd1BBaBXgVY5lE@S2y&HrSkZha&T&g zJNp+d&=>*<_l}^R{`Il)(bM;&?e24{^L1ZW)fcV!qBU3O8dnc=ucgaJ&TI#!YN4TO zXsi+%+YXJ__~4$4@w2NhH#ijRs|F&KKxFlT(e=ver5f$|#r)6b>wNDzv#xKvx=C%m zu{E>JPu{--*JDC^h-6r(`FamkdyZ9lj;;RWD@UL~_qfLE-FpAfL-#M0 z`O$6uwOxwr@m-s3_>i~v=KS^fDi^76k&W3;FMV=phx~?4F&}c?;$D>Y&g-0XR6~zR^U+}0veR2<7P-?^gK8-gg*G1(Jin0 zHQEJkkQ||V>^z-OrMx0f;WuGw#$N3`=o%D35MLtC19b2KI`9CEevRB;BHshl_W+#$ zYa<;E(m}B6(;J}=<{lvccPSg$=sHIb(?pFAHK-fS9h&8) z7vYv3VT(lg0M?EZVHQLe`Q8rk#)CnBN^4g6S^WBDEy2q^+JqkBWAv*lNrgeJ4 z^u03io4ic9%BW6+Nn=&De66FmskZY`{mJ9n_TH0P{e9IGt`k<0=x(>Gwj94pbgnji zcjV8fFl~Pv@*oLmTfz*CvG?fTQ|?fd=xT=J8``>BscMfOZaw($p~|>ewaDGDHi4q* ztxiw%SzFtB@8jMSN{eZnH8lguZJJ}CsUiR_{A2>^e-g6Df3tDPszI6UdxBX;z^!uN ziNG$q)T8Wxy1HrWUij(D;R|+ye>bTX@QXX^#jShv&|+4PmTg_w#hq$#yF&D`5jcV8 z>UOyOa(|%C%^#}Mcj=PwtpsDtgZMaAgK0n%5;S#RD=87CJi@jg#)K1HARJ@R6ez-i z!Jfn7j)+#80T;lq=Jlb7m~%ipn@5VHd+h*-6r~vL`1L5ms0f(X#1NPa8HD&7wqSaS z;^rEUgV_47ag35yJCgVt5;{gA&S*3a(UHWkgop%t1=xd?r9sEX(ii9}4Ayv8-bJNU zJ-nBcPmel|&!~FSArl0RnL~@%77C%EJ%obr`ufW9PBfE3wYF#sZmuf8VfN@&aXSN0% zXd1rG$b@ur8F3=f0w5;$GrAgf8_;5G{s^Ye&>za%zbeHam15ugSi=waVq}$eu@e*qv9>nIV9p(oB?v zrzfNyzpf{eIS^;Q(a=55AD;$qG{!}zh}9IMw9XJ)hH$n7)0MK}`Xq4ZCVLaq_?6{{ zFkQ%!Bwb)E;j@(}b$=-1HGGbiPO|;gXLCaYcF1zJCJl1$4hp-2+}1` A&Hw-a diff --git a/__pycache__/generate.cpython-312.pyc b/__pycache__/generate.cpython-312.pyc deleted file mode 100644 index e56fee13049f3e7249bdd43b61a7d690d3e67de4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6042 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 diff --git a/__pycache__/translated_names.cpython-312.pyc b/__pycache__/translated_names.cpython-312.pyc deleted file mode 100644 index c9282ca3e4a703f2ffd66e576c2e1e735ee09935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1857 zcmZ`(O>7%Q6rS<^cx}gVn>K22t9C`Jf>p;pq^(*SDz(rSRH%>&l^PL+wPzgLUGJKi zF|H#=Diw!RLaMlsgdP$k4n-AGxb@1JOCld?hW3Pz;AZL~N>04l*d_#c(#*U!?`LM- z``&yXk4F*E@3C$vt|Ro568aSGFEUJ(!_m>tLQKi zR$nE80w}2vI)a#n(RI|&>gc9+9o2D4pF4Sp3R@JZEtunR*AbN1o>QTA!DqH(yN)+o zgU8zHsdl|2iuQRYN8L?4F7eEjl*yp3NE%g#aVo=%R$V7g<*r#OW=M&H)Rn0lX# zUUS?U-O6Q%sb@&j4HC}PJ8gUObhhYMXqMGHkFsptXE(CM;l-TqFtUyN`?5iFo~bru zJf|);l*deD>mkeClO zLqt>fFUNM6g4nly9ZgRn^ga|~UYpmOS~>pzwq=!v9Yl0u^x-;hH1+cC9R?s0b8siK zX*A73=ySY?G5YkZjvC=_G=QWv$D=mTMJn>e0sgq1tCd`ZROZ)ai#GA|Tx`BDlN^e3v6|n z)xUs@_qiDriR}YZt{PFL9Eho+$+&9Yz9DA{%Br3CU6_7B&!L;5XlU2n$vcy6E8ey~ z=o;FP`G<+Zv5!e7jEu-L3k{FnoxU@@bbRH^@|k7{?ZjkbtjI7j!5{(55w6@k!04XIUEdRAckYFu^B* z@sDWu2|DsK8he6LPtc)`Y2v+0S_i?hs;!bQqg};zM&fvUDb_)-+_%<7*Z9NN)^2`# PXyfH`&(t0}2J!v^nkUA0 diff --git a/tests/__pycache__/support.cpython-312.pyc b/tests/__pycache__/support.cpython-312.pyc deleted file mode 100644 index 0cabc17707b54d3a8ca5ed6ff5a1032b53803b13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1506 zcmaJ>&ube;6n?WmB+RkX5(9XXm75!AtmI{_jXruB|@H<_ujmDJM-rI-stDK zxg4Opo{ikD0`NOcMxv)qbQ7IjaKK?5Xe5?37-wy5lzL_z-BGsKei~?~3VZ>Mx&@BL zwS6@SH}oMhGk?)!rODD%G8r5npc>$M!tjm6{=Zm1$8-@k9ORgoG!tDi8WN|wK zhcr?B3IA@wAKA(i`Ac@;1ejjh6Gw%Q9vW{{^xsh6Z&L5%In4epzsw%#=hYvw%j}u{ z$;^wHW!A*_SVp)+ix}Dk4h`l&Lvh#^G*sjO8XDn_SZk&(h|3A6iHaE<(X;sT0Cghm z6w1+@EJ0j_4Y0;*AI`_jlxlzvXSNBVDcN8nqKP~~O=jw$Du*)EdPrDU@P)hPdUnUU zXLtHMERN^?YMVEMFvAA{_Z(zalf3gysMBXMWmga*pw(+>QUEI@uGZrKKViIX0iqMFt zyLS=ATgjbXg2_Y)W0EqKlCrXv#l3(FtZRO{u5^LALlSkHa8xWmm=zS5;Fb`Jxox3C zC$`Z}OEBj0j8)8}BB$gm^Suuqdt+hDlO_l^kta1rs({K=;(LZUcg^z!xA>qr%>^I4 zpNk|ukDJI#sPM|=`NQ(%gYxAab;mfWR1YiWLB-rriG=S<+X)&gW`+p%>@K&gFlSj^ z-|2VA&s)~rzTHVyM42k2%|(?|g%qI~a}mFpSkWCMF|`G!imG2Y%`yF4lu`66Nj5z$ zligQpH8T@mJsmU3W=e{*QOUk`2F5<@29P%ov s6O}Rc3UaTYbdm=pf5@r_ta_>_tQ4uBES!+{Pi~f7dGh&dKob}D9}F}o<^TWy diff --git a/tests/__pycache__/test_contribute.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_contribute.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index d994283e91031f3339aecec2cecba809d813bd00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3401 zcmb7GT}&I<6~6Ol8)Ngg2F%X}laO6|3wD#xCQ2iAY3%%L!%tanHnG}TW6uC%>>20I zIDlnWS#4IOQXa??M61N)2tIM(PVL(HhMnwQ8UCjX)|Y`qFb}JV02Y zZm;co&pr3tbIv{Y-0%1=ZnqOb`&ae0G-XHVpJZY+TZP#E2M}{eKmwIUG0GU}43nfO zlwo5WWvx?-CihP!6bBRJUx{L(+E)p2g zmTKDHYf(##NyS{ETVN;r2;l~>XG^tP68ocNk3!SbG<5=9j7Ccx?qny6|Q607&*Zv*hjfA`sr1KegZp+Opz^e1(Z6d z4RnxJUNG-0lAS-j7%`jlL1T z>y`Lb4d%~|Yg$%49}0<6*|dVipoV!_l}5#>U{cA1veVkQBKHVN(jsMX5&{>>U$iy~ z;_b1VB#1#%HmKmS5Xk2;qO9?nq{tydW!j+C{fRsl(rHoF>1;Z{=roV>jiv_65-3r7 zfbF*|jY-;gE^)xGLy`d|&*jH^w8_DI_}lFksO&Q@tLc|l5G*hLXoUG+0dLT9;PKg%(5WQ5d`8>t3ymuoF@$q6co&*f@I*-9)$xSF zW8nZr9uC|i^p;_GKXChcqrp4uP~K12FTb?lk&?tS^#OEu(0cRmjBEY18#9hg8>(rT z?Vb0ox{j~A>w#)tb-l6f`e2i0-8Gv|(!Ex5(z%7|s-jfM<(mo5cFj9BkD-R9x%T_* z3%!fN7dK|x*Xl1lN0d8Ct=Dw_udXeL^ch< z=N&}j&ar*Yu1eze+c*0=xRnmB-(U3-VpPGJffyTriE~KXd;h5lM#B1DvkZPZM)3knOa;2Y9Pqg22noj0 zv&>rfRb;_x{SmTUfjz2@B{in*iTsn$)EN^9d5{NALOseah@(8q}(n zG43N1k2tC#bs?N6a$1WeRNzwJ+u`;<^d42cD))^&5S@<0`UrZ%SskC! zRy>Uw(D@3vssd-6zjBA91`4Ri{hYh^u{lms+Hq?yoXBU?p8sFlvZZYjnbqNN)tII3 zovYLh=U{-+*)%VY>FgDN%rVn`*E_(rYf?s3a@yBVfho;`+j*xCi&_rLqTtJSorei8 z_$pG}K6OIMW+i#dr>2!jAAsC#5$EaizCeR+&*5}hN}SQFhZQ9~z{~uYh;c3G)mxG| zRZ}wi00bHg_)~RG(!`94NsjAwEZ)iy{Io|+uXLvgq*0s`b(;zWDyQmBaVjZhNvTqG z_W(aNB5HU#g0X^ir=&_Uh{;J12gg-K*6T*#02O_vl!F{1O6;(syp-0fB9_8{4U^}g zv!sOJW`iUsty5U1!~@`qNzUpX0~d*a8t1VXzs;v5A^+y90Q8Wc4^*h9AmVq>Mr~8M z_IRoG_*!k(47<_VRc`Gowf2=;!=={nTI;1P-CK$P7;jtKS$N>;3n;? z53YOLKXW~BEnHuW{{HMA-u~U&PkYyXFg)*C^Zt0Yf8FDq8@fNV?rodD_1V;esV}`f zizl9WdmeT@YA>Vq52oeQ16@&C%de7W4+SL*I7cMp}ihn_VL6Ia|1+>4$?+iGxR^^NzQd85RG ztM{)icou96iN*RwW?n9PdP<(2|7XTGOiz!N?>#Z^i`6Mpd9uL&&jzmsMYmlb8>z(X$d~enghyPQMltDA)A-#iGoW$@v z^r}4;c_Jpy37d`da6e2TPmwwb9oz;*{f(UUquQ@f4SfI3wcYuk%(a!c zwl(f`DBD!iS8OBHW~%9h<0KWF_m*4UDz&`z0>NZ+m_n>;CjVEaWu2|RbLAHU9}avx fw8}8%Zh~q~HJPP*iR(YfteoWfgZBRd42MtN diff --git a/tests/__pycache__/test_index.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_index.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index 3216790db6a6b71bb1476f3129b6965952814b11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1806 zcmZV;OK%%Rc=qA-dhIw5_j~r|zCHu+ z^E}zLcNGBs5JYse9@71rBToSYP;x+33U1j|YO(}ewHlK`iB{FPM0VnCyc+NE^s3Hz zij#1Ss^KQ9NeRdR>5W_z;_Tk&p>KemZC|x7h?K6Tp(K7Aa;PGFybqwd4qyyvjf-bK zB5Z?KB2IMx4MJ_{5&(FJ$JH9+A^$v#;!2<`wWU|V6d=+vuk1e0Ljqr2TT$+VWvLWD z6h`wUiRsXyh}teH$t?Mv_rS)!=OT}?f!nr&K5i3=+&SNZ2-nWXk$OaTh$Bw{3L06J zp|lRFN?R@|EI|>WA9@h2)FNeJlj46-PnV~|4e6Wb)w3^9HhiP|x$0qgFbhAzC zzIO%sHFBlttg6%HshLB_LmXZeK=kTREYrQ!Or6puxlyU06^lDX<(lu745mAlx7e~4 z5i>Aq`oyL_ZZmBGTVAcs`fEN$CfDQ!)b>4QoWql$u+AMIrq#kbw$QR2%K9mHKt$@$ z^eh*#!J6+;Y%jEg8`H79rPTpjY(TkAU8mfzy@tg%BXj28Y+`>ABSKjJBJvQn0!y)u zd@)-gSu(K7tHWacOz){7mYM4nbr<^$RHN@&)MBaA`fNm)9;vX@BBEy0Xr^Jrv%*+x z98)}hnJ1+Z*q8t=1 z?GA7t^x0RpV(J$}m)7$!Vr+96vaQ$F({JXht=DwZpWOGMxkeGQ6)P&LH zN$`(^%5*aruxT>GG+iII9K`XIX@1tS95H&+#3io#1Hcpf!u%5ja6AIy$rC}XgRVRj zGeRA~5RP5T_Dr*sVS2Dtwntd%?Pl9NrSc|!0K8LWix7mxf|M~@#x_MPamr%xh-Yx) zpq&+S<3CJnSFKmMU11zMn*Ee*7pXA+XKa8z=@;FKutYa{YA-l)WNk6zP$7J&KDmY eDL{Ss#dU6QBpjTOBoFsv;?}hC({$|CZ2TYSOV!{2 diff --git a/tests/__pycache__/test_repositories.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_repositories.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index f7cadd5172d6fbd9353d4a381905b18c3af33223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2930 zcmb6bTWl0n^v-iRB8_i_8bK9MEc4obEm(op1 zNaUj=7%?#cqlx&Xq(067 zoV$PMdIG_EoLsaIsR;eWnP>qYti}6)t{@9pf`jrxfW?wj5Cv3{^NJ8k)VvxqTbP}axJ{jmrPO7BmbpeS8$3{1VL7L%oo!O7-zSH?M_>i4+DU;8@p1^<8 zVyMRb97mRN0a+?mN4GS43h8Mn#Q8N7!dA2g`NBAy{WN$N(4~!MrPF9!$i^OWrNOMg zp2D z6LMBz8H#<%WB4}ph>iV%&=i1YpPzg2Hvm@f6Emns53tlN#o}fj~%|$v)E}6FbkRLHCGIfZUZlTB&3zy+)G^SBpDi7NZ zX0g(k#Tgdk(6R~PNnjCW>48xrUGE2K&nsEa7ANVfmso`Ywg=-+jmS!my&mTHecKNCC5+xXu4EQE%0fadu?Lab}Vv`*6#@#Rzz0YJ~g}jSfuK@tb&|1FKFY1>I zSH`{?yRB^@ov^*)qZ+LtL$No16y={9tknu0J}(++ks9Er4I+F_m=unoPkRtLCr*l= zK!kJBIT>u@O-6NcQli25cb^OeU?}7`#@X7K8t-&HeIk-RR`o^8Or>m=R8lP>{OL% zv5$^d+fEVFvZ?L4rnBj2(RQ(qtDUPv4%C@wQx+SbremA#s=;mgkoQqG&SZ#AS&9#{ zXwI;X5ljuI{x123=~}_C^9j!t%fRfxgbw%vu1{fdVxsVEt-kFtJ*18kY*I{^|DJP_YTqgy4>S2W>b>CF7vOf! zqr0u^zINu?57gQZ{IYNE;9%|G;B5PQv#lqm)cfnY|3PAW@6=oK>w7Prm^yZO+k7fB zm)cxQZN9echITu(XF&n^f`;NcpCWhlbyxRYvv29UXZ8-vq)yy?dr1=Gi3Rng38}3MoLX25)FV+)w$}GJrFJX3Lr>gE zwvA~+72Bb<>$BA1@`Tag)*Ddm@ZR-@#RZ+vPw+UgDQ5A;7K=rD2`~-{$RtdwxHjbs zi}{su*&~$jgA)EMuo!>A9eXHz*(LbX5I*NEc8O~meu3C!>XV(^A}sV%;OeLeJrI2N z0WRRLNRW%C+MzI+Z;<1##|Mi45r73r5QIN@Vm?pbK`nO>K>csjc@M3 zJF_#hKWbV#F#5Zr;=CmS{KhvSDRriDhcT;QfrVU1q3U1AiD>~rPD;tBrcqK#RTD`? z*k5qfTwAIQfdFZRj{j9k`gSm2r1DL*eVr8U7}sSP5je=<63X~rXP@W2;_Kv zw>*S|WLH4`RcE-1Jan z_kkcS&I|Ks26SbD3bsduf;%hEP7S3!suc1rnRbFGi{+2+7H)sPa(m<2oi8rx3hnl> z=@HlTZOib?oK2{fv3scX$5*t9C?q;}Wx1#Q*KU1TT}zfl z&>mgRm!eOUMJBzZ+y(Y4cS4)CqT?X#q8QzbJ$==?uAcm-5@Tl&J_g@tr;jNuqr|1vQCefnDzG+g z3=$bT%JM5eKWqgPTH>$Y)W_k{j_ea;D=MhTcupN%oHVjz?(p zl|s>I>|#ct$lEzln?Wb