本文整理汇总了Python中lib2to3.fixer_base.BaseFix方法的典型用法代码示例。如果您正苦于以下问题:Python fixer_base.BaseFix方法的具体用法?Python fixer_base.BaseFix怎么用?Python fixer_base.BaseFix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lib2to3.fixer_base
的用法示例。
在下文中一共展示了fixer_base.BaseFix方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_get_headnode_dict
# 需要导入模块: from lib2to3 import fixer_base [as 别名]
# 或者: from lib2to3.fixer_base import BaseFix [as 别名]
def test_get_headnode_dict(self):
class NoneFix(fixer_base.BaseFix):
pass
class FileInputFix(fixer_base.BaseFix):
PATTERN = "file_input< any * >"
class SimpleFix(fixer_base.BaseFix):
PATTERN = "'name'"
no_head = NoneFix({}, [])
with_head = FileInputFix({}, [])
simple = SimpleFix({}, [])
d = refactor._get_headnode_dict([no_head, with_head, simple])
top_fixes = d.pop(pygram.python_symbols.file_input)
self.assertEqual(top_fixes, [with_head, no_head])
name_fixes = d.pop(token.NAME)
self.assertEqual(name_fixes, [simple, no_head])
for fixes in d.values():
self.assertEqual(fixes, [no_head])
示例2: test_get_headnode_dict
# 需要导入模块: from lib2to3 import fixer_base [as 别名]
# 或者: from lib2to3.fixer_base import BaseFix [as 别名]
def test_get_headnode_dict(self):
class NoneFix(fixer_base.BaseFix):
pass
class FileInputFix(fixer_base.BaseFix):
PATTERN = "file_input< any * >"
class SimpleFix(fixer_base.BaseFix):
PATTERN = "'name'"
no_head = NoneFix({}, [])
with_head = FileInputFix({}, [])
simple = SimpleFix({}, [])
d = refactor._get_headnode_dict([no_head, with_head, simple])
top_fixes = d.pop(pygram.python_symbols.file_input)
self.assertEqual(top_fixes, [with_head, no_head])
name_fixes = d.pop(token.NAME)
self.assertEqual(name_fixes, [simple, no_head])
for fixes in d.itervalues():
self.assertEqual(fixes, [no_head])
示例3: _strip_type_hints_using_lib2to3
# 需要导入模块: from lib2to3 import fixer_base [as 别名]
# 或者: from lib2to3.fixer_base import BaseFix [as 别名]
def _strip_type_hints_using_lib2to3(source_code: str) -> str:
"""Strips type annotations from the function definitions in the provided source code."""
# Using the standard lib2to3 library to strip type annotations.
# Switch to another library like strip-hints if issues are found.
from lib2to3 import fixer_base, refactor, fixer_util
class StripAnnotations(fixer_base.BaseFix):
PATTERN = r'''
typed_func_parameter=tname
|
typed_func_return_value=funcdef< any+ '->' any+ >
'''
def transform(self, node, results):
if 'typed_func_parameter' in results:
# Delete the annotation part of the function parameter declaration
del node.children[1:]
elif 'typed_func_return_value' in results:
# Delete the return annotation part of the function declaration
del node.children[-4:-2]
return node
class Refactor(refactor.RefactoringTool):
def __init__(self, fixers):
self._fixers = [cls(None, None) for cls in fixers]
super().__init__(None, {'print_function': True})
def get_fixers(self):
return self._fixers, []
stripped_code = str(Refactor([StripAnnotations]).refactor_string(source_code, ''))
return stripped_code