示例#1
0
    def row(self, values):
        if len(values) != len(self.cols):
            raise ValueError("wrong number of values; expected {}".format(
                len(self.cols)))

        _, r, _, l = self.edge
        parts = []
        if l is not None:
            # Left.
            parts.append(self.style(get(l, 0, l, 0)))
        for i, (col, val) in enumerate(zip(self.cols, values)):
            if i > 0 and col.sep is not None:
                # Column separator.
                parts.append(self.style(get(col.sep, 0, col.sep, 0)))
            # Contents.
            if string_length(val) != col.width:
                raise ValueError(
                    "wrong length for value in position {}; expected {}".
                    format(i, col.width))
            parts.append(col.pad + val + col.pad)
        if r is not None:
            # Right.
            parts.append(self.style(get(r, 0, r, 0)))
        return "".join(parts)
示例#2
0
文件: box.py 项目: alexhsamuel/aslib
    def row(self, values):
        if len(values) != len(self.cols):
            raise ValueError(
                "wrong number of values; expected {}".format(len(self.cols)))

        _, r, _, l = self.edge
        parts = []
        if l is not None:
            # Left.
            parts.append(self.style(get(l, 0, l, 0)))
        for i, (col, val) in enumerate(zip(self.cols, values)):
            if i > 0 and col.sep is not None:
                # Column separator.
                parts.append(self.style(get(col.sep, 0, col.sep, 0)))
            # Contents.
            if string_length(val) != col.width:
                raise ValueError(
                    "wrong length for value in position {}; expected {}"
                    .format(i, col.width))
            parts.append(col.pad + val + col.pad)
        if r is not None:
            # Right.
            parts.append(self.style(get(r, 0, r, 0)))
        return "".join(parts)
示例#3
0
 def __init__(self, width, sep=SINGLE, pad=" "):
     self.width = width
     self.sep = sep
     self.pad = pad
     self._width = width + 2 * string_length(pad)
示例#4
0
文件: box.py 项目: alexhsamuel/aslib
 def __init__(self, width, sep=SINGLE, pad=" "):
     self.width = width
     self.sep = sep
     self.pad = pad
     self._width = width + 2 * string_length(pad)
示例#5
0
def test_string_length():
    assert string_length("") == 0
    assert string_length("x") == 1
    assert string_length("xxx") == 3
    assert string_length("-x-x-x-x-x-") == 11
    assert string_length("\u2026") == 1
    assert string_length("x\u2026x") == 3
    assert string_length("\u2026...\u2026\u2026") == 6
    assert string_length("\x1b[m") == 0
    assert string_length("\x1b[32m\u2502") == 1
    assert string_length("\u2502\x1b[m") == 1
    assert string_length("\x1b[32m\u2502\x1b[m") == 1
    assert string_length(" \x1b[32m\u2502\x1b[m ") == 3