本文整理汇总了Python中coalib.bearlib.spacing.SpacingHelper.SpacingHelper.replace_tabs_with_spaces方法的典型用法代码示例。如果您正苦于以下问题:Python SpacingHelper.replace_tabs_with_spaces方法的具体用法?Python SpacingHelper.replace_tabs_with_spaces怎么用?Python SpacingHelper.replace_tabs_with_spaces使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类coalib.bearlib.spacing.SpacingHelper.SpacingHelper
的用法示例。
在下文中一共展示了SpacingHelper.replace_tabs_with_spaces方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
def run(self,
filename,
file,
max_line_length: int=80,
tab_width: int=SpacingHelper.DEFAULT_TAB_WIDTH,
ignore_length_regex: str=''):
'''
Yields results for all lines longer than the given maximum line length.
:param max_line_length: Maximum number of characters for a line.
:param tab_width: Number of spaces to show for one tab.
:param ignore_length_regex: All lines matching this regular expression
will be ignored.
'''
spacing_helper = SpacingHelper(tab_width)
ignore_regex = re.compile(ignore_length_regex)
for line_number, line in enumerate(file):
line = spacing_helper.replace_tabs_with_spaces(line)
if len(line) > max_line_length + 1:
if ignore_length_regex and ignore_regex.match(line):
continue
yield Result.from_values(
origin=self,
message="Line is longer than allowed." +
" ({actual} > {maximum})".format(
actual=len(line)-1,
maximum=max_line_length),
file=filename,
line=line_number + 1,
column=max_line_length + 1,
end_line=line_number + 1,
end_column=len(line))
示例2: run
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
def run(self,
filename,
file,
max_line_length: int=79,
tab_width: int=SpacingHelper.DEFAULT_TAB_WIDTH,
ignore_length_regex: typed_list(str)=()):
'''
Yields results for all lines longer than the given maximum line length.
:param max_line_length: Maximum number of characters for a line,
the newline character being excluded.
:param tab_width: Number of spaces to show for one tab.
:param ignore_length_regex: Lines matching each of the regular
expressions in this list will be ignored.
'''
spacing_helper = SpacingHelper(tab_width)
ignore_regexes = [re.compile(regex) for regex in ignore_length_regex]
for line_number, line in enumerate(file):
line = spacing_helper.replace_tabs_with_spaces(line)
if len(line) > max_line_length + 1:
if any(regex.search(line) for regex in ignore_regexes):
continue
yield Result.from_values(
origin=self,
message="Line is longer than allowed." +
" ({actual} > {maximum})".format(
actual=len(line)-1,
maximum=max_line_length),
file=filename,
line=line_number + 1,
column=max_line_length + 1,
end_line=line_number + 1,
end_column=len(line))
示例3: run
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
def run(self,
filename,
file,
max_line_length: int=80,
tab_width: int=SpacingHelper.DEFAULT_TAB_WIDTH):
'''
Yields results for all lines longer than the given maximum line length.
:param max_line_length: Maximum number of characters for a line.
:param tab_width: Number of spaces to show for one tab.
'''
spacing_helper = SpacingHelper(tab_width)
for line_number, line in enumerate(file):
line = spacing_helper.replace_tabs_with_spaces(line)
if len(line) > max_line_length + 1:
yield Result.from_values(
origin=self,
message="Line is longer than allowed." +
" ({actual} > {maximum})".format(
actual=len(line)-1,
maximum=max_line_length),
file=filename,
line=line_number + 1,
column=max_line_length + 1,
end_line=line_number + 1,
end_column=len(line))
示例4: run
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
def run(self,
filename,
file,
use_spaces: bool,
allow_trailing_whitespace: bool=False,
tab_width: int=SpacingHelper.DEFAULT_TAB_WIDTH):
"""
Checks the space consistency for each line.
:param use_spaces: True if spaces are to be used
instead of tabs.
:param allow_trailing_whitespace: Whether to allow trailing whitespace
or not.
:param tab_width: Number of spaces representing one
tab.
"""
results = []
spacing_helper = SpacingHelper(tab_width)
for line_number, line in enumerate(file):
replacement = line
if not allow_trailing_whitespace:
replacement = replacement.rstrip(" \t\n") + "\n"
if use_spaces:
replacement = spacing_helper.replace_tabs_with_spaces(
replacement)
else:
replacement = spacing_helper.replace_spaces_with_tabs(
replacement)
if replacement != line:
diff = Diff()
diff.change_line(line_number + 1, line, replacement)
results.append(PatchResult(self,
_("Line contains spacing "
"inconsistencies."),
{filename: diff},
filename,
line_nr=line_number+1))
return results
示例5: SpacingHelperTest
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
class SpacingHelperTest(unittest.TestCase):
def setUp(self):
self.uut = SpacingHelper()
def test_needed_settings(self):
self.assertEqual(list(self.uut.get_optional_settings()), ['tab_width'])
self.assertEqual(list(self.uut.get_non_optional_settings()), [])
def test_construction(self):
section = Section('test section')
self.assertRaises(TypeError, SpacingHelper, 'no integer')
self.assertRaises(TypeError, self.uut.from_section, 5)
self.assertEqual(self.uut.tab_width,
self.uut.from_section(section).tab_width)
# This is assumed in some tests. If you want to change this value, be
# sure to change the tests too
self.assertEqual(self.uut.DEFAULT_TAB_WIDTH, 4)
self.assertEqual(self.uut.tab_width, self.uut.DEFAULT_TAB_WIDTH)
def test_get_indentation(self):
self.assertRaises(TypeError, self.uut.get_indentation, 5)
self.assertEqual(self.uut.get_indentation('no indentation'), 0)
self.assertEqual(self.uut.get_indentation(' indentation'), 1)
self.assertEqual(self.uut.get_indentation(' indentation'), 2)
self.assertEqual(self.uut.get_indentation('\tindentation'),
self.uut.DEFAULT_TAB_WIDTH)
# Having a space before the tab shouldn't make any difference
self.assertEqual(self.uut.get_indentation(' \tindentation'),
self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.get_indentation(' \t indentation'),
self.uut.DEFAULT_TAB_WIDTH+1)
self.assertEqual(self.uut.get_indentation('\t indentation'),
self.uut.DEFAULT_TAB_WIDTH+1)
# same tests but with indentation only
self.assertEqual(self.uut.get_indentation('\t'),
self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.get_indentation(' \t'),
self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.get_indentation(' \t '),
self.uut.DEFAULT_TAB_WIDTH+1)
self.assertEqual(self.uut.get_indentation('\t '),
self.uut.DEFAULT_TAB_WIDTH+1)
self.assertEqual(self.uut.get_indentation('\t\t'),
self.uut.DEFAULT_TAB_WIDTH*2)
def test_replace_tabs_with_spaces(self):
self.assertRaises(TypeError, self.uut.replace_tabs_with_spaces, 5)
self.assertEqual(self.uut.replace_tabs_with_spaces(''), '')
self.assertEqual(self.uut.replace_tabs_with_spaces(' '), ' ')
self.assertEqual(self.uut.replace_tabs_with_spaces('\t'),
' '*self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.replace_tabs_with_spaces('\t\t'),
' '*self.uut.DEFAULT_TAB_WIDTH*2)
self.assertEqual(self.uut.replace_tabs_with_spaces(' \t'),
' '*self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.replace_tabs_with_spaces(' \t'),
' '*self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.replace_tabs_with_spaces('d \t '),
'd' + ' '*self.uut.DEFAULT_TAB_WIDTH)
def test_replace_spaces_with_tabs(self):
self.assertRaises(TypeError, self.uut.replace_spaces_with_tabs, 5)
self.assertEqual(self.uut.replace_spaces_with_tabs(''), '')
self.assertEqual(self.uut.replace_spaces_with_tabs(' '), ' ')
self.assertEqual(self.uut.replace_spaces_with_tabs(' '), '\t')
self.assertEqual(self.uut.replace_spaces_with_tabs(' \t'), '\t')
self.assertEqual(self.uut.replace_spaces_with_tabs(' dd '),
' dd ')
self.assertEqual(self.uut.replace_spaces_with_tabs(' dd d '),
' dd d ') # One space shouldnt be replaced
self.assertEqual(self.uut.replace_spaces_with_tabs(' dd '),
' dd\t')
self.assertEqual(
self.uut.replace_spaces_with_tabs(' \t a_text another'),
'\t a_text\tanother')
self.assertEqual(self.uut.replace_spaces_with_tabs('123\t'), '123\t')
self.assertEqual(self.uut.replace_spaces_with_tabs('d d'), 'd d')
示例6: run
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
def run(self,
filename,
file,
use_spaces: bool,
allow_trailing_whitespace: bool=False,
tab_width: int=SpacingHelper.DEFAULT_TAB_WIDTH,
enforce_newline_at_EOF: bool=True):
'''
Checks the space consistency for each line.
:param use_spaces: True if spaces are to be used instead
of tabs.
:param allow_trailing_whitespace: Whether to allow trailing whitespace
or not.
:param tab_width: Number of spaces representing one
tab.
:param enforce_newline_at_EOF: Whether to enforce a newline at the
End Of File.
'''
spacing_helper = SpacingHelper(tab_width)
result_texts = []
for line_number, line in enumerate(file, start=1):
replacement = line
if enforce_newline_at_EOF:
# Since every line contains at the end at least one \n, only
# the last line could potentially not have one. So we don't
# need to check whether the current line_number is the last
# one.
if replacement[-1] != "\n":
replacement += "\n"
result_texts.append(_("No newline at EOF."))
if not allow_trailing_whitespace:
pre_replacement = line
replacement = replacement.rstrip(" \t\n") + "\n"
if replacement != pre_replacement:
result_texts.append(_("Trailing whitespaces."))
if use_spaces:
pre_replacement = replacement
replacement = spacing_helper.replace_tabs_with_spaces(
replacement)
if replacement != pre_replacement:
result_texts.append(_("Tabs used instead of spaces."))
else:
pre_replacement = replacement
replacement = spacing_helper.replace_spaces_with_tabs(
replacement)
if replacement != pre_replacement:
result_texts.append(_("Spaces used instead of tabs."))
if len(result_texts) > 0:
diff = Diff()
diff.change_line(line_number, line, replacement)
inconsistencies = "".join("\n- " + string
for string in result_texts)
yield Result.from_values(
self,
_("Line contains following spacing inconsistencies:")
+ inconsistencies,
diffs={filename: diff},
file=filename,
line=line_number)
result_texts = []
示例7: run
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
def run(self,
filename,
file,
use_spaces: bool,
allow_trailing_whitespace: bool=False,
tab_width: int=SpacingHelper.DEFAULT_TAB_WIDTH,
enforce_newline_at_EOF: bool=True):
'''
Check and correct spacing for all textual data. This includes usage of
tabs vs. spaces, trailing whitespace and (missing) newlines before
the end of the file.
:param use_spaces: True if spaces are to be used instead
of tabs.
:param allow_trailing_whitespace: Whether to allow trailing whitespace
or not.
:param tab_width: Number of spaces representing one
tab.
:param enforce_newline_at_EOF: Whether to enforce a newline at the
End Of File.
'''
spacing_helper = SpacingHelper(tab_width)
result_texts = []
additional_info_texts = []
for line_number, line in enumerate(file, start=1):
replacement = line
if enforce_newline_at_EOF:
# Since every line contains at the end at least one \n, only
# the last line could potentially not have one. So we don't
# need to check whether the current line_number is the last
# one.
if replacement[-1] != "\n":
replacement += "\n"
result_texts.append("No newline at EOF.")
additional_info_texts.append(
"A trailing newline character ('\\n') is missing from "
"your file. "
"<http://stackoverflow.com/a/5813359/3212182> gives "
"more information about why you might need one.")
if not allow_trailing_whitespace:
replacement = replacement.rstrip(" \t\n") + "\n"
if replacement != line.rstrip("\n") + "\n":
result_texts.append("Trailing whitespaces.")
additional_info_texts.append(
"Your source code contains trailing whitespaces. Those "
"usually have no meaning. Please consider removing "
"them.")
if use_spaces:
pre_replacement = replacement
replacement = spacing_helper.replace_tabs_with_spaces(
replacement)
if replacement != pre_replacement:
result_texts.append("Tabs used instead of spaces.")
else:
pre_replacement = replacement
replacement = spacing_helper.replace_spaces_with_tabs(
replacement)
if replacement != pre_replacement:
result_texts.append("Spaces used instead of tabs.")
if len(result_texts) > 0:
diff = Diff(file)
diff.change_line(line_number, line, replacement)
inconsistencies = "".join("\n- " + string
for string in result_texts)
yield Result.from_values(
self,
"Line contains following spacing inconsistencies:"
+ inconsistencies,
diffs={filename: diff},
file=filename,
line=line_number,
additional_info="\n\n".join(additional_info_texts))
result_texts = []
additional_info_texts = []
示例8: SpacingHelperTest
# 需要导入模块: from coalib.bearlib.spacing.SpacingHelper import SpacingHelper [as 别名]
# 或者: from coalib.bearlib.spacing.SpacingHelper.SpacingHelper import replace_tabs_with_spaces [as 别名]
class SpacingHelperTest(unittest.TestCase):
def setUp(self):
self.uut = SpacingHelper()
def test_needed_settings(self):
self.assertEqual(list(self.uut.get_optional_settings()), ["tab_width"])
self.assertEqual(list(self.uut.get_non_optional_settings()), [])
def test_construction(self):
section = Section("test section")
self.assertRaises(TypeError, SpacingHelper, "no integer")
self.assertRaises(TypeError, self.uut.from_section, 5)
self.assertEqual(self.uut.tab_width,
self.uut.from_section(section).tab_width)
section.append(Setting("tab_width", "invalid"))
# Setting won't be converted since it's not possible, SpacingHelper
# will then complain with TypeError
self.assertRaises(TypeError, self.uut.from_section, section)
# This is assumed in some tests. If you want to change this value, be
# sure to change the tests too
self.assertEqual(self.uut.DEFAULT_TAB_WIDTH, 4)
self.assertEqual(self.uut.tab_width, self.uut.DEFAULT_TAB_WIDTH)
def test_get_indentation(self):
self.assertRaises(TypeError, self.uut.get_indentation, 5)
self.assertEqual(self.uut.get_indentation("no indentation"), 0)
self.assertEqual(self.uut.get_indentation(" indentation"), 1)
self.assertEqual(self.uut.get_indentation(" indentation"), 2)
self.assertEqual(self.uut.get_indentation("\tindentation"),
self.uut.DEFAULT_TAB_WIDTH)
# Having a space before the tab shouldn't make any difference
self.assertEqual(self.uut.get_indentation(" \tindentation"),
self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.get_indentation(" \t indentation"),
self.uut.DEFAULT_TAB_WIDTH+1)
self.assertEqual(self.uut.get_indentation("\t indentation"),
self.uut.DEFAULT_TAB_WIDTH+1)
# same tests but with indentation only
self.assertEqual(self.uut.get_indentation("\t"),
self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.get_indentation(" \t"),
self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.get_indentation(" \t "),
self.uut.DEFAULT_TAB_WIDTH+1)
self.assertEqual(self.uut.get_indentation("\t "),
self.uut.DEFAULT_TAB_WIDTH+1)
self.assertEqual(self.uut.get_indentation("\t\t"),
self.uut.DEFAULT_TAB_WIDTH*2)
def test_replace_tabs_with_spaces(self):
self.assertRaises(TypeError, self.uut.replace_tabs_with_spaces, 5)
self.assertEqual(self.uut.replace_tabs_with_spaces(""), "")
self.assertEqual(self.uut.replace_tabs_with_spaces(" "), " ")
self.assertEqual(self.uut.replace_tabs_with_spaces("\t"),
" "*self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.replace_tabs_with_spaces("\t\t"),
" "*self.uut.DEFAULT_TAB_WIDTH*2)
self.assertEqual(self.uut.replace_tabs_with_spaces(" \t"),
" "*self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.replace_tabs_with_spaces(" \t"),
" "*self.uut.DEFAULT_TAB_WIDTH)
self.assertEqual(self.uut.replace_tabs_with_spaces("d \t "),
"d" + " "*self.uut.DEFAULT_TAB_WIDTH)
def test_replace_spaces_with_tabs(self):
self.assertRaises(TypeError, self.uut.replace_spaces_with_tabs, 5)
self.assertEqual(self.uut.replace_spaces_with_tabs(""), "")
self.assertEqual(self.uut.replace_spaces_with_tabs(" "), " ")
self.assertEqual(self.uut.replace_spaces_with_tabs(" "), "\t")
self.assertEqual(self.uut.replace_spaces_with_tabs(" \t"), "\t")
self.assertEqual(self.uut.replace_spaces_with_tabs(" dd "),
" dd ")
self.assertEqual(self.uut.replace_spaces_with_tabs(" dd d "),
" dd d ") # One space shouldnt be replaced
self.assertEqual(self.uut.replace_spaces_with_tabs(" dd "),
" dd\t")
self.assertEqual(
self.uut.replace_spaces_with_tabs(" \t a_text another"),
"\t a_text\tanother")
self.assertEqual(self.uut.replace_spaces_with_tabs("d d"), "d d")