pretty-doc 0.3

Creator: bradpython12

Last updated:

0 purchases

pretty-doc 0.3 Image
pretty-doc 0.3 Images
Add to Cart

Description:

prettydoc 0.3

pretty-doc
from __future__ import annotations
from dataclasses import dataclass
import pretty_doc as doc
import json

@dataclass
class Block:
name: str
contents: list[Block] | str = ""

def to_doc(self):
return to_doc(self)

def to_doc(self: Block) -> doc.Doc:
if isinstance(self.contents, list):
return doc.vsep([
doc.seg(self.name) + doc.seg("{"),
doc.indent(4, doc.vsep(
list(map(to_doc, self.contents)))),
doc.seg("}")
])

return doc.seg(self.name) + doc.seg(json.dumps(self.contents))

doc = Block(
"A",
[
Block("C", "ccc"),
Block("B",
[
Block("C", "ccc"),
]
),
Block("C", "ccc"),
Block("C", "ccc"),
]
).to_doc()

print(doc.show())
# out:
A {
C "ccc"
B {
C "ccc"
}
C "ccc"
C "ccc"
}

import sys
doc.render(sys.stdout.write)
# out:
A {
C "ccc"
B {
C "ccc"
}
C "ccc"
C "ccc"
}

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.