class_docstr: The scansion symbols used can be configured by passing a suitable constants class to
  the constructor.
docstr: If a hexameter or pentameter starts with spondee,
  an unstressed syllable in the third position must actually be stressed,
  so we will convert it: - - | U    ->  - - | -
  And/or if the starting pattern is spondee + trochee + stressed, then the unstressed
  trochee can be corrected: - - | - u | -   ->  - - | - -| -
  
  :param scansion:
  :return:
  
  >>> print(VerseScanner().correct_first_two_dactyls(
  ... " -   - U   U -  -  U U U U  U U  - -")) # doctest: +NORMALIZE_WHITESPACE
   -   - -   - -  -  U U U U  U U  - -
docstr_tok: ["If","a","hexameter","or","pentameter","starts","with","spondee",",","an","unstressed","syllable","in","the","third","position","must","actually","be","stressed",",","so","we","will","convert","it",":","-","-","|","U","-",">","-","-","|","-","And\/or","if","the","starting","pattern","is","spondee","+","trochee","+","stressed",",","then","the","unstressed","trochee","can","be","corrected",":","-","-","|","-","u","|","-","-",">","-","-","|","-","-|","-",":","param","scansion",":",":","return",":",">",">",">","print","(","VerseScanner","(",")",".correct_first_two_dactyls","(","...","``","-","-","U","U","-","-","U","U","U","U","U","U","-","-","''",")",")","#","doctest",":","+NORMALIZE_WHITESPACE","-","-","-","-","-","-","U","U","U","U","U","U","-","-"]
code: def correct_first_two_dactyls(self, scansion: str) -> str:
      """
      If a hexameter or pentameter starts with spondee,
      an unstressed syllable in the third position must actually be stressed,
      so we will convert it: - - | U    ->  - - | -
      And/or if the starting pattern is spondee + trochee + stressed, then the unstressed
      trochee can be corrected: - - | - u | -   ->  - - | - -| -
  
      :param scansion:
      :return:
  
      >>> print(VerseScanner().correct_first_two_dactyls(
      ... " -   - U   U -  -  U U U U  U U  - -")) # doctest: +NORMALIZE_WHITESPACE
       -   - -   - -  -  U U U U  U U  - -
      """
      mark_list = string_utils.mark_list(scansion)
      new_line = self.correct_invalid_start(scansion)
      raw_scansion = new_line.replace(" ", "")
      if raw_scansion.startswith(
          self.constants.SPONDEE
          + self.constants.TROCHEE
          + self.constants.STRESSED
      ):
          new_scansion = list(
              self.constants.SPONDEE
              + self.constants.SPONDEE
              + self.constants.STRESSED
              + raw_scansion[5:]
          )
          corrected = "".join(new_scansion)
          new_sequence = list(" " * len(scansion))
          for idx, car in enumerate(corrected):
              new_sequence[mark_list[idx]] = car
          return "".join(new_sequence)
      return new_line
  
imports: import logging
  import re
  from typing import Any, Dict, List
  import cltk.prosody.lat.string_utils
  from cltk.prosody.lat.metrical_validator import MetricalValidator
  from cltk.prosody.lat.scansion_constants import ScansionConstants
  from cltk.prosody.lat.scansion_formatter import ScansionFormatter
  from cltk.prosody.lat.syllabifier import Syllabifier
  from cltk.prosody.lat.verse import Verse
label_desc: Use image node_id 11 for calling the VerseScanner obj's underlying member method code with example usage: obj.correct_first_two_dactyls(scansion) and returns: new_line, str