code: def get_definition(self, info):
          
          if not info['is_python_like']:
              return
          token = info['obj']
          lines = info['lines']
          source_code = info['source_code']
          filename = info['filename']
  
          line_nr = None
          if token is None:
              return
          if '.' in token:
              token = token.split('.')[-1]
  
          line_nr = get_definition_with_regex(source_code, token,
                                              len(lines))
          if line_nr is None:
              return
          line = info['line']
          exts = python_like_exts()
          if not osp.splitext(filename)[-1] in exts:
              return filename, line_nr
          if line.startswith('import ') or line.startswith('from '):
              alt_path = osp.dirname(filename)
              source_file = python_like_mod_finder(line, alt_path=alt_path,
                                                   stop_token=token)
              if (not source_file or
                      not osp.splitext(source_file)[-1] in exts):
                  line_nr = get_definition_with_regex(source_code, token,
                                                      line_nr)
                  return filename, line_nr
              mod_name = osp.basename(source_file).split('.')[0]
              if mod_name == token or mod_name == '__init__':
                  return source_file, 1
              else:
                  with open(filename, 'rb') as fid:
                      code = fid.read()
                  code = encoding.decode(code)[0]
                  line_nr = get_definition_with_regex(code, token)
  
          return filename, line_nr
docs: Find the definition for an object within a set of source code
  
          This is used to find the path of python-like modules
          (e.g. cython and enaml) for a goto definition