code: def add(self, name, file, lineno):
      if name is None:
          return
  
      names = list()
      special_name = ".".join(name.split(".")[:2])
      # Flask extension.
      if name.startswith("flask.ext."):
          names.append("flask")
          names.append("flask_" + name.split(".")[2])
      # Special cases..
      elif special_name in _special_cases:
          names.append(_special_cases[special_name])
      # Other.
      elif "." in name and not name.startswith("."):
          names.append(name.split(".")[0])
      else:
          names.append(name)
  
      for nm in names:
          if nm not in self:
              self[nm] = _Locations()
          self[nm].add(file, lineno)
  
imports: from __future__ import print_function, division, absolute_import
  import collections
label_desc: Use image node_id 2 for calling the ImportedModules obj's underlying member method code with example usage: obj.add(name, file, lineno) without return types