code: def _get_line_coverage(self, coverage_xml, source_filename):
      coverage_data = None
      for entry in coverage_xml.iterfind(".//class"):
          if not entry.get("filename"):
              continue
          if (
              entry.get("filename") == source_filename
              or os.path.abspath(entry.get("filename"))
              == source_filename
          ):
              coverage_data = entry
              break
          elif source_filename.endswith(entry.get("filename")):
              coverage_data = (
                  entry  # but we might still find a better match...
              )
      if coverage_data is None:
          return None
      return dict(
          (int(line.get("number")), int(line.get("hits")))
          for line in coverage_data.iterfind("lines/line")
      )
  
imports: from __future__ import absolute_import
  import os
  import os.path
  import re
  import codecs
  import textwrap
  from datetime import datetime
  from functools import partial
  from collections import defaultdict
  from .None import Version
  from .Code import CCodeWriter
  from ..None import Utils
label_desc: Use image node_id 11 for calling the AnnotationCCodeWriter obj's underlying member method code with example usage: obj._get_line_coverage(coverage_xml, source_filename) and returns: dict, None