Kaydet (Commit) f0a0a0db authored tarafından Brett Cannon's avatar Brett Cannon

Add support for extension modules in 3.0 deprection command.

üst 9ac3974d
...@@ -11,26 +11,45 @@ ...@@ -11,26 +11,45 @@
XXX Not supported: XXX Not supported:
- Module's in a package do not have their full name generated. - 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. - Package's __init__ module; should detect and use the package's name instead.
- Extension modules; need to create template.
""" """
template = """from warnings import warnpy3k py_template = """from warnings import warnpy3k
warnpy3k("the ${1:%s} module has been removed in Python 3.0", stacklevel=2) warnpy3k("the ${1:%s} module has been removed in Python 3.0", stacklevel=2)
del warnpy3k del warnpy3k$0"""
$0"""
c_template = """
if (PyErr_WarnPy3k("the ${1:%s} module has been removed in "
"Python 3.0", 2) < 0)
return;$0"""
import imp import imp
import os import os
file_name = os.path.split(os.environ['TM_FILEPATH'])[1] file_name = os.path.split(os.environ['TM_FILEPATH'])[1]
for suffix in (tuple_[0] for tuple_ in imp.get_suffixes()):
if not file_name.endswith(suffix): 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 continue
module_name = file_name[:-len(suffix)] print template,
print (template % module_name),
break break
else: else:
print (template % "XXX"),</string> print 'XXX Could not generate code.'</string>
<key>input</key> <key>input</key>
<string>none</string> <string>none</string>
<key>name</key> <key>name</key>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment