class_docstr: Read notebook cells from plain Python or Julia files. Cells
  are identified by line breaks, unless they start with an
  explicit marker '# +'
class_docstr_tok: ["Read","notebook","cells","from","plain","Python","or","Julia","files",".","Cells","are","identified","by","line","breaks",",","unless","they","start","with","an","explicit","marker","'","#","+","'"]
code: def __init__(self, fmt=None, default_language=None):
      super().__init__(fmt, default_language)
      self.ext = self.ext or ".py"
      script = _SCRIPT_EXTENSIONS[self.ext]
      self.default_language = default_language or script["language"]
      self.comment = script["comment"]
      self.comment_suffix = script.get("comment_suffix", "")
      self.ignore_end_marker = True
      self.explicit_end_marker_required = False
      if (
          fmt
          and fmt.get("format_name", "light") == "light"
          and "cell_markers" in fmt
          and fmt["cell_markers"] != "+,-"
      ):
          self.cell_marker_start, self.cell_marker_end = fmt[
              "cell_markers"
          ].split(",", 1)
          self.start_code_re = re.compile(
              "^"
              + re.escape(self.comment)
              + r"\s*"
              + self.cell_marker_start
              + r"(.*)$"
          )
          self.end_code_re = re.compile(
              "^"
              + re.escape(self.comment)
              + r"\s*"
              + self.cell_marker_end
              + r"\s*$"
          )
      else:
          self.start_code_re = re.compile(
              "^" + re.escape(self.comment) + r"\s*\+(.*)$"
          )
  
imports: import re
  import warnings
  from copy import copy
  from nbformat.v4.nbbase import new_code_cell, new_markdown_cell, new_raw_cell
  from packaging.version import parse
  from .doxygen import doxygen_to_markdown
  from .languages import _SCRIPT_EXTENSIONS
  from .cell_metadata import is_active, is_json_metadata, rmd_options_to_metadata, text_to_metadata
  from .languages import _JUPYTER_LANGUAGES_LOWER_AND_UPPER
  from .magics import is_magic, need_explicit_marker, uncomment_magic, unescape_code_start
  from .pep8 import pep8_lines_between_cells
  from .stringparser import StringParser
label_desc: Use image node_id 1 to create a new LightScriptCellReader object from inherited base classes: ScriptCellReader with example: obj = LightScriptCellReader(fmt, default_language)