beforeRunningCommand nop command #!/usr/bin/python """Generate code to warn about a module's removal in Python 3.0. XXX Not supported: - Module's in a package do not have their full name generated. - Package's __init__ module; should detect and use the package's name instead. """ py_template = """from warnings import warnpy3k warnpy3k("the ${1:%s} module has been removed in Python 3.0", stacklevel=2) del warnpy3k$0""" c_template = """ if (PyErr_WarnPy3k("the ${1:%s} module has been removed in " "Python 3.0", 2) < 0) return;$0""" import imp import os file_name = os.path.split(os.environ['TM_FILEPATH'])[1] py_suffixes = reversed(sorted((suffix[0] for suffix in imp.get_suffixes() if suffix[2] == imp.PY_SOURCE), key=len)) c_suffixes = reversed(sorted((os.path.splitext(suffix[0])[0] + '.c' for suffix in imp.get_suffixes() if suffix[2] == imp.C_EXTENSION), key=len)) pairings = ((py_suffixes, py_template), (c_suffixes, c_template)) def create_template(suffixes, template): for suffix in suffixes: if not file_name.endswith(suffix): continue module_name = file_name[:-len(suffix)] return template % module_name else: return None for template in (create_template(*pair) for pair in pairings): if not template: continue print template, break else: print 'XXX Could not generate code.' input none name 2 to 3 - Module Deletion output insertAsSnippet tabTrigger 2to3moddel uuid 9519C22B-6AB8-41A1-94F6-079E0B45C147