def as_marked_up(self): """ Returns ruamel.yaml CommentedSeq/CommentedMap objects with comments. This can be fed directly into a ruamel.yaml dumper. """ if isinstance(self._value, CommentedMap): new_commented_map = deepcopy(self._value) for key, value in self._value.items(): del new_commented_map[key._value] new_commented_map[key._value] = value.as_marked_up() return new_commented_map elif isinstance(self._value, CommentedSeq): new_commented_seq = deepcopy(self._value) for i, item in enumerate(self._value): new_commented_seq[i] = item.as_marked_up() return new_commented_seq else: if utils.is_integer(self._text): return int(self._text) elif utils.is_decimal(self._text): return decimal.Decimal(self._text) else: return self._text
def validate_scalar(self, chunk): val = chunk.contents if not utils.is_integer(val): chunk.expecting_but_found("when expecting an integer") else: # Only Python 3.6+ supports underscores in numeric literals return int(val.replace("_", ""))
def validate_scalar(self, chunk, value=None): val = unicode(chunk.contents) if value is None else value if not utils.is_integer(val): raise_exception( "when expecting an integer", "found non-integer", chunk, ) else: return YAML(int(val), val, chunk=chunk, validator=self)
def found(self): if self.is_sequence(): return u"a sequence" elif self.is_mapping(): return u"a mapping" elif self.contents == u"": return u"a blank string" elif utils.is_integer(self.contents): return u"an arbitrary integer" elif utils.is_decimal(self.contents): return u"an arbitrary number" else: return u"arbitrary text"
def to_yaml(self, data): if utils.is_string(data) or isinstance(data, int): if utils.is_integer(str(data)): return str(data) raise YAMLSerializationError("'{}' not an integer.".format(data))
def validate_scalar(self, chunk): val = chunk.contents if not utils.is_integer(val): chunk.expecting_but_found("when expecting an integer") else: return int(val)