# Path: mako/util.py
# def function_named(fn, name):
#     def partial(func, *args, **keywords):
#         def newfunc(*fargs, **fkeywords):
#     def exception_name(exc):
#     def exception_name(exc):
# def verify_directory(dir):
# def to_list(x, default=None):
#     def __init__(self, fget, doc=None):
#     def __get__(self, obj, cls):
#     def union(self, other):
#     def __init__(self, encoding=None, errors='strict', str=False):
#     def truncate(self):
#     def getvalue(self):
#         def __init__(self, key, value):
#         def __repr__(self):
#     def __init__(self, capacity, threshold=.5):
#     def __getitem__(self, key):
#     def values(self):
#     def setdefault(self, key, value):
#     def __setitem__(self, key, value):
#     def _manage_size(self):
# def parse_encoding(fp):
# def sorted_dict_repr(d):
# def restore__ast(_ast):
#     def inspect_func_args(fn):
#     def inspect_func_args(fn):
# class memoized_property(object):
# class SetLikeDict(dict):
# class FastEncodingBuffer(object):
# class LRUCache(dict):
#     class _Item(object):


from io import StringIO
from mako import exceptions, util
    from . import _ast_util
    from compiler import parse as compiler_parse
    from compiler import visitor
import operator
    import _ast
            # TODO: figure out OP_ASSIGN, other OP_s

            self.buf.write(node.name)

        def visitName(self, node, *args):
            self.buf.write(node.name)

        def visitMul(self, node, *args):
            self.operator('*', node, *args)

        def visitAnd(self, node, *args):
            self.booleanop('and', node, *args)

        def visitOr(self, node, *args):
            self.booleanop('or', node, *args)

        def visitBitand(self, node, *args):
            self.booleanop('&', node, *args)

        def visitBitor(self, node, *args):
            self.booleanop('|', node, *args)

        def visitBitxor(self, node, *args):
            self.booleanop('^', node, *args)

        def visitAdd(self, node, *args):
            self.operator('+', node, *args)

        def visitGetattr(self, node, *args):
            self.visit(node.expr, *args)

# Path: mako/util.py
# def function_named(fn, name):
#     def partial(func, *args, **keywords):
#         def newfunc(*fargs, **fkeywords):
#     def exception_name(exc):
#     def exception_name(exc):
# def verify_directory(dir):
# def to_list(x, default=None):
#     def __init__(self, fget, doc=None):
#     def __get__(self, obj, cls):
#     def union(self, other):
#     def __init__(self, encoding=None, errors='strict', str=False):
#     def truncate(self):
#     def getvalue(self):
#         def __init__(self, key, value):
#         def __repr__(self):
#     def __init__(self, capacity, threshold=.5):
#     def __getitem__(self, key):
#     def values(self):
#     def setdefault(self, key, value):
#     def __setitem__(self, key, value):
#     def _manage_size(self):
# def parse_encoding(fp):
# def sorted_dict_repr(d):
# def restore__ast(_ast):
#     def inspect_func_args(fn):
#     def inspect_func_args(fn):
# class memoized_property(object):
# class SetLikeDict(dict):
# class FastEncodingBuffer(object):
# class LRUCache(dict):
#     class _Item(object):


# Path: mako/pyparser.py
from io import StringIO
from mako import exceptions, util
    from . import _ast_util
    from compiler import parse as compiler_parse
    from compiler import visitor
import operator
    import _ast

            # TODO: figure out OP_ASSIGN, other OP_s

            self.buf.write(node.name)

        def visitName(self, node, *args):
            self.buf.write(node.name)

        def visitMul(self, node, *args):
            self.operator('*', node, *args)

        def visitAnd(self, node, *args):
            self.booleanop('and', node, *args)

        def visitOr(self, node, *args):
            self.booleanop('or', node, *args)

        def visitBitand(self, node, *args):
            self.booleanop('&', node, *args)

        def visitBitor(self, node, *args):
            self.booleanop('|', node, *args)

        def visitBitxor(self, node, *args):
            self.booleanop('^', node, *args)

        def visitAdd(self, node, *args):
            self.operator('+', node, *args)

        def visitGetattr(self, node, *args):
            self.visit(node.expr, *args)

            self.buf.write('.%s' % node.attrname)