code: def dump_annotations(type_info, files):
      
      with open(type_info) as f:
          data = json.load(f)
      for item in data:
          path, line, func_name = item['path'], item['line'], item['func_name']
          if files and path not in files:
              for f in files:
                  if path.startswith(os.path.join(f, '')):
                      break
              else:
                  continue  # Outer loop
          print("%s:%d: in %s:" % (path, line, func_name))
          type_comments = item['type_comments']
          signature = unify_type_comments(type_comments)
          arg_types = signature['arg_types']
          return_type = signature['return_type']
          print("    # type: (%s) -> %s" % (", ".join(arg_types), return_type))
docs: Dump annotations out of type_info, filtered by files.
  
      If files is non-empty, only dump items either if the path in the
      item matches one of the files exactly, or else if one of the files
      is a path prefix of the path.