File: mergevalue.py

package info (click to toggle)
python-ruyaml 0.92.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,732 kB
  • sloc: python: 19,399; makefile: 200; sh: 13
file content (38 lines) | stat: -rw-r--r-- 983 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from __future__ import annotations

if False:  # MYPY
    from typing import Any, Dict, Iterator, List, Optional, Union  # NOQA


merge_attrib = '_yaml_merge'


class MergeValue:
    attrib = merge_attrib

    def __init__(self) -> None:
        self.value: List[Any] = []
        self.sequence = None
        self.merge_pos: Optional[int] = None  # position of merge in the mapping

    def __getitem__(self, index: Any) -> Any:
        return self.value[index]

    def __setitem__(self, index: Any, val: Any) -> None:
        self.value[index] = val

    def __repr__(self) -> Any:
        return f'MergeValue({self.value!r})'

    def __len__(self) -> Any:
        return len(self.value)

    def append(self, elem: Any) -> Any:
        self.value.append(elem)

    def extend(self, elements: Any) -> None:
        self.value.extend(elements)

    def set_sequence(self, seq: Any) -> None:
        # print('mergevalue.set_sequence node', node.anchor)
        self.sequence = seq