Skip to content

Commit cd361cb

Browse files
authored
compat: Future proof for upstream changed in >0.13.15 (#20)
1 parent d69da64 commit cd361cb

4 files changed

Lines changed: 732 additions & 667 deletions

File tree

_extensions/marimo/_extension.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
title: Quarto Marimo Extension
2-
version: 0.4.0
2+
version: 0.4.1
33
quarto-required: ">=1.3.0"
44
contributes:
55
filters:

_extensions/marimo/command.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,21 @@
66
from textwrap import dedent
77

88
try:
9-
from marimo._cli.sandbox import PyProjectReader, construct_uv_flags
9+
from marimo._cli.sandbox import construct_uv_flags
10+
from marimo._utils.inline_script_metadata import PyProjectReader
1011
except ImportError as e:
11-
from marimo import __version__
12-
raise ImportError(
13-
"Potential version incompatibility quartom-marimo requires marimo "
14-
f">=0.13.3. marimo version {__version__} is detected. "
15-
) from e
12+
try:
13+
from marimo._cli.sandbox import ( # type: ignore[attr-defined, no-redef]
14+
PyProjectReader,
15+
construct_uv_flags,
16+
)
17+
except ImportError:
18+
from marimo import __version__
19+
20+
raise ImportError(
21+
"Potential version incompatibility quartom-marimo requires marimo "
22+
f">=0.13.3. marimo version {__version__} is detected. "
23+
) from e
1624

1725

1826
def extract_command(header: str) -> list[str]:

_extensions/marimo/extract.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,24 @@
1212

1313
import marimo
1414
from marimo import MarimoIslandGenerator
15-
from marimo._cli.convert.markdown import (
16-
MARIMO_MD,
17-
MarimoParser,
18-
SafeWrap,
19-
)
15+
16+
try:
17+
from marimo._ast.app import App
18+
from marimo._convert.markdown.markdown import (
19+
MARIMO_MD,
20+
MarimoMdParser as MarimoParser,
21+
SafeWrap as SafeWrapGeneric,
22+
)
23+
24+
SafeWrap = SafeWrapGeneric[App]
25+
except ImportError:
26+
# Fallback for marimo < 0.13.16
27+
from marimo._cli.convert.markdown import ( # type: ignore[import, no-redef]
28+
MARIMO_MD,
29+
MarimoParser,
30+
SafeWrap,
31+
)
32+
2033
from marimo._islands import MarimoIslandStub
2134

2235
__version__ = "0.0.1"
@@ -196,6 +209,7 @@ def tree_to_pandoc_export(root: Element) -> SafeWrap:
196209
class MarimoPandocParser(MarimoParser):
197210
"""Parses Markdown to marimo notebook string."""
198211

212+
# TODO: Could upstream generic for keys- but this is fine.
199213
output_formats = { # type: ignore[assignment, misc]
200214
"marimo-pandoc-export": build_export_with_mime_context(mime_sensitive=False), # type: ignore[dict-item]
201215
"marimo-pandoc-export-with-mime": build_export_with_mime_context(
@@ -208,9 +222,9 @@ def convert_from_md_to_pandoc_export(text: str, mime_sensitive: bool) -> dict[st
208222
if not text:
209223
return {"header": "", "outputs": []}
210224
if mime_sensitive:
211-
parser = MarimoPandocParser(output_format="marimo-pandoc-export-with-mime")
225+
parser = MarimoPandocParser(output_format="marimo-pandoc-export-with-mime") # type: ignore[arg-type]
212226
else:
213-
parser = MarimoPandocParser(output_format="marimo-pandoc-export")
227+
parser = MarimoPandocParser(output_format="marimo-pandoc-export") # type: ignore[arg-type]
214228
return parser.convert(text) # type: ignore[arg-type, return-value]
215229

216230

0 commit comments

Comments
 (0)