Skip to content
Snippets Groups Projects
Commit 90637fa2 authored by Tomáš Orviský's avatar Tomáš Orviský
Browse files

Quotes formatting

parent caf8a2a8
Branches
No related merge requests found
...@@ -17,7 +17,7 @@ if __name__ == "__main__": ...@@ -17,7 +17,7 @@ if __name__ == "__main__":
argparser.add_argument("-sy", "--scale-y", default=1, type=float) argparser.add_argument("-sy", "--scale-y", default=1, type=float)
argparser.add_argument("-fps", "--frames-per-second", default=60, type=int) argparser.add_argument("-fps", "--frames-per-second", default=60, type=int)
argparser.add_argument("-fcache", "--flush-cache", action="store_true") argparser.add_argument("-fcache", "--flush-cache", action="store_true")
argparser.add_argument('-l', '--layout', choices=['dot', 'spring'], default='dot') argparser.add_argument("-l", "--layout", choices=["dot", "spring"], default="dot")
args = argparser.parse_args() args = argparser.parse_args()
......
...@@ -28,26 +28,26 @@ class ClassAttribute: ...@@ -28,26 +28,26 @@ class ClassAttribute:
@staticmethod @staticmethod
def from_string(string: str) -> ClassAttribute: def from_string(string: str) -> ClassAttribute:
is_method = '(' in string is_method = "(" in string
sub = re.sub(r"(?i){field}", '', string) sub = re.sub(r"(?i){field}", "", string)
field_flag = string != sub field_flag = string != sub
string = sub string = sub
sub = re.sub(r"(?i){method}", '', string) sub = re.sub(r"(?i){method}", "", string)
method_flag = string != sub method_flag = string != sub
string = sub string = sub
sub = re.sub(r"(?i){static}", '', string) sub = re.sub(r"(?i){static}", "", string)
static_flag = string != sub static_flag = string != sub
string = sub string = sub
sub = re.sub(r"(?i){abstract}", '', string) sub = re.sub(r"(?i){abstract}", "", string)
abstract_flag = string != sub abstract_flag = string != sub
string = sub string = sub
string = string.strip() string = string.strip()
if string[0] in ['-', '~', '#', '+']: if string[0] in ["-", "~", "#", "+"]:
attr = ClassAttribute(AttributeModifier.from_string(string[0]), string[1:], is_method) attr = ClassAttribute(AttributeModifier.from_string(string[0]), string[1:], is_method)
else: else:
attr_str = string.strip() attr_str = string.strip()
......
...@@ -15,14 +15,14 @@ class Diagram: ...@@ -15,14 +15,14 @@ class Diagram:
def __setitem__(self, key: str, val: DiagramObject): def __setitem__(self, key: str, val: DiagramObject):
if not isinstance(val, DiagramObject): if not isinstance(val, DiagramObject):
raise Exception('Only DiagramObject is allowed.') raise Exception("Only DiagramObject is allowed.")
self.objects[key] = val self.objects[key] = val
self.last_object = val self.last_object = val
def __getitem__(self, key: str): def __getitem__(self, key: str):
return self.objects[str(key)] return self.objects[str(key)]
def objects_by_type(self, obj_type: str = ''): def objects_by_type(self, obj_type: str = ""):
res = {} res = {}
for name, obj in self.objects.items(): for name, obj in self.objects.items():
_type = type(obj).__name__ _type = type(obj).__name__
...@@ -33,7 +33,7 @@ class Diagram: ...@@ -33,7 +33,7 @@ class Diagram:
res[_type] = {} res[_type] = {}
res[_type][name] = obj res[_type][name] = obj
return res[obj_type] if obj_type != '' else res return res[obj_type] if obj_type != "" else res
def draw(self): def draw(self):
for name, obj in self.objects.items(): for name, obj in self.objects.items():
......
...@@ -147,7 +147,7 @@ class DiagramClass(PositionedDiagramObject): ...@@ -147,7 +147,7 @@ class DiagramClass(PositionedDiagramObject):
return VGroup(c, t) return VGroup(c, t)
def prepare_icon(self): def prepare_icon(self):
return self.get_icon('A' if self.is_abstract else 'C', TEAL if self.is_abstract else GREEN) return self.get_icon("A" if self.is_abstract else "C", TEAL if self.is_abstract else GREEN)
def add_attribute(self, attr: ClassAttribute): def add_attribute(self, attr: ClassAttribute):
if attr.is_method: if attr.is_method:
...@@ -161,7 +161,7 @@ class DiagramAnnotation(DiagramClass): ...@@ -161,7 +161,7 @@ class DiagramAnnotation(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('@', ORANGE) return super().get_icon("@", ORANGE)
class DiagramEntity(DiagramClass): class DiagramEntity(DiagramClass):
...@@ -169,7 +169,7 @@ class DiagramEntity(DiagramClass): ...@@ -169,7 +169,7 @@ class DiagramEntity(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('E', GREEN) return super().get_icon("E", GREEN)
class DiagramEnum(DiagramClass): class DiagramEnum(DiagramClass):
...@@ -177,7 +177,7 @@ class DiagramEnum(DiagramClass): ...@@ -177,7 +177,7 @@ class DiagramEnum(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('E', ORANGE) return super().get_icon("E", ORANGE)
class DiagramException(DiagramClass): class DiagramException(DiagramClass):
...@@ -185,7 +185,7 @@ class DiagramException(DiagramClass): ...@@ -185,7 +185,7 @@ class DiagramException(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('X', RED) return super().get_icon("X", RED)
class DiagramInterface(DiagramClass): class DiagramInterface(DiagramClass):
...@@ -195,7 +195,7 @@ class DiagramInterface(DiagramClass): ...@@ -195,7 +195,7 @@ class DiagramInterface(DiagramClass):
self.is_interface = True self.is_interface = True
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('I', PURPLE) return super().get_icon("I", PURPLE)
class DiagramMetaClass(DiagramClass): class DiagramMetaClass(DiagramClass):
...@@ -203,7 +203,7 @@ class DiagramMetaClass(DiagramClass): ...@@ -203,7 +203,7 @@ class DiagramMetaClass(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('M', GRAY) return super().get_icon("M", GRAY)
class DiagramProtocol(DiagramClass): class DiagramProtocol(DiagramClass):
...@@ -211,7 +211,7 @@ class DiagramProtocol(DiagramClass): ...@@ -211,7 +211,7 @@ class DiagramProtocol(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('P', LIGHT_GRAY) return super().get_icon("P", LIGHT_GRAY)
class DiagramStereoType(DiagramClass): class DiagramStereoType(DiagramClass):
...@@ -219,7 +219,7 @@ class DiagramStereoType(DiagramClass): ...@@ -219,7 +219,7 @@ class DiagramStereoType(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('S', PINK) return super().get_icon("S", PINK)
class DiagramStruct(DiagramClass): class DiagramStruct(DiagramClass):
...@@ -227,7 +227,7 @@ class DiagramStruct(DiagramClass): ...@@ -227,7 +227,7 @@ class DiagramStruct(DiagramClass):
super().__init__(name) super().__init__(name)
def prepare_icon(self): def prepare_icon(self):
return super().get_icon('S', LIGHT_GRAY) return super().get_icon("S", LIGHT_GRAY)
class DiagramClassFactory: class DiagramClassFactory:
...@@ -265,4 +265,4 @@ class DiagramClassFactory: ...@@ -265,4 +265,4 @@ class DiagramClassFactory:
elif class_type == ClassType.STRUCT: elif class_type == ClassType.STRUCT:
return DiagramStruct(name) return DiagramStruct(name)
raise Exception('Undefined class type.') raise Exception("Undefined class type.")
...@@ -11,7 +11,7 @@ class DiagramEdge(DiagramObject): ...@@ -11,7 +11,7 @@ class DiagramEdge(DiagramObject):
dotted: bool, dotted: bool,
size: int, size: int,
): ):
DiagramObject.__init__(self, '') DiagramObject.__init__(self, "")
self.dotted = dotted self.dotted = dotted
self.size = size self.size = size
...@@ -131,7 +131,7 @@ class DiagramEdge(DiagramObject): ...@@ -131,7 +131,7 @@ class DiagramEdge(DiagramObject):
def __prepare_line_tips(self): def __prepare_line_tips(self):
_dir = self.get_dir() _dir = self.get_dir()
def_params = {'tip_length': 0.2, 'tip_width': 0.2} def_params = {"tip_length": 0.2, "tip_width": 0.2}
if _dir == -1: if _dir == -1:
self.mo_line.add_tip(self.get_line_tip(self.source_rel_type), **def_params) self.mo_line.add_tip(self.get_line_tip(self.source_rel_type), **def_params)
......
...@@ -22,7 +22,7 @@ class DiagramLayout(ABC): ...@@ -22,7 +22,7 @@ class DiagramLayout(ABC):
for name, obj in self.diagram.objects.items(): for name, obj in self.diagram.objects.items():
if isinstance(obj, PositionedDiagramObject) and obj.do_draw: if isinstance(obj, PositionedDiagramObject) and obj.do_draw:
g.add_node(name) g.add_node(name)
if hasattr(obj, 'edges'): if hasattr(obj, "edges"):
for e in obj.edges: for e in obj.edges:
g.add_edge(name, e.target.get_key()) g.add_edge(name, e.target.get_key())
return g return g
...@@ -37,7 +37,7 @@ class DiagramLayout(ABC): ...@@ -37,7 +37,7 @@ class DiagramLayout(ABC):
class DotLayout(DiagramLayout): class DotLayout(DiagramLayout):
def apply(self): def apply(self):
layout = graphviz_layout(self.get_graph(), prog='dot') layout = graphviz_layout(self.get_graph(), prog="dot")
scale_x, scale_y = self.calculate_scaling_factors(layout) scale_x, scale_y = self.calculate_scaling_factors(layout)
...@@ -85,9 +85,9 @@ class SpringLayout(DiagramLayout): ...@@ -85,9 +85,9 @@ class SpringLayout(DiagramLayout):
class DiagramLayoutFactory: class DiagramLayoutFactory:
@staticmethod @staticmethod
def make(name: str, diagram: Diagram): def make(name: str, diagram: Diagram):
if name == 'dot': if name == "dot":
return DotLayout(diagram) return DotLayout(diagram)
elif name == 'spring': elif name == "spring":
return SpringLayout(diagram) return SpringLayout(diagram)
raise Exception('Undefined layout "{}"'.format(name)) raise Exception("Undefined layout \"{}\"".format(name))
...@@ -8,13 +8,13 @@ class DiagramNote(PositionedDiagramObject): ...@@ -8,13 +8,13 @@ class DiagramNote(PositionedDiagramObject):
def __init__(self, name: str, text: str): def __init__(self, name: str, text: str):
super().__init__(name) super().__init__(name)
self.text = text.replace('\\n', '\n') self.text = text.replace("\\n", "\n")
self.do_draw = False # TODO Prepare note drawing self.do_draw = False # TODO Prepare note drawing
self.edges: List[DiagramEdge] = [] self.edges: List[DiagramEdge] = []
def predraw(self) -> VMobject: def predraw(self) -> VMobject:
rect = Rectangle(fill_color='#feffdd', fill_opacity=1, stroke_color='#8c8c83', stroke_width=1) rect = Rectangle(fill_color="#feffdd", fill_opacity=1, stroke_color="#8c8c83", stroke_width=1)
text = Text(self.text, color=BLACK).scale(0.75) text = Text(self.text, color=BLACK).scale(0.75)
rect.stretch_to_fit_width(text.width + 0.1) rect.stretch_to_fit_width(text.width + 0.1)
rect.stretch_to_fit_height(text.height + 0.1) rect.stretch_to_fit_height(text.height + 0.1)
......
...@@ -65,11 +65,11 @@ class DiagramObject(ABC): ...@@ -65,11 +65,11 @@ class DiagramObject(ABC):
return str(self.name) return str(self.name)
def __repr__(self): def __repr__(self):
return '({}) "{}", hidden: {}, draw: {}'.format( return "({}) \"{}\", hidden: {}, draw: {}".format(
self.__class__.__name__, self.__class__.__name__,
self.get_key() or 'NAME NOT SET', self.get_key() or "NAME NOT SET",
'yes' if self.is_hidden else 'no', "yes" if self.is_hidden else "no",
'yes' if self.do_draw else 'no', "yes" if self.do_draw else "no",
) )
......
...@@ -6,7 +6,7 @@ import ply.lex as lex ...@@ -6,7 +6,7 @@ import ply.lex as lex
# noinspection PyPep8Naming # noinspection PyPep8Naming
class PUMLexer(object): class PUMLexer(object):
states = ( states = (
('inbrackets', 'exclusive'), ("inbrackets", "exclusive"),
) )
keywords = { keywords = {
...@@ -31,7 +31,7 @@ class PUMLexer(object): ...@@ -31,7 +31,7 @@ class PUMLexer(object):
tokens = [ tokens = [
"CLASS_DEF", "CLASS_DEF",
'IN_BRACKETS_LINES', "IN_BRACKETS_LINES",
"REL_LINE", "REL_LINE",
"STRING", "STRING",
"IDENTIFIER", "IDENTIFIER",
...@@ -53,7 +53,7 @@ class PUMLexer(object): ...@@ -53,7 +53,7 @@ class PUMLexer(object):
r"""\{""" r"""\{"""
t.lexer.code_start = t.lexer.lexpos t.lexer.code_start = t.lexer.lexpos
t.lexer.level = 1 t.lexer.level = 1
t.lexer.begin('inbrackets') t.lexer.begin("inbrackets")
@staticmethod @staticmethod
def t_inbrackets_lbrace(t): def t_inbrackets_lbrace(t):
...@@ -67,10 +67,10 @@ class PUMLexer(object): ...@@ -67,10 +67,10 @@ class PUMLexer(object):
if t.lexer.level == 0: if t.lexer.level == 0:
t.value = t.lexer.lexdata[t.lexer.code_start:t.lexer.lexpos - 1] t.value = t.lexer.lexdata[t.lexer.code_start:t.lexer.lexpos - 1]
t.lexer.lineno += t.value.count('\n') t.lexer.lineno += t.value.count("\n")
t.lexer.begin('INITIAL') t.lexer.begin("INITIAL")
t.type = 'IN_BRACKETS_LINES' t.type = "IN_BRACKETS_LINES"
t.value = [val.strip() for val in t.value.splitlines() if val != ''] t.value = [val.strip() for val in t.value.splitlines() if val != ""]
return t return t
@staticmethod @staticmethod
...@@ -108,7 +108,7 @@ class PUMLexer(object): ...@@ -108,7 +108,7 @@ class PUMLexer(object):
def t_IDENTIFIER(self, t): def t_IDENTIFIER(self, t):
r"""@*\w+[()]*""" r"""@*\w+[()]*"""
t.type = self.keywords.get(t.value.lower(), 'IDENTIFIER') t.type = self.keywords.get(t.value.lower(), "IDENTIFIER")
return t return t
@staticmethod @staticmethod
...@@ -125,17 +125,17 @@ class PUMLexer(object): ...@@ -125,17 +125,17 @@ class PUMLexer(object):
@staticmethod @staticmethod
def t_error(t): def t_error(t):
print("Illegal character: '{}'".format(t.value[0])) print("Illegal character: \"{}\"".format(t.value[0]))
t.lexer.skip(1) t.lexer.skip(1)
@staticmethod @staticmethod
def t_inbrackets_error(t): def t_inbrackets_error(t):
t.lexer.skip(1) t.lexer.skip(1)
t_ignore = ' \n\t' t_ignore = " \n\t"
t_ignore_COMMENT = r"('.*)|(\/'(.|\s)*\'\/)" t_ignore_COMMENT = r"('.*)|(\/'(.|\s)*\'\/)"
t_inbrackets_ignore = ' \t\n' t_inbrackets_ignore = " \t\n"
def __init__(self, **kwargs): def __init__(self, **kwargs):
self.lexer = lex.lex(module=self, reflags=re.IGNORECASE, **kwargs) self.lexer = lex.lex(module=self, reflags=re.IGNORECASE, **kwargs)
...@@ -149,7 +149,7 @@ class PUMLexer(object): ...@@ -149,7 +149,7 @@ class PUMLexer(object):
print(tok) print(tok)
def testFile(self, path: str, output: bool = True): def testFile(self, path: str, output: bool = True):
with open(path, 'r') as file: with open(path, "r") as file:
text = file.read() text = file.read()
return self.test(text, output) return self.test(text, output)
...@@ -69,11 +69,11 @@ class PUMLParser(object): ...@@ -69,11 +69,11 @@ class PUMLParser(object):
(l_class, r_class, edge) = p[1] (l_class, r_class, edge) = p[1]
text = str(p[2]).strip() text = str(p[2]).strip()
if text[0] == '<': if text[0] == "<":
edge.arrow_from_source = edge.get_dir() != 1 edge.arrow_from_source = edge.get_dir() != 1
text = text[1:] text = text[1:]
elif text[0] == '>': elif text[0] == ">":
edge.arrow_from_source = edge.get_dir() == 1 edge.arrow_from_source = edge.get_dir() == 1
text = text[1:] text = text[1:]
...@@ -283,7 +283,7 @@ class PUMLParser(object): ...@@ -283,7 +283,7 @@ class PUMLParser(object):
text = p[5] if _len == 6 else p[3] text = p[5] if _len == 6 else p[3]
obj = self.diagram[p[4]] if _len == 6 else self.diagram.last_object obj = self.diagram[p[4]] if _len == 6 else self.diagram.last_object
n = DiagramNote('{}-note-for-{}'.format(pos, obj.name), text) n = DiagramNote("{}-note-for-{}".format(pos, obj.name), text)
e = DiagramEdge(False, 1) e = DiagramEdge(False, 1)
e.source = n e.source = n
e.target = obj e.target = obj
...@@ -358,7 +358,7 @@ class PUMLParser(object): ...@@ -358,7 +358,7 @@ class PUMLParser(object):
return self.parser.parse(text) return self.parser.parse(text)
def parse_file(self, path): def parse_file(self, path):
with open(path, 'r') as file: with open(path, "r") as file:
text = file.read() text = file.read()
return self.parse(text) return self.parse(text)
...@@ -17,21 +17,21 @@ class Relation(Enum): ...@@ -17,21 +17,21 @@ class Relation(Enum):
if string is None: if string is None:
return Relation.NONE return Relation.NONE
if string in ['<|', '|>', '^']: if string in ["<|", "|>", "^"]:
return Relation.EXTENSION return Relation.EXTENSION
elif string in ['<', '>']: elif string in ["<", ">"]:
return Relation.ASSOCIATION return Relation.ASSOCIATION
elif string in ['o']: elif string in ["o"]:
return Relation.AGGREGATION return Relation.AGGREGATION
elif string in ['*']: elif string in ["*"]:
return Relation.COMPOSITION return Relation.COMPOSITION
elif string in ['#']: elif string in ["#"]:
return Relation.HASH return Relation.HASH
elif string in ['x']: elif string in ["x"]:
return Relation.CROSS return Relation.CROSS
elif string in ['{', '}']: elif string in ["{", "}"]:
return Relation.CROW_FOOT return Relation.CROW_FOOT
elif string in ['+']: elif string in ["+"]:
return Relation.NEST_CLASSIFIER return Relation.NEST_CLASSIFIER
else: else:
raise Exception('Undefined relation "{}"'.format(string)) raise Exception("Undefined relation \"{}\"".format(string))
...@@ -30,4 +30,4 @@ class PyPlamlTest(unittest.TestCase): ...@@ -30,4 +30,4 @@ class PyPlamlTest(unittest.TestCase):
examples = sorted(glob("../examples/*.puml")) examples = sorted(glob("../examples/*.puml"))
for e in examples: for e in examples:
self.assertEqual(os.system("python ../main.py " + e), 0, 'Drawing "' + e + '" failed') self.assertEqual(os.system("python ../main.py " + e), 0, "Drawing \"{}\" failed".format(e))
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