MDit 0.0.0.dev11__tar.gz → 0.0.0.dev13__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 (50) hide show
  1. {mdit-0.0.0.dev11/src/MDit.egg-info → mdit-0.0.0.dev13}/PKG-INFO +3 -3
  2. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/pyproject.toml +3 -3
  3. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13/src/MDit.egg-info}/PKG-INFO +3 -3
  4. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/MDit.egg-info/requires.txt +2 -2
  5. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/document.py +14 -7
  6. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/render.py +44 -18
  7. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/MANIFEST.in +0 -0
  8. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/README.md +0 -0
  9. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/setup.cfg +0 -0
  10. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/MDit.egg-info/SOURCES.txt +0 -0
  11. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/MDit.egg-info/dependency_links.txt +0 -0
  12. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/MDit.egg-info/not-zip-safe +0 -0
  13. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/MDit.egg-info/top_level.txt +0 -0
  14. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/__init__.py +0 -0
  15. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/container.py +0 -0
  16. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/__init__.py +0 -0
  17. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/file.py +0 -0
  18. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema/document.yaml +0 -0
  19. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema/element/badge.yaml +0 -0
  20. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema.py +0 -0
  21. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/badge/dynamic.yaml +0 -0
  22. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/create-badges.yaml +0 -0
  23. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/coc_covenant.yaml +0 -0
  24. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/heading.yaml +0 -0
  25. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/highlights.yaml +0 -0
  26. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/line.yaml +0 -0
  27. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/newline.yaml +0 -0
  28. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/paragraph.yaml +0 -0
  29. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/paragraph_style.yaml +0 -0
  30. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/_to_review/spacer.yaml +0 -0
  31. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/badge/params.yaml +0 -0
  32. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/badges.yaml +0 -0
  33. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/element/image.yaml +0 -0
  34. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/html/attr/align.yaml +0 -0
  35. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/html/attr/size.yaml +0 -0
  36. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/html/attrs.yaml +0 -0
  37. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/html-document.yaml +0 -0
  38. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/pepy/badge-params.yaml +0 -0
  39. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/schema_/shields/badge-params.yaml +0 -0
  40. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/data/template/code_of_conduct/contributor_covenant.md +0 -0
  41. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/display.py +0 -0
  42. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/element.py +0 -0
  43. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/generate.py +0 -0
  44. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/parse.py +0 -0
  45. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/protocol.py +0 -0
  46. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/renderable.py +0 -0
  47. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/target/__init__.py +0 -0
  48. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/target/md.py +0 -0
  49. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/target/rich.py +0 -0
  50. {mdit-0.0.0.dev11 → mdit-0.0.0.dev13}/src/mdit/template.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MDit
3
- Version: 0.0.0.dev11
3
+ Version: 0.0.0.dev13
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: sphinx<8
6
6
  Requires-Dist: myst-nb<2,>1
@@ -23,9 +23,9 @@ Requires-Dist: rich>=13.8
23
23
  Requires-Dist: pydantic>=2.9
24
24
  Requires-Dist: referencing>=0.35.1
25
25
  Requires-Dist: PkgData==0.0.0.dev4
26
- Requires-Dist: PySerials==0.0.0.dev14
26
+ Requires-Dist: PySerials==0.0.0.dev16
27
27
  Requires-Dist: PyBadger==0.0.0.dev11
28
28
  Requires-Dist: PyColorIT==0.0.0.dev7
29
29
  Requires-Dist: ProtocolMan==0.0.0.dev2
30
30
  Requires-Dist: HTMP==0.0.0.dev5
31
- Requires-Dist: JSONSchemata==0.0.0.dev10
31
+ Requires-Dist: JSONSchemata==0.0.0.dev12
@@ -17,7 +17,7 @@ namespaces = true
17
17
  # ----------------------------------------- Project Metadata -------------------------------------
18
18
  #
19
19
  [project]
20
- version = "0.0.0.dev11"
20
+ version = "0.0.0.dev13"
21
21
  name = "MDit"
22
22
  requires-python = ">=3.10"
23
23
  dependencies = [
@@ -42,10 +42,10 @@ dependencies = [
42
42
  "pydantic >= 2.9",
43
43
  "referencing >= 0.35.1",
44
44
  "PkgData == 0.0.0.dev4",
45
- "PySerials == 0.0.0.dev14",
45
+ "PySerials == 0.0.0.dev16",
46
46
  "PyBadger == 0.0.0.dev11",
47
47
  "PyColorIT == 0.0.0.dev7",
48
48
  "ProtocolMan == 0.0.0.dev2",
49
49
  "HTMP == 0.0.0.dev5",
50
- "JSONSchemata == 0.0.0.dev10",
50
+ "JSONSchemata == 0.0.0.dev12",
51
51
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MDit
3
- Version: 0.0.0.dev11
3
+ Version: 0.0.0.dev13
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: sphinx<8
6
6
  Requires-Dist: myst-nb<2,>1
@@ -23,9 +23,9 @@ Requires-Dist: rich>=13.8
23
23
  Requires-Dist: pydantic>=2.9
24
24
  Requires-Dist: referencing>=0.35.1
25
25
  Requires-Dist: PkgData==0.0.0.dev4
26
- Requires-Dist: PySerials==0.0.0.dev14
26
+ Requires-Dist: PySerials==0.0.0.dev16
27
27
  Requires-Dist: PyBadger==0.0.0.dev11
28
28
  Requires-Dist: PyColorIT==0.0.0.dev7
29
29
  Requires-Dist: ProtocolMan==0.0.0.dev2
30
30
  Requires-Dist: HTMP==0.0.0.dev5
31
- Requires-Dist: JSONSchemata==0.0.0.dev10
31
+ Requires-Dist: JSONSchemata==0.0.0.dev12
@@ -19,9 +19,9 @@ rich>=13.8
19
19
  pydantic>=2.9
20
20
  referencing>=0.35.1
21
21
  PkgData==0.0.0.dev4
22
- PySerials==0.0.0.dev14
22
+ PySerials==0.0.0.dev16
23
23
  PyBadger==0.0.0.dev11
24
24
  PyColorIT==0.0.0.dev7
25
25
  ProtocolMan==0.0.0.dev2
26
26
  HTMP==0.0.0.dev5
27
- JSONSchemata==0.0.0.dev10
27
+ JSONSchemata==0.0.0.dev12
@@ -61,6 +61,10 @@ class Document(_Renderable):
61
61
  def current_section_key(self) -> tuple[str | int, ...]:
62
62
  return tuple(self._current_section_key)
63
63
 
64
+ @property
65
+ def current_section_level(self) -> int:
66
+ return len(self._current_section_key) + 1
67
+
64
68
  def open_section(
65
69
  self,
66
70
  heading: Heading | MDContainer | ContainerContentInputType,
@@ -73,13 +77,16 @@ class Document(_Renderable):
73
77
  self._current_section = new_section
74
78
  return
75
79
 
76
- def close_section(self):
77
- if not self._current_section_key:
78
- return
79
- self._current_section_key.pop()
80
- if not self._current_section_key:
81
- self._current_section = self
82
- return
80
+ def close_section(self, target_level: int | None = None):
81
+ curr_level = self.current_section_level
82
+ if not target_level:
83
+ target_level = curr_level - 1
84
+ if not (0 < target_level < curr_level):
85
+ raise ValueError(
86
+ f"Target level must be between 1 and the current section level ({curr_level}), "
87
+ f"but got {target_level}."
88
+ )
89
+ self._current_section_key = self._current_section_key[:target_level - 1]
83
90
  section = self
84
91
  for key in self._current_section_key:
85
92
  section = section.section[key].content
@@ -4,6 +4,9 @@ import sys as _sys
4
4
  import tempfile as _tempfile
5
5
  from typing import TYPE_CHECKING as _TYPE_CHECKING
6
6
  from pathlib import Path as _Path
7
+ import logging as _logging
8
+ import io as _io
9
+ import warnings as _warnings
7
10
 
8
11
  from functools import partial as _partial
9
12
  import cmarkgfm as _gfm_pypi
@@ -54,23 +57,26 @@ def sphinx(
54
57
  with open(filepath, "w") as f:
55
58
  f.write(text)
56
59
  out_dir = temp_dir / "build"
57
- _Sphinx(
58
- srcdir=src_dir,
59
- confdir=None,
60
- outdir=out_dir,
61
- doctreedir=temp_dir / "doctrees",
62
- buildername="zundler",
63
- confoverrides=config,
64
- status=status,
65
- warning=warning,
66
- freshenv=fresh_env,
67
- warningiserror=warnings_are_errors,
68
- tags=tags,
69
- verbosity=verbosity,
70
- parallel=parallel,
71
- keep_going=keep_going,
72
- pdb=pdb,
73
- ).build(force_all=True)
60
+ _configure_zundler_logging()
61
+ with _warnings.catch_warnings():
62
+ _warnings.filterwarnings("ignore", category=DeprecationWarning)
63
+ _Sphinx(
64
+ srcdir=src_dir,
65
+ confdir=None,
66
+ outdir=out_dir,
67
+ doctreedir=temp_dir / "doctrees",
68
+ buildername="zundler",
69
+ confoverrides=config,
70
+ status=status,
71
+ warning=warning,
72
+ freshenv=fresh_env,
73
+ warningiserror=warnings_are_errors,
74
+ tags=tags,
75
+ verbosity=verbosity,
76
+ parallel=parallel,
77
+ keep_going=keep_going,
78
+ pdb=pdb,
79
+ ).build(force_all=True)
74
80
  return (out_dir / "index.html").read_text()
75
81
 
76
82
 
@@ -432,4 +438,24 @@ def readme_renderer(
432
438
  ):
433
439
  if isinstance(source, str):
434
440
  return _readme_renderer_md.render(source)
435
- return {key: _readme_renderer_md.render(value) for key, value in source.items()}
441
+ return {key: _readme_renderer_md.render(value) for key, value in source.items()}
442
+
443
+
444
+ def _configure_zundler_logging():
445
+ # See https://github.com/AdrianVollmer/Zundler/pull/9
446
+
447
+ log_stream = _io.StringIO()
448
+ # Create a StreamHandler for the in-memory stream
449
+ stream_handler = _logging.StreamHandler(log_stream)
450
+ stream_handler.setLevel(_logging.DEBUG)
451
+ # Set a formatter for better readability
452
+ formatter = _logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
453
+ stream_handler.setFormatter(formatter)
454
+
455
+ dependency_logger = _logging.getLogger('zundler.embed')
456
+ dependency_logger.handlers = [] # Remove existing handlers
457
+ dependency_logger.addHandler(stream_handler)
458
+ dependency_logger.setLevel(_logging.DEBUG)
459
+ # **Prevent logs from propagating to ancestor loggers**
460
+ dependency_logger.propagate = False
461
+ return
File without changes
File without changes
File without changes
File without changes