mergevalue.py 984 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. from __future__ import annotations
  2. if False: # MYPY
  3. from typing import Any, Dict, List, Union, Optional, Iterator # NOQA
  4. merge_attrib = '_yaml_merge'
  5. class MergeValue:
  6. attrib = merge_attrib
  7. def __init__(self) -> None:
  8. self.value: List[Any] = []
  9. self.sequence = None
  10. self.merge_pos: Optional[int] = None # position of merge in the mapping
  11. def __getitem__(self, index: Any) -> Any:
  12. return self.value[index]
  13. def __setitem__(self, index: Any, val: Any) -> None:
  14. self.value[index] = val
  15. def __repr__(self) -> Any:
  16. return f'MergeValue({self.value!r})'
  17. def __len__(self) -> Any:
  18. return len(self.value)
  19. def append(self, elem: Any) -> Any:
  20. self.value.append(elem)
  21. def extend(self, elements: Any) -> None:
  22. self.value.extend(elements)
  23. def set_sequence(self, seq: Any) -> None:
  24. # print('mergevalue.set_sequence node', node.anchor)
  25. self.sequence = seq