|
1 | | -TEMPLATES = {} |
| 1 | +import sys |
2 | 2 |
|
3 | | -# PYTHON_TEMPLATE_START |
4 | | -# 2025-01-20T16:15:23-08:00 |
5 | | -TEMPLATES[ |
6 | | - "python" |
7 | | -] = """ |
8 | | -ewogImNlbGxzIjogWwogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICJlMzY4MDEzYiIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJlZGl0YWJsZSI6IHRydWUsCiAgICAic2xpZGVzaG93IjogewogICAgICJzbGlkZV90eXBlIjogIiIKICAgIH0sCiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJzb3VyY2UiOiBbCiAgICAiIyBUSVRMRVxuIiwKICAgICJcbiIsCiAgICAiIyMgRGVzY3JpcHRpb24iCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICIzMGQ5ZGNiOSIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJlZGl0YWJsZSI6IHRydWUsCiAgICAic2xpZGVzaG93IjogewogICAgICJzbGlkZV90eXBlIjogIiIKICAgIH0sCiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJzb3VyY2UiOiBbCiAgICAiIyMgU2V0dXAiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJjb2RlIiwKICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICJpZCI6ICIxOWVmNjkwMy0yZmNkLTRiZGYtOTM1ZS05MmNlMjk0MGIyNzciLAogICAibWV0YWRhdGEiOiB7CiAgICAidGFncyI6IFsKICAgICAicGFyYW1ldGVycyIKICAgIF0KICAgfSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFsKICAgICIjIFBBUkFNRVRFUlMgREVGQVVMVFNcbiIsCiAgICAiZHJ5X3J1biA9IFRydWUgICMgY29udHJvbHMgc2ggYmVoYXZpb3IgZm9yIHNhZmV0eVxuIiwKICAgICJhbl9hcnJheTogTGlzdFtzdHJdID0gW1wiYVwiLCBcImJcIl0gICMgYXJyYXkgb2Ygc3RyaW5ncyIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogImNvZGUiLAogICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgImlkIjogImExZGI4NWQ1LTg5YTQtNDcyMS04MzdjLTJmMTdmNTU1ODFlYiIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJ0YWdzIjogW10KICAgfSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFsKICAgICIjIFNIRUxMIEhFTFBFUlNcbiIsCiAgICAiZnJvbSBydW5ib29rLnNoZWxsIGltcG9ydCBzaGVsbF9idWlsZGVyLCBnYXRoZXIsIGNvbmZpcm0sIHN0eWxlLCBxdW90ZVxuIiwKICAgICJcbiIsCiAgICAic2ggPSBzaGVsbF9idWlsZGVyKFxuIiwKICAgICIgICAgZHJ5X3J1biwgdGFnc19kZWZhdWx0PXtcImVudmlyb25tZW50XCI6IFwidGVzdGluZ1wifSwgY29uZmlybV9kZWZhdWx0PVRydWVcbiIsCiAgICAiKSIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogImNvZGUiLAogICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgImlkIjogImI2MGI2ZTcxLTEzZGEtNDBkMy05YTc0LTAxNmY3NWZiYWY0NiIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJ0YWdzIjogW10KICAgfSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFsKICAgICIjIFdpZGdldHNcbiIsCiAgICAiaW1wb3J0IGlweXdpZGdldHMgYXMgd2lkZ2V0c1xuIiwKICAgICJmcm9tIElQeXRob24uZGlzcGxheSBpbXBvcnQgZGlzcGxheVxuIiwKICAgICJcbiIsCiAgICAidyA9IHdpZGdldHMuRHJvcGRvd24oXG4iLAogICAgIiAgICBvcHRpb25zPVsoXCJQcm9kdWN0aW9uXCIsIDEpLCAoXCJTdGFnaW5nXCIsIDIpLCAoXCJEZXZlbG9wbWVudFwiLCAzKV0sXG4iLAogICAgIiAgICB2YWx1ZT0zLFxuIiwKICAgICIgICAgZGVzY3JpcHRpb249XCJFbnZpcm9ubWVudDpcIixcbiIsCiAgICAiKVxuIiwKICAgICJcbiIsCiAgICAidiA9IHdpZGdldHMuRHJvcGRvd24oXG4iLAogICAgIiAgICBvcHRpb25zPVtcIk15c3FsXCIsIFwiUmVkaXNcIiwgXCJNZW1jYWNoZWRcIl0sXG4iLAogICAgIiAgICB2YWx1ZT1cIlJlZGlzXCIsXG4iLAogICAgIiAgICBkZXNjcmlwdGlvbj1cIkRhdGFiYXNlOlwiLFxuIiwKICAgICIpXG4iLAogICAgImRpc3BsYXkodylcbiIsCiAgICAiZGlzcGxheSh2KSIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogImNvZGUiLAogICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgImlkIjogIjc5YjE4MDc2LTM0MGYtNDJkMy1hMDIxLTk2YTY2MWRlN2UzYSIsCiAgICJtZXRhZGF0YSI6IHt9LAogICAib3V0cHV0cyI6IFtdLAogICAic291cmNlIjogWwogICAgInByaW50KGZcIlZhbHVlIG9mIHdpZGdldDoge3cudmFsdWV9IHt2LnZhbHVlfVwiKSIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogIm1hcmtkb3duIiwKICAgImlkIjogImY3NjEwMjk4IiwKICAgIm1ldGFkYXRhIjogewogICAgImVkaXRhYmxlIjogdHJ1ZSwKICAgICJzbGlkZXNob3ciOiB7CiAgICAgInNsaWRlX3R5cGUiOiAiIgogICAgfSwKICAgICJ0YWdzIjogW10KICAgfSwKICAgInNvdXJjZSI6IFsKICAgICIjIyBPcGVyYXRpb24iCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICJhZGYyZGMzYyIsCiAgICJtZXRhZGF0YSI6IHt9LAogICAic291cmNlIjogWwogICAgIiMjIyBTdGVwIDEgLSBHZXQgZ2l0IGluZm8iCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJjb2RlIiwKICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICJpZCI6ICI2ZWUxMjY2MS02MmI4LTQzYjctYjU1Ny0yYWNjOWEzNDZkODQiLAogICAibWV0YWRhdGEiOiB7fSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFsKICAgICJvdXRwdXQgPSBhd2FpdCBzaChcImdpdCAtLXZlcnNpb24gJiYgZWNobyAzMzMgPiYyXCIsIGNvbmZpcm09VHJ1ZSkiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICI4MmM5MDYxNCIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJlZGl0YWJsZSI6IHRydWUsCiAgICAic2xpZGVzaG93IjogewogICAgICJzbGlkZV90eXBlIjogIiIKICAgIH0sCiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJzb3VyY2UiOiBbCiAgICAiIyMjIFN0ZXAgMiAtIFByaW50IgogICBdCiAgfSwKICB7CiAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAiaWQiOiAiNWM5NDU0OGYtMjE5Ny00ZGU3LWI3MmMtYjFmZWIyOWJjMThjIiwKICAgIm1ldGFkYXRhIjoge30sCiAgICJvdXRwdXRzIjogW10sCiAgICJzb3VyY2UiOiBbCiAgICAicHJpbnQob3V0cHV0KSIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogIm1hcmtkb3duIiwKICAgImlkIjogImYwZTllYWRlIiwKICAgIm1ldGFkYXRhIjoge30sCiAgICJzb3VyY2UiOiBbCiAgICAiPHNwYW4gc3R5bGU9J2NvbG9yOiByZWQ7Jz48Ym9sZD5EQU5HRVI8L2JvbGQ+PC9zcGFuPiA8c3BhbiBzdHlsZT0nY29sb3I6IHJlZDsnPjxib2xkPkRBTkdFUjwvYm9sZD48L3NwYW4+IDxzcGFuIHN0eWxlPSdjb2xvcjogcmVkOyc+PGJvbGQ+REFOR0VSPC9ib2xkPjwvc3Bhbj4gVGhlIGZvbGxvd2luZyBjb2RlIGlzIGdvaW5nIHRvIGJlIHJpc2t5LiBCZSBwcmVwYXJlZCB3aXRoIHJvbGxiYWNrIHByb2NlZHVyZXMuIgogICBdCiAgfSwKICB7CiAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAiaWQiOiAiMGFkZDI4MTYtYTljYi00MTBjLTgzZjMtYTRhYWQ2YWFmZjVmIiwKICAgIm1ldGFkYXRhIjoge30sCiAgICJvdXRwdXRzIjogW10sCiAgICJzb3VyY2UiOiBbCiAgICAiY29uZmlybShzdHlsZShcIkRhbmdlciwgcmVhZHkgdG8gcHJvY2VlZD9cIiwgZmc9XCJyZWRcIiwgYm9sZD1UcnVlKSwgYWJvcnQ9VHJ1ZSlcbiIsCiAgICAiY21kcyA9IFtzaChcInNsZWVwIDE7IGVjaG8gMVwiKSwgc2goXCJzbGVlcCAyOyBlY2hvIDJcIiksIHNoKFwic2xlZXAgMzsgZWNobyAzXCIpXSIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogImNvZGUiLAogICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgImlkIjogImVmNTI1YjZkLTIwNTktNDEyZS1hMGNiLWMxZTkwOGNhNTRjNyIsCiAgICJtZXRhZGF0YSI6IHt9LAogICAib3V0cHV0cyI6IFtdLAogICAic291cmNlIjogWwogICAgInJlc3VsdCA9IGF3YWl0IGdhdGhlcigqY21kcykiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICI3NGQ5NDFmMiIsCiAgICJtZXRhZGF0YSI6IHt9LAogICAic291cmNlIjogWwogICAgIiMjIENsZWFudXAiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICJkNWIxNmRiZSIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJlZGl0YWJsZSI6IHRydWUsCiAgICAic2xpZGVzaG93IjogewogICAgICJzbGlkZV90eXBlIjogIiIKICAgIH0sCiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJzb3VyY2UiOiBbCiAgICAiIyMgUm9sbGJhY2siCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICIzZTM3ODRmYy1lMDczLTQ5YTMtYTE3ZC1jNWY4MjczMzk0YjAiLAogICAibWV0YWRhdGEiOiB7CiAgICAiZWRpdGFibGUiOiB0cnVlLAogICAgInNsaWRlc2hvdyI6IHsKICAgICAic2xpZGVfdHlwZSI6ICIiCiAgICB9LAogICAgInRhZ3MiOiBbXQogICB9LAogICAic291cmNlIjogWwogICAgIiMjIEFjdGlvbiBJdGVtcyAvIExlYXJuaW5ncyIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogImNvZGUiLAogICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgImlkIjogImFkN2VkNTFmLTdlMGYtNGM3ZC05NWIzLWM3M2VjZGVhYTNhOCIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJ0YWdzIjogW10KICAgfSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFtdCiAgfQogXSwKICJtZXRhZGF0YSI6IHsKICAia2VybmVsc3BlYyI6IHsKICAgImRpc3BsYXlfbmFtZSI6ICJQeXRob24gMyAoaXB5a2VybmVsKSIsCiAgICJsYW5ndWFnZSI6ICJweXRob24iLAogICAibmFtZSI6ICJweXRob24zIgogIH0sCiAgImxhbmd1YWdlX2luZm8iOiB7CiAgICJjb2RlbWlycm9yX21vZGUiOiB7CiAgICAibmFtZSI6ICJpcHl0aG9uIiwKICAgICJ2ZXJzaW9uIjogMwogICB9LAogICAiZmlsZV9leHRlbnNpb24iOiAiLnB5IiwKICAgIm1pbWV0eXBlIjogInRleHQveC1weXRob24iLAogICAibmFtZSI6ICJweXRob24iLAogICAibmJjb252ZXJ0X2V4cG9ydGVyIjogInB5dGhvbiIsCiAgICJweWdtZW50c19sZXhlciI6ICJpcHl0aG9uMyIsCiAgICJ2ZXJzaW9uIjogIjMuMTEuNyIKICB9LAogICJ3aWRnZXRzIjogewogICAiYXBwbGljYXRpb24vdm5kLmp1cHl0ZXIud2lkZ2V0LXN0YXRlK2pzb24iOiB7CiAgICAic3RhdGUiOiB7fSwKICAgICJ2ZXJzaW9uX21ham9yIjogMiwKICAgICJ2ZXJzaW9uX21pbm9yIjogMAogICB9CiAgfQogfSwKICJuYmZvcm1hdCI6IDQsCiAibmJmb3JtYXRfbWlub3IiOiA1Cn0K |
9 | | -""".strip() |
10 | | -# PYTHON_TEMPLATE_START |
| 3 | +if sys.version_info >= (3, 7): |
| 4 | + from importlib import resources as importlib_resources |
| 5 | +else: |
| 6 | + import pkgutil |
11 | 7 |
|
12 | | -# DENO_TEMPLATE_START |
13 | | -# 2025-01-20T16:15:23-08:00 |
14 | | -TEMPLATES[ |
15 | | - "deno" |
16 | | -] = """ |
17 | | -ewogImNlbGxzIjogWwogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICI2ZmY4MDczNC04OTA2LTRmODUtOWFhYi02Y2VhY2U3YmE0MjUiLAogICAibWV0YWRhdGEiOiB7CiAgICAiZWRpdGFibGUiOiB0cnVlLAogICAgInNsaWRlc2hvdyI6IHsKICAgICAic2xpZGVfdHlwZSI6ICIiCiAgICB9LAogICAgInRhZ3MiOiBbXQogICB9LAogICAic291cmNlIjogWwogICAgIiMgVElUTEVcbiIsCiAgICAiXG4iLAogICAgIiMjIERFU0NSSVBUSU9OXG4iLAogICAgIlxuIiwKICAgICJEZXNjcmlwdGlvbiBjb250aW51ZXMgaW4gbmFycmF0aXZlIGZvcm0iCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICIwNWIzZTg4MC04NjAxLTQxMDctOTg5NS1kNzkyYmExZGNkMzAiLAogICAibWV0YWRhdGEiOiB7CiAgICAiZWRpdGFibGUiOiB0cnVlLAogICAgInNsaWRlc2hvdyI6IHsKICAgICAic2xpZGVfdHlwZSI6ICIiCiAgICB9LAogICAgInRhZ3MiOiBbXQogICB9LAogICAic291cmNlIjogWwogICAgIiMjIFNldHVwIgogICBdCiAgfSwKICB7CiAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAiaWQiOiAiMTE3MzA3ZTQtZTY2Zi00MDQ0LWI3ZTctOTE0ZGMwMjkyODIxIiwKICAgIm1ldGFkYXRhIjogewogICAgInRhZ3MiOiBbCiAgICAgInBhcmFtZXRlcnMiCiAgICBdCiAgIH0sCiAgICJvdXRwdXRzIjogW10sCiAgICJzb3VyY2UiOiBbCiAgICAiLy8gRGVmYXVsdCBQYXJhbXNcbiIsCiAgICAibGV0IHNlcnZlcjogc3RyaW5nID0gXCJtYWluLnhhcmdzLmlvXCI7XG4iLAogICAgImxldCBhcmc6IG51bWJlciA9IDE7XG4iLAogICAgImxldCBhbkFycmF5OiBzdHJpbmdbXSA9IFtcImFcIiwgXCJiXCJdOyAvLyBub3JtYWxseSBhIC8gYlxuIiwKICAgICJsZXQgX19SVU5CT09LX01FVEFEQVRBX18gPSB7fTsiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJjb2RlIiwKICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICJpZCI6ICI0YjMwNThkYSIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJ0YWdzIjogW10KICAgfSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFsKICAgICJpbXBvcnQgeyAkLCBzaCB9IGZyb20gXCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20venBoL3J1bmJvb2svbWFpbi9leHQvZGVuby9ydW5ib29rL21vZC50c1wiOyIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogImNvZGUiLAogICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgImlkIjogImIyN2RlZjU2LTAyMTktNDM4OS04MmM3LTQ0Yzc3YmFiNmIxOSIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJ0YWdzIjogW10KICAgfSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFsKICAgICJhd2FpdCBzaChcImdpdCBsb2dcIik7IgogICBdCiAgfSwKICB7CiAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAiaWQiOiAiOWFlNTliNjUiLAogICAibWV0YWRhdGEiOiB7fSwKICAgIm91dHB1dHMiOiBbXSwKICAgInNvdXJjZSI6IFsKICAgICJwcm9tcHQoXCJBQUFBQUFBQUFBQUFcIikiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJjb2RlIiwKICAgImV4ZWN1dGlvbl9jb3VudCI6IG51bGwsCiAgICJpZCI6ICIwMmE5YjMyNCIsCiAgICJtZXRhZGF0YSI6IHt9LAogICAib3V0cHV0cyI6IFtdLAogICAic291cmNlIjogWwogICAgImNvbnNvbGUubG9nKFwiQUFBQUFBQUFBQVwiKVxuIiwKICAgICJcbiIsCiAgICAiY29uc29sZS5sb2coXCJCQkJCQkJCQkJCQkJcIikiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICJiN2YxNTA5OC1kNTQwLTRjMjQtODNiYy03M2Y4YjgxNjg4YzciLAogICAibWV0YWRhdGEiOiB7CiAgICAiZWRpdGFibGUiOiB0cnVlLAogICAgInNsaWRlc2hvdyI6IHsKICAgICAic2xpZGVfdHlwZSI6ICIiCiAgICB9LAogICAgInRhZ3MiOiBbXQogICB9LAogICAic291cmNlIjogWwogICAgIiMjIE9wZXJhdGlvbiIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogIm1hcmtkb3duIiwKICAgImlkIjogImE1Zjg1ZGRkLTY1ZTgtNGQwNC05NjkyLWU1MDcyNGYzYTY5NyIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJlZGl0YWJsZSI6IHRydWUsCiAgICAic2xpZGVzaG93IjogewogICAgICJzbGlkZV90eXBlIjogIiIKICAgIH0sCiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJzb3VyY2UiOiBbCiAgICAiIyMjIFN0ZXAgMS4gRWNobyBKU09OIgogICBdCiAgfSwKICB7CiAgICJjZWxsX3R5cGUiOiAiY29kZSIsCiAgICJleGVjdXRpb25fY291bnQiOiBudWxsLAogICAiaWQiOiAiZTc3NGU3Y2EiLAogICAibWV0YWRhdGEiOiB7CiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJvdXRwdXRzIjogW10sCiAgICJzb3VyY2UiOiBbCiAgICAiYXdhaXQgJGBlY2hvICd7XCJhXCI6IDF9J2AuanNvbigpOyIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogIm1hcmtkb3duIiwKICAgImlkIjogImM5N2EzMjFlLWRiZTctNGVkYS05MjliLTg3ZmM2YWEyOTA1MiIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJlZGl0YWJsZSI6IHRydWUsCiAgICAic2xpZGVzaG93IjogewogICAgICJzbGlkZV90eXBlIjogIiIKICAgIH0sCiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJzb3VyY2UiOiBbCiAgICAiIyMjIFN0ZXAgMiBHZXQgR2l0IExvZyIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogImNvZGUiLAogICAiZXhlY3V0aW9uX2NvdW50IjogbnVsbCwKICAgImlkIjogIjZlZWQ2ZTQ2IiwKICAgIm1ldGFkYXRhIjogewogICAgInRhZ3MiOiBbXQogICB9LAogICAib3V0cHV0cyI6IFtdLAogICAic291cmNlIjogWwogICAgImF3YWl0ICRgZ2l0IGxvZ2AudGV4dCgpOyIKICAgXQogIH0sCiAgewogICAiY2VsbF90eXBlIjogIm1hcmtkb3duIiwKICAgImlkIjogImVjYTMwZGUwLWJhNjUtNDNjNi1iMjIwLWNhYjBkYWUzNjNmZiIsCiAgICJtZXRhZGF0YSI6IHsKICAgICJlZGl0YWJsZSI6IHRydWUsCiAgICAic2xpZGVzaG93IjogewogICAgICJzbGlkZV90eXBlIjogIiIKICAgIH0sCiAgICAidGFncyI6IFtdCiAgIH0sCiAgICJzb3VyY2UiOiBbCiAgICAiIyMgUm9sbGJhY2siCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICJmY2UwODQwNC00ZWIxLTQ1ZDMtOGY5Yy0yZTU2MDE2NjI5NjIiLAogICAibWV0YWRhdGEiOiB7CiAgICAiZWRpdGFibGUiOiB0cnVlLAogICAgInNsaWRlc2hvdyI6IHsKICAgICAic2xpZGVfdHlwZSI6ICIiCiAgICB9LAogICAgInRhZ3MiOiBbXQogICB9LAogICAic291cmNlIjogWwogICAgIiMjIENsZWFudXAiCiAgIF0KICB9LAogIHsKICAgImNlbGxfdHlwZSI6ICJtYXJrZG93biIsCiAgICJpZCI6ICIzNmNmZTQ2Mi1lNDI0LTQ1OWItOTU3YS0wZTA2ZDIzMWM5MjgiLAogICAibWV0YWRhdGEiOiB7CiAgICAiZWRpdGFibGUiOiB0cnVlLAogICAgInNsaWRlc2hvdyI6IHsKICAgICAic2xpZGVfdHlwZSI6ICIiCiAgICB9LAogICAgInRhZ3MiOiBbXQogICB9LAogICAic291cmNlIjogWwogICAgIiMjIEFjdGlvbiBJdGVtcyAvIExlYXJuaW5ncyIKICAgXQogIH0KIF0sCiAibWV0YWRhdGEiOiB7CiAgImtlcm5lbHNwZWMiOiB7CiAgICJkaXNwbGF5X25hbWUiOiAiRGVubyIsCiAgICJsYW5ndWFnZSI6ICJ0eXBlc2NyaXB0IiwKICAgIm5hbWUiOiAiZGVubyIKICB9LAogICJsYW5ndWFnZV9pbmZvIjogewogICAiZmlsZV9leHRlbnNpb24iOiAiLnRzIiwKICAgIm1pbWV0eXBlIjogInRleHQveC50eXBlc2NyaXB0IiwKICAgIm5hbWUiOiAidHlwZXNjcmlwdCIsCiAgICJuYl9jb252ZXJ0ZXIiOiAic2NyaXB0IiwKICAgInB5Z21lbnRzX2xleGVyIjogInR5cGVzY3JpcHQiLAogICAidmVyc2lvbiI6ICI1LjQuNSIKICB9LAogICJ3aWRnZXRzIjogewogICAiYXBwbGljYXRpb24vdm5kLmp1cHl0ZXIud2lkZ2V0LXN0YXRlK2pzb24iOiB7CiAgICAic3RhdGUiOiB7fSwKICAgICJ2ZXJzaW9uX21ham9yIjogMiwKICAgICJ2ZXJzaW9uX21pbm9yIjogMAogICB9CiAgfQogfSwKICJuYmZvcm1hdCI6IDQsCiAibmJmb3JtYXRfbWlub3IiOiA1Cn0K |
18 | | -""".strip() |
19 | | -# DENO_TEMPLATE_START |
| 8 | + |
| 9 | +def read_embedded_file(package: str, filename: str) -> str: |
| 10 | + """ |
| 11 | + Reads an embedded file from a given package using the appropriate method |
| 12 | + based on the Python version. |
| 13 | +
|
| 14 | + :param package: The package name where the file is located (e.g., "mypackage.data"). |
| 15 | + :param filename: The name of the file inside the package (e.g., "myfile.txt"). |
| 16 | + :return: The contents of the file as a string. |
| 17 | + """ |
| 18 | + if sys.version_info >= (3, 7): |
| 19 | + # Use importlib.resources (Python 3.7+) |
| 20 | + with importlib_resources.files(package).joinpath(filename).open( |
| 21 | + "r", encoding="utf-8" |
| 22 | + ) as f: |
| 23 | + return f.read() |
| 24 | + else: |
| 25 | + # Use pkgutil.get_data() for older versions |
| 26 | + data = pkgutil.get_data(package, filename) |
| 27 | + return data.decode("utf-8") if data else None |
| 28 | + |
| 29 | + |
| 30 | +TEMPLATES = { |
| 31 | + "python": read_embedded_file("runbook.data", "_template-python.ipynb").strip(), |
| 32 | + "deno": read_embedded_file("runbook.data", "_template-deno.ipynb").strip(), |
| 33 | +} |
0 commit comments