Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions redbaron/base_nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def to_baron_path(self):
return self.path

def __str__(self):
return 'Path(%s @ %s)' % (
return 'Path({} @ {})'.format(
self.node.__class__.__name__ + ('(' + self.node.type + ')' if isinstance(self.node, Node) else ''),
str(self.path))

Expand Down Expand Up @@ -232,7 +232,7 @@ def find_by_position(self, position):

def at(self, line_no):
if not 0 <= line_no <= self.absolute_bounding_box.bottom_right.line:
raise IndexError("Line number {0} is outside of the file".format(line_no))
raise IndexError("Line number {} is outside of the file".format(line_no))

node = self.find_by_position((line_no, 1))

Expand Down Expand Up @@ -343,7 +343,7 @@ def find(self, identifier, *args, **kwargs):
def __getattr__(self, key):
if key not in redbaron.ALL_IDENTIFIERS:
raise AttributeError(
"%s instance has no attribute '%s' and '%s' is not a valid identifier of another node" % (
"{} instance has no attribute '{}' and '{}' is not a valid identifier of another node".format(
self.__class__.__name__, key, key))

return self.find(key)
Expand Down Expand Up @@ -379,7 +379,7 @@ def __repr__(self):
if in_a_shell():
return self.__str__()

return "<%s %s, \"%s\" %s, on %s %s>" % (
return "<{} {}, \"{}\" {}, on {} {}>".format(
self.__class__.__name__,
self.path().to_baron_path(),
truncate(self.dumps().replace("\n", "\\n"), 20),
Expand Down Expand Up @@ -451,8 +451,8 @@ def filter(self, function):
return NodeList([x for x in self.data if function(x)])

def filtered(self):
return tuple([x for x in self.data if
not isinstance(x, (redbaron.nodes.EndlNode, redbaron.nodes.CommaNode, redbaron.nodes.DotNode))])
return tuple(x for x in self.data if
not isinstance(x, (redbaron.nodes.EndlNode, redbaron.nodes.CommaNode, redbaron.nodes.DotNode)))

def _generate_nodes_in_rendering_order(self):
previous = None
Expand Down Expand Up @@ -687,7 +687,7 @@ def _get_list_attribute_is_member_off(self):
if self.parent is None:
return None

if self.on_attribute is "root":
if self.on_attribute == "root":
in_list = self.parent
elif self.on_attribute is not None:
if isinstance(self.parent, NodeList):
Expand All @@ -714,7 +714,7 @@ def __getattr__(self, key):

if key not in redbaron.ALL_IDENTIFIERS:
raise AttributeError(
"%s instance has no attribute '%s' and '%s' is not a valid identifier of another node" % (
"{} instance has no attribute '{}' and '{}' is not a valid identifier of another node".format(
self.__class__.__name__, key, key))

return self.find(key)
Expand Down Expand Up @@ -885,7 +885,7 @@ def generate_identifiers(klass):
] + klass._other_identifiers)))

def _get_helpers(self):
not_helpers = set([
not_helpers = {
'at',
'copy',
'decrease_indentation',
Expand Down Expand Up @@ -926,7 +926,7 @@ def _get_helpers(self):
'previous_generator',
'replace',
'to_python',
])
}
return [x for x in dir(self) if
not x.startswith("_") and x not in not_helpers and inspect.ismethod(getattr(self, x))]

Expand Down Expand Up @@ -969,30 +969,30 @@ def __help__(self, deep=2, with_formatting=False):
to_join.append("# helpers: %s" % ", ".join(self._get_helpers()))
if self._default_test_value != "value":
to_join.append("# default test value: %s" % self._default_test_value)
to_join += ["%s=%s" % (key, repr(getattr(self, key))) for key in self._str_keys if
to_join += ["{}={}".format(key, repr(getattr(self, key))) for key in self._str_keys if
key != "type" and "formatting" not in key]
to_join += ["%s ->\n %s" % (key, indent(
to_join += ["{} ->\n {}".format(key, indent(
getattr(self, key).__help__(deep=new_deep, with_formatting=with_formatting),
" ").lstrip() if getattr(self, key) else getattr(self, key)) for key in self._dict_keys if
"formatting" not in key]
# need to do this otherwise I end up with stacked quoted list
# example: value=[\'DottedAsNameNode(target=\\\'None\\\', as=\\\'False\\\', value=DottedNameNode(value=["NameNode(value=\\\'pouet\\\')"])]
for key in filter(lambda x: "formatting" not in x, self._list_keys):
to_join.append(("%s ->" % key))
to_join.append("%s ->" % key)
for i in getattr(self, key):
to_join.append(
" * " + indent(i.__help__(deep=new_deep, with_formatting=with_formatting), " ").lstrip())

if deep and with_formatting:
to_join += ["%s=%s" % (key, repr(getattr(self, key))) for key in self._str_keys if
to_join += ["{}={}".format(key, repr(getattr(self, key))) for key in self._str_keys if
key != "type" and "formatting" in key]
to_join += ["%s=%s" % (key, getattr(self, key).__help__(deep=new_deep,
to_join += ["{}={}".format(key, getattr(self, key).__help__(deep=new_deep,
with_formatting=with_formatting) if getattr(self,
key) else getattr(
self, key)) for key in self._dict_keys if "formatting" in key]

for key in filter(lambda x: "formatting" in x, self._list_keys):
to_join.append(("%s ->" % key))
to_join.append("%s ->" % key)
for i in getattr(self, key):
to_join.append(
" * " + indent(i.__help__(deep=new_deep, with_formatting=with_formatting), " ").lstrip())
Expand All @@ -1003,7 +1003,7 @@ def __repr__(self):
if in_a_shell():
return self.__str__()

return "<%s path=%s, \"%s\" %s, on %s %s>" % (
return "<{} path={}, \"{}\" {}, on {} {}>".format(
self.__class__.__name__,
self.path().to_baron_path(),
truncate(self.dumps().replace("\n", "\\n"), 20),
Expand Down Expand Up @@ -1070,7 +1070,7 @@ def edit(self, editor=None):
with open(temp_file_path, "w") as temp_file:
temp_file.write(self_in_string)

os.system("%s %s" % (editor, temp_file_path))
os.system("{} {}".format(editor, temp_file_path))

with open(temp_file_path, "r") as temp_file:
result = temp_file.read()
Expand Down Expand Up @@ -1253,7 +1253,7 @@ def remove_trailing_endl(node):
parent=last_member, on_attribute="value"))
return ""

if re.match("^\s*%s" % indented_type, string):
if re.match(r"^\s*%s" % indented_type, string):

# we've got indented text, let's deindent it
if string.startswith((" ", " ")):
Expand Down Expand Up @@ -1486,7 +1486,7 @@ def __repr__(self):
if in_a_shell():
return self.__str__()

return "<%s %s, \"%s\" %s, on %s %s>" % (
return "<{} {}, \"{}\" {}, on {} {}>".format(
self.__class__.__name__,
self.path().to_baron_path(),
truncate(self.dumps().replace("\n", "\\n"), 20),
Expand Down
4 changes: 2 additions & 2 deletions tests/test_initial_parsing.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,9 @@ def test_assign_on_object_value_fst():

def test_generate_helpers():
red = RedBaron("def a(): pass")
assert set(red[0].generate_identifiers()) == set([
assert set(red[0].generate_identifiers()) == {
"funcdef", "funcdef_", "defnode", "def", "def_"
])
}


def test_assign_node_list():
Expand Down
22 changes: 11 additions & 11 deletions tests/test_setter.py
Original file line number Diff line number Diff line change
Expand Up @@ -714,7 +714,7 @@ def test_with_context_item_as():
def test_with_context_item_as_empty_string():
red = RedBaron("with a as b: pass")
red[0].contexts[0].as_ = ""
assert red[0].contexts[0].as_ is ""
assert red[0].contexts[0].as_ == ""
assert red[0].dumps() == "with a: pass\n"


Expand Down Expand Up @@ -1770,61 +1770,61 @@ def else_simple_body_starting_with_else(request):
def test_while_else_simple(else_simple_body_starting_with_else, has_else_member):
red = RedBaron(has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body_starting_with_else % has_else_member[1])
assert red.dumps() == "%s%s:\n pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else_simple_root_level(else_simple_body, has_else_member):
red = RedBaron("%s\n\ndef other_stuff(): pass\n" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body)
assert red.dumps() == "%s%s:\n plop\n\n\ndef other_stuff(): pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n plop\n\n\ndef other_stuff(): pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else_not_simple_root_level(else_simple_body_starting_with_else, has_else_member):
red = RedBaron("%s\n\ndef other_stuff(): pass\n" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body_starting_with_else % has_else_member[1])
assert red.dumps() == "%s%s:\n pass\n\n\ndef other_stuff(): pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n pass\n\n\ndef other_stuff(): pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else_root_level_too_few_blanks_lines(else_simple_body, has_else_member):
red = RedBaron("%s\ndef other_stuff(): pass\n" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body)
assert red.dumps() == "%s%s:\n plop\n\n\ndef other_stuff(): pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n plop\n\n\ndef other_stuff(): pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else_root_level_too_few_blanks_lines_starting_with_else(else_simple_body_starting_with_else, has_else_member):
red = RedBaron("%s\ndef other_stuff(): pass\n" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body_starting_with_else % has_else_member[1])
assert red.dumps() == "%s%s:\n pass\n\n\ndef other_stuff(): pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n pass\n\n\ndef other_stuff(): pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else_root_level_too_much_blanks_lines(else_simple_body, has_else_member):
red = RedBaron("%s\ndef other_stuff(): pass\n" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body)
assert red.dumps() == "%s%s:\n plop\n\n\ndef other_stuff(): pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n plop\n\n\ndef other_stuff(): pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else_root_level_too_much_blanks_lines_starting_with_else(else_simple_body_starting_with_else, has_else_member):
red = RedBaron("%s\ndef other_stuff(): pass\n" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body_starting_with_else % has_else_member[1])
assert red.dumps() == "%s%s:\n pass\n\n\ndef other_stuff(): pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n pass\n\n\ndef other_stuff(): pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else_root_level_too_much_blanks_lines_starting_two_line_body(else_two_line_body, has_else_member):
red = RedBaron("%s\ndef other_stuff(): pass\n" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_two_line_body)
assert red.dumps() == "%s%s:\n plop\n plouf\n\n\ndef other_stuff(): pass\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n plop\n plouf\n\n\ndef other_stuff(): pass\n".format(has_else_member[0], has_else_member[1])


def test_while_else(else_simple_body, has_else_member):
red = RedBaron("%s" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_simple_body)
assert red.dumps() == "%s%s:\n plop\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n plop\n".format(has_else_member[0], has_else_member[1])


def test_while_else_two_line_body(else_two_line_body, has_else_member):
red = RedBaron("%s" % has_else_member[0])
setattr(red[0], has_else_member[1] + "_", else_two_line_body)
assert red.dumps() == "%s%s:\n plop\n plouf\n" % (has_else_member[0], has_else_member[1])
assert red.dumps() == "{}{}:\n plop\n plouf\n".format(has_else_member[0], has_else_member[1])


code_else_block_setattr_one_level = """\
Expand Down