outerbounds 0.3.68__py3-none-any.whl → 0.3.104__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. outerbounds/_vendor/PyYAML.LICENSE +20 -0
  2. outerbounds/_vendor/__init__.py +0 -0
  3. outerbounds/_vendor/_yaml/__init__.py +34 -0
  4. outerbounds/_vendor/click/__init__.py +73 -0
  5. outerbounds/_vendor/click/_compat.py +626 -0
  6. outerbounds/_vendor/click/_termui_impl.py +717 -0
  7. outerbounds/_vendor/click/_textwrap.py +49 -0
  8. outerbounds/_vendor/click/_winconsole.py +279 -0
  9. outerbounds/_vendor/click/core.py +2998 -0
  10. outerbounds/_vendor/click/decorators.py +497 -0
  11. outerbounds/_vendor/click/exceptions.py +287 -0
  12. outerbounds/_vendor/click/formatting.py +301 -0
  13. outerbounds/_vendor/click/globals.py +68 -0
  14. outerbounds/_vendor/click/parser.py +529 -0
  15. outerbounds/_vendor/click/py.typed +0 -0
  16. outerbounds/_vendor/click/shell_completion.py +580 -0
  17. outerbounds/_vendor/click/termui.py +787 -0
  18. outerbounds/_vendor/click/testing.py +479 -0
  19. outerbounds/_vendor/click/types.py +1073 -0
  20. outerbounds/_vendor/click/utils.py +580 -0
  21. outerbounds/_vendor/click.LICENSE +28 -0
  22. outerbounds/_vendor/vendor_any.txt +2 -0
  23. outerbounds/_vendor/yaml/__init__.py +471 -0
  24. outerbounds/_vendor/yaml/_yaml.cpython-311-darwin.so +0 -0
  25. outerbounds/_vendor/yaml/composer.py +146 -0
  26. outerbounds/_vendor/yaml/constructor.py +862 -0
  27. outerbounds/_vendor/yaml/cyaml.py +177 -0
  28. outerbounds/_vendor/yaml/dumper.py +138 -0
  29. outerbounds/_vendor/yaml/emitter.py +1239 -0
  30. outerbounds/_vendor/yaml/error.py +94 -0
  31. outerbounds/_vendor/yaml/events.py +104 -0
  32. outerbounds/_vendor/yaml/loader.py +62 -0
  33. outerbounds/_vendor/yaml/nodes.py +51 -0
  34. outerbounds/_vendor/yaml/parser.py +629 -0
  35. outerbounds/_vendor/yaml/reader.py +208 -0
  36. outerbounds/_vendor/yaml/representer.py +378 -0
  37. outerbounds/_vendor/yaml/resolver.py +245 -0
  38. outerbounds/_vendor/yaml/scanner.py +1555 -0
  39. outerbounds/_vendor/yaml/serializer.py +127 -0
  40. outerbounds/_vendor/yaml/tokens.py +129 -0
  41. outerbounds/command_groups/apps_cli.py +586 -0
  42. outerbounds/command_groups/cli.py +9 -5
  43. outerbounds/command_groups/local_setup_cli.py +1 -5
  44. outerbounds/command_groups/perimeters_cli.py +198 -25
  45. outerbounds/command_groups/tutorials_cli.py +111 -0
  46. outerbounds/command_groups/workstations_cli.py +2 -2
  47. outerbounds/utils/kubeconfig.py +2 -2
  48. outerbounds/utils/metaflowconfig.py +68 -9
  49. outerbounds/utils/schema.py +2 -2
  50. outerbounds/utils/utils.py +19 -0
  51. outerbounds/vendor.py +159 -0
  52. {outerbounds-0.3.68.dist-info → outerbounds-0.3.104.dist-info}/METADATA +14 -7
  53. outerbounds-0.3.104.dist-info/RECORD +59 -0
  54. {outerbounds-0.3.68.dist-info → outerbounds-0.3.104.dist-info}/WHEEL +1 -1
  55. outerbounds-0.3.68.dist-info/RECORD +0 -15
  56. {outerbounds-0.3.68.dist-info → outerbounds-0.3.104.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,94 @@
1
+ __all__ = ["Mark", "YAMLError", "MarkedYAMLError"]
2
+
3
+
4
+ class Mark:
5
+ def __init__(self, name, index, line, column, buffer, pointer):
6
+ self.name = name
7
+ self.index = index
8
+ self.line = line
9
+ self.column = column
10
+ self.buffer = buffer
11
+ self.pointer = pointer
12
+
13
+ def get_snippet(self, indent=4, max_length=75):
14
+ if self.buffer is None:
15
+ return None
16
+ head = ""
17
+ start = self.pointer
18
+ while start > 0 and self.buffer[start - 1] not in "\0\r\n\x85\u2028\u2029":
19
+ start -= 1
20
+ if self.pointer - start > max_length / 2 - 1:
21
+ head = " ... "
22
+ start += 5
23
+ break
24
+ tail = ""
25
+ end = self.pointer
26
+ while (
27
+ end < len(self.buffer) and self.buffer[end] not in "\0\r\n\x85\u2028\u2029"
28
+ ):
29
+ end += 1
30
+ if end - self.pointer > max_length / 2 - 1:
31
+ tail = " ... "
32
+ end -= 5
33
+ break
34
+ snippet = self.buffer[start:end]
35
+ return (
36
+ " " * indent
37
+ + head
38
+ + snippet
39
+ + tail
40
+ + "\n"
41
+ + " " * (indent + self.pointer - start + len(head))
42
+ + "^"
43
+ )
44
+
45
+ def __str__(self):
46
+ snippet = self.get_snippet()
47
+ where = ' in "%s", line %d, column %d' % (
48
+ self.name,
49
+ self.line + 1,
50
+ self.column + 1,
51
+ )
52
+ if snippet is not None:
53
+ where += ":\n" + snippet
54
+ return where
55
+
56
+
57
+ class YAMLError(Exception):
58
+ pass
59
+
60
+
61
+ class MarkedYAMLError(YAMLError):
62
+ def __init__(
63
+ self,
64
+ context=None,
65
+ context_mark=None,
66
+ problem=None,
67
+ problem_mark=None,
68
+ note=None,
69
+ ):
70
+ self.context = context
71
+ self.context_mark = context_mark
72
+ self.problem = problem
73
+ self.problem_mark = problem_mark
74
+ self.note = note
75
+
76
+ def __str__(self):
77
+ lines = []
78
+ if self.context is not None:
79
+ lines.append(self.context)
80
+ if self.context_mark is not None and (
81
+ self.problem is None
82
+ or self.problem_mark is None
83
+ or self.context_mark.name != self.problem_mark.name
84
+ or self.context_mark.line != self.problem_mark.line
85
+ or self.context_mark.column != self.problem_mark.column
86
+ ):
87
+ lines.append(str(self.context_mark))
88
+ if self.problem is not None:
89
+ lines.append(self.problem)
90
+ if self.problem_mark is not None:
91
+ lines.append(str(self.problem_mark))
92
+ if self.note is not None:
93
+ lines.append(self.note)
94
+ return "\n".join(lines)
@@ -0,0 +1,104 @@
1
+ # Abstract classes.
2
+
3
+
4
+ class Event(object):
5
+ def __init__(self, start_mark=None, end_mark=None):
6
+ self.start_mark = start_mark
7
+ self.end_mark = end_mark
8
+
9
+ def __repr__(self):
10
+ attributes = [
11
+ key for key in ["anchor", "tag", "implicit", "value"] if hasattr(self, key)
12
+ ]
13
+ arguments = ", ".join(
14
+ ["%s=%r" % (key, getattr(self, key)) for key in attributes]
15
+ )
16
+ return "%s(%s)" % (self.__class__.__name__, arguments)
17
+
18
+
19
+ class NodeEvent(Event):
20
+ def __init__(self, anchor, start_mark=None, end_mark=None):
21
+ self.anchor = anchor
22
+ self.start_mark = start_mark
23
+ self.end_mark = end_mark
24
+
25
+
26
+ class CollectionStartEvent(NodeEvent):
27
+ def __init__(
28
+ self, anchor, tag, implicit, start_mark=None, end_mark=None, flow_style=None
29
+ ):
30
+ self.anchor = anchor
31
+ self.tag = tag
32
+ self.implicit = implicit
33
+ self.start_mark = start_mark
34
+ self.end_mark = end_mark
35
+ self.flow_style = flow_style
36
+
37
+
38
+ class CollectionEndEvent(Event):
39
+ pass
40
+
41
+
42
+ # Implementations.
43
+
44
+
45
+ class StreamStartEvent(Event):
46
+ def __init__(self, start_mark=None, end_mark=None, encoding=None):
47
+ self.start_mark = start_mark
48
+ self.end_mark = end_mark
49
+ self.encoding = encoding
50
+
51
+
52
+ class StreamEndEvent(Event):
53
+ pass
54
+
55
+
56
+ class DocumentStartEvent(Event):
57
+ def __init__(
58
+ self, start_mark=None, end_mark=None, explicit=None, version=None, tags=None
59
+ ):
60
+ self.start_mark = start_mark
61
+ self.end_mark = end_mark
62
+ self.explicit = explicit
63
+ self.version = version
64
+ self.tags = tags
65
+
66
+
67
+ class DocumentEndEvent(Event):
68
+ def __init__(self, start_mark=None, end_mark=None, explicit=None):
69
+ self.start_mark = start_mark
70
+ self.end_mark = end_mark
71
+ self.explicit = explicit
72
+
73
+
74
+ class AliasEvent(NodeEvent):
75
+ pass
76
+
77
+
78
+ class ScalarEvent(NodeEvent):
79
+ def __init__(
80
+ self, anchor, tag, implicit, value, start_mark=None, end_mark=None, style=None
81
+ ):
82
+ self.anchor = anchor
83
+ self.tag = tag
84
+ self.implicit = implicit
85
+ self.value = value
86
+ self.start_mark = start_mark
87
+ self.end_mark = end_mark
88
+ self.style = style
89
+
90
+
91
+ class SequenceStartEvent(CollectionStartEvent):
92
+ pass
93
+
94
+
95
+ class SequenceEndEvent(CollectionEndEvent):
96
+ pass
97
+
98
+
99
+ class MappingStartEvent(CollectionStartEvent):
100
+ pass
101
+
102
+
103
+ class MappingEndEvent(CollectionEndEvent):
104
+ pass
@@ -0,0 +1,62 @@
1
+ __all__ = ["BaseLoader", "FullLoader", "SafeLoader", "Loader", "UnsafeLoader"]
2
+
3
+ from .reader import *
4
+ from .scanner import *
5
+ from .parser import *
6
+ from .composer import *
7
+ from .constructor import *
8
+ from .resolver import *
9
+
10
+
11
+ class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver):
12
+ def __init__(self, stream):
13
+ Reader.__init__(self, stream)
14
+ Scanner.__init__(self)
15
+ Parser.__init__(self)
16
+ Composer.__init__(self)
17
+ BaseConstructor.__init__(self)
18
+ BaseResolver.__init__(self)
19
+
20
+
21
+ class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver):
22
+ def __init__(self, stream):
23
+ Reader.__init__(self, stream)
24
+ Scanner.__init__(self)
25
+ Parser.__init__(self)
26
+ Composer.__init__(self)
27
+ FullConstructor.__init__(self)
28
+ Resolver.__init__(self)
29
+
30
+
31
+ class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver):
32
+ def __init__(self, stream):
33
+ Reader.__init__(self, stream)
34
+ Scanner.__init__(self)
35
+ Parser.__init__(self)
36
+ Composer.__init__(self)
37
+ SafeConstructor.__init__(self)
38
+ Resolver.__init__(self)
39
+
40
+
41
+ class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
42
+ def __init__(self, stream):
43
+ Reader.__init__(self, stream)
44
+ Scanner.__init__(self)
45
+ Parser.__init__(self)
46
+ Composer.__init__(self)
47
+ Constructor.__init__(self)
48
+ Resolver.__init__(self)
49
+
50
+
51
+ # UnsafeLoader is the same as Loader (which is and was always unsafe on
52
+ # untrusted input). Use of either Loader or UnsafeLoader should be rare, since
53
+ # FullLoad should be able to load almost all YAML safely. Loader is left intact
54
+ # to ensure backwards compatibility.
55
+ class UnsafeLoader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
56
+ def __init__(self, stream):
57
+ Reader.__init__(self, stream)
58
+ Scanner.__init__(self)
59
+ Parser.__init__(self)
60
+ Composer.__init__(self)
61
+ Constructor.__init__(self)
62
+ Resolver.__init__(self)
@@ -0,0 +1,51 @@
1
+ class Node(object):
2
+ def __init__(self, tag, value, start_mark, end_mark):
3
+ self.tag = tag
4
+ self.value = value
5
+ self.start_mark = start_mark
6
+ self.end_mark = end_mark
7
+
8
+ def __repr__(self):
9
+ value = self.value
10
+ # if isinstance(value, list):
11
+ # if len(value) == 0:
12
+ # value = '<empty>'
13
+ # elif len(value) == 1:
14
+ # value = '<1 item>'
15
+ # else:
16
+ # value = '<%d items>' % len(value)
17
+ # else:
18
+ # if len(value) > 75:
19
+ # value = repr(value[:70]+u' ... ')
20
+ # else:
21
+ # value = repr(value)
22
+ value = repr(value)
23
+ return "%s(tag=%r, value=%s)" % (self.__class__.__name__, self.tag, value)
24
+
25
+
26
+ class ScalarNode(Node):
27
+ id = "scalar"
28
+
29
+ def __init__(self, tag, value, start_mark=None, end_mark=None, style=None):
30
+ self.tag = tag
31
+ self.value = value
32
+ self.start_mark = start_mark
33
+ self.end_mark = end_mark
34
+ self.style = style
35
+
36
+
37
+ class CollectionNode(Node):
38
+ def __init__(self, tag, value, start_mark=None, end_mark=None, flow_style=None):
39
+ self.tag = tag
40
+ self.value = value
41
+ self.start_mark = start_mark
42
+ self.end_mark = end_mark
43
+ self.flow_style = flow_style
44
+
45
+
46
+ class SequenceNode(CollectionNode):
47
+ id = "sequence"
48
+
49
+
50
+ class MappingNode(CollectionNode):
51
+ id = "mapping"