def create_symbol(self, type_, **kwargs):
unique_name = kwargs.get('<STR_LIT>')<EOL>if not unique_name:<EOL><INDENT>unique_name = kwargs.get('<STR_LIT>')<EOL>kwargs['<STR_LIT>'] = unique_name<EOL><DEDENT>filename = kwargs.get('<STR_LIT:filename>')<EOL>if filename:<EOL><INDENT>filename = os.path.abspath(filename)<EOL>kwargs['<STR_LIT:filename>'] = os.path.abspath(filename)<EOL><DEDENT>if unique_name in self.__symbols:<EOL><INDENT>warn('<STR_LIT>', "<STR_LIT>"<EOL>"<STR_LIT>" % (type_.__name__, unique_name, filename,<EOL>kwargs.get('<STR_LIT>'),<EOL>self.get_symbol(unique_name)))<EOL>return None<EOL><DEDENT>aliases = kwargs.pop('<STR_LIT>', [])<EOL>for alias in aliases:<EOL><INDENT>self.create_symbol(ProxySymbol,<EOL>unique_name=alias,<EOL>target=unique_name)<EOL><DEDENT>symbol = type_()<EOL>debug('<STR_LIT>' % unique_name,<EOL>'<STR_LIT>')<EOL>for key, value in list(kwargs.items()):<EOL><INDENT>setattr(symbol, key, value)<EOL><DEDENT>self.__symbols[unique_name] = symbol<EOL>for alias in aliases:<EOL><INDENT>self.__symbols[alias] = symbol<EOL><DEDENT>self.__aliases[unique_name] = aliases<EOL>return symbol<EOL>
Banana banana