pyodide-mkdocs-theme 5.4.1__py3-none-any.whl → 5.4.3__py3-none-any.whl

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.
@@ -4,7 +4,7 @@ p5.js wrapper for Pyodide-MkDocs-Theme, by Frédéric Zinelli.
4
4
  Basic use:
5
5
 
6
6
  1. Import p5 as a namespace (no wildcard imports!):
7
- 2. Define the setup and draw callbacks, using calls to the original p6 JS functions,
7
+ 2. Define the setup and draw callbacks, using calls to the original p5 JS functions,
8
8
  using`p5.functionName()` syntax.
9
9
  3. Call `p5.run(setup, draw, preload, target="div_id")` at the end of the code (`preload`
10
10
  is optional / `target` is also optional and defaults to the current PMT option value
@@ -1 +1 @@
1
- __version__ = "5.4.1"
1
+ __version__ = "5.4.3"
@@ -136,7 +136,7 @@ Replacements:{ replacements }"""
136
136
  self.err_stack_closing()
137
137
  j = self.i
138
138
  str_repr = ''.join(self.tokens[i:j])
139
- return eval(str_repr)
139
+ return eval(str_repr) # Using eval to automatically handle escaped chars
140
140
 
141
141
 
142
142
  INCLUSION_PARSER = InclusionParser()
@@ -17,45 +17,42 @@ along with this program.
17
17
  If not, see <https://www.gnu.org/licenses/>.
18
18
  """
19
19
 
20
+
21
+
22
+
20
23
  """
21
24
  # Extractor general contracts/logic:
22
25
  ------------------------------------
23
26
 
24
27
 
25
- Represent all the files associated to a runner (IDE, terminal, ...), holding the logic/tools
26
- to build the various sections contents.
28
+ Represent all the files associated to a runner (IDE, terminal, sqlide, ...), holding the
29
+ logic/tools to build the various sections contents.
27
30
 
28
31
  Context/Contracts/Goals:
29
32
 
30
33
  * An Extractor is linked to a single PMT file, with its potential "direct" dependencies
31
- (aka REMs, or tests/corr files par for the PM source project's format).
32
-
33
- * The PMT file can actually not exist at all! (in that case, exo_py is None)
34
-
35
- * A PMT file, if it exists, contains sections, delimited by tokens in the form:
36
- `{something} (PMT|PYODIDE):{section} {something}`
37
- `something` being different depending on what is the file to extract (python, sql, ...).
38
- .
39
- * An Extractor instance is cached based on the absolute/resolved path to the main file
40
- (self.exo_py).
41
-
42
- * The cache is automatically refreshed when a local file has been modified (based on the
43
- stats of the file). NOTE: this update is done at the on_config step, to avoid checking on
44
- each extractor use/call.
45
-
46
- * The contents of the files are stored in the instance, avoiding multiple HDD reads operations.
47
-
48
- * Inclusions instructions are gathered after the file content has been read, WITHOUT recursively
49
- triggering extraction of successors: these will be resolved on demand, when building contents.
50
- NOTE: this is to allow .snippets.py file containing multiple sections, some of them not being
51
- used in the "parent" file. These .snippets.py files often using [py] redirections, forcing the
52
- resolution of the children might cause crashes if some sections of the .snippets.py file would
53
- require specific content in the parent file while they aren't actually needed for this file.
54
-
55
- * The final/actual contents are never stored in the object: sections (inclusions) are rebuilt
56
- on the fly each time they are needed (relying on the fact reading a file is longer than string
57
- concatenations, and that the simplification this allows in the implementation compensate for
58
- the extra computation time).
34
+ (aka REMs, or tests/corr files with the PM source project's setup).
35
+
36
+ * The PMT file can actually not exist at all! (in that case, exo_file is None)
37
+
38
+ * A PMT file, if it exists, contains sections delimited by tokens (comments) in the form:
39
+
40
+ {head} (PMT|PYODIDE):{section} {tail}
41
+
42
+ Where `head` and `tail` depend on the type of the file, to build a valide comment (python, sql, ...).
43
+
44
+ * An Extractor instance is cached based on the absolute/resolved path to the targeted
45
+ file (aka `self.exo_file`).
46
+
47
+ * The file is automatically refreshed when a local file has been modified.
48
+
49
+ * The concrete contents of the files are stored in the instance, avoiding multiple HDD
50
+ reads operations. Note that the content is stored "as is", meaning the inclusions are not
51
+ resolved yet, but the code is analyzed so that the inclusions are known upfront.
52
+
53
+ * The final/actual contents are never stored in the object: the concrete contents are
54
+ always built on the fly/on demand, so that all inclusions redirections can apply where
55
+ needed.
59
56
  """
60
57
  # pylint: disable=multiple-statements, missing-function-docstring
61
58
 
@@ -121,14 +118,15 @@ class BaseFilesExtractor:
121
118
  Path to the master main file (if any).
122
119
  Also used as key cache to retrieve an Extractor instance.
123
120
 
124
- WARNING: This path is absolute AND normalized, while an exo_py for an IDE actually needs the
125
- absolute UNnormalized path when generating its html id (for backward compatibility,
126
- when checking their uniqueness).
121
+ WARNING: This path is absolute + resolved, whereas the runner_file for an IDE actually is
122
+ absolute but NOT normalized (to reduce the needs of ID arugments in macros calls,
123
+ when generating the html ids of the resulting elements).
127
124
  """
128
125
 
129
126
  docs_file: Optional[Path] = None
130
127
  """
131
- Same as self.exo_file, but relative to the CWD (logging and error messages purpose).
128
+ Same as self.exo_file, but relative to the CWD (logging and error messages purpose / NOTE:
129
+ also used to identify an inclusion location, when resolving them).
132
130
  """
133
131
 
134
132
  in_pages: Set[str] = field(default_factory=set)
@@ -546,8 +546,7 @@ class BasePmtSectionsExtractor(BasePmtSectionsTools):
546
546
  Extraction of a bare file, supposedly containing only one section (implicitly / consider
547
547
  it's a `code` section).
548
548
  """
549
- log_exo = self.exo_file and Path(self.exo_file).relative_to(CWD)
550
- self.env.outdated_PM_files.append( (log_exo, self.env.file_location()) )
549
+ self.env.outdated_PM_files.append( (self.docs_file, self.env.file_location()) )
551
550
 
552
551
  sections_and_contents = (
553
552
  (ScriptData.code, script_content),
@@ -49,13 +49,16 @@ class FileExtractorWithInclusions(BasePmtSectionsExtractor):
49
49
  """
50
50
  Manage inclusions in the python files, following this kind of syntaxes:
51
51
 
52
+ ## {{ [cwd]py_name:section:section }}
52
53
  ## {{ [md]py_name:section:section }}
53
54
  ## {{ [py]py_name:section:section }}
54
55
  ## {{ py_name:section:section }}
55
56
 
56
- Relative paths usable:
57
+ Relative paths are usable:
57
58
  ## {{ ../bal/py_name:section }}
58
- ## {{ :section }} (= "in the current py file")
59
+
60
+ If no `py_name` element, extract from the current python file:
61
+ ## {{ :section }}
59
62
 
60
63
  Possible to change the file extractor type on the fly by giving the extension file in py_name.
61
64
  """
@@ -19,6 +19,8 @@ If not, see <https://www.gnu.org/licenses/>.
19
19
  # pylint: disable=unused-argument
20
20
 
21
21
  from functools import wraps
22
+ import json
23
+ from pathlib import Path
22
24
  from textwrap import dedent
23
25
  from typing import Any, Dict, List, Tuple
24
26
 
@@ -75,6 +77,7 @@ def multi_qcm(env:MaestroMacros):
75
77
  qcm_title: str = None,
76
78
  tag_list_of_qs: str = None,
77
79
  DEBUG: bool = None,
80
+ DUMP: bool = None,
78
81
  SHOW: str = None, # sink (not needed here!)
79
82
  ID=None, # sink (deprecated)
80
83
  ):
@@ -280,6 +283,36 @@ def multi_qcm(env:MaestroMacros):
280
283
 
281
284
  qcm_close()
282
285
 
286
+ if DUMP:
287
+ json_data = {
288
+ 'questions': questions,
289
+ 'description': description,
290
+ 'hide': hide,
291
+ 'multi': multi,
292
+ 'shuffle': shuffle,
293
+ 'shuffle_questions': shuffle_questions,
294
+ 'shuffle_items': shuffle_items,
295
+ 'admo_kind': admo_kind,
296
+ 'admo_class': admo_class,
297
+ 'qcm_title': qcm_title,
298
+ 'tag_list_of_qs': tag_list_of_qs,
299
+ 'DEBUG': DEBUG,
300
+ }
301
+
302
+ name = env.page.url.strip('/').split('/')[-1]
303
+ loc = Path(env.page.file.abs_src_path).with_name(f"qcm_{ name }_{ env.compteur_qcms }.json")
304
+ content = json.dumps(json_data, indent=2)
305
+ update = True
306
+ if loc.is_file():
307
+ current = loc.read_text(encoding='utf-8')
308
+ update = current != content
309
+ # Update the file only if the content is different, to avaoid infinite serve loops...
310
+ else:
311
+ loc.touch(exist_ok=True)
312
+ if update:
313
+ loc.write_text(content, encoding='utf-8')
314
+
315
+
283
316
 
284
317
  output = '\n'.join(admonition_lst)
285
318
  output = f'\n\n{ output }\n\n' # Enforce empty spaces around in the markdown admonition
@@ -148,6 +148,7 @@ class BaseMaestro(BasePlugin[PyodideMacrosConfig]):
148
148
  args_figure_p5_buttons: str = ConfigExtractor('config.args.figure', prop='p5_buttons')
149
149
 
150
150
  args_multi_qcm_DEBUG: bool = ConfigExtractor('config.args.multi_qcm', prop='DEBUG')
151
+ args_multi_qcm_DUMP: bool = ConfigExtractor('config.args.multi_qcm', prop='DUMP')
151
152
  args_multi_qcm_SHOW: str = ConfigExtractor('config.args.multi_qcm', prop='SHOW')
152
153
  args_multi_qcm_admo_class: str = ConfigExtractor('config.args.multi_qcm', prop='admo_class')
153
154
  args_multi_qcm_admo_kind: str = ConfigExtractor('config.args.multi_qcm', prop='admo_kind')
@@ -76,7 +76,7 @@ class MaestroMacroManager(MaestroIndent):
76
76
  """
77
77
 
78
78
 
79
- compteur_qcms: int = AutoCounter()
79
+ compteur_qcms: int = 0
80
80
  """ Number of qcm or qcs in the docs """
81
81
 
82
82
  _editors_ids: Set[str]
@@ -102,7 +102,9 @@ class MaestroMacroManager(MaestroIndent):
102
102
 
103
103
 
104
104
  def get_qcm_id(self):
105
- return f"{ Prefix.py_mk_qcm_id_ }{ self.compteur_qcms :0>5}"
105
+ id = f"{ Prefix.py_mk_qcm_id_ }{ self.compteur_qcms :0>5}"
106
+ self.compteur_qcms += 1
107
+ return id
106
108
 
107
109
 
108
110
  def is_unique_then_register(self, id_ide:str, no_id_path:str, ID:Optional[str]) -> bool :
@@ -1300,6 +1300,13 @@ MULTI_QCM = MultiQcmConfigSrc.with_default_docs(
1300
1300
  """,
1301
1301
  yaml_desc="Display macro related infos in the terminal.",
1302
1302
  ),
1303
+ ConfigOptionSrc(
1304
+ 'DUMP', bool, default=False,
1305
+ docs="""
1306
+ Crée un fichier json avec les données du qcm en cours dans le dossier de la page en cours.
1307
+ """,
1308
+ yaml_desc="Dump the MCQ content as json.",
1309
+ ),
1303
1310
  ))
1304
1311
 
1305
1312
 
@@ -533,6 +533,7 @@ class MacroArgsDataMulti_qcm(ObjectWithDataGetters):
533
533
  tag_list_of_qs: str = DataGetter()
534
534
  DEBUG: bool = DataGetter()
535
535
  SHOW: str = DataGetter()
536
+ DUMP: bool = DataGetter()
536
537
 
537
538
  class MacroDataMulti_qcm(MacroData):
538
539
  """ Runtime data object for the multi_qcm macro. """
@@ -1031,12 +1031,39 @@ export const noStorage = function () {
1031
1031
 
1032
1032
 
1033
1033
 
1034
-
1034
+ /**Extract all the cmd histories and the IDEs data from the localStorage.
1035
+ *
1036
+ * There is a dirty bug somewhere (unknown for now), where the bare code string can be stored in
1037
+ * a localStorage entry instead of the usual object. Just spot those entries and remove them.
1038
+ * Also warn the user and ask for raising an issue on the repo...
1039
+ */
1035
1040
  export const getStorageEntries=()=>{
1041
+
1042
+ const somethingWrong = []
1036
1043
  const data = Object.entries(localStorage)
1037
1044
  const cmds = data.filter( ([id,_]) => /^\d+_commands$/.test(id) )
1038
1045
  const ides = data.filter( ([id,_])=>/^editor_[\da-f]{16,}$/.test(id) )
1039
- .map( ([k,o])=>[k,JSON.parse(o)] )
1046
+ .map( ([k,s])=>{
1047
+ try{
1048
+ return [k,JSON.parse(s)]
1049
+ }catch(_){
1050
+ somethingWrong.push([k,s])
1051
+ localStorage.removeItem(k)
1052
+ }
1053
+ })
1054
+
1055
+ if(somethingWrong.length){
1056
+ const msg = `
1057
+ Some invalid data have been found in the localStorage.
1058
+ Please contact the author of Pyodide-MkDocs-Theme, opening an issue on the repository with the data you may find in the console of your browser (F12).
1059
+
1060
+ Repository:
1061
+ ${ CONFIG.pmtUrl }
1062
+ `
1063
+ console.error('\nInformation to give on the PMT repository:\n')
1064
+ console.log(somethingWrong.map(([k,s])=>'\n---\n '+k+':\n'+s).join('\n'))
1065
+ window.alert(msg)
1066
+ }
1040
1067
  return {cmds, ides}
1041
1068
  }
1042
1069
 
@@ -1086,9 +1113,9 @@ export function getIdeDataFromStorage(editorId, ide=null){
1086
1113
  code = obj.code ?? ""
1087
1114
  }catch(_){}
1088
1115
 
1089
- // If the update to 5.4.0 has occured before the `project.id` was filled by the author,
1116
+ // If the update to 5.4.0 has occurred before the `project.id` was filled by the author,
1090
1117
  // users might have the localStorage updated with a `project: null` entry. This is not to
1091
- // be considered "up to date", to avoid basillions of warning for the users (1 per IDE!).
1118
+ // be considered "up to date", to avoid bazillions of warning for the users (1 per IDE!).
1092
1119
  const pmt_540_ok = (obj.project??null)!==null
1093
1120
  const upToDate = PMT_LOCAL_STORAGE_KEYS_WRITE.every(k=> k in obj) && pmt_540_ok
1094
1121
  const storage = upToDate ? obj : freshStore(code, obj, ide)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyodide-mkdocs-theme
3
- Version: 5.4.1
3
+ Version: 5.4.3
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
@@ -1,17 +1,17 @@
1
- pyodide_mkdocs_theme/PMT_tools/p5/__init__.py,sha256=O57MlgKy6XW5Eg6rr69WtIzHdu-E7lEMOCp67BTbQaI,14207
1
+ pyodide_mkdocs_theme/PMT_tools/p5/__init__.py,sha256=Bab52YMv0sldNLpAWmSgLfSVobK8TXkfYk53MXt6aYw,14207
2
2
  pyodide_mkdocs_theme/PMT_tools/vis/__init__.py,sha256=yz4vn9sdJbov4nnSY3qW2i2KBxnCXAa6AM6alrY1wZM,18989
3
3
  pyodide_mkdocs_theme/PMT_tools/vis_network/__init__.py,sha256=xIHPG_LGtVNuWn31ES2cHBGMTPszW103xSL-X9rvass,19176
4
4
  pyodide_mkdocs_theme/__init__.py,sha256=eF71r5abmOC1RxEUnT2trZxTQWNmW69wUFWcBIEyxeI,2767
5
5
  pyodide_mkdocs_theme/__main__.py,sha256=AM77xwc-6A0UlQKDk5lQE2ZmQwFdB4SvipsB2-6ieCQ,10321
6
- pyodide_mkdocs_theme/__version__.py,sha256=txavOIJExVzJ_65e_CmTvmPvUuIxtGnR5XsQU0qPD7Q,22
6
+ pyodide_mkdocs_theme/__version__.py,sha256=Q29S84WE1qX2Z01NUZof0q2JGC41_sRtGFgyiFyWYRQ,22
7
7
  pyodide_mkdocs_theme/basthon_p5_to_pmt.py,sha256=C0qeMygadJjAo4ERzWLqptyo0KPEvEwZ7DWC1Io0SqM,17446
8
8
  pyodide_mkdocs_theme/pyodide_macros/__init__.py,sha256=QsJobE1N4BzEm-ucPawBCcdXyCV_-40jGa3WlaQQGpo,1392
9
9
  pyodide_mkdocs_theme/pyodide_macros/exceptions.py,sha256=TPCoT52wD_huHT0BbWf17ESe90IeG4TrkM_yxUyvnQI,5699
10
10
  pyodide_mkdocs_theme/pyodide_macros/files_extractors/__init__.py,sha256=OEG4s4IEFodQZkSHVPpsVfPGWIfARePJqaZRUQbvGB4,814
11
- pyodide_mkdocs_theme/pyodide_macros/files_extractors/_inclusions_tools.py,sha256=lVfC8k_LVmCOWOadQvGIv3B0CEli5ZYP0xpjwURVnXE,8001
12
- pyodide_mkdocs_theme/pyodide_macros/files_extractors/base0_extractors.py,sha256=yL86NW5Sk0w3kiyW1MMp8oBMgaiwpOphoApfR_bhAN0,10167
13
- pyodide_mkdocs_theme/pyodide_macros/files_extractors/base1_contents_extractor.py,sha256=_jkpBNqLBFP3dH3SAmG-O7EmQZVfdlsjpbmj8rKx6kM,20512
14
- pyodide_mkdocs_theme/pyodide_macros/files_extractors/base2_inclusions.py,sha256=snH3QQTDOZzU5doMgOmyob_l9TIHSgla5WlRZNFx4GI,6879
11
+ pyodide_mkdocs_theme/pyodide_macros/files_extractors/_inclusions_tools.py,sha256=XJA5UTUmMj36ysX78m8a-zHJvtPXQ65_SUd65j-cfR8,8062
12
+ pyodide_mkdocs_theme/pyodide_macros/files_extractors/base0_extractors.py,sha256=kYG_GLGy7JYyCmaavgz7YFJhtfDzbBypeJu6unKFCEA,9653
13
+ pyodide_mkdocs_theme/pyodide_macros/files_extractors/base1_contents_extractor.py,sha256=Y5ucCN7PNzWCB7meRT2nLnO4LyYCZFkXzyRQ5Jqwqko,20446
14
+ pyodide_mkdocs_theme/pyodide_macros/files_extractors/base2_inclusions.py,sha256=_GYcJXXG_smrVzepxpj4FsfYmI5KCqcw8vnHp4ApWJs,6947
15
15
  pyodide_mkdocs_theme/pyodide_macros/files_extractors/base3_generic_extractors.py,sha256=ZtvIk7bu3doOZFGF20bbbK_UYxOm7G7-RC8Jkf3kESs,2630
16
16
  pyodide_mkdocs_theme/pyodide_macros/files_extractors/concrete_extractors.py,sha256=gab8EYZ6HMQVKpQtiFRfOD4k68Sc478AulElXt0LdQM,6551
17
17
  pyodide_mkdocs_theme/pyodide_macros/html_builder/__init__.py,sha256=C1pU80iYwt0UxUkXpqxEj313fhRNWM3TcCKEhiIUnSI,1253
@@ -32,7 +32,7 @@ pyodide_mkdocs_theme/pyodide_macros/macros/ide_term_ide.py,sha256=D89KAddfJb3bF5
32
32
  pyodide_mkdocs_theme/pyodide_macros/macros/ide_terminal.py,sha256=elsJVbMsrUFhWwXZLgOZ04apQz9A8h-Hef5x2NiYjUM,2485
33
33
  pyodide_mkdocs_theme/pyodide_macros/macros/ide_tester.py,sha256=UYrRZqANb1is7Yg6ohZ4JMlQZUEoACfZOn7AtHvykRA,16062
34
34
  pyodide_mkdocs_theme/pyodide_macros/macros/py_script.py,sha256=FAQlI8UNyjkPR2DKTQJ10SiKkeuV8yXrLeEWa2Mfm20,7417
35
- pyodide_mkdocs_theme/pyodide_macros/macros/qcm.py,sha256=HZC8PVdtZK_3Ilp6qxCQofFuvCNbOMP8O3m-ARDztIY,12567
35
+ pyodide_mkdocs_theme/pyodide_macros/macros/qcm.py,sha256=6LTc307trCrSKu98Z759DyvwNQHsqWJdGs4v1NC_gLI,13812
36
36
  pyodide_mkdocs_theme/pyodide_macros/messages/__init__.py,sha256=DSWDp2ph8H6gFaT7-3KhdE7zoo9CfdkIi4bAdZcBYIw,975
37
37
  pyodide_mkdocs_theme/pyodide_macros/messages/classes.py,sha256=2eS08_8frqvno7gLq4Elbk2nQHSmvMcjphaNdaqgTUk,10961
38
38
  pyodide_mkdocs_theme/pyodide_macros/messages/de_lang.py,sha256=8gY1sLIPNCH6oE-f9cc0IJd2Yg-fU6X5OGTYZsU7IYQ,14511
@@ -43,11 +43,11 @@ pyodide_mkdocs_theme/pyodide_macros/parsing.py,sha256=nUr1KJxHCMUiQmrByWHUFUVIjP
43
43
  pyodide_mkdocs_theme/pyodide_macros/paths_utils.py,sha256=RI9JhjB7_Xu2ai__q0Ojhv2B2wdj72sEj0BWTvzLu3o,2807
44
44
  pyodide_mkdocs_theme/pyodide_macros/plugin/__init__.py,sha256=dn8gT4_see4lppe8bYV4xolWPihCNdKcPYGPJ7WMnVU,1266
45
45
  pyodide_mkdocs_theme/pyodide_macros/plugin/config.py,sha256=fnqEniQS6RufLoLlhvKh55mqIYPu3X23dVLbabpwosk,779
46
- pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_base.py,sha256=TJcdV-mYGWJ10msz1OS_tg3TgGKS3iK51-5gdt6uo9I,26085
46
+ pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_base.py,sha256=-Sza2SrGryARVtklDpWl-HMkhMGSiC72QmDxCdBJwoU,26184
47
47
  pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py,sha256=jYEY-AgbAD7Wj1Ev8rRyXm6sWgeljnkp5u1QJngS7pU,17741
48
48
  pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_files.py,sha256=r6LFySdoHuqwyp1Kl2iwM-JixmteZTxA4rW2T9rDqB0,13813
49
49
  pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_indent.py,sha256=sfpOnT55JjBdsCxkYs-wtM7TpyYtwTG77EXoMZZboMs,10516
50
- pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_macros.py,sha256=310_qx-Ygks9LLhtKz9fUaM4yhAIru3slHh1sbhxKMo,21231
50
+ pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_macros.py,sha256=6prlX8nx2hhrtglY5Op3WmLX8zymm4_iwphQAQo56a4,21267
51
51
  pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_meta.py,sha256=Tb7HaJ_Yvky08aR0fef0Wx6YcdqIofiY0FVy-WWWSqQ,14589
52
52
  pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_templates.py,sha256=iXfkx0m3USJ8szD5Bo4RPF8C9fdZKZdcYfE7Oy0HrPI,7915
53
53
  pyodide_mkdocs_theme/pyodide_macros/plugin/pyodide_macros_plugin.py,sha256=5ZuwC-Vt_M91p92nVPVPGO5iroBPBzffyJcdeG6dmQw,7075
@@ -57,7 +57,7 @@ pyodide_mkdocs_theme/pyodide_macros/plugin_config/common_tree_src.py,sha256=pWWY
57
57
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/config_option_src.py,sha256=pjBflnpy_j38CsFoD12AaOtJDW5yLpC651PpZyeC-uc,18744
58
58
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
59
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/docs_dirs_config.py,sha256=W1q6V6GA6UUtFrEiRuXtwpLy4RO78m_bZfoWQpeWUas,1961
60
- pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/macros_configs.py,sha256=94t5vjcskFLj7BBpqWVqSTCaVquwR-fWXTpYzpuGdE8,59382
60
+ pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/macros_configs.py,sha256=i1VWlwQMUyUOJigUlRC94IXvSUpFgWKYDtahpyssV3A,59633
61
61
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/plugin_config.py,sha256=ig7CKqLRt4om7FVnYuSImGIOZ4k5dp4YVAIfxQlOfKI,11102
62
62
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/sub_configs.py,sha256=jqiwCnetgnVQkWxfdTvz6u6j3Lvudr3rXWDqXSRnlZs,49625
63
63
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/dumpers.py,sha256=37HyTzgkNMUhstOR3xSRAXN2e1HlAMzWajBNXEK8svI,5486
@@ -66,7 +66,7 @@ pyodide_mkdocs_theme/pyodide_macros/plugin_config/macro_config_src.py,sha256=W0g
66
66
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/plugin_config_src.py,sha256=qCan1ak2bgR-yhnGXhjqbcsV8taDluL68tGVs67LOIY,9454
67
67
  pyodide_mkdocs_theme/pyodide_macros/plugin_config/sub_config_src.py,sha256=zOD36UjEWMfGFUqy6JZZgTbcymc0JXoEqXlP3S00Row,4809
68
68
  pyodide_mkdocs_theme/pyodide_macros/plugin_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- pyodide_mkdocs_theme/pyodide_macros/plugin_tools/macros_data.py,sha256=rrb1TWciD2gpTDO5VXYEshIZebWKOegKcH66Jo0rodg,18965
69
+ pyodide_mkdocs_theme/pyodide_macros/plugin_tools/macros_data.py,sha256=VaY8o-mpxlr44T-8VnuvXGMAo6rupn-JanZwRbKHK0A,18995
70
70
  pyodide_mkdocs_theme/pyodide_macros/plugin_tools/maestro_tools.py,sha256=knUeodgYGnmsROYj--sn4BijrEln0Vi7jKdsonZpazM,7477
71
71
  pyodide_mkdocs_theme/pyodide_macros/plugin_tools/options_alterations.py,sha256=bxZFsXDDbYJo4Y3oTMoWV8cXZOEwdDTBON5EMnXtLb4,1238
72
72
  pyodide_mkdocs_theme/pyodide_macros/plugin_tools/pages_and_macros_py_configs.py,sha256=G2AytHPYqF8ZQvF_2ULaahR2eHkFhx5MIKZO0rw3R4E,12840
@@ -103,7 +103,7 @@ pyodide_mkdocs_theme/templates/assets/images/icons8-zip-64.png,sha256=hakeODow5W
103
103
  pyodide_mkdocs_theme/templates/base_pmt.html,sha256=2R_5T5j9QT2Ptit-CvzV6k1khbqrXolGBPvztj4zRWc,1318
104
104
  pyodide_mkdocs_theme/templates/js-libs/0-config.js,sha256=eNRpmoiWfrZuOKXlkvYF8YDG0tzb4-UiXP-3Xf5Vsoc,10206
105
105
  pyodide_mkdocs_theme/templates/js-libs/0-legacy-subscriber.js,sha256=kSQ1Nv8KOcYMde9fqO-Kw1rNh26hPB3AG8lonlovTdo,2126
106
- pyodide_mkdocs_theme/templates/js-libs/functools.js,sha256=FnKIwUm-InFtfwe21K_lEVaUNcz8lzR9kvs3y_XSbfs,39943
106
+ pyodide_mkdocs_theme/templates/js-libs/functools.js,sha256=HiQ47l9tvXsBzXAXO1oV_T644MMAwTJBaiV1g-ZjDdA,41053
107
107
  pyodide_mkdocs_theme/templates/js-libs/jsLogger.js,sha256=vk69c8fdawIuxsMfRJv1sImoCNt5WD2oFfy5kYJcj4U,2336
108
108
  pyodide_mkdocs_theme/templates/js-libs/mathjax-libs.js,sha256=gJEOIGRzxAm5WK8wxdzN36TUy66STBu2JRcy7OGSiMc,1478
109
109
  pyodide_mkdocs_theme/templates/js-libs/process_and_gui.js,sha256=9WumINb2wspfAeI8h7_UaKdmx_8LKPqYZfSzuWzxvR0,7124
@@ -140,8 +140,8 @@ pyodide_mkdocs_theme/templates/pyodide-css/ide.css,sha256=UX_qKVgckw-TUVmZRvlu-M
140
140
  pyodide_mkdocs_theme/templates/pyodide-css/qcm.css,sha256=Mh2lg1WFgmHYuI69cxwUtfXuNl97XJkiOzN5jodww_o,4491
141
141
  pyodide_mkdocs_theme/templates/pyodide-css/terminal.css,sha256=emPONURSk0VaNXWPSz7Yj6LaoV8kzRhL0y2D9Q_wybQ,1688
142
142
  pyodide_mkdocs_theme/templates/pyodide-css/testing.css,sha256=V1BZ7UV6mOWd087VtARX0IWOiONQw3OmD-eCGmCggVQ,3293
143
- pyodide_mkdocs_theme-5.4.1.dist-info/LICENSE,sha256=KSvfLkVBOr2TwehfMhrI9Od3dHoyYFpxZH5GQCSflRE,35118
144
- pyodide_mkdocs_theme-5.4.1.dist-info/METADATA,sha256=cHTGD-HEZKw3Az5XQPmNwdM1MmZ26van6nRSO3v9GOk,4471
145
- pyodide_mkdocs_theme-5.4.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
146
- pyodide_mkdocs_theme-5.4.1.dist-info/entry_points.txt,sha256=S7DNQF6CBMaqSasP1CZ_T5elFKAzwwldYuhVZmAUFu0,719
147
- pyodide_mkdocs_theme-5.4.1.dist-info/RECORD,,
143
+ pyodide_mkdocs_theme-5.4.3.dist-info/LICENSE,sha256=KSvfLkVBOr2TwehfMhrI9Od3dHoyYFpxZH5GQCSflRE,35118
144
+ pyodide_mkdocs_theme-5.4.3.dist-info/METADATA,sha256=feHi_Y9bk8GB-119MQ497AFtxqTH6eBz7pNTORdmmaE,4471
145
+ pyodide_mkdocs_theme-5.4.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
146
+ pyodide_mkdocs_theme-5.4.3.dist-info/entry_points.txt,sha256=S7DNQF6CBMaqSasP1CZ_T5elFKAzwwldYuhVZmAUFu0,719
147
+ pyodide_mkdocs_theme-5.4.3.dist-info/RECORD,,