How to use the tomlkit.items.Whitespace function in tomlkit

To help you get started, we’ve selected a few tomlkit examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github sdispater / tomlkit / tomlkit / View on Github external

            # consume value
            if not prev_value:
                    prev_value = True
                except UnexpectedCharError:

            # consume comma
            if prev_value and self._current == ",":
                prev_value = False

            # consume closing bracket
            if self._current == "]":
                # consume closing bracket, EOF here doesn't matter

            raise self.parse_error(UnexpectedCharError, self._current)

            res = Array(elems, Trivia())
        except ValueError:
github sdispater / tomlkit / tomlkit / View on Github external
def _parse_item(self):  # type: () -> Optional[Tuple[Optional[Key], Item]]
        Attempts to parse the next item and returns it, along with its key
        if the item is value-like.
        with self._state as state:
            while True:
                c = self._current
                if c == "\n":
                    # Found a newline; Return all whitespace found up to this point.

                    return None, Whitespace(self.extract())
                elif c in " \t\r":
                    # Skip whitespace.
                    if not
                        return None, Whitespace(self.extract())
                elif c == "#":
                    # Found a comment, parse it
                    indent = self.extract()
                    cws, comment, trail = self._parse_comment_trail()

                    return None, Comment(Trivia(indent, cws, comment, trail))
                elif c == "[":
                    # Found a table, delegate to the calling function.
                    # Begining of a KV pair.
                    # Return to beginning of whitespace so it gets included
github sdispater / tomlkit / tomlkit / View on Github external
if isinstance(item, (AoT, Table)) and is None:
   = key.key

        if (
            isinstance(item, Table)
            and self._body
            and not self._parsed
            and not item.trivia.indent
            item.trivia.indent = "\n"

        if isinstance(item, AoT) and self._body and not self._parsed:
            if item and "\n" not in item[0].trivia.indent:
                item[0].trivia.indent = "\n" + item[0].trivia.indent
                self.append(None, Whitespace("\n"))

        if key is not None and key in self:
            current_idx = self._map[key]
            if isinstance(current_idx, tuple):
                current_idx = current_idx[0]

            current = self._body[current_idx][1]
            if isinstance(item, Table):
                if not isinstance(current, (Table, AoT)):
                    raise KeyAlreadyPresent(key)

                if item.is_aot_element():
                    # New AoT element found later on
                    # Adding it to the current AoT
                    if not isinstance(current, AoT):
                        current = AoT([current, item], parsed=self._parsed)
github sdispater / tomlkit / tomlkit / View on Github external
self._value.append(key, _item)

        if isinstance(key, Key):
            key = key.key

        if key is not None:
            super(Table, self).__setitem__(key, _item)

        m = re.match("(?s)^[^ ]*([ ]+).*$", self._trivia.indent)
        if not m:
            return self

        indent =

        if not isinstance(_item, Whitespace):
            m = re.match("(?s)^([^ ]*)(.*)$", _item.trivia.indent)
            if not m:
                _item.trivia.indent = indent
                _item.trivia.indent = + indent +

        return self
github sdispater / tomlkit / tomlkit / View on Github external
def append(self, _item):  # type: () -> None
        if self._value:
            self._value.append(Whitespace(", "))

        it = item(_item)
        super(Array, self).append(it.value)


        if not self.is_homogeneous():
            raise ValueError("Array has mixed types elements")
github sdispater / tomlkit / tomlkit / View on Github external
if isinstance(self._map[new_key], tuple):
            self._map[new_key] = self._map[new_key][0]

        value = _item(value)

        # Copying trivia
        if not isinstance(value, (Whitespace, AoT)):
            value.trivia.indent = v.trivia.indent
            value.trivia.comment_ws = v.trivia.comment_ws
            value.trivia.comment = v.trivia.comment
            value.trivia.trail = v.trivia.trail

        if isinstance(value, Table):
            # Insert a cosmetic new line for tables
            value.append(None, Whitespace("\n"))

        self._body[idx] = (new_key, value)

        super(Container, self).__setitem__(new_key.key, value.value)
github sdispater / tomlkit / tomlkit / View on Github external
def _merge_ws(self, item, container):  # type: (Item, Container) -> bool
        Merges the given Item with the last one currently in the given Container if
        both are whitespace items.

        Returns True if the items were merged.
        last = container.last_item()
        if not last:
            return False

        if not isinstance(item, Whitespace) or not isinstance(last, Whitespace):
            return False

        start = self._idx - (len(last.s) + len(item.s))
        container.body[-1] = (
            Whitespace(self._src[start : self._idx]),

        return True
github sdispater / tomlkit / tomlkit / View on Github external
def __init__(self, value, trivia):  # type: (list, Trivia) -> None
        super(Array, self).__init__(trivia)

            self, [v.value for v in value if not isinstance(v, (Whitespace, Comment))]

        self._value = value