pyodide-mkdocs-theme 5.3.6__tar.gz → 5.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/PKG-INFO +1 -1
  2. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/__main__.py +9 -6
  3. pyodide_mkdocs_theme-5.4.0/pyodide_mkdocs_theme/__version__.py +1 -0
  4. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/figure.py +0 -3
  5. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_manager.py +155 -62
  6. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/qcm.py +0 -2
  7. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/de_lang.py +162 -126
  8. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/en_lang.py +162 -126
  9. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/fr_lang.py +166 -128
  10. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/proxy.py +1 -1
  11. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/parsing.py +0 -2
  12. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_base.py +14 -18
  13. pyodide_mkdocs_theme-5.4.0/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py +484 -0
  14. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_templates.py +13 -12
  15. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/macros_configs.py +7 -3
  16. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/plugin_config.py +5 -4
  17. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/sub_configs.py +212 -37
  18. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/plugin_config_src.py +3 -0
  19. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/tools_and_constants.py +73 -5
  20. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/de/mkdocs.yml +12 -6
  21. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/en/mkdocs.yml +12 -6
  22. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/fr/mkdocs.yml +12 -6
  23. pyodide_mkdocs_theme-5.4.0/pyodide_mkdocs_theme/scripts/models/main.py +26 -0
  24. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/mkdocs.yml +12 -6
  25. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/0-config.js +58 -50
  26. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/functools.js +39 -0
  27. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/process_and_gui.js +32 -18
  28. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideRunner-ide.js +2 -2
  29. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyproject.toml +7 -7
  30. pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/__version__.py +0 -1
  31. pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py +0 -251
  32. pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/de/main.py +0 -141
  33. pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/en/main.py +0 -140
  34. pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/fr/main.py +0 -144
  35. pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/models/main.py +0 -43
  36. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/LICENSE +0 -0
  37. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/README.md +0 -0
  38. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/PMT_tools/p5/__init__.py +0 -0
  39. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/PMT_tools/vis/__init__.py +0 -0
  40. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/PMT_tools/vis_network/__init__.py +0 -0
  41. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/__init__.py +0 -0
  42. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/basthon_p5_to_pmt.py +0 -0
  43. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/__init__.py +0 -0
  44. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/exceptions.py +0 -0
  45. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/__init__.py +0 -0
  46. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/_inclusions_tools.py +0 -0
  47. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base0_extractors.py +0 -0
  48. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base1_contents_extractor.py +0 -0
  49. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base2_inclusions.py +0 -0
  50. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base3_generic_extractors.py +0 -0
  51. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/concrete_extractors.py +0 -0
  52. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_builder/__init__.py +0 -0
  53. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_builder/_html_builder.py +0 -0
  54. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/__init__.py +0 -0
  55. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps.py +0 -0
  56. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps_class.py +0 -0
  57. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/indent_parser.py +0 -0
  58. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/IDEs.py +0 -0
  59. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/__init__.py +0 -0
  60. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_ide.py +0 -0
  61. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_playground.py +0 -0
  62. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_py_btn.py +0 -0
  63. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_run_macro.py +0 -0
  64. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_term_ide.py +0 -0
  65. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_terminal.py +0 -0
  66. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_tester.py +0 -0
  67. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/py_script.py +0 -0
  68. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/__init__.py +0 -0
  69. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/classes.py +0 -0
  70. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/paths_utils.py +0 -0
  71. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/__init__.py +0 -0
  72. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/config.py +0 -0
  73. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_files.py +0 -0
  74. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_indent.py +0 -0
  75. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_macros.py +0 -0
  76. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_meta.py +0 -0
  77. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/pyodide_macros_plugin.py +0 -0
  78. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/__init__.py +0 -0
  79. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/_string_tools_and_constants.py +0 -0
  80. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/common_tree_src.py +0 -0
  81. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/config_option_src.py +0 -0
  82. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/__init__.py +0 -0
  83. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/docs_dirs_config.py +0 -0
  84. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/dumpers.py +0 -0
  85. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/lang_src.py +0 -0
  86. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/macro_config_src.py +0 -0
  87. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/sub_config_src.py +0 -0
  88. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/__init__.py +0 -0
  89. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/macros_data.py +0 -0
  90. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/maestro_tools.py +0 -0
  91. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/options_alterations.py +0 -0
  92. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/pages_and_macros_py_configs.py +0 -0
  93. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/test_cases.py +0 -0
  94. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/pyodide_logger.py +0 -0
  95. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/de/docs/exo.py +0 -0
  96. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/de/docs/index.md +0 -0
  97. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/en/docs/exo.py +0 -0
  98. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/en/docs/index.md +0 -0
  99. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/fr/docs/exo.py +0 -0
  100. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/fr/docs/index.md +0 -0
  101. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/.gitignore +0 -0
  102. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/pyodide_plot.py +0 -0
  103. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/requirements.txt +0 -0
  104. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/toolbox.py +0 -0
  105. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/README.md +0 -0
  106. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/__init__.py +0 -0
  107. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/.qcm-circle.svg +0 -0
  108. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-check-64.png +0 -0
  109. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-download-64.png +0 -0
  110. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-play-64.png +0 -0
  111. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-restart-64.png +0 -0
  112. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-save-64.png +0 -0
  113. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-step-64.png +0 -0
  114. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-stop-64.png +0 -0
  115. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-upload-64.png +0 -0
  116. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-zip-64.png +0 -0
  117. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/base_pmt.html +0 -0
  118. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/0-legacy-subscriber.js +0 -0
  119. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/jsLogger.js +0 -0
  120. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/mathjax-libs.js +0 -0
  121. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/0-generic-python-snippets-pyodide.js +0 -0
  122. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/1-error_logs-pyodide.js +0 -0
  123. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/1-packagesInstaller-install-pyodide.js +0 -0
  124. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/1-runtimeManager-runtime-pyodide.js +0 -0
  125. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/2-0-runnersManager-runners.js +0 -0
  126. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/2-pyodideSectionsRunner-runner-pyodide.js +0 -0
  127. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/3-btnRunner-py_btn.js +0 -0
  128. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/3-terminalRunner-term.js +0 -0
  129. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/4-0-idesManager-ide.js +0 -0
  130. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideLogistic-ide.js +0 -0
  131. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/5-ideTester-ides_test.js +0 -0
  132. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/6-2-init-playground.js +0 -0
  133. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/6-idePlayground-playground.js +0 -0
  134. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/qcms-qcm.js +0 -0
  135. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/start-pyodide.js +0 -0
  136. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-scripts/overlord.js +0 -0
  137. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-scripts/subscriptions.js +0 -0
  138. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/main.html +0 -0
  139. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/mkdocs_theme.yml +0 -0
  140. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/content.html +0 -0
  141. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/copyright.html +0 -0
  142. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/footer.html +0 -0
  143. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/header.html +0 -0
  144. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/social.html +0 -0
  145. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/0-generic.css +0 -0
  146. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/btns-header.css +0 -0
  147. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/history.css +0 -0
  148. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/hourglass.css +0 -0
  149. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/ide.css +0 -0
  150. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/qcm.css +0 -0
  151. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/terminal.css +0 -0
  152. {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/testing.css +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyodide-mkdocs-theme
3
- Version: 5.3.6
3
+ Version: 5.4.0
4
4
  Summary: Package embedding the necessary tools to host pyodide, ACE editors, jQuery terminals in mkdocs documentations
5
5
  License: GPL-3.0-or-later
6
6
  Keywords: mkdocs,mkdocs-plugin,pyodide,IDE,terminal
@@ -67,9 +67,10 @@ parser.add_argument(
67
67
  parser.add_argument(
68
68
  '--lang', action='extend', nargs='*', choices=LANGS, default=[],
69
69
  help=f'Optional. Choices: { ", ".join(LANGS) }. '
70
- 'Print the base python code to customize some messages. '
71
- 'Can also be used with other arguments to get the information in languages other '
72
- 'than "fr", when relevant.'
70
+ 'Can be used with other arguments to get the information/files in languages other '
71
+ 'than "fr", when relevant. '
72
+ '([DEPRECATED]: Print the base python code to customize some messages. From PMT 5.3.0, '
73
+ "use the plugin's configuration to change PMT messages.)"
73
74
  )
74
75
  parser.add_argument( # Effect strictly equivalent to --lang, but present for semantic
75
76
  '-M', '--macros', action='store_true',
@@ -247,8 +248,7 @@ def main():
247
248
  'plot': 'pyodide_plot.py',
248
249
  'py': 'docs/exo.py',
249
250
  'toolbox': 'toolbox.py',
250
- 'yml': 'mkdocs.yml',
251
- 'lang': 'main.py' ,
251
+ 'yml': 'mkdocs.yml'
252
252
  }
253
253
 
254
254
  if args.basthonP5:
@@ -282,7 +282,10 @@ def main():
282
282
 
283
283
  if not did_some and args.lang:
284
284
  did_some = True
285
- handle_one_file(args, 'lang')
285
+ print(
286
+ "From PMT 5.3.0, you should update Lang messages directly through the plugin's configuration. "
287
+ "The old `env.lang.overload` way is still supported, but it should not be used anymore."
288
+ )
286
289
 
287
290
 
288
291
  if raise_toolbox:
@@ -0,0 +1 @@
1
+ __version__ = "5.4.0"
@@ -22,9 +22,6 @@ If not, see <https://www.gnu.org/licenses/>.
22
22
  from functools import wraps
23
23
  from typing import Optional
24
24
 
25
- from mkdocs.exceptions import BuildError
26
-
27
-
28
25
 
29
26
  from ..tools_and_constants import MACROS_WITH_INDENTS, HtmlClass, P5BtnLocation
30
27
  from .. import html_builder as Html
@@ -548,87 +548,180 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
548
548
 
549
549
  def generate_id(self):
550
550
  """
551
- Generate an id number for the current element, in the form:
551
+ Generate hash part of the html id for the current element, in the form:
552
552
 
553
553
  "{ self.PREFIX_ }{ 32 chars hex value }"
554
554
 
555
+ Uniqueness of the resulting hash is verified and PmtMacrosNonUniqueIdError is raised
556
+ if two identical hashes are encountered.
557
+
558
+ ---
559
+
555
560
  <br><br>
556
561
 
557
- ## CONSTRAINTS:
562
+ ## CONSTRAINTS on the html ids:
558
563
 
559
- - Unique to every runner used throughout the whole website.
560
- - Stable, so that it can be used to identify what IDE goes with what file or what
564
+ 1. Stable, so that it can be used to identify what IDE goes with what file or what
561
565
  localStorage data.
562
- - For IDEs:
563
- * It must be possible to differentiate IDEs from different pages using the same
564
- base python file
565
- * It must be possible to identify unambiguously IDEs in different pages that do
566
- not use any python file.
566
+
567
+ 2. Unique to every runner used throughout the whole website, and specifically for IDEs:
568
+ * IDEs using the same python file in different pages must have different ids.
569
+ * IDEs NOT using any python file must have different ids in any page.
570
+ * The uniqueness of the ids across different PMT projects should be "guaranteed"
571
+ if they are hosted on the same domain, so that IDEs of different projects do not
572
+ override each others in the localStorage.
573
+
574
+ 3. It must be possible to guarantee the backward compatibility if the id values when
575
+ desired by the redactor. It may not be possible for all projects at the same time after
576
+ the update to 5.4+, but redactors should have a way to maintain them when it's possible.
577
+
578
+ 4. If ever two identical ids from different projects are found at runtime (JS layer), the
579
+ user should be warned, with sufficient information to correct the problem (aka, adding an
580
+ ID argument to the IDE of the current project => this IDE must be fully identifiable).
581
+ This is not handled in the `generate_id` method.
582
+
583
+ ---
567
584
 
568
585
  <br><br>
569
586
 
570
- ## STRATEGIES:
571
-
572
- NOTE: The cache has been deactivated manually and isn't accessible to the user
573
- anymore, but the implementation still makes reference to it, if ever I put
574
- it back in place, one day... (unlikely: removed because mainly useless).
575
-
576
- The string to hash is built in the following ways:
577
- - For elements with python file(s):
578
- * use the absolute path (unresolved) to the main side fail (first argument if
579
- `py_names` is a varargs).
580
- * non IDE macros see the macro name added to the string (to differentiate them
581
- from IDEs, while keeping backward compatibility for IDEs' ids)
582
- * the ID argument _will_ often be needed to differentiate the runners/macros,
583
- while allowing cache capabilities without much ambiguity when the user is
584
- adding, deleting or moving macro calls around in the md page.
585
- This can be turned down with `build.activate_cache: false`: then all non IDE
586
- macros fall back to the behavior below.
587
- * IDEs specific: the "mode" (/_v) is appended to the string before hashing (legacy).
588
-
589
- - For elements without a python file, or for non IDEs with `build.activate_cache: false`:
590
- * use the page url, with the macro name, then a counter of that kind of macro calls.
591
-
592
- Uniqueness of the resulting hash is verified and BuildError is raised if two identical
593
- hashes are encountered.
587
+ ## RATIONALS:
588
+
589
+
590
+ An id redundancy can occur in the following cases:
591
+
592
+ * IDEs without python files at the same location in the docs_dir will result in
593
+ identical html ids, whatever the `ides_id_hash_mode` value.
594
+
595
+ * With `ides_id_hash_mode: relative`, ides at equivalent locations in the docs_dir
596
+ and using the same python file (name/location) and the same ID argument will result
597
+ in two identical html ids.
598
+
599
+ Note that, using `ides_id_hash_mode: legacy`, the redundancy is limited to the
600
+ intrinsic hash collision probability, so almost non existant. So no need to
601
+ disambiguate IDE WITH python files in that mode. Though, a project_id value will
602
+ still be needed to disambiguate entries in the localStorage when using the trashcan
603
+ button, if several PMT projects are hosted on the same domain.
604
+
605
+ So, the chosen strategies are the following:
606
+
607
+ ---
608
+
609
+ For non IDEs elements:
610
+
611
+ - They don't have to worry about the multi-projects aspects. Ids unique throughout the
612
+ page are more than enough.
613
+ - Consistency of the generated ids through time is more important than anything else.
614
+ - The ids are built using:
615
+ * the page url (relative to site_dir)
616
+ * the macro name (so that the counts for IDEs is not affected by adding other
617
+ elements earlier in the page).
618
+ * a counter specific to the macro name and the page
619
+
620
+
621
+ For IDE elements:
622
+
623
+ - Priority must be given to the consistency of the ids through time, WHEN POSSIBLE.
624
+ - Second most important property is uniqueness across the localStorage, meaning handling
625
+ the multi-projects aspects is a "must have", at the best possible extent.
626
+
627
+ For IDE elements without associated python file:
628
+
629
+ - These are more often subject to side effects across different projects, because the
630
+ html ids are generated using the PAGE URL (relative to the site_dir), concatenated with
631
+ various things that are specific to the page or the macro. So different website with the
632
+ same relative URL _will_ clash in the localStorage. These require the use of a project_id
633
+ value.
634
+ - Note that the value of `ides_id_hash_mode` has no effect on these IDEs and these actually
635
+ behave the same way as IDEs with python files and `ides_id_hash_mode: relative` is used,
636
+ hence the previous point.
637
+
638
+ For IDE elements with a python file:
639
+
640
+ - The python file location is used in "unresolved" fashion, whatever the value of
641
+ `ides_id_hash_mode` is. Meaning: `xxx/A/../B/exo.py` is used as is, instead of resolving
642
+ it to `xxx/B/exo.py`. This allows to reduce the occurrences where the ID argument has to
643
+ be added to the macro call.
644
+ - Projects using `ides_id_hash_mode: legacy`, despite all the problems that go with it,
645
+ are not subject to localStorage ids clashes for these IDEs, BUT, the trashcan button still
646
+ requires the project_id value to differentiate the source of each entry.
647
+ <br>This means the user CAN maintain backward compatibility of the ids by skipping the
648
+ project_id part when building the hash, even if it has been provided for the trashcan
649
+ functionality. The `project_disambiguate_local_storage` option allow to control this.
650
+ - For legacy reasons (PM), ids for IDEv macros see the `"_v"` element added to the string
651
+ before the hash is computed. THIS IS NOT APPLIED to IDEv WITHOUT PYTHON FILE (PMT legacy).
652
+ - Projects using `ides_id_hash_mode: relative` ARE way more subject to ids clashes, so the
653
+ project_id has to be used.
654
+
655
+ For backward compatibility, the redactor has two options:
656
+ 1. Set the project id of one project to `""` and maintain backward compatibility for this
657
+ project, and use a unique value for other projects. These will get new ids for all IDEs
658
+ with a python file and the localStorage content will be lost.
659
+ 2. Set `project_disambiguate_local_storage` to False along with a project_id value for
660
+ each project. This is kinda "relying on luck", but could work well enough: the redactor
661
+ hopes a minimal number of clashes and waits for the users to signal the troubles when they
662
+ occur, so that they can fix the clashes individually by adding ID arguments where needed.
663
+
664
+ ---
665
+
666
+ ___NOTE about the cache:___
667
+
668
+ The cache has been deactivated manually and isn't accessible to the user anymore, but the
669
+ implementation still makes reference to it, if ever I put it back in place, one day...
670
+ (unlikely: removed because mainly useless, by now).
671
+
672
+
673
+ ___NOTE about `ides_id_hash_mode: legacy`:___
674
+
675
+ The `runner_path` (to the python file) used in that case is "absolute + unresolved".
676
+ <br>When building the site during a pipeline, the paths look like this:
677
+
678
+ /builds/frederic-zinelli/pyodide-mkdocs-theme/docs/redactors/sequential_examples/ide4.py
679
+
680
+ This has kind of "opposite" consequences:
681
+
682
+ 1. The ids are automatically disambiguated considering different projects hosted in the same
683
+ GtiLab account/group, and probabilities of hashes collisions,event if not inexistant, are
684
+ probabilistically close to zero.
685
+
686
+ 2. When using `mkdocs serve`:
687
+ - The ids during serve ARE NOT IDENTICAL to those of the same IDE on the online site.
688
+ - The localStorage during serve sees ALL the IDEs entries of ALL the projects on the
689
+ local machine.
594
690
  """
595
- is_ide = PmtPyMacrosName.is_ide(self.MACRO_NAME)
691
+ is_ide = PmtPyMacrosName.is_ide(self.MACRO_NAME)
692
+ is_relative = not self.env.is_legacy
693
+ runner_path = self.exo_py
694
+ has_py_file = bool(runner_path)
695
+ project_id = self.env.project_id or ""
696
+
697
+ need_project_id = is_ide and self.env.project_disambiguate_local_storage and project_id and (
698
+ not has_py_file or is_relative
699
+ )
700
+ # The project_id is needed to disambiguate the html ids in the localStorage only if:
701
+ # 1. The element is an IDE
702
+ # 2. The user actually gave a value for env.project_id
703
+ # 3. The user _wants_ the project_id added to compute the html ids
704
+ # 4. Either...:
705
+ # - the ides_id_hash_mode is set to relative
706
+ # - Or there is no python file for the IDE
596
707
 
597
- if self.exo_py and (is_ide or self.env.ACTIVATE_CACHE):
598
- # IDE ids have to stay consistent with previous implementations, to not brake the
599
- # localeStorage saves of the users.
708
+ project_id = f':_{ project_id }' * bool(need_project_id)
600
709
 
601
- # The macro name is added in the string generating the hash for non IDE elements,
602
- # so that using the same source file for different kind of macros won't generate
603
- # equivalent hashes (ease the way for the users, _and_ more consistent with previous
604
- # behaviors... Even if that is probably a breaking change).
605
- less_ID_needs = "" if is_ide else ':'+self.MACRO_NAME
710
+ if has_py_file and (is_ide or self.env.ACTIVATE_CACHE):
606
711
 
607
- runner_path = self.exo_py
608
- if is_ide and not HashPathMode.is_legacy(self.env):
609
- # Avoid any dependency on the domain/site name, if needed:
712
+ less_ID_needs = "" if is_ide else ':'+self.MACRO_NAME
713
+ if is_ide and is_relative:
610
714
  runner_path = Path(self.exo_py).relative_to(self.env.docs_dir_path)
611
715
 
612
- to_hash = f"{ runner_path }{ self.IDE_VERT }{ less_ID_needs }"
613
- # PROBLEM for IDEs in ides_id_hash_mode:"legacy":
614
- #
615
- # `runner_path` is "absolute unresolved", in that case. When building the site during
616
- # a pipeline, the paths look like this:
617
- #
618
- # /builds/frederic-zinelli/pyodide-mkdocs-theme/docs/redactors/sequential_examples/ide4.py
619
- #
620
- # This means the ids are disambiguated considering different projects hosted in the same
621
- # GtiLab account/group, and probabilities of hashes collisions are not inexistant, but
622
- # probabilistically close to zero.
716
+ to_hash = f"{ runner_path }{ self.IDE_VERT }{ less_ID_needs }{ project_id }"
623
717
 
624
718
  else:
625
719
  count = self.env.macros_counters[ self.MACRO_NAME ].inc()
626
- to_hash = f"{ self.env.page.url }-{ self.MACRO_NAME }-{ count }"
627
- # DO NOT lstrip, even if it looks ugly on the home page (nobody but me can see
628
- # it anyway... :rolleyes:), to keep implementation consistent for users...
720
+ to_hash = f"{ self.env.page.url }-{ self.MACRO_NAME }-{ count }{ project_id }"
721
+ # DO NOT lstrip `to_hash`, to keep implementation consistent for users, even if it
722
+ # looks ugly on the home page (url is ""). Nobody but me can see it anyway... :rolleyes:
629
723
 
630
724
  hashed = self.id_to_hash(to_hash)
631
- # print(hashed, to_hash)
632
725
  return hashed
633
726
 
634
727
 
@@ -652,11 +745,11 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
652
745
  "The same html id got generated twice.\n"
653
746
  "If you are trying to use the same set of files for different macros calls, use "
654
747
  "their ID argument (int >= 0) to disambiguate them.\n\n"
655
- )+ self.env.ACTIVATE_CACHE*(
748
+ ) + self.env.ACTIVATE_CACHE * (
656
749
  "If you are encountering this problem with macros other than IDE or IDEv and you "
657
750
  "do not need some extra speed rendering-wise, you also can deactivate the PMT "
658
751
  f"cache, using `{ cache_option }: false`.\n\n"
659
- )+(
752
+ ) + (
660
753
  f"ID values already in use: { self.env.get_registered_ids_for(id_path) }\n"
661
754
  f"Id generated with: { to_hash }\n{ self.env.log() }"
662
755
  )
@@ -22,8 +22,6 @@ from functools import wraps
22
22
  from textwrap import dedent
23
23
  from typing import Any, Dict, List, Tuple
24
24
 
25
- from mkdocs.exceptions import BuildError
26
-
27
25
 
28
26
  from ..pyodide_logger import logger
29
27
  from ..tools_and_constants import MACROS_WITH_INDENTS, HtmlClass, IdeConstants