code: def get_symbols(node, ctx_types=(ast.Load, ast.Store)):
      '''
      Returns all symbols defined in an ast node. 
      
      if ctx_types is given, then restrict the symbols to ones with that context.
      
      :param node: ast node
      :param ctx_types: type or tuple of types that may be found assigned to the `ctx` attribute of 
                        an ast Name node.
          
      '''
      gen = SymbolVisitor(ctx_types)
      return gen.visit(nodef get_symbols(node, ctx_types=(ast.Load, ast.Store)):
      '''
      Returns all symbols defined in an ast node. 
      
      if ctx_types is given, then restrict the symbols to ones with that context.
      
      :param node: ast node
      :param ctx_types: type or tuple of types that may be found assigned to the `ctx` attribute of 
                        an ast Name node.
          
      '''
      gen = SymbolVisitor(ctx_types)
      return gen.visit(node)
docs: Returns all symbols defined in an ast node. 
      
      if ctx_types is given, then restrict the symbols to ones with that context.
      
      :param node: ast node
      :param ctx_types: type or tuple of types that may be found assigned to the `ctx` attribute of 
                        an ast Name node.