diff env/lib/python3.7/site-packages/schema_salad/exceptions.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/schema_salad/exceptions.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-from typing import Any, Sequence, Optional, Tuple, List
-from typing_extensions import Text
-from .sourceline import reflow_all, strip_duplicated_lineno, SourceLine
-
-
-def to_one_line_messages(exc):  # type: (SchemaSaladException) -> Text
-    return "\n".join((c.summary() for c in exc.leaves()))
-
-
-class SchemaSaladException(Exception):
-    """Base class for all schema-salad exceptions."""
-
-    def __init__(
-        self,
-        msg,  # type: Text
-        sl=None,  # type: Optional[SourceLine]
-        children=None,  # type: Optional[Sequence[SchemaSaladException]]
-        bullet_for_children="",  # type: Text
-    ):  # type: (...) -> None
-        super(SchemaSaladException, self).__init__(msg)
-        self.message = self.args[0]
-
-        # It will be set by its parent
-        self.bullet = ""  # type: Text
-
-        def simplify(exc):  # type: (SchemaSaladException) -> List[SchemaSaladException]
-            return [exc] if len(exc.message) else exc.children
-
-        def with_bullet(exc, bullet):
-            # type: (SchemaSaladException, Text) -> SchemaSaladException
-            if exc.bullet == "":
-                exc.bullet = bullet
-            return exc
-
-        if children is None:
-            self.children = []  # type: List[SchemaSaladException]
-        elif len(children) <= 1:
-            self.children = sum((simplify(c) for c in children), [])
-        else:
-            self.children = sum(
-                (simplify(with_bullet(c, bullet_for_children)) for c in children), []
-            )
-
-        self.with_sourceline(sl)
-        self.propagate_sourceline()
-
-    def propagate_sourceline(self):  # type: () -> None
-        if self.file is None:
-            return
-        for c in self.children:
-            if c.file is None:
-                c.file = self.file
-                c.start = self.start
-                c.end = self.end
-                c.propagate_sourceline()
-
-    def with_sourceline(
-        self, sl
-    ):  # type: (Optional[SourceLine]) -> SchemaSaladException
-        if sl and sl.file():
-            self.file = sl.file()  # type: Optional[Text]
-            self.start = sl.start()  # type: Optional[Tuple[int, int]]
-            self.end = sl.end()  # type: Optional[Tuple[int, int]]
-        else:
-            self.file = None
-            self.start = None
-            self.end = None
-        return self
-
-    def leaves(self):  # type: () -> List[SchemaSaladException]
-        if len(self.children):
-            return sum((c.leaves() for c in self.children), [])
-        elif len(self.message):
-            return [self]
-        else:
-            return []
-
-    def prefix(self):  # type: () -> Text
-        if self.file:
-            linecol = self.start if self.start else ("", "")  # type: Tuple[Any, Any]
-            return "{}:{}:{}: ".format(self.file, linecol[0], linecol[1])
-        else:
-            return ""
-
-    def summary(self, level=0, with_bullet=False):  # type: (int, bool) -> Text
-        indent_per_level = 2
-        spaces = (level * indent_per_level) * " "
-        bullet = self.bullet + " " if len(self.bullet) and with_bullet else ""
-        return "{}{}{}{}".format(self.prefix(), spaces, bullet, self.message)
-
-    def __str__(self):  # type: () -> str
-        return str(self.pretty_str())
-
-    def pretty_str(self, level=0):  # type: (int) -> Text
-        if len(self.message):
-            my_summary = [self.summary(level, True)]
-            next_level = level + 1
-        else:
-            my_summary = []
-            next_level = level
-
-        ret = "\n".join(
-            (e for e in my_summary + [c.pretty_str(next_level) for c in self.children])
-        )
-        if level == 0:
-            return strip_duplicated_lineno(reflow_all(ret))
-        else:
-            return ret
-
-
-class SchemaException(SchemaSaladException):
-    """Indicates error with the provided schema definition."""
-
-    pass
-
-
-class ValidationException(SchemaSaladException):
-    """Indicates error with document against the provided schema."""
-
-    pass
-
-
-class ClassValidationException(ValidationException):
-    pass