本文整理汇总了Python中rope.base.project.Project.get_files方法的典型用法代码示例。如果您正苦于以下问题:Python Project.get_files方法的具体用法?Python Project.get_files怎么用?Python Project.get_files使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rope.base.project.Project
的用法示例。
在下文中一共展示了Project.get_files方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from rope.base.project import Project [as 别名]
# 或者: from rope.base.project.Project import get_files [as 别名]
#.........这里部分代码省略.........
def reverse_find_word(self, string, index):
""" backwards find the longest word from index """
word = ''
i = index - 1
while i >= 0:
if string[i:index] in self.words:
word = string[i:index]
i -= 1
return word
def find_words(self, string, index=-1):
""" find all known words in a string """
words = []
if index == -1:
index = len(string)
if index == 0:
return words
word = self.reverse_find_word(string, index)
if word:
words.insert(0, word)
index -= len(word)
else:
index -= 1
w = self.find_words(string, index)
w.extend(words)
words = w
#words.extend(self.find_words(string, index))
return words
def rename(self, string):
""" rename string to PEP8 standard """
index = 0
last_index = 0
new_name = ''
prefix, old_name, suffix = self.wash_word(string)
for word in self.find_words(old_name):
index = old_name.find(word, index)
if last_index != index:
new_name += old_name[last_index: index]
if len(new_name) > 0:
new_name += '_'
new_name += word
index += len(word)
last_index = index
if last_index != len(old_name):
if len(new_name) > 0:
new_name += '_'
new_name += old_name[last_index:]
return '%s%s%s' % (prefix, new_name, suffix)
def index_file(self, content):
""" get all indexes for methods to rename in context
return list of old name, position and new name """
index = 0
methods = []
running = True
while running:
method = self.methodname_regex.search(content, index)
if method:
old_name = method.group('name')
pos = method.start() + method.string[method.start():].find(old_name)
new_name = self.rename(old_name)
if old_name != new_name:
methods.append((old_name, pos, new_name))
index = pos + len(old_name)
else:
running = False
return methods
def get_files(self):
""" iterator for all valid project files """
for file_resource in self.project.get_files():
if self.module_path and not self.module_path in file_resource.real_path:
continue
yield file_resource
def dry_run(self):
""" list all methods to be renamed without updating any files """
for file_resource in self.get_files():
methods = self.index_file(file_resource.read())
print('%s' % file_resource.path)
for method in methods:
print(' %s:%d->%s' % (method[0], method[1], method[2]))
def refactor(self):
""" renames all methods to PEP8 standard """
for file_resource in self.get_files():
while True:
self.project.validate()
methods = self.index_file(file_resource.read())
if len(methods) == 0:
break
method = methods[0]
old_name = method[0]
pos = method[1]
new_name = method[2]
print('rename: %s:%d->%s' % (old_name, pos, new_name))
changes = Rename(self.project, file_resource, pos).get_changes(new_name)
self.project.do(changes)