utils.py
来自「Boost provides free peer-reviewed portab」· Python 代码 · 共 79 行
PY
79 行
# Copyright Bruno da Silva de Oliveira 2003. Use, modification and # distribution is subject to the Boost Software License, Version 1.0.# (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt)from __future__ import generatorsimport stringimport sys#==============================================================================# enumerate#==============================================================================def enumerate(seq): i = 0 for x in seq: yield i, x i += 1 #==============================================================================# makeid#==============================================================================_valid_chars = string.ascii_letters + string.digits + '_'_valid_chars = dict(zip(_valid_chars, _valid_chars))def makeid(name): 'Returns the name as a valid identifier' if type(name) != str: print type(name), name newname = [] for char in name: if char not in _valid_chars: char = '_' newname.append(char) newname = ''.join(newname) # avoid duplications of '_' chars names = [x for x in newname.split('_') if x] return '_'.join(names) #==============================================================================# remove_duplicated_lines#==============================================================================def remove_duplicated_lines(text): includes = text.splitlines() d = dict([(include, 0) for include in includes]) includes = d.keys() includes.sort() return '\n'.join(includes)#==============================================================================# left_equals#==============================================================================def left_equals(s): s = '// %s ' % s return s + ('='*(80-len(s))) + '\n' #==============================================================================# post_mortem #==============================================================================def post_mortem(): def info(type, value, tb): if hasattr(sys, 'ps1') or not sys.stderr.isatty(): # we are in interactive mode or we don't have a tty-like # device, so we call the default hook sys.__excepthook__(type, value, tb) else: import traceback, pdb # we are NOT in interactive mode, print the exception... traceback.print_exception(type, value, tb) print # ...then start the debugger in post-mortem mode. pdb.pm() sys.excepthook = info
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?