class_docstr: Read notebook cells from Spyder/VScode scripts (#59)
class_docstr_tok: ["Read","notebook","cells","from","Spyder\/VScode","scripts","(","#","59",")"]
docstr: Parse code options on the given line. When a start of a code cell
  is found, self.metadata is set to a dictionary.
docstr_tok: ["Parse","code","options","on","the","given","line",".","When","a","start","of","a","code","cell","is","found",",","self.metadata","is","set","to","a","dictionary","."]
code: def metadata_and_language_from_option_line(self, line):
      """Parse code options on the given line. When a start of a code cell
      is found, self.metadata is set to a dictionary."""
      if self.start_code_re.match(line):
          line = uncomment([line], self.comment, self.comment_suffix)[0]
          self.language, self.metadata = self.options_to_metadata(
              line[line.find("%%") + 2 :]
          )
      else:
          self.metadata = {}
  
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 2 for calling the DoublePercentScriptCellReader obj's underlying member method code with example usage: obj.metadata_and_language_from_option_line(line) without return types