metaflow 2.16.6__py2.py3-none-any.whl → 2.16.7__py2.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 (46) hide show
  1. metaflow/_vendor/click/core.py +3 -4
  2. metaflow/_vendor/imghdr/__init__.py +11 -0
  3. metaflow/_vendor/yaml/__init__.py +427 -0
  4. metaflow/_vendor/yaml/composer.py +139 -0
  5. metaflow/_vendor/yaml/constructor.py +748 -0
  6. metaflow/_vendor/yaml/cyaml.py +101 -0
  7. metaflow/_vendor/yaml/dumper.py +62 -0
  8. metaflow/_vendor/yaml/emitter.py +1137 -0
  9. metaflow/_vendor/yaml/error.py +75 -0
  10. metaflow/_vendor/yaml/events.py +86 -0
  11. metaflow/_vendor/yaml/loader.py +63 -0
  12. metaflow/_vendor/yaml/nodes.py +49 -0
  13. metaflow/_vendor/yaml/parser.py +589 -0
  14. metaflow/_vendor/yaml/reader.py +185 -0
  15. metaflow/_vendor/yaml/representer.py +389 -0
  16. metaflow/_vendor/yaml/resolver.py +227 -0
  17. metaflow/_vendor/yaml/scanner.py +1435 -0
  18. metaflow/_vendor/yaml/serializer.py +111 -0
  19. metaflow/_vendor/yaml/tokens.py +104 -0
  20. metaflow/cli.py +11 -2
  21. metaflow/client/core.py +6 -1
  22. metaflow/extension_support/__init__.py +4 -3
  23. metaflow/metaflow_environment.py +14 -6
  24. metaflow/package/__init__.py +18 -9
  25. metaflow/packaging_sys/__init__.py +53 -43
  26. metaflow/packaging_sys/backend.py +21 -6
  27. metaflow/packaging_sys/tar_backend.py +16 -3
  28. metaflow/packaging_sys/v1.py +21 -21
  29. metaflow/plugins/argo/argo_workflows_deployer_objects.py +37 -0
  30. metaflow/plugins/aws/step_functions/step_functions_deployer_objects.py +16 -0
  31. metaflow/plugins/cards/card_modules/convert_to_native_type.py +7 -1
  32. metaflow/plugins/pypi/conda_decorator.py +4 -2
  33. metaflow/runner/click_api.py +14 -7
  34. metaflow/runner/deployer.py +77 -0
  35. metaflow/runner/subprocess_manager.py +20 -12
  36. metaflow/vendor.py +23 -6
  37. metaflow/version.py +1 -1
  38. {metaflow-2.16.6.dist-info → metaflow-2.16.7.dist-info}/METADATA +2 -2
  39. {metaflow-2.16.6.dist-info → metaflow-2.16.7.dist-info}/RECORD +46 -29
  40. {metaflow-2.16.6.data → metaflow-2.16.7.data}/data/share/metaflow/devtools/Makefile +0 -0
  41. {metaflow-2.16.6.data → metaflow-2.16.7.data}/data/share/metaflow/devtools/Tiltfile +0 -0
  42. {metaflow-2.16.6.data → metaflow-2.16.7.data}/data/share/metaflow/devtools/pick_services.sh +0 -0
  43. {metaflow-2.16.6.dist-info → metaflow-2.16.7.dist-info}/WHEEL +0 -0
  44. {metaflow-2.16.6.dist-info → metaflow-2.16.7.dist-info}/entry_points.txt +0 -0
  45. {metaflow-2.16.6.dist-info → metaflow-2.16.7.dist-info}/licenses/LICENSE +0 -0
  46. {metaflow-2.16.6.dist-info → metaflow-2.16.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,75 @@
1
+
2
+ __all__ = ['Mark', 'YAMLError', 'MarkedYAMLError']
3
+
4
+ class Mark:
5
+
6
+ def __init__(self, name, index, line, column, buffer, pointer):
7
+ self.name = name
8
+ self.index = index
9
+ self.line = line
10
+ self.column = column
11
+ self.buffer = buffer
12
+ self.pointer = pointer
13
+
14
+ def get_snippet(self, indent=4, max_length=75):
15
+ if self.buffer is None:
16
+ return None
17
+ head = ''
18
+ start = self.pointer
19
+ while start > 0 and self.buffer[start-1] not in '\0\r\n\x85\u2028\u2029':
20
+ start -= 1
21
+ if self.pointer-start > max_length/2-1:
22
+ head = ' ... '
23
+ start += 5
24
+ break
25
+ tail = ''
26
+ end = self.pointer
27
+ while end < len(self.buffer) and self.buffer[end] not in '\0\r\n\x85\u2028\u2029':
28
+ end += 1
29
+ if end-self.pointer > max_length/2-1:
30
+ tail = ' ... '
31
+ end -= 5
32
+ break
33
+ snippet = self.buffer[start:end]
34
+ return ' '*indent + head + snippet + tail + '\n' \
35
+ + ' '*(indent+self.pointer-start+len(head)) + '^'
36
+
37
+ def __str__(self):
38
+ snippet = self.get_snippet()
39
+ where = " in \"%s\", line %d, column %d" \
40
+ % (self.name, self.line+1, self.column+1)
41
+ if snippet is not None:
42
+ where += ":\n"+snippet
43
+ return where
44
+
45
+ class YAMLError(Exception):
46
+ pass
47
+
48
+ class MarkedYAMLError(YAMLError):
49
+
50
+ def __init__(self, context=None, context_mark=None,
51
+ problem=None, problem_mark=None, note=None):
52
+ self.context = context
53
+ self.context_mark = context_mark
54
+ self.problem = problem
55
+ self.problem_mark = problem_mark
56
+ self.note = note
57
+
58
+ def __str__(self):
59
+ lines = []
60
+ if self.context is not None:
61
+ lines.append(self.context)
62
+ if self.context_mark is not None \
63
+ and (self.problem is None or self.problem_mark is None
64
+ or self.context_mark.name != self.problem_mark.name
65
+ or self.context_mark.line != self.problem_mark.line
66
+ or self.context_mark.column != self.problem_mark.column):
67
+ lines.append(str(self.context_mark))
68
+ if self.problem is not None:
69
+ lines.append(self.problem)
70
+ if self.problem_mark is not None:
71
+ lines.append(str(self.problem_mark))
72
+ if self.note is not None:
73
+ lines.append(self.note)
74
+ return '\n'.join(lines)
75
+
@@ -0,0 +1,86 @@
1
+
2
+ # Abstract classes.
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
+ def __repr__(self):
9
+ attributes = [key for key in ['anchor', 'tag', 'implicit', 'value']
10
+ if hasattr(self, key)]
11
+ arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
12
+ for key in attributes])
13
+ return '%s(%s)' % (self.__class__.__name__, arguments)
14
+
15
+ class NodeEvent(Event):
16
+ def __init__(self, anchor, start_mark=None, end_mark=None):
17
+ self.anchor = anchor
18
+ self.start_mark = start_mark
19
+ self.end_mark = end_mark
20
+
21
+ class CollectionStartEvent(NodeEvent):
22
+ def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None,
23
+ flow_style=None):
24
+ self.anchor = anchor
25
+ self.tag = tag
26
+ self.implicit = implicit
27
+ self.start_mark = start_mark
28
+ self.end_mark = end_mark
29
+ self.flow_style = flow_style
30
+
31
+ class CollectionEndEvent(Event):
32
+ pass
33
+
34
+ # Implementations.
35
+
36
+ class StreamStartEvent(Event):
37
+ def __init__(self, start_mark=None, end_mark=None, encoding=None):
38
+ self.start_mark = start_mark
39
+ self.end_mark = end_mark
40
+ self.encoding = encoding
41
+
42
+ class StreamEndEvent(Event):
43
+ pass
44
+
45
+ class DocumentStartEvent(Event):
46
+ def __init__(self, start_mark=None, end_mark=None,
47
+ explicit=None, version=None, tags=None):
48
+ self.start_mark = start_mark
49
+ self.end_mark = end_mark
50
+ self.explicit = explicit
51
+ self.version = version
52
+ self.tags = tags
53
+
54
+ class DocumentEndEvent(Event):
55
+ def __init__(self, start_mark=None, end_mark=None,
56
+ explicit=None):
57
+ self.start_mark = start_mark
58
+ self.end_mark = end_mark
59
+ self.explicit = explicit
60
+
61
+ class AliasEvent(NodeEvent):
62
+ pass
63
+
64
+ class ScalarEvent(NodeEvent):
65
+ def __init__(self, anchor, tag, implicit, value,
66
+ start_mark=None, end_mark=None, style=None):
67
+ self.anchor = anchor
68
+ self.tag = tag
69
+ self.implicit = implicit
70
+ self.value = value
71
+ self.start_mark = start_mark
72
+ self.end_mark = end_mark
73
+ self.style = style
74
+
75
+ class SequenceStartEvent(CollectionStartEvent):
76
+ pass
77
+
78
+ class SequenceEndEvent(CollectionEndEvent):
79
+ pass
80
+
81
+ class MappingStartEvent(CollectionStartEvent):
82
+ pass
83
+
84
+ class MappingEndEvent(CollectionEndEvent):
85
+ pass
86
+
@@ -0,0 +1,63 @@
1
+
2
+ __all__ = ['BaseLoader', 'FullLoader', 'SafeLoader', 'Loader', 'UnsafeLoader']
3
+
4
+ from .reader import *
5
+ from .scanner import *
6
+ from .parser import *
7
+ from .composer import *
8
+ from .constructor import *
9
+ from .resolver import *
10
+
11
+ class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver):
12
+
13
+ def __init__(self, stream):
14
+ Reader.__init__(self, stream)
15
+ Scanner.__init__(self)
16
+ Parser.__init__(self)
17
+ Composer.__init__(self)
18
+ BaseConstructor.__init__(self)
19
+ BaseResolver.__init__(self)
20
+
21
+ class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver):
22
+
23
+ def __init__(self, stream):
24
+ Reader.__init__(self, stream)
25
+ Scanner.__init__(self)
26
+ Parser.__init__(self)
27
+ Composer.__init__(self)
28
+ FullConstructor.__init__(self)
29
+ Resolver.__init__(self)
30
+
31
+ class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver):
32
+
33
+ def __init__(self, stream):
34
+ Reader.__init__(self, stream)
35
+ Scanner.__init__(self)
36
+ Parser.__init__(self)
37
+ Composer.__init__(self)
38
+ SafeConstructor.__init__(self)
39
+ Resolver.__init__(self)
40
+
41
+ class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver):
42
+
43
+ def __init__(self, stream):
44
+ Reader.__init__(self, stream)
45
+ Scanner.__init__(self)
46
+ Parser.__init__(self)
47
+ Composer.__init__(self)
48
+ Constructor.__init__(self)
49
+ Resolver.__init__(self)
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
+
57
+ def __init__(self, stream):
58
+ Reader.__init__(self, stream)
59
+ Scanner.__init__(self)
60
+ Parser.__init__(self)
61
+ Composer.__init__(self)
62
+ Constructor.__init__(self)
63
+ Resolver.__init__(self)
@@ -0,0 +1,49 @@
1
+
2
+ class Node(object):
3
+ def __init__(self, tag, value, start_mark, end_mark):
4
+ self.tag = tag
5
+ self.value = value
6
+ self.start_mark = start_mark
7
+ self.end_mark = end_mark
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
+ class ScalarNode(Node):
26
+ id = 'scalar'
27
+ def __init__(self, tag, value,
28
+ start_mark=None, end_mark=None, style=None):
29
+ self.tag = tag
30
+ self.value = value
31
+ self.start_mark = start_mark
32
+ self.end_mark = end_mark
33
+ self.style = style
34
+
35
+ class CollectionNode(Node):
36
+ def __init__(self, tag, value,
37
+ start_mark=None, end_mark=None, flow_style=None):
38
+ self.tag = tag
39
+ self.value = value
40
+ self.start_mark = start_mark
41
+ self.end_mark = end_mark
42
+ self.flow_style = flow_style
43
+
44
+ class SequenceNode(CollectionNode):
45
+ id = 'sequence'
46
+
47
+ class MappingNode(CollectionNode):
48
+ id = 'mapping'
49
+