65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| <?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>
 |