mystmd 1.3.5__py3-none-any.whl → 1.3.6__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mystmd
3
- Version: 1.3.5
3
+ Version: 1.3.6
4
4
  Summary: Command line tools for MyST Markdown
5
5
  Project-URL: Homepage, https://github.com/jupyter-book/mystmd
6
6
  Project-URL: Bug Tracker, https://github.com/jupyter-book/mystmd/issues
@@ -0,0 +1,8 @@
1
+ mystmd_py/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ mystmd_py/main.py,sha256=BaPniv8thshA5DKIBoq2huFUs1Jb0zFkMxN2UIHXUkw,1511
3
+ mystmd_py/myst.cjs,sha256=FxEBSPoYyXHIws693tzyrUqdWGKTKrIeWQN38ZQSPcc,13103855
4
+ mystmd-1.3.6.dist-info/METADATA,sha256=edCiMgoJBMsYUhBcw_gfIGm94Cwfwno7-zpdcXdxLMU,2954
5
+ mystmd-1.3.6.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
6
+ mystmd-1.3.6.dist-info/entry_points.txt,sha256=eC2ol2gqS2q5E-ktkMrBSvV0tckGUcNGS-c4hEQ-_V4,45
7
+ mystmd-1.3.6.dist-info/licenses/LICENSE,sha256=4BcikqvulW5nh_MxaocO-lC7ydIX23dMbcqtNTUSxr4,1082
8
+ mystmd-1.3.6.dist-info/RECORD,,
mystmd_py/myst.cjs CHANGED
@@ -193562,7 +193562,7 @@ var {
193562
193562
  } = import_index.default;
193563
193563
 
193564
193564
  // src/version.ts
193565
- var version = "1.3.5";
193565
+ var version = "1.3.6";
193566
193566
  var version_default = version;
193567
193567
 
193568
193568
  // ../myst-cli/dist/build/build.js
@@ -195821,21 +195821,35 @@ function validateJupytext(input3, opts) {
195821
195821
  }
195822
195822
 
195823
195823
  // ../myst-frontmatter/dist/kernelspec/validators.js
195824
- var KERNELSPEC_KEYS = ["name", "language", "display_name", "argv", "env"];
195824
+ var KERNELSPEC_KEYS = ["name", "display_name", "language", "argv", "env"];
195825
195825
  function validateKernelSpec(input3, opts) {
195826
195826
  const value = validateObjectKeys(input3, { optional: KERNELSPEC_KEYS }, opts);
195827
195827
  if (value === void 0)
195828
195828
  return void 0;
195829
- const output2 = {};
195829
+ let name3;
195830
195830
  if (defined(value.name)) {
195831
- output2.name = validateString(value.name, incrementOptions("name", opts));
195831
+ const validatedName = validateString(value.name, incrementOptions("name", opts));
195832
+ if (validatedName === void 0)
195833
+ return void 0;
195834
+ name3 = validatedName;
195835
+ } else {
195836
+ name3 = "python3";
195837
+ validationWarning(`"name" key is required; using '${name3}' as placeholder value`, opts);
195838
+ }
195839
+ let displayName;
195840
+ if (defined(value.display_name)) {
195841
+ const validatedDisplayName = validateString(value.display_name, incrementOptions("display_name", opts));
195842
+ if (validatedDisplayName === void 0)
195843
+ return void 0;
195844
+ displayName = validatedDisplayName;
195845
+ } else {
195846
+ displayName = `${name3} Kernel`;
195847
+ validationWarning(`"display_name" key is required; using '${displayName}' as placeholder value`, opts);
195832
195848
  }
195849
+ const output2 = { name: name3, display_name: displayName };
195833
195850
  if (defined(value.language)) {
195834
195851
  output2.language = validateString(value.language, incrementOptions("language", opts));
195835
195852
  }
195836
- if (defined(value.display_name)) {
195837
- output2.display_name = validateString(value.display_name, incrementOptions("display_name", opts));
195838
- }
195839
195853
  if (defined(value.env)) {
195840
195854
  output2.env = validateObject(value.env, incrementOptions("env", opts));
195841
195855
  }
@@ -241223,9 +241237,12 @@ function addWarningForFile(session, file, message, severity = "warn", opts) {
241223
241237
  session.log.error(`\u26D4\uFE0F ${prefix2}${formatted}`);
241224
241238
  break;
241225
241239
  case "warn":
241226
- default:
241227
241240
  session.log.warn(`\u26A0\uFE0F ${prefix2}${formatted}`);
241228
241241
  break;
241242
+ case "debug":
241243
+ default:
241244
+ session.log.debug(`${prefix2}${formatted}`);
241245
+ break;
241229
241246
  }
241230
241247
  if (opts === null || opts === void 0 ? void 0 : opts.ruleId) {
241231
241248
  session.log.debug(`To suppress this message, add rule: "${opts.ruleId}"${opts.key ? ` with key: "${opts.key}"` : ""} to "error_rules" in your project config`);
@@ -285686,7 +285703,7 @@ var citeRole = {
285686
285703
  run(data) {
285687
285704
  const content3 = data.body;
285688
285705
  const labels = content3.split(/[,;]/).map((s5) => s5.trim());
285689
- const kind = data.name.startsWith("cite:p") || data.name.includes("par") ? "parenthetical" : "narrative";
285706
+ const kind = data.name.startsWith("cite:p") || data.name.includes("par") || data.name.includes("cite:alp") ? "parenthetical" : "narrative";
285690
285707
  const children = labels.map((c) => {
285691
285708
  var _a6, _b;
285692
285709
  const groups = /^(?:\{([^{]*)\})?([^{]*)(?:\{([^{]*)\})?$/;
@@ -285713,6 +285730,9 @@ var citeRole = {
285713
285730
  if (data.name === "cite" && children.length === 1) {
285714
285731
  return children;
285715
285732
  }
285733
+ if (data.name.includes("cite:alp")) {
285734
+ return children;
285735
+ }
285716
285736
  return [
285717
285737
  {
285718
285738
  type: "citeGroup",
@@ -289018,7 +289038,7 @@ var import_node_path15 = __toESM(require("path"), 1);
289018
289038
  var import_nbtx = __toESM(require_cjs2(), 1);
289019
289039
 
289020
289040
  // ../myst-cli/dist/version.js
289021
- var version2 = "1.3.5";
289041
+ var version2 = "1.3.6";
289022
289042
  var version_default2 = version2;
289023
289043
 
289024
289044
  // ../myst-cli/dist/utils/headers.js
@@ -289439,7 +289459,7 @@ async function convertImageToWebp(session, image6, { quality = 80, overwrite = f
289439
289459
  minimumFractionDigits: 2,
289440
289460
  maximumFractionDigits: 2
289441
289461
  });
289442
- addWarningForFile(session, image6, `Image is too large (${inMB} MB) to convert to webp (build will be slow).`, "warn", { ruleId: RuleId.imageFormatOptimizes });
289462
+ addWarningForFile(session, image6, `Image is too large (${inMB} MB) to convert to webp (build will be slow).`, isGif2webpAvailable() && imageExt === ".gif" || isWebpAvailable() ? "warn" : "debug", { ruleId: RuleId.imageFormatOptimizes });
289443
289463
  return null;
289444
289464
  }
289445
289465
  const dirname8 = import_node_path13.default.dirname(image6);
@@ -289479,7 +289499,7 @@ imagemagick and cwebp are required
289479
289499
  if (!isGif2webpAvailable()) {
289480
289500
  addWarningForFile(session, image6, `Could not convert from image ${image6} to webp:
289481
289501
  gif2webp is required
289482
- `, "warn", { ruleId: RuleId.imageFormatOptimizes });
289502
+ `, "debug", { ruleId: RuleId.imageFormatOptimizes });
289483
289503
  return null;
289484
289504
  }
289485
289505
  await convertGif();
@@ -289487,7 +289507,7 @@ gif2webp is required
289487
289507
  if (!isWebpAvailable()) {
289488
289508
  addWarningForFile(session, image6, `Could not convert from image ${image6} to webp:
289489
289509
  cwebp is required
289490
- `, "warn", { ruleId: RuleId.imageFormatOptimizes });
289510
+ `, "debug", { ruleId: RuleId.imageFormatOptimizes });
289491
289511
  return null;
289492
289512
  }
289493
289513
  await convertImg();
@@ -302218,7 +302238,7 @@ async function evaluateExpression(kernel, expr) {
302218
302238
  (0, import_node_assert.default)(result !== void 0);
302219
302239
  return { status: result.status, result };
302220
302240
  }
302221
- function buildCacheKey(nodes) {
302241
+ function buildCacheKey(kernelSpec, nodes) {
302222
302242
  var _a6, _b, _c;
302223
302243
  const hashableItems = [];
302224
302244
  for (const node3 of nodes) {
@@ -302237,8 +302257,7 @@ function buildCacheKey(nodes) {
302237
302257
  });
302238
302258
  }
302239
302259
  }
302240
- const hashableString = JSON.stringify(hashableItems);
302241
- return (0, import_node_crypto4.createHash)("md5").update(hashableString).digest("hex");
302260
+ return (0, import_node_crypto4.createHash)("md5").update(kernelSpec.name).update(JSON.stringify(hashableItems)).digest("hex");
302242
302261
  }
302243
302262
  function isCellBlock(node3) {
302244
302263
  return node3.type === "block" && select("code", node3) !== null && select("output", node3) !== null;
@@ -302298,13 +302317,16 @@ function applyComputedOutputsToNodes(nodes, computedResult) {
302298
302317
  }
302299
302318
  }
302300
302319
  async function kernelExecutionTransform(tree, vfile2, opts) {
302301
- var _a6, _b, _c, _d2;
302320
+ var _a6;
302302
302321
  const log = (_a6 = opts.log) !== null && _a6 !== void 0 ? _a6 : console;
302322
+ if (opts.frontmatter.kernelspec === void 0) {
302323
+ return fileError(vfile2, `Notebook does not declare the necessary 'kernelspec' frontmatter key required for execution`);
302324
+ }
302303
302325
  const executableNodes = selectAll(`block[kind=${NotebookCell.code}],inlineExpression`, tree);
302304
302326
  if (executableNodes.length === 0) {
302305
302327
  return;
302306
302328
  }
302307
- const cacheKey = buildCacheKey(executableNodes);
302329
+ const cacheKey = buildCacheKey(opts.frontmatter.kernelspec, executableNodes);
302308
302330
  let cachedResults = opts.cache.get(cacheKey);
302309
302331
  if (opts.ignoreCache || cachedResults === void 0) {
302310
302332
  log.info(`\u{1F4BF} Executing Notebook (${vfile2.path}) ${opts.ignoreCache ? "[cache ignored]" : "[no execution cache found]"}`);
@@ -302320,7 +302342,7 @@ async function kernelExecutionTransform(tree, vfile2, opts) {
302320
302342
  type: "notebook",
302321
302343
  name: import_node_path34.default.basename(vfile2.path),
302322
302344
  kernel: {
302323
- name: (_d2 = (_c = (_b = opts.frontmatter) === null || _b === void 0 ? void 0 : _b.kernelspec) === null || _c === void 0 ? void 0 : _c.name) !== null && _d2 !== void 0 ? _d2 : "python3"
302345
+ name: opts.frontmatter.kernelspec.name
302324
302346
  }
302325
302347
  };
302326
302348
  await sessionManager.startNew(sessionOpts).catch((err) => {
@@ -323419,14 +323441,21 @@ ${errors4}`);
323419
323441
  function assertNever() {
323420
323442
  throw new Error("unreachable code");
323421
323443
  }
323422
- function convertNoFormat(dir, data) {
323423
- const rootEntry = { file: (0, import_node_path59.relative)(dir, resolveExtension((0, import_node_path59.join)(dir, data.root))) };
323444
+ function maybeResolveDocument(dir, name3, session) {
323445
+ const resolved = resolveExtension((0, import_node_path59.join)(dir, name3));
323446
+ if (resolved) {
323447
+ return (0, import_node_path59.relative)(dir, resolved);
323448
+ }
323449
+ session.log.error(`Could not find a file named ${name3} (declared in table of contents)`);
323450
+ return name3;
323451
+ }
323452
+ function convertNoFormat(session, dir, data) {
323453
+ const rootEntry = { file: maybeResolveDocument(dir, data.root, session) };
323424
323454
  const convertEntry = (item) => {
323425
323455
  let entry;
323426
323456
  if ("file" in item) {
323427
- const resolved = resolveExtension((0, import_node_path59.join)(dir, item.file));
323428
323457
  entry = {
323429
- file: (0, import_node_path59.relative)(dir, resolved),
323458
+ file: maybeResolveDocument(dir, item.file, session),
323430
323459
  title: item.title
323431
323460
  };
323432
323461
  } else if ("url" in item) {
@@ -323543,7 +323572,7 @@ function convertArticleToNoFormat(data) {
323543
323572
  }
323544
323573
  return result;
323545
323574
  }
323546
- function upgradeTOC(data) {
323575
+ function upgradeTOC(session, data) {
323547
323576
  const dir = (0, import_node_process6.cwd)();
323548
323577
  let dataNoFormat;
323549
323578
  if ("format" in data) {
@@ -323562,7 +323591,7 @@ function upgradeTOC(data) {
323562
323591
  } else {
323563
323592
  dataNoFormat = data;
323564
323593
  }
323565
- return convertNoFormat(dir, dataNoFormat);
323594
+ return convertNoFormat(session, dir, dataNoFormat);
323566
323595
  }
323567
323596
 
323568
323597
  // ../myst-cli/dist/init/jupyter-book/syntax.js
@@ -323758,13 +323787,15 @@ async function upgradeJupyterBook(session, configFile) {
323758
323787
  const configContent = await import_promises4.default.readFile("_config.yml", { encoding: "utf-8" });
323759
323788
  const configData2 = validateJupyterBookConfig(js_yaml_default.load(configContent));
323760
323789
  if (defined2(configData2)) {
323790
+ session.log.info(`Migrating Jupyter Book configuration to ${source_default.blue("myst.yml")}`);
323761
323791
  ({ site: config3.site, project: config3.project } = upgradeConfig(configData2));
323762
323792
  }
323763
323793
  if (await fsExists("_toc.yml")) {
323764
323794
  const tocContent = await import_promises4.default.readFile("_toc.yml", { encoding: "utf-8" });
323765
323795
  const tocData = validateSphinxExternalTOC(js_yaml_default.load(tocContent));
323766
323796
  if (defined2(tocData)) {
323767
- config3.project.toc = upgradeTOC(tocData);
323797
+ session.log.info(`Migrating TOC to ${source_default.blue("myst.yml")}`);
323798
+ config3.project.toc = upgradeTOC(session, tocData);
323768
323799
  }
323769
323800
  }
323770
323801
  await upgradeProjectSyntax(session);
@@ -1,8 +0,0 @@
1
- mystmd_py/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- mystmd_py/main.py,sha256=BaPniv8thshA5DKIBoq2huFUs1Jb0zFkMxN2UIHXUkw,1511
3
- mystmd_py/myst.cjs,sha256=5ABMC9ewfoAf0T1gHbV3DMoMv88hpUP_MtdLcA86nmY,13102599
4
- mystmd-1.3.5.dist-info/METADATA,sha256=XsHqRibAIZHhL_t8zqFtzRSX2zF5tH-q-8pGIFehbkY,2954
5
- mystmd-1.3.5.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
6
- mystmd-1.3.5.dist-info/entry_points.txt,sha256=eC2ol2gqS2q5E-ktkMrBSvV0tckGUcNGS-c4hEQ-_V4,45
7
- mystmd-1.3.5.dist-info/licenses/LICENSE,sha256=4BcikqvulW5nh_MxaocO-lC7ydIX23dMbcqtNTUSxr4,1082
8
- mystmd-1.3.5.dist-info/RECORD,,
File without changes