nbsync 0.4.0__py3-none-any.whl → 0.4.1__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.
nbsync/notebook.py CHANGED
@@ -7,8 +7,6 @@ from typing import TYPE_CHECKING
7
7
 
8
8
  import nbstore.notebook
9
9
 
10
- from nbsync import logger
11
-
12
10
  if TYPE_CHECKING:
13
11
  from nbformat import NotebookNode
14
12
 
@@ -42,12 +40,8 @@ class Notebook:
42
40
  return nbstore.notebook.equals(self.nb, other.nb)
43
41
 
44
42
  def execute(self) -> float:
45
- try:
46
- start_time = time.perf_counter()
47
- nbstore.notebook.execute(self.nb)
48
- end_time = time.perf_counter()
49
- self.execution_needed = False
50
- return end_time - start_time
51
- except ModuleNotFoundError as e: # no cov
52
- logger.warning(e.msg)
53
- return 0
43
+ start_time = time.perf_counter()
44
+ nbstore.notebook.execute(self.nb)
45
+ end_time = time.perf_counter()
46
+ self.execution_needed = False
47
+ return end_time - start_time
nbsync/sync.py CHANGED
@@ -3,7 +3,6 @@ from __future__ import annotations
3
3
  import re
4
4
  import textwrap
5
5
  from dataclasses import dataclass, field
6
- from pathlib import Path
7
6
  from typing import TYPE_CHECKING
8
7
 
9
8
  import nbformat
@@ -41,19 +40,29 @@ class Synchronizer:
41
40
  if url not in self.notebooks or not self.notebooks[url].equals(notebook):
42
41
  self.notebooks[url] = notebook
43
42
 
44
- def execute(self) -> None:
43
+ def execute(self, src_uri: str | None = None) -> None:
45
44
  for url, notebook in self.notebooks.items():
46
45
  if not notebook.execution_needed:
47
46
  continue
48
47
 
49
- path = ".md" if url == ".md" else self.store.find_path(url)
50
- logger.info(f"Executing notebook: {path}")
51
- if elapsed := notebook.execute():
52
- logger.info(f"{Path(path).name!r} executed in {elapsed:.2f} seconds")
48
+ path = src_uri or ".md" if url == ".md" else self.store.find_path(url)
53
49
 
54
- def convert(self, text: str) -> Iterator[str | Cell]:
50
+ try:
51
+ elapsed = notebook.execute()
52
+ except Exception as e: # noqa: BLE001
53
+ if src_uri and src_uri != path:
54
+ msg = f"Error reading page {src_uri!r}: "
55
+ else:
56
+ msg = ""
57
+ msg = f"{msg}Error executing notebook {path!r}: {e}"
58
+ logger.error(msg)
59
+ raise SystemExit(1) from None
60
+ else:
61
+ logger.info(f"{path!r} executed in {elapsed:.2f} seconds")
62
+
63
+ def convert(self, text: str, src_uri: str | None = None) -> Iterator[str | Cell]:
55
64
  elems = list(self.parse(text))
56
- self.execute()
65
+ self.execute(src_uri)
57
66
 
58
67
  for elem in elems:
59
68
  if isinstance(elem, str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: nbsync
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: A core library to synchronize Jupyter notebooks and Markdown documents, enabling seamless integration and dynamic content execution
5
5
  Keywords: jupyter,notebook,documentation,markdown,python,visualization,dynamic-execution,real-time-sync
6
6
  Author: daizutabi
@@ -2,9 +2,9 @@ nbsync/__init__.py,sha256=3NuWx9D0LcBnXjEKrC-uypNDOz8rLWXI7mIjdN9xSeE,126
2
2
  nbsync/cell.py,sha256=58RkBXzcYajMJzFbUBfdtxXScfkl642B-dckel5-5ZA,4909
3
3
  nbsync/logger.py,sha256=4nXvoy5_5Xd2uXCiT_0u1LqOI6L5ZgV4PFCCmy3leVM,759
4
4
  nbsync/markdown.py,sha256=2jIyKL-jSjIw3pPsCDIoyYL3MuHAhV9MjfuXa7zh0XA,4549
5
- nbsync/notebook.py,sha256=4F3V1KDHfJnIR5ZSb1xWdN9JGiC6mWUVimXXK1BFsbc,1450
5
+ nbsync/notebook.py,sha256=XA7Z7nlIZzSMD5UNfkf5EeKe22t5M9P6R7-EHVJtU2s,1284
6
6
  nbsync/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- nbsync/sync.py,sha256=Z9fsA5J1dPTMorrYZp4Akx1hFoHREhAKlT2kIQ8cpHk,4672
8
- nbsync-0.4.0.dist-info/WHEEL,sha256=5w2T7AS2mz1-rW9CNagNYWRCaB0iQqBMYLwKdlgiR4Q,78
9
- nbsync-0.4.0.dist-info/METADATA,sha256=sZOW2-G8pUyFr7hpQcMWRPtfafnvlxZKDN8t-7tBWd8,7232
10
- nbsync-0.4.0.dist-info/RECORD,,
7
+ nbsync/sync.py,sha256=HR2-LHOoA8m5E2ffflXvApTMF-VxAtgiEUgobA3EThs,5051
8
+ nbsync-0.4.1.dist-info/WHEEL,sha256=5w2T7AS2mz1-rW9CNagNYWRCaB0iQqBMYLwKdlgiR4Q,78
9
+ nbsync-0.4.1.dist-info/METADATA,sha256=EVirwM5CtKEODeT7tdVuLwAYtYCvdF98hlC8brwc_ws,7232
10
+ nbsync-0.4.1.dist-info/RECORD,,
File without changes