symbian-qemu-0.9.1-12/python-2.6.1/Misc/TextMate/Python-Dev.tmbundle/Commands/2 to 3 - Module Deletion.tmCommand
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 <?xml version="1.0" encoding="UTF-8"?>
       
     2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
       
     3 <plist version="1.0">
       
     4 <dict>
       
     5 	<key>beforeRunningCommand</key>
       
     6 	<string>nop</string>
       
     7 	<key>command</key>
       
     8 	<string>#!/usr/bin/python
       
     9 """Generate code to warn about a module's removal in Python 3.0.
       
    10 
       
    11 XXX Not supported:
       
    12 - Module's in a package do not have their full name generated.
       
    13 - Package's __init__ module; should detect and use the package's name instead.
       
    14 
       
    15 """
       
    16 py_template = """from warnings import warnpy3k
       
    17 warnpy3k("the ${1:%s} module has been removed in Python 3.0", stacklevel=2)
       
    18 del warnpy3k$0"""
       
    19 
       
    20 c_template = """
       
    21 if (PyErr_WarnPy3k("the ${1:%s} module has been removed in "
       
    22                    "Python 3.0", 2) &lt; 0)
       
    23     return;$0"""
       
    24 
       
    25 
       
    26 import imp
       
    27 import os
       
    28 
       
    29 file_name = os.path.split(os.environ['TM_FILEPATH'])[1]
       
    30 
       
    31 py_suffixes = reversed(sorted((suffix[0] for suffix in imp.get_suffixes() if suffix[2] == imp.PY_SOURCE), key=len))
       
    32 c_suffixes = reversed(sorted((os.path.splitext(suffix[0])[0] + '.c'
       
    33                                 for suffix in imp.get_suffixes() if suffix[2] == imp.C_EXTENSION), key=len))
       
    34 
       
    35 pairings = ((py_suffixes, py_template), (c_suffixes, c_template))
       
    36 
       
    37 def create_template(suffixes, template):
       
    38     for suffix in suffixes:
       
    39         if not file_name.endswith(suffix):
       
    40             continue
       
    41         module_name = file_name[:-len(suffix)]
       
    42         return template % module_name
       
    43     else:
       
    44         return None
       
    45 
       
    46 for template in (create_template(*pair) for pair in pairings):
       
    47     if not template:
       
    48         continue
       
    49     print template,
       
    50     break
       
    51 else:
       
    52     print 'XXX Could not generate code.'</string>
       
    53 	<key>input</key>
       
    54 	<string>none</string>
       
    55 	<key>name</key>
       
    56 	<string>2 to 3 - Module Deletion</string>
       
    57 	<key>output</key>
       
    58 	<string>insertAsSnippet</string>
       
    59 	<key>tabTrigger</key>
       
    60 	<string>2to3moddel</string>
       
    61 	<key>uuid</key>
       
    62 	<string>9519C22B-6AB8-41A1-94F6-079E0B45C147</string>
       
    63 </dict>
       
    64 </plist>