36
36
```
37
37
Which will similarly print the output of the code block between next to the output markers.
38
38
"""
39
+
39
40
from __future__ import annotations
40
41
41
42
import argparse
44
45
import os
45
46
import re
46
47
import subprocess
47
- import sys
48
48
from dataclasses import dataclass , field
49
+ from importlib .metadata import PackageNotFoundError , version
49
50
from pathlib import Path
50
- from typing import TYPE_CHECKING , Any
51
-
52
- if TYPE_CHECKING :
53
- try :
54
- from typing import Literal # type: ignore[attr-defined]
55
- except ImportError :
56
- from typing_extensions import Literal
57
-
58
-
59
- if sys .version_info >= (3 , 8 ): # pragma: no cover
60
- from importlib .metadata import PackageNotFoundError , version
61
-
62
- try :
63
- __version__ = version ("markdown-code-runner" )
64
- except PackageNotFoundError :
65
- __version__ = "unknown"
66
- else : # pragma: no cover
67
- import pkg_resources
68
-
69
- __version__ = pkg_resources .get_distribution ("markdown-code-runner" ).version
51
+ from typing import Any , Literal
70
52
53
+ try :
54
+ __version__ = version ("markdown-code-runner" )
55
+ except PackageNotFoundError : # pragma: no cover
56
+ __version__ = "unknown"
71
57
72
58
DEBUG : bool = os .environ .get ("DEBUG" , "0" ) == "1"
73
59
@@ -124,7 +110,7 @@ def remove_md_comment(commented_text: str) -> str:
124
110
def execute_code (
125
111
code : list [str ],
126
112
context : dict [str , Any ] | None = None ,
127
- language : Literal ["python" , "bash" ] = None , # type: ignore[name-defined]
113
+ language : Literal ["python" , "bash" ] | None = None , # type: ignore[name-defined]
128
114
* ,
129
115
output_file : str | Path | None = None ,
130
116
verbose : bool = False ,
@@ -242,7 +228,7 @@ def _process_start_markers(self, line: str) -> None:
242
228
# reset output in case previous output wasn't displayed
243
229
self .output = None
244
230
self .backtick_options = _extract_backtick_options (line )
245
- self .section , _ = marker .rsplit (":" , 1 )
231
+ self .section , _ = marker .rsplit (":" , 1 ) # type: ignore[assignment]
246
232
return
247
233
248
234
def _process_output_start (self , line : str ) -> None :
@@ -268,7 +254,7 @@ def _process_code(
268
254
self ,
269
255
line : str ,
270
256
end_marker : str ,
271
- language : str ,
257
+ language : Literal [ "python" , "bash" ] ,
272
258
* ,
273
259
remove_comment : bool = False ,
274
260
verbose : bool ,
@@ -293,7 +279,7 @@ def _process_comment_code(self, line: str, *, verbose: bool) -> None:
293
279
self ._process_code (
294
280
line ,
295
281
"code:comment:end" ,
296
- language ,
282
+ language , # type: ignore[arg-type]
297
283
remove_comment = True ,
298
284
verbose = verbose ,
299
285
)
0 commit comments