fractaltext documentation

FractalText is a dead-simple, recursive plaintext data format which aims to alternate TOML or YAML.

See official specification.

This document is about fractaltext-0.1.0.

Annotated and Naked

Annotated document (DocumentA) keeps blank lines and comment lines. Naked document (Item) drops these lines.

fractaltext

class fractaltext.DocumentA(it: ItemA, sts: list[TokenSurplus])
class fractaltext.ItemA(indent: int, **kwargs)
fractaltext.from_dict(d: Any, isucc: int = 2) DocumentA

Convert from str-in-list-in-dict structure to annotated document.

Parameters:
  • d (Any) – input str-in-list-in-dict structure

  • isucc (int, optional) – indent width. default is 2.

Returns:

output annotated document

Return type:

DocumentA

Raises:

ValueError – if d is not str-in-list-in-dict structure

fractaltext.to_dict(doc: DocumentA) Any

Convert from annotated document to str-in-list-in-dict structure.

Parameters:

doc (DocumentA) – input annotated document

Returns:

output str-in-list-in-dict structure

Return type:

Any

exception fractaltext.FractalTextParseError(message: str, n: int)
fractaltext.load(f: TextIO) DocumentA

Main entry point for loading a FractalText document.

Parameters:

f (TextIO) – input text stream

Returns:

output annotated document

Return type:

DocumentA

Raises:

FractalTextParseError – if parse error happens

fractaltext.parse(text: str) DocumentA

Main entry point for parsing a FractalText document.

Parameters:

text (str) – input text

Returns:

output annotated document

Return type:

DocumentA

Raises:

FractalTextParseError – if parse error happens

fractaltext.dump(doc: DocumentA, f: TextIO)

Write serialized document which is annotated.

Parameters:
  • doc (DocumentA) – input annotated document

  • f (TextIO) – output text stream

fractaltext.serialize(doc: DocumentA) Iterable[str]

Convert annotated document into text stream.

Parameters:

doc (DocumentA) – input annotated document

Returns:

output linewise text stream

Return type:

Iterable[str]

fractaltext.itself() Path
fractaltext.lookup(k: str, n: Path) Path
fractaltext.delete(doc: DocumentA, p: Path, i: int) DocumentA
fractaltext.exists(doc: DocumentA, p: Path) bool
fractaltext.insert(doc: DocumentA, p: Path, i: int, v: str) DocumentA
fractaltext.update(doc: DocumentA, p: Path, i: int, v: str) DocumentA