From faf70ed6bd62f56e9ded41e8e4378eeab5c7cd69 Mon Sep 17 00:00:00 2001 From: Andriy Ivaneyko Date: Sat, 16 Dec 2023 12:51:34 -0500 Subject: [PATCH] Introduce ruff execution on the guides folder #2876 --- Makefile | 2 +- docs/conf.py | 2 +- guide/content/en/emoji.py | 476 ++++++++++++++---- guide/content/en/migrate.py | 2 + guide/server.py | 1 + guide/webapp/display/base.py | 2 +- guide/webapp/display/layouts/base.py | 1 + .../webapp/display/layouts/elements/footer.py | 4 +- .../webapp/display/layouts/elements/navbar.py | 4 +- .../display/layouts/elements/sidebar.py | 6 +- guide/webapp/display/layouts/home.py | 2 + guide/webapp/display/layouts/main.py | 3 +- guide/webapp/display/markdown.py | 24 +- guide/webapp/display/page/__init__.py | 1 + guide/webapp/display/page/docobject.py | 56 ++- guide/webapp/display/page/page.py | 1 + guide/webapp/display/page/renderer.py | 6 +- guide/webapp/display/plugins/attrs.py | 3 +- .../display/plugins/inline_directive.py | 1 + guide/webapp/display/plugins/mermaid.py | 3 +- guide/webapp/display/plugins/notification.py | 3 +- guide/webapp/display/search/renderer.py | 4 +- guide/webapp/display/search/search.py | 1 + guide/webapp/display/text.py | 1 + guide/webapp/endpoint/search.py | 2 +- guide/webapp/endpoint/view.py | 1 + guide/webapp/worker/config.py | 1 + guide/webapp/worker/factory.py | 18 +- guide/webapp/worker/style.py | 2 +- 29 files changed, 472 insertions(+), 161 deletions(-) diff --git a/Makefile b/Makefile index aadedf5ed2..6b328f09c2 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -RUFF_FORMATTED_FOLDERS = sanic examples scripts tests +RUFF_FORMATTED_FOLDERS = sanic examples scripts tests guide docs .DEFAULT: help .PHONY: help diff --git a/docs/conf.py b/docs/conf.py index 07bfe0f960..c4440563ee 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,7 +19,7 @@ root_directory = os.path.dirname(os.getcwd()) sys.path.insert(0, root_directory) -import sanic +import sanic # noqa # -- General configuration ------------------------------------------------ diff --git a/guide/content/en/emoji.py b/guide/content/en/emoji.py index 1bf94327a4..12d69fc00c 100644 --- a/guide/content/en/emoji.py +++ b/guide/content/en/emoji.py @@ -667,104 +667,276 @@ "couple_with_heart_man_man": "๐Ÿ‘จโ€โคโ€๐Ÿ‘จ", "couple_with_heart_man_man_dark_skin_tone": "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "couple_with_heart_man_man_dark_skin_tone_light_skin_tone": "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_man_man_dark_skin_tone_medium-dark_skin_tone": "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_man_man_dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_man_man_dark_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_man_man_dark_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", "couple_with_heart_man_man_dark_skin_tone_medium_skin_tone": "๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_man_man_light_skin_tone": "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป", "couple_with_heart_man_man_light_skin_tone_dark_skin_tone": "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ", - "couple_with_heart_man_man_light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_man_man_light_skin_tone_medium-light_skin_tone": "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_man_man_light_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_man_man_light_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", "couple_with_heart_man_man_light_skin_tone_medium_skin_tone": "๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_man_man_medium-dark_skin_tone": "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_man_man_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", - "couple_with_heart_man_man_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_man_man_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", - "couple_with_heart_man_man_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "couple_with_heart_man_man_medium" "-dark_skin_tone_dark_skin_tone" + ): "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", + ( + "couple_with_heart_man_man_medium" "-dark_skin_tone_light_skin_tone" + ): "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", + ( + "couple_with_heart_man_man_medium" + "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_man_man_medium" "-dark_skin_tone_medium_skin_tone" + ): "๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_man_man_medium-light_skin_tone": "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ", - "couple_with_heart_man_man_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", - "couple_with_heart_man_man_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_man_man_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_man_man_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "couple_with_heart_man_man_medium" "-light_skin_tone_dark_skin_tone" + ): "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", + ( + "couple_with_heart_man_man_medium" "-light_skin_tone_light_skin_tone" + ): "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", + ( + "couple_with_heart_man_man_medium" + "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_man_man_medium" "-light_skin_tone_medium_skin_tone" + ): "๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_man_man_medium_skin_tone": "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_man_man_medium_skin_tone_dark_skin_tone": "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "couple_with_heart_man_man_medium_skin_tone_light_skin_tone": "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_man_man_medium_skin_tone_medium-dark_skin_tone": "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_man_man_medium_skin_tone_medium-light_skin_tone": "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_man_man_medium_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_man_man_medium_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", "couple_with_heart_medium-dark_skin_tone": "๐Ÿ’‘๐Ÿพ", "couple_with_heart_medium-light_skin_tone": "๐Ÿ’‘๐Ÿผ", "couple_with_heart_medium_skin_tone": "๐Ÿ’‘๐Ÿฝ", - "couple_with_heart_person_person_dark_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿป", - "couple_with_heart_person_person_dark_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿพ", - "couple_with_heart_person_person_dark_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿผ", - "couple_with_heart_person_person_dark_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿฝ", - "couple_with_heart_person_person_light_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฟ", - "couple_with_heart_person_person_light_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿพ", - "couple_with_heart_person_person_light_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿผ", - "couple_with_heart_person_person_light_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฝ", - "couple_with_heart_person_person_medium-dark_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฟ", - "couple_with_heart_person_person_medium-dark_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿป", - "couple_with_heart_person_person_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿผ", - "couple_with_heart_person_person_medium-dark_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฝ", - "couple_with_heart_person_person_medium-light_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฟ", - "couple_with_heart_person_person_medium-light_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿป", - "couple_with_heart_person_person_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿพ", - "couple_with_heart_person_person_medium-light_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฝ", - "couple_with_heart_person_person_medium_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿฟ", - "couple_with_heart_person_person_medium_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿป", - "couple_with_heart_person_person_medium_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿพ", - "couple_with_heart_person_person_medium_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿผ", + ( + "couple_with_heart_person_" "person_dark_skin_tone_light_skin_tone" + ): "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿป", + ( + "couple_with_heart_person_" + "person_dark_skin_tone_medium-dark_skin_tone" + ): "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿพ", + ( + "couple_with_heart_person_person_" + "dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿผ", + ( + "couple_with_heart_person_person_" "dark_skin_tone_medium_skin_tone" + ): "๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿฝ", + ( + "couple_with_heart_person_" "person_light_skin_tone_dark_skin_tone" + ): "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฟ", + ( + "couple_with_heart_person_person_" + "light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿพ", + ( + "couple_with_heart_person_person_" + "light_skin_tone_medium-light_skin_tone" + ): "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿผ", + ( + "couple_with_heart_person_" "person_light_skin_tone_medium_skin_tone" + ): "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฝ", + ( + "couple_with_heart_person_" + "person_medium-dark_skin_tone_dark_skin_tone" + ): "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฟ", + ( + "couple_with_heart_person_person" + "_medium-dark_skin_tone_light_skin_tone" + ): "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿป", + ( + "couple_with_heart_person_person_medium" + "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿผ", + ( + "couple_with_heart_person_person" + "_medium-dark_skin_tone_medium_skin_tone" + ): "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฝ", + ( + "couple_with_heart_person_person" + "_medium-light_skin_tone_dark_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฟ", + ( + "couple_with_heart_person_person" + "_medium-light_skin_tone_light_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿป", + ( + "couple_with_heart_person_person_medium" + "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿพ", + ( + "couple_with_heart_person_person" + "_medium-light_skin_tone_medium_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฝ", + ( + "couple_with_heart_person_person_medium_skin_tone_dark_skin_tone" "" + ): "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿฟ", + ( + "couple_with_heart_person_person_medium_skin_tone_light_skin_tone" "" + ): "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿป", + ( + "couple_with_heart_person_person" + "_medium_skin_tone_medium-dark_skin_tone" + ): "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿพ", + ( + "couple_with_heart_person_person" + "_medium_skin_tone_medium-light_skin_tone" + ): "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿผ", "couple_with_heart_woman_man": "๐Ÿ‘ฉโ€โคโ€๐Ÿ‘จ", "couple_with_heart_woman_man_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ", "couple_with_heart_woman_man_dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_woman_man_dark_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_woman_man_dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_woman_man_dark_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_woman_man_dark_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ", "couple_with_heart_woman_man_dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_woman_man_light_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป", "couple_with_heart_woman_man_light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ", - "couple_with_heart_woman_man_light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_woman_man_light_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", - "couple_with_heart_woman_man_light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "couple_with_heart_woman_man_light_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_woman_man_light_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_woman_man_light_skin_tone_medium_skin_tone" "" + ): "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_woman_man_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_woman_man_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", - "couple_with_heart_woman_man_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_woman_man_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", - "couple_with_heart_woman_man_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "couple_with_heart_woman_man_medium" "-dark_skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ", + ( + "couple_with_heart_woman_man_medium" "-dark_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป", + ( + "couple_with_heart_woman_man_medium" + "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_woman_man_medium" "-dark_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_woman_man_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ", - "couple_with_heart_woman_man_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", - "couple_with_heart_woman_man_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_woman_man_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_woman_man_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "couple_with_heart_woman_man_medium" "-light_skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ", + ( + "couple_with_heart_woman_man_medium" "-light_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป", + ( + "couple_with_heart_woman_man_medium" + "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_woman_man_" + "medium-light_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_woman_man_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ", "couple_with_heart_woman_man_medium_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ", - "couple_with_heart_woman_man_medium_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป", - "couple_with_heart_woman_man_medium_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", - "couple_with_heart_woman_man_medium_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", + ( + "couple_with_heart_woman_man_" "medium_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป", + ( + "couple_with_heart_woman_man_" "medium_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ", + ( + "couple_with_heart_" + "woman_man_medium_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ", "couple_with_heart_woman_woman": "๐Ÿ‘ฉโ€โคโ€๐Ÿ‘ฉ", "couple_with_heart_woman_woman_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", - "couple_with_heart_woman_woman_dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿป", - "couple_with_heart_woman_woman_dark_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", - "couple_with_heart_woman_woman_dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", - "couple_with_heart_woman_woman_dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", + ( + "couple_with_heart_" "woman_woman_dark_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿป", + ( + "couple_with_heart_" "woman_woman_dark_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", + ( + "couple_with_heart_" + "woman_woman_dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", + ( + "couple_with_heart_" "woman_woman_dark_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "couple_with_heart_woman_woman_light_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿป", - "couple_with_heart_woman_woman_light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", - "couple_with_heart_woman_woman_light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", - "couple_with_heart_woman_woman_light_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", - "couple_with_heart_woman_woman_light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", + ( + "couple_with_heart_" "woman_woman_light_skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", + ( + "couple_with_heart_" + "woman_woman_light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", + ( + "couple_with_heart_" + "woman_woman_light_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", + ( + "couple_with_heart_" "woman_woman_light_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "couple_with_heart_woman_woman_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", - "couple_with_heart_woman_woman_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", - "couple_with_heart_woman_woman_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿป", - "couple_with_heart_woman_woman_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", - "couple_with_heart_woman_woman_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", + ( + "couple_with_heart_" "woman_woman_medium-dark_skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", + ( + "couple_with_heart_" + "woman_woman_medium-dark_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿป", + ( + "couple_with_heart_woman_woman_medium" + "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", + ( + "couple_with_heart_" + "woman_woman_medium-dark_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "couple_with_heart_woman_woman_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", - "couple_with_heart_woman_woman_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", - "couple_with_heart_woman_woman_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿป", - "couple_with_heart_woman_woman_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", - "couple_with_heart_woman_woman_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", + ( + "couple_with_heart_" + "woman_woman_medium-light_skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", + ( + "couple_with_heart_" + "woman_woman_medium-light_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿป", + ( + "couple_with_heart_woman_woman_medium" + "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", + ( + "couple_with_heart_woman_woman_medium" + "-light_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", "couple_with_heart_woman_woman_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ", - "couple_with_heart_woman_woman_medium_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", - "couple_with_heart_woman_woman_medium_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿป", - "couple_with_heart_woman_woman_medium_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", - "couple_with_heart_woman_woman_medium_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", + ( + "couple_with_heart_woman_woman_medium_" "skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ", + ( + "couple_with_heart_woman_woman_medium_" "skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿป", + ( + "couple_with_heart_woman_woman_medium_" + "skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿพ", + ( + "couple_with_heart_woman_woman_medium_" + "skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿผ", "cow": "๐Ÿ„", "cow_face": "๐Ÿฎ", "cowboy_hat_face": "๐Ÿค ", @@ -1349,16 +1521,24 @@ "kiss_person_person_light_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "kiss_person_person_medium-dark_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "kiss_person_person_medium-dark_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", - "kiss_person_person_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", + ( + "kiss_person_person_medium" "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "kiss_person_person_medium-dark_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "kiss_person_person_medium-light_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "kiss_person_person_medium-light_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", - "kiss_person_person_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", - "kiss_person_person_medium-light_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", + ( + "kiss_person_person_medium" "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", + ( + "kiss_person_person_medium" "-light_skin_tone_medium_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ", "kiss_person_person_medium_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ", "kiss_person_person_medium_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป", "kiss_person_person_medium_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ", - "kiss_person_person_medium_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", + ( + "kiss_person_person_medium_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ", "kiss_woman_man": "๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ", "kiss_woman_man_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "kiss_woman_man_dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", @@ -1373,12 +1553,16 @@ "kiss_woman_man_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "kiss_woman_man_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "kiss_woman_man_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", - "kiss_woman_man_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", + ( + "kiss_woman_man_medium" "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "kiss_woman_man_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "kiss_woman_man_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ", "kiss_woman_man_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", "kiss_woman_man_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป", - "kiss_woman_man_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", + ( + "kiss_woman_man_medium" "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ", "kiss_woman_man_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "kiss_woman_man_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ", "kiss_woman_man_medium_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ", @@ -1399,12 +1583,16 @@ "kiss_woman_woman_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "kiss_woman_woman_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "kiss_woman_woman_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", - "kiss_woman_woman_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", + ( + "kiss_woman_woman_medium" "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "kiss_woman_woman_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "kiss_woman_woman_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ", "kiss_woman_woman_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", "kiss_woman_woman_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป", - "kiss_woman_woman_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", + ( + "kiss_woman_woman_medium" "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ", "kiss_woman_woman_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "kiss_woman_woman_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ", "kiss_woman_woman_medium_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ", @@ -1982,12 +2170,16 @@ "men_holding_hands_medium-dark_skin_tone": "๐Ÿ‘ฌ๐Ÿพ", "men_holding_hands_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "men_holding_hands_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", - "men_holding_hands_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", + ( + "men_holding_hands_medium" "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "men_holding_hands_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "men_holding_hands_medium-light_skin_tone": "๐Ÿ‘ฌ๐Ÿผ", "men_holding_hands_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", "men_holding_hands_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", - "men_holding_hands_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", + ( + "men_holding_hands_medium" "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", "men_holding_hands_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "men_holding_hands_medium_skin_tone": "๐Ÿ‘ฌ๐Ÿฝ", "men_holding_hands_medium_skin_tone_dark_skin_tone": "๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", @@ -2244,23 +2436,39 @@ "people_holding_hands_light_skin_tone": "๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿป", "people_holding_hands_light_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ", "people_holding_hands_light_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ", - "people_holding_hands_light_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ", + ( + "people_holding_hands_light_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ", "people_holding_hands_light_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ", "people_holding_hands_medium-dark_skin_tone": "๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ", "people_holding_hands_medium-dark_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ", "people_holding_hands_medium-dark_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿป", - "people_holding_hands_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ", - "people_holding_hands_medium-dark_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ", + ( + "people_holding_hands_medium" "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ", + ( + "people_holding_hands_medium" "-dark_skin_tone_medium_skin_tone" + ): "๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ", "people_holding_hands_medium-light_skin_tone": "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ", "people_holding_hands_medium-light_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ", - "people_holding_hands_medium-light_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿป", - "people_holding_hands_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ", - "people_holding_hands_medium-light_skin_tone_medium_skin_tone": "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ", + ( + "people_holding_hands_medium" "-light_skin_tone_light_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿป", + ( + "people_holding_hands_medium" "-light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ", + ( + "people_holding_hands_medium" "-light_skin_tone_medium_skin_tone" + ): "๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ", "people_holding_hands_medium_skin_tone": "๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ", "people_holding_hands_medium_skin_tone_dark_skin_tone": "๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ", "people_holding_hands_medium_skin_tone_light_skin_tone": "๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿป", - "people_holding_hands_medium_skin_tone_medium-dark_skin_tone": "๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ", - "people_holding_hands_medium_skin_tone_medium-light_skin_tone": "๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ", + ( + "people_holding_hands_medium_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ", + ( + "people_holding_hands_medium_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ", "people_hugging": "๐Ÿซ‚", "people_with_bunny_ears": "๐Ÿ‘ฏ", "people_wrestling": "๐Ÿคผ", @@ -3148,29 +3356,69 @@ "woman_and_man_holding_hands": "๐Ÿ‘ซ", "woman_and_man_holding_hands_dark_skin_tone": "๐Ÿ‘ซ๐Ÿฟ", "woman_and_man_holding_hands_dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", - "woman_and_man_holding_hands_dark_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", - "woman_and_man_holding_hands_dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", - "woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "woman_and_man_holding_hands_dark_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", + ( + "woman_and_man_holding_hands_dark_skin_tone_medium" "-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", + ( + "woman_and_man_holding_hands_dark_skin_tone_medium_skin_tone" "" + ): "๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "woman_and_man_holding_hands_light_skin_tone": "๐Ÿ‘ซ๐Ÿป", "woman_and_man_holding_hands_light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", - "woman_and_man_holding_hands_light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", - "woman_and_man_holding_hands_light_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", - "woman_and_man_holding_hands_light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "woman_and_man_holding_hands_light_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", + ( + "woman_and_man_holding_hands" "_light_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", + ( + "woman_and_man_holding_hands_light" "_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "woman_and_man_holding_hands_medium-dark_skin_tone": "๐Ÿ‘ซ๐Ÿพ", - "woman_and_man_holding_hands_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", - "woman_and_man_holding_hands_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", - "woman_and_man_holding_hands_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", - "woman_and_man_holding_hands_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "woman_and_man_holding_hands_medium" "-dark_skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", + ( + "woman_and_man_holding_hands_medium" "-dark_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", + ( + "woman_and_man_holding_hands_medium" + "-dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", + ( + "woman_and_man_holding_hands_medium" "-dark_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "woman_and_man_holding_hands_medium-light_skin_tone": "๐Ÿ‘ซ๐Ÿผ", - "woman_and_man_holding_hands_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", - "woman_and_man_holding_hands_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", - "woman_and_man_holding_hands_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", - "woman_and_man_holding_hands_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", + ( + "woman_and_man_holding_hands_medium" "-light_skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", + ( + "woman_and_man_holding_hands_medium" "-light_skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", + ( + "woman_and_man_holding_hands_medium-" + "light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", + ( + "woman_and_man_holding_hands_medium" + "-light_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ", "woman_and_man_holding_hands_medium_skin_tone": "๐Ÿ‘ซ๐Ÿฝ", - "woman_and_man_holding_hands_medium_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", - "woman_and_man_holding_hands_medium_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", - "woman_and_man_holding_hands_medium_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", - "woman_and_man_holding_hands_medium_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", + ( + "woman_and_man_holding_hands_medium_" "skin_tone_dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ", + ( + "woman_and_man_holding_hands_medium_" "skin_tone_light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป", + ( + "woman_and_man_holding_hands_medium_skin_tone_medium" "-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ", + ( + "woman_and_man_holding_hands_medium_skin_tone_medium" + "-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ", "woman_artist": "๐Ÿ‘ฉโ€๐ŸŽจ", "woman_artist_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽจ", "woman_artist_light_skin_tone": "๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽจ", @@ -3622,18 +3870,26 @@ "women_holding_hands_medium-dark_skin_tone": "๐Ÿ‘ญ๐Ÿพ", "women_holding_hands_medium-dark_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "women_holding_hands_medium-dark_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", - "women_holding_hands_medium-dark_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", + ( + "women_holding_hands_medium-" "dark_skin_tone_medium-light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "women_holding_hands_medium-dark_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "women_holding_hands_medium-light_skin_tone": "๐Ÿ‘ญ๐Ÿผ", "women_holding_hands_medium-light_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "women_holding_hands_medium-light_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", - "women_holding_hands_medium-light_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", - "women_holding_hands_medium-light_skin_tone_medium_skin_tone": "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", + ( + "women_holding_hands_medium-" "light_skin_tone_medium-dark_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", + ( + "women_holding_hands_medium-" "light_skin_tone_medium_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ", "women_holding_hands_medium_skin_tone": "๐Ÿ‘ญ๐Ÿฝ", "women_holding_hands_medium_skin_tone_dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ", "women_holding_hands_medium_skin_tone_light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป", "women_holding_hands_medium_skin_tone_medium-dark_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ", - "women_holding_hands_medium_skin_tone_medium-light_skin_tone": "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", + ( + "women_holding_hands_medium_skin_tone_medium-" "light_skin_tone" + ): "๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ", "women_with_bunny_ears": "๐Ÿ‘ฏโ€โ™€", "women_wrestling": "๐Ÿคผโ€โ™€", "womenโ€™s_room": "๐Ÿšบ", diff --git a/guide/content/en/migrate.py b/guide/content/en/migrate.py index e0510af429..bc783c6f12 100644 --- a/guide/content/en/migrate.py +++ b/guide/content/en/migrate.py @@ -1,9 +1,11 @@ import re + from pathlib import Path from textwrap import indent from emoji import EMOJI + COLUMN_PATTERN = re.compile(r"---:1\s*(.*?)\s*:--:1\s*(.*?)\s*:---", re.DOTALL) PYTHON_HIGHLIGHT_PATTERN = re.compile(r"```python\{+.*?\}", re.DOTALL) BASH_HIGHLIGHT_PATTERN = re.compile(r"```bash\{+.*?\}", re.DOTALL) diff --git a/guide/server.py b/guide/server.py index f060d3ed0d..5b0e7a9873 100644 --- a/guide/server.py +++ b/guide/server.py @@ -10,4 +10,5 @@ from webapp.worker.factory import create_app + app = create_app(Path(__file__).parent) diff --git a/guide/webapp/display/base.py b/guide/webapp/display/base.py index 5ae128d9ae..cea2f85464 100644 --- a/guide/webapp/display/base.py +++ b/guide/webapp/display/base.py @@ -1,6 +1,6 @@ from __future__ import annotations -from html5tagger import Builder, Document, E # type: ignore +from html5tagger import Builder, Document # type: ignore class BaseRenderer: diff --git a/guide/webapp/display/layouts/base.py b/guide/webapp/display/layouts/base.py index 8ffec4f0a6..2d4f195ab0 100644 --- a/guide/webapp/display/layouts/base.py +++ b/guide/webapp/display/layouts/base.py @@ -4,6 +4,7 @@ from typing import Generator from html5tagger import Builder + from sanic import Request diff --git a/guide/webapp/display/layouts/elements/footer.py b/guide/webapp/display/layouts/elements/footer.py index 1bb36b8242..0a36e8f6ea 100644 --- a/guide/webapp/display/layouts/elements/footer.py +++ b/guide/webapp/display/layouts/elements/footer.py @@ -1,6 +1,8 @@ -from datetime import datetime from collections import deque +from datetime import datetime + from html5tagger import Builder, E # type: ignore + from sanic import Request diff --git a/guide/webapp/display/layouts/elements/navbar.py b/guide/webapp/display/layouts/elements/navbar.py index fb26fcdd0f..688509d8f1 100644 --- a/guide/webapp/display/layouts/elements/navbar.py +++ b/guide/webapp/display/layouts/elements/navbar.py @@ -1,7 +1,7 @@ -from webapp.display.layouts.models import MenuItem - from html5tagger import Builder, E # type: ignore + from sanic import Request +from webapp.display.layouts.models import MenuItem def do_navbar(builder: Builder, request: Request) -> None: diff --git a/guide/webapp/display/layouts/elements/sidebar.py b/guide/webapp/display/layouts/elements/sidebar.py index 6e1e8b15b5..c000dd1963 100644 --- a/guide/webapp/display/layouts/elements/sidebar.py +++ b/guide/webapp/display/layouts/elements/sidebar.py @@ -1,8 +1,8 @@ -from webapp.display.layouts.models import MenuItem -from webapp.display.text import slugify - from html5tagger import Builder, E # type: ignore + from sanic import Request +from webapp.display.layouts.models import MenuItem +from webapp.display.text import slugify def do_sidebar(builder: Builder, request: Request) -> None: diff --git a/guide/webapp/display/layouts/home.py b/guide/webapp/display/layouts/home.py index 6fc551beec..bf937d2b19 100644 --- a/guide/webapp/display/layouts/home.py +++ b/guide/webapp/display/layouts/home.py @@ -4,8 +4,10 @@ from typing import Generator from html5tagger import Builder, E + from sanic import Request from webapp.display.layouts.elements.footer import do_footer + from .base import BaseLayout diff --git a/guide/webapp/display/layouts/main.py b/guide/webapp/display/layouts/main.py index dbbaeac11d..28d8338cb7 100644 --- a/guide/webapp/display/layouts/main.py +++ b/guide/webapp/display/layouts/main.py @@ -1,12 +1,11 @@ from contextlib import contextmanager from typing import Generator +from sanic import Request from webapp.display.layouts.elements.footer import do_footer from webapp.display.layouts.elements.navbar import do_navbar from webapp.display.layouts.elements.sidebar import do_sidebar -from sanic import Request - from .base import BaseLayout diff --git a/guide/webapp/display/markdown.py b/guide/webapp/display/markdown.py index c7074d9c2e..64b17863e9 100644 --- a/guide/webapp/display/markdown.py +++ b/guide/webapp/display/markdown.py @@ -1,6 +1,8 @@ import re + from textwrap import dedent +from html5tagger import HTML, Builder, E # type: ignore from mistune import HTMLRenderer, create_markdown, escape from mistune.directives import RSTDirective, TableOfContents from mistune.util import safe_entity @@ -8,16 +10,14 @@ from pygments.formatters import html from pygments.lexers import get_lexer_by_name -from html5tagger import HTML, Builder, E # type: ignore - from .code_style import SanicCodeStyle from .plugins.attrs import Attributes from .plugins.columns import Column from .plugins.hook import Hook +from .plugins.inline_directive import inline_directive from .plugins.mermaid import Mermaid from .plugins.notification import Notification from .plugins.span import span -from .plugins.inline_directive import inline_directive from .plugins.tabs import Tabs from .text import slugify @@ -38,9 +38,9 @@ def block_code(self, code: str, info: str | None = None): class_="code-block__copy", onclick="copyCode(this)", ): - builder.div(class_="code-block__rectangle code-block__filled").div( - class_="code-block__rectangle code-block__outlined" - ) + builder.div( + class_="code-block__rectangle code-block__filled" + ).div(class_="code-block__rectangle code-block__outlined") else: builder.pre(E.code(escape(code))) return str(builder) @@ -48,12 +48,16 @@ def block_code(self, code: str, info: str | None = None): def heading(self, text: str, level: int, **attrs) -> str: ident = slugify(text) if level > 1: - text += self._make_tag("a", {"href": f"#{ident}", "class": "anchor"}, "#") + text += self._make_tag( + "a", {"href": f"#{ident}", "class": "anchor"}, "#" + ) return self._make_tag( f"h{level}", { "id": ident, - "class": (f"is-size-{level}-desktop " f"is-size-{level+2}-touch"), + "class": ( + f"is-size-{level}-desktop " f"is-size-{level+2}-touch" + ), }, text, ) @@ -118,7 +122,9 @@ def inline_directive(self, text: str, **attrs) -> str: def _make_tag( self, tag: str, attributes: dict[str, str], text: str | None = None ) -> str: - attrs = " ".join(f'{key}="{value}"' for key, value in attributes.items()) + attrs = " ".join( + f'{key}="{value}"' for key, value in attributes.items() + ) if text is None: return f"<{tag} {attrs} />" return f"<{tag} {attrs}>{text}" diff --git a/guide/webapp/display/page/__init__.py b/guide/webapp/display/page/__init__.py index 7ad390fc7c..7a8738760d 100644 --- a/guide/webapp/display/page/__init__.py +++ b/guide/webapp/display/page/__init__.py @@ -1,4 +1,5 @@ from .page import Page from .renderer import PageRenderer + __all__ = ["Page", "PageRenderer"] diff --git a/guide/webapp/display/page/docobject.py b/guide/webapp/display/page/docobject.py index c316c3880f..6262955796 100644 --- a/guide/webapp/display/page/docobject.py +++ b/guide/webapp/display/page/docobject.py @@ -3,6 +3,7 @@ import importlib import inspect import pkgutil + from collections import defaultdict from dataclasses import dataclass, field from html import escape @@ -10,7 +11,6 @@ from docstring_parser import Docstring, DocstringParam, DocstringRaises from docstring_parser import parse as parse_docstring from docstring_parser.common import DocstringExample - from html5tagger import HTML, Builder, E # type: ignore from ..markdown import render_markdown, slugify @@ -141,7 +141,9 @@ def _extract_docobjects(package_name: str) -> dict[str, DocObject]: docstrings = {} package = importlib.import_module(package_name) - for _, name, _ in pkgutil.walk_packages(package.__path__, package_name + "."): + for _, name, _ in pkgutil.walk_packages( + package.__path__, package_name + "." + ): module = importlib.import_module(name) for obj_name, obj in inspect.getmembers(module): if ( @@ -175,7 +177,9 @@ def _docobject_to_html( ) -> None: anchor_id = slugify(docobject.full_name.replace(".", "-")) anchor = E.a("#", class_="anchor", href=f"#{anchor_id}") - class_name, heading = _define_heading_and_class(docobject, anchor, as_method) + class_name, heading = _define_heading_and_class( + docobject, anchor, as_method + ) with builder.div(class_=class_name): builder(heading) @@ -229,7 +233,9 @@ def _docobject_to_html( if docobject.docstring.params: with builder.div(class_="box mt-5"): - builder.h5("Parameters", class_="is-size-5 has-text-weight-bold") + builder.h5( + "Parameters", class_="is-size-5 has-text-weight-bold" + ) _render_params(builder, docobject.docstring.params) if docobject.docstring.returns: @@ -254,7 +260,9 @@ def _signature_to_html( parts = [] parts.append("") for decorator in decorators: - parts.append(f"@{decorator}
") + parts.append( + f"@{decorator}
" + ) parts.append( f"{object_type} " f"{name}(" @@ -268,7 +276,9 @@ def _signature_to_html( annotation = "" if param.annotation != inspect.Parameter.empty: annotation = escape(str(param.annotation)) - parts.append(f": {annotation}") + parts.append( + f": {annotation}" + ) if param.default != inspect.Parameter.empty: default = escape(str(param.default)) if annotation == "str": @@ -279,7 +289,9 @@ def _signature_to_html( parts.append(")") if signature.return_annotation != inspect.Signature.empty: return_annotation = escape(str(signature.return_annotation)) - parts.append(f": -> {return_annotation}") + parts.append( + f": -> {return_annotation}" + ) parts.append("
") return "".join(parts) @@ -320,7 +332,8 @@ def _render_params(builder: Builder, params: list[DocstringParam]) -> None: E.span( param.type_name, class_=( - "has-text-weight-normal has-text-purple " "is-size-7 ml-2" + "has-text-weight-normal has-text-purple " + "is-size-7 ml-2" ), ), ] @@ -329,7 +342,10 @@ def _render_params(builder: Builder, params: list[DocstringParam]) -> None: builder.dd( HTML( render_markdown( - param.description or param.arg_name or param.type_name or "" + param.description + or param.arg_name + or param.type_name + or "" ) ) ) @@ -342,7 +358,11 @@ def _render_raises(builder: Builder, raises: list[DocstringRaises]) -> None: with builder.dl(class_="mt-2"): builder.dt(raise_.type_name, class_="is-family-monospace") builder.dd( - HTML(render_markdown(raise_.description or raise_.type_name or "")) + HTML( + render_markdown( + raise_.description or raise_.type_name or "" + ) + ) ) @@ -358,7 +378,11 @@ def _render_returns(builder: Builder, docobject: DocObject) -> None: if not return_type or return_type == inspect.Signature.empty: return_type = "N/A" - term = "Return" if not docobject.docstring.returns.is_generator else "Yields" + term = ( + "Return" + if not docobject.docstring.returns.is_generator + else "Yields" + ) builder.h5(term, class_="is-size-5 has-text-weight-bold") with builder.dl(class_="mt-2"): builder.dt(return_type, class_="is-family-monospace") @@ -373,11 +397,17 @@ def _render_returns(builder: Builder, docobject: DocObject) -> None: ) -def _render_examples(builder: Builder, examples: list[DocstringExample]) -> None: +def _render_examples( + builder: Builder, examples: list[DocstringExample] +) -> None: with builder.div(class_="box mt-5"): builder.h5("Examples", class_="is-size-5 has-text-weight-bold") for example in examples: with builder.div(class_="mt-2"): builder( - HTML(render_markdown(example.description or example.snippet or "")) + HTML( + render_markdown( + example.description or example.snippet or "" + ) + ) ) diff --git a/guide/webapp/display/page/page.py b/guide/webapp/display/page/page.py index a4b833d920..9276337b7d 100644 --- a/guide/webapp/display/page/page.py +++ b/guide/webapp/display/page/page.py @@ -12,6 +12,7 @@ from ..markdown import render_markdown from .docobject import organize_docobjects + _PAGE_CACHE: dict[ str, dict[str, tuple[Page | None, Page | None, Page | None]] ] = {} diff --git a/guide/webapp/display/page/renderer.py b/guide/webapp/display/page/renderer.py index f91a5bf121..db3395a8b8 100644 --- a/guide/webapp/display/page/renderer.py +++ b/guide/webapp/display/page/renderer.py @@ -3,10 +3,10 @@ from contextlib import contextmanager from typing import Type -from webapp.display.base import BaseRenderer - from html5tagger import HTML, Builder # type: ignore -from sanic import Request, request + +from sanic import Request +from webapp.display.base import BaseRenderer from ..layouts.base import BaseLayout from .page import Page diff --git a/guide/webapp/display/plugins/attrs.py b/guide/webapp/display/plugins/attrs.py index 7117bd0f19..f2f333634c 100644 --- a/guide/webapp/display/plugins/attrs.py +++ b/guide/webapp/display/plugins/attrs.py @@ -2,12 +2,11 @@ from textwrap import dedent from typing import Any +from html5tagger import HTML, E from mistune.block_parser import BlockParser from mistune.core import BlockState from mistune.directives import DirectivePlugin -from html5tagger import HTML, E - class Attributes(DirectivePlugin): def __call__(self, directive, md): diff --git a/guide/webapp/display/plugins/inline_directive.py b/guide/webapp/display/plugins/inline_directive.py index ee9c1bac8b..638c1f7002 100644 --- a/guide/webapp/display/plugins/inline_directive.py +++ b/guide/webapp/display/plugins/inline_directive.py @@ -2,6 +2,7 @@ from mistune.markdown import Markdown + DIRECTIVE_PATTERN = r":(?:class|func|meth|attr|exc|mod|data|const|obj|keyword|option|cmdoption|envvar):`(?Psanic\.[^`]+)`" # noqa: E501 diff --git a/guide/webapp/display/plugins/mermaid.py b/guide/webapp/display/plugins/mermaid.py index 83fa918913..935aae44e2 100644 --- a/guide/webapp/display/plugins/mermaid.py +++ b/guide/webapp/display/plugins/mermaid.py @@ -3,14 +3,13 @@ from textwrap import dedent from typing import Any +from html5tagger import HTML, E from mistune import HTMLRenderer from mistune.block_parser import BlockParser from mistune.core import BlockState from mistune.directives import DirectivePlugin, RSTDirective from mistune.markdown import Markdown -from html5tagger import HTML, E - class Mermaid(DirectivePlugin): def parse( diff --git a/guide/webapp/display/plugins/notification.py b/guide/webapp/display/plugins/notification.py index 911b4c31ae..15b0689f9f 100644 --- a/guide/webapp/display/plugins/notification.py +++ b/guide/webapp/display/plugins/notification.py @@ -1,6 +1,5 @@ -from mistune.directives import Admonition - from html5tagger import HTML, E +from mistune.directives import Admonition class Notification(Admonition): diff --git a/guide/webapp/display/search/renderer.py b/guide/webapp/display/search/renderer.py index fb06aff10c..f6099e71e9 100644 --- a/guide/webapp/display/search/renderer.py +++ b/guide/webapp/display/search/renderer.py @@ -1,10 +1,10 @@ from contextlib import contextmanager from urllib.parse import unquote -from webapp.display.search.search import Searcher - from html5tagger import Builder, E # type: ignore + from sanic import Request +from webapp.display.search.search import Searcher from ..base import BaseRenderer from ..layouts.main import MainLayout diff --git a/guide/webapp/display/search/search.py b/guide/webapp/display/search/search.py index cede028e51..a8a35cb42b 100644 --- a/guide/webapp/display/search/search.py +++ b/guide/webapp/display/search/search.py @@ -5,6 +5,7 @@ from typing import ClassVar from msgspec import Struct + from webapp.display.page import Page diff --git a/guide/webapp/display/text.py b/guide/webapp/display/text.py index 00518cdce6..2157da7e05 100644 --- a/guide/webapp/display/text.py +++ b/guide/webapp/display/text.py @@ -1,5 +1,6 @@ import re + SLUGIFY_PATTERN = re.compile(r"[^a-zA-Z0-9-]") diff --git a/guide/webapp/endpoint/search.py b/guide/webapp/endpoint/search.py index bddd4f1323..49d0bd81d9 100644 --- a/guide/webapp/endpoint/search.py +++ b/guide/webapp/endpoint/search.py @@ -1,10 +1,10 @@ # from urllib.parse import unquote +from sanic import Blueprint, Request, Sanic, html from webapp.display.page import Page from webapp.display.search.renderer import SearchRenderer from webapp.display.search.search import Document, Searcher, Stemmer -from sanic import Blueprint, Request, Sanic, html bp = Blueprint("search", url_prefix="//search") diff --git a/guide/webapp/endpoint/view.py b/guide/webapp/endpoint/view.py index 09f1d04a32..220481c67e 100644 --- a/guide/webapp/endpoint/view.py +++ b/guide/webapp/endpoint/view.py @@ -2,4 +2,5 @@ from .search import bp as search_bp + bp = Blueprint.group(search_bp) diff --git a/guide/webapp/worker/config.py b/guide/webapp/worker/config.py index b616609465..f95a0d91c4 100644 --- a/guide/webapp/worker/config.py +++ b/guide/webapp/worker/config.py @@ -1,6 +1,7 @@ from pathlib import Path from msgspec import yaml + from webapp.display.layouts.models import GeneralConfig, MenuItem diff --git a/guide/webapp/worker/factory.py b/guide/webapp/worker/factory.py index 20143e2a0f..515864ceca 100644 --- a/guide/webapp/worker/factory.py +++ b/guide/webapp/worker/factory.py @@ -1,5 +1,6 @@ from pathlib import Path +from sanic import Request, Sanic, html, redirect from webapp.display.layouts.models import MenuItem from webapp.display.page import Page, PageRenderer from webapp.endpoint.view import bp @@ -7,7 +8,6 @@ from webapp.worker.reload import setup_livereload from webapp.worker.style import setup_style -from sanic import Request, Sanic, html, redirect KNOWN_REDIRECTS = { "guide/deployment/configuration.html": "guide/running/configuration.html", @@ -37,9 +37,13 @@ def create_app(root: Path) -> Sanic: app.config.STYLE_DIR = root / "style" app.config.NODE_MODULES_DIR = root / "node_modules" app.config.LANGUAGES = ["en"] - app.config.SIDEBAR = load_menu(app.config.CONFIG_DIR / "en" / "sidebar.yaml") + app.config.SIDEBAR = load_menu( + app.config.CONFIG_DIR / "en" / "sidebar.yaml" + ) app.config.NAVBAR = load_menu(app.config.CONFIG_DIR / "en" / "navbar.yaml") - app.config.GENERAL = load_config(app.config.CONFIG_DIR / "en" / "general.yaml") + app.config.GENERAL = load_config( + app.config.CONFIG_DIR / "en" / "general.yaml" + ) setup_livereload(app) setup_style(app) @@ -69,7 +73,9 @@ async def page( ): # TODO: Add more language support if language != "api" and language not in app.config.LANGUAGES: - return redirect(request.app.url_for("page", language="en", path=path)) + return redirect( + request.app.url_for("page", language="en", path=path) + ) if path in KNOWN_REDIRECTS: return redirect( request.app.url_for( @@ -89,6 +95,8 @@ async def page( @app.on_request async def set_language(request: Request): - request.ctx.language = request.match_info.get("language", Page.DEFAULT_LANGUAGE) + request.ctx.language = request.match_info.get( + "language", Page.DEFAULT_LANGUAGE + ) return app diff --git a/guide/webapp/worker/style.py b/guide/webapp/worker/style.py index 5b1f3fff24..2910ff3cc7 100644 --- a/guide/webapp/worker/style.py +++ b/guide/webapp/worker/style.py @@ -2,9 +2,9 @@ from pygments.formatters import html from sass import compile as compile_scss -from webapp.display.code_style import SanicCodeStyle from sanic import Sanic +from webapp.display.code_style import SanicCodeStyle def setup_style(app: Sanic) -> None: