Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/ruamel/yaml/nodes.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
| author | shellac |
|---|---|
| date | Sat, 02 May 2020 07:14:21 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:26e78fe6e8c4 |
|---|---|
| 1 # coding: utf-8 | |
| 2 | |
| 3 from __future__ import print_function | |
| 4 | |
| 5 import sys | |
| 6 from .compat import string_types | |
| 7 | |
| 8 if False: # MYPY | |
| 9 from typing import Dict, Any, Text # NOQA | |
| 10 | |
| 11 | |
| 12 class Node(object): | |
| 13 __slots__ = 'tag', 'value', 'start_mark', 'end_mark', 'comment', 'anchor' | |
| 14 | |
| 15 def __init__(self, tag, value, start_mark, end_mark, comment=None, anchor=None): | |
| 16 # type: (Any, Any, Any, Any, Any, Any) -> None | |
| 17 self.tag = tag | |
| 18 self.value = value | |
| 19 self.start_mark = start_mark | |
| 20 self.end_mark = end_mark | |
| 21 self.comment = comment | |
| 22 self.anchor = anchor | |
| 23 | |
| 24 def __repr__(self): | |
| 25 # type: () -> str | |
| 26 value = self.value | |
| 27 # if isinstance(value, list): | |
| 28 # if len(value) == 0: | |
| 29 # value = '<empty>' | |
| 30 # elif len(value) == 1: | |
| 31 # value = '<1 item>' | |
| 32 # else: | |
| 33 # value = '<%d items>' % len(value) | |
| 34 # else: | |
| 35 # if len(value) > 75: | |
| 36 # value = repr(value[:70]+u' ... ') | |
| 37 # else: | |
| 38 # value = repr(value) | |
| 39 value = repr(value) | |
| 40 return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value) | |
| 41 | |
| 42 def dump(self, indent=0): | |
| 43 # type: (int) -> None | |
| 44 if isinstance(self.value, string_types): | |
| 45 sys.stdout.write( | |
| 46 '{}{}(tag={!r}, value={!r})\n'.format( | |
| 47 ' ' * indent, self.__class__.__name__, self.tag, self.value | |
| 48 ) | |
| 49 ) | |
| 50 if self.comment: | |
| 51 sys.stdout.write(' {}comment: {})\n'.format(' ' * indent, self.comment)) | |
| 52 return | |
| 53 sys.stdout.write( | |
| 54 '{}{}(tag={!r})\n'.format(' ' * indent, self.__class__.__name__, self.tag) | |
| 55 ) | |
| 56 if self.comment: | |
| 57 sys.stdout.write(' {}comment: {})\n'.format(' ' * indent, self.comment)) | |
| 58 for v in self.value: | |
| 59 if isinstance(v, tuple): | |
| 60 for v1 in v: | |
| 61 v1.dump(indent + 1) | |
| 62 elif isinstance(v, Node): | |
| 63 v.dump(indent + 1) | |
| 64 else: | |
| 65 sys.stdout.write('Node value type? {}\n'.format(type(v))) | |
| 66 | |
| 67 | |
| 68 class ScalarNode(Node): | |
| 69 """ | |
| 70 styles: | |
| 71 ? -> set() ? key, no value | |
| 72 " -> double quoted | |
| 73 ' -> single quoted | |
| 74 | -> literal style | |
| 75 > -> folding style | |
| 76 """ | |
| 77 | |
| 78 __slots__ = ('style',) | |
| 79 id = 'scalar' | |
| 80 | |
| 81 def __init__( | |
| 82 self, tag, value, start_mark=None, end_mark=None, style=None, comment=None, anchor=None | |
| 83 ): | |
| 84 # type: (Any, Any, Any, Any, Any, Any, Any) -> None | |
| 85 Node.__init__(self, tag, value, start_mark, end_mark, comment=comment, anchor=anchor) | |
| 86 self.style = style | |
| 87 | |
| 88 | |
| 89 class CollectionNode(Node): | |
| 90 __slots__ = ('flow_style',) | |
| 91 | |
| 92 def __init__( | |
| 93 self, | |
| 94 tag, | |
| 95 value, | |
| 96 start_mark=None, | |
| 97 end_mark=None, | |
| 98 flow_style=None, | |
| 99 comment=None, | |
| 100 anchor=None, | |
| 101 ): | |
| 102 # type: (Any, Any, Any, Any, Any, Any, Any) -> None | |
| 103 Node.__init__(self, tag, value, start_mark, end_mark, comment=comment) | |
| 104 self.flow_style = flow_style | |
| 105 self.anchor = anchor | |
| 106 | |
| 107 | |
| 108 class SequenceNode(CollectionNode): | |
| 109 __slots__ = () | |
| 110 id = 'sequence' | |
| 111 | |
| 112 | |
| 113 class MappingNode(CollectionNode): | |
| 114 __slots__ = ('merge',) | |
| 115 id = 'mapping' | |
| 116 | |
| 117 def __init__( | |
| 118 self, | |
| 119 tag, | |
| 120 value, | |
| 121 start_mark=None, | |
| 122 end_mark=None, | |
| 123 flow_style=None, | |
| 124 comment=None, | |
| 125 anchor=None, | |
| 126 ): | |
| 127 # type: (Any, Any, Any, Any, Any, Any, Any) -> None | |
| 128 CollectionNode.__init__( | |
| 129 self, tag, value, start_mark, end_mark, flow_style, comment, anchor | |
| 130 ) | |
| 131 self.merge = None |
