/Misc/TextMate/Python-Dev.tmbundle/Commands/2 to 3 - Module Deletion.tmCommand
http://unladen-swallow.googlecode.com/ · Unknown · 64 lines · 54 code · 10 blank · 0 comment · 0 complexity · ca9d3e59393af9680d96aac24f4b8758 MD5 · raw file
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>beforeRunningCommand</key>
- <string>nop</string>
- <key>command</key>
- <string>#!/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.'</string>
- <key>input</key>
- <string>none</string>
- <key>name</key>
- <string>2 to 3 - Module Deletion</string>
- <key>output</key>
- <string>insertAsSnippet</string>
- <key>tabTrigger</key>
- <string>2to3moddel</string>
- <key>uuid</key>
- <string>9519C22B-6AB8-41A1-94F6-079E0B45C147</string>
- </dict>
- </plist>