moops 0.14.2__tar.gz → 0.14.3__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 (34) hide show
  1. {moops-0.14.2 → moops-0.14.3}/PKG-INFO +2 -1
  2. {moops-0.14.2 → moops-0.14.3}/pyproject.toml +2 -1
  3. {moops-0.14.2 → moops-0.14.3}/src/moops/group.py +8 -1
  4. {moops-0.14.2 → moops-0.14.3}/README.md +0 -0
  5. {moops-0.14.2 → moops-0.14.3}/src/moops/__init__.py +0 -0
  6. {moops-0.14.2 → moops-0.14.3}/src/moops/_choice_options.py +0 -0
  7. {moops-0.14.2 → moops-0.14.3}/src/moops/_control_mirroring.py +0 -0
  8. {moops-0.14.2 → moops-0.14.3}/src/moops/_custom_element.py +0 -0
  9. {moops-0.14.2 → moops-0.14.3}/src/moops/_dataclass.py +0 -0
  10. {moops-0.14.2 → moops-0.14.3}/src/moops/_embed.py +0 -0
  11. {moops-0.14.2 → moops-0.14.3}/src/moops/_input_map.py +0 -0
  12. {moops-0.14.2 → moops-0.14.3}/src/moops/_interface_utils.py +0 -0
  13. {moops-0.14.2 → moops-0.14.3}/src/moops/_list_controls.py +0 -0
  14. {moops-0.14.2 → moops-0.14.3}/src/moops/_list_options.py +0 -0
  15. {moops-0.14.2 → moops-0.14.3}/src/moops/_marimo_controls.py +0 -0
  16. {moops-0.14.2 → moops-0.14.3}/src/moops/_markdown.py +0 -0
  17. {moops-0.14.2 → moops-0.14.3}/src/moops/_naming.py +0 -0
  18. {moops-0.14.2 → moops-0.14.3}/src/moops/_options.py +0 -0
  19. {moops-0.14.2 → moops-0.14.3}/src/moops/_parse.py +0 -0
  20. {moops-0.14.2 → moops-0.14.3}/src/moops/_preset_state.py +0 -0
  21. {moops-0.14.2 → moops-0.14.3}/src/moops/_presets_ui.py +0 -0
  22. {moops-0.14.2 → moops-0.14.3}/src/moops/_query_params.py +0 -0
  23. {moops-0.14.2 → moops-0.14.3}/src/moops/_run.py +0 -0
  24. {moops-0.14.2 → moops-0.14.3}/src/moops/_run_button.py +0 -0
  25. {moops-0.14.2 → moops-0.14.3}/src/moops/_status.py +0 -0
  26. {moops-0.14.2 → moops-0.14.3}/src/moops/_subgroup_registry.py +0 -0
  27. {moops-0.14.2 → moops-0.14.3}/src/moops/_terminal_graphics.py +0 -0
  28. {moops-0.14.2 → moops-0.14.3}/src/moops/_text_wrap.py +0 -0
  29. {moops-0.14.2 → moops-0.14.3}/src/moops/_ui_workarounds.py +0 -0
  30. {moops-0.14.2 → moops-0.14.3}/src/moops/_value_resolution.py +0 -0
  31. {moops-0.14.2 → moops-0.14.3}/src/moops/_variant.py +0 -0
  32. {moops-0.14.2 → moops-0.14.3}/src/moops/interface.py +0 -0
  33. {moops-0.14.2 → moops-0.14.3}/src/moops/presets.py +0 -0
  34. {moops-0.14.2 → moops-0.14.3}/src/moops/workarounds.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: moops
3
- Version: 0.14.2
3
+ Version: 0.14.3
4
4
  Summary: Write Marimo notebooks that also work as CLI scripts, with unified UI controls
5
5
  Keywords: marimo,notebooks,cli,testing
6
6
  Author: Yair Chuchem
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Requires-Dist: marimo>=0.23.7
16
+ Requires-Dist: rich>=15.0.0
16
17
  Requires-Dist: tqdm>=4.67.1 ; extra == 'status'
17
18
  Requires-Dist: tabulate>=0.10.0 ; extra == 'table'
18
19
  Requires-Dist: hypothesis ; extra == 'test'
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "moops"
7
- version = "0.14.2"
7
+ version = "0.14.3"
8
8
  description = "Write Marimo notebooks that also work as CLI scripts, with unified UI controls"
9
9
  license = "MIT"
10
10
  readme = "README.md"
@@ -24,6 +24,7 @@ classifiers = [
24
24
  ]
25
25
  dependencies = [
26
26
  "marimo>=0.23.7",
27
+ "rich>=15.0.0",
27
28
  ]
28
29
 
29
30
  [project.optional-dependencies]
@@ -5,10 +5,13 @@ import dataclasses
5
5
  import enum
6
6
  import inspect
7
7
  import pathlib
8
+ import sys
8
9
  import typing
9
10
  import warnings
10
11
 
11
12
  import marimo as mo
13
+ import rich.console
14
+ import rich.markdown
12
15
 
13
16
  from . import (
14
17
  _choice_options,
@@ -321,7 +324,7 @@ class Group:
321
324
  return iface
322
325
 
323
326
  def md(self, text: str, *, notebook_only: bool = False) -> mo.Html | None:
324
- """Display markdown in notebooks or plain text in CLI."""
327
+ """Display Markdown in notebooks and styled terminals."""
325
328
 
326
329
  if self.is_interface_query or self.output_mode is None:
327
330
  return None
@@ -331,6 +334,10 @@ class Group:
331
334
  if self.output_mode is OutputMode.NOTEBOOK:
332
335
  return mo.md(text)
333
336
  text = text.strip()
337
+ if getattr(sys.stdout, "isatty", lambda: False)():
338
+ rich.console.Console(file=sys.stdout).print(rich.markdown.Markdown(text))
339
+ print()
340
+ return None
334
341
  stripped_fence = _markdown.strip_outer_fence(text)
335
342
  if stripped_fence is not None:
336
343
  text = stripped_fence
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes