parameters: (filename, cache={})
return_statement: return result
docstring: Get the one-line summary out of a module file.
docstring_summary: Get the one-line summary out of a module file.
docstring_tokens: Get the one - line summary out of a module file .
function: def synopsis(filename, cache={}):
      """Get the one-line summary out of a module file."""
      mtime = os.stat(filename).st_mtime
      lastupdate, result = cache.get(filename, (0, None))
      if lastupdate < mtime:
          info = inspect.getmoduleinfo(filename)
          try:
              file = open(filename)
          except IOError:
              # module can't be opened, so skip it
              return None
          if info and 'b' in info[2]: # binary modules have to be imported
              try: module = imp.load_module('__temp__', file, filename, info[1:])
              except: return None
              result = (module.__doc__ or '').splitlines()[0]
              del sys.modules['__temp__']
          else: # text modules can be directly examined
              result = source_synopsis(file)
              file.close()
          cache[filename] = (mtime, result)
      return result
function_tokens: def synopsis ( filename , cache = { } ) : mtime = os . stat ( filename ) . st_mtime lastupdate , result = cache . get ( filename , ( 0 , None ) ) if lastupdate < mtime : info = inspect . getmoduleinfo ( filename ) try : file = open ( filename ) except IOError : # module can't be opened, so skip it return None if info and 'b' in info [ 2 ] : # binary modules have to be imported try : module = imp . load_module ( '__temp__' , file , filename , info [ 1 : ] ) except : return None result = ( module . __doc__ or '' ) . splitlines ( ) [ 0 ] del sys . modules [ '__temp__' ] else : # text modules can be directly examined result = source_synopsis ( file ) file . close ( ) cache [ filename ] = ( mtime , result ) return result