docstr: As we know: `from a import b [as c]`. If node.level is not 0,
  import statement like this `from .a import b`.
docstr_tok: ["As","we","know",":","`","from","a","import","b","[","as","c","]","`",".","If","node.level","is","not","0",",","import","statement","like","this","`","from",".a","import","b","`","."]
code: def visit_ImportFrom(self, node, try_=False):
      """
      As we know: `from a import b [as c]`. If node.level is not 0,
      import statement like this `from .a import b`.
      """
      mod_name = node.module
      level = node.level
      if mod_name is None:
          level -= 1
          mod_name = ""
      for alias in node.names:
          name = level * "." + mod_name + "." + alias.name
          self._modules.add(
              name, self._fpath, node.lineno + self._lineno
          )
          if try_:
              self._try_imports.add(name)
  
imports: from __future__ import print_function, division, absolute_import
  import json
  import os
  import sys
  import six
  import fnmatch
  import importlib
  import ast
  import doctest
  import collections
  import functools
  from pathlib2 import Path
  from .utils import parse_git_config
  from .modules import ImportedModules
label_desc: Use image node_id 3 for calling the ImportChecker obj's underlying member method code with example usage: obj.visit_ImportFrom(node, try_) without return types