summaryrefslogtreecommitdiff
path: root/htmtl/expression_modifiers/truncate.py
blob: 41a1bdbc947fc6b4346e0491b8f6fe6762b4d8bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from typing import Any

from ..expression_modifier import ExpressionModifier, modifier


@modifier("truncate")
class Truncate(ExpressionModifier):
    def modify(self, value: Any, opts: list[Any]) -> Any:
        if isinstance(value, str) and len(opts) > 0:
            if all([x in "1234567890" for x in opts[0]]):
                char_limit = int(opts[0])

                if len(value) > char_limit:
                    return f"{value[:char_limit - 3]}..."

        return value