Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
palettes.py547 linesDownload Raw Back to console
1# Low-color themes should ONLY use the standard foreground and background2# colours listed here:3#4# http://urwid.org/manual/displayattributes.html5#6from __future__ import annotations7 8from collections.abc import Mapping9from collections.abc import Sequence10 11 12class Palette:13    _fields = [14        "background",15        "title",16        # Status bar & heading17        "heading",18        "heading_key",19        "heading_inactive",20        # Help21        "key",22        "head",23        "text",24        # Options25        "option_selected",26        "option_active",27        "option_active_selected",28        "option_selected_key",29        # List and Connections30        "method_get",31        "method_post",32        "method_delete",33        "method_other",34        "method_head",35        "method_put",36        "method_http2_push",37        "scheme_http",38        "scheme_https",39        "scheme_ws",40        "scheme_wss",41        "scheme_tcp",42        "scheme_udp",43        "scheme_dns",44        "scheme_quic",45        "scheme_other",46        "url_punctuation",47        "url_domain",48        "url_filename",49        "url_extension",50        "url_query_key",51        "url_query_value",52        "content_none",53        "content_text",54        "content_script",55        "content_media",56        "content_data",57        "content_raw",58        "content_other",59        "focus",60        "code_200",61        "code_300",62        "code_400",63        "code_500",64        "code_other",65        "error",66        "warn",67        "alert",68        "header",69        "highlight",70        "intercept",71        "replay",72        "mark",73        # Contentview Syntax Highlighting74        "name",75        "string",76        "number",77        "boolean",78        "comment",79        "error",80        # TCP flow details81        "from_client",82        "to_client",83        # Grid Editor84        "focusfield",85        "focusfield_error",86        "field_error",87        "editfield",88        # Commander89        "commander_command",90        "commander_invalid",91        "commander_hint",92    ]93    _fields.extend(["gradient_%02d" % i for i in range(100)])94    high: Mapping[str, Sequence[str]] | None = None95    low: Mapping[str, Sequence[str]]96 97    def palette(self, transparent: bool):98        lst: list[Sequence[str | None]] = []99        highback, lowback = None, None100        if not transparent:101            if self.high and self.high.get("background"):102                highback = self.high["background"][1]103            lowback = self.low["background"][1]104 105        for i in self._fields:106            if transparent and i == "background":107                lst.append(["background", "default", "default"])108            else:109                v: list[str | None] = [i]110                low = list(self.low[i])111                if lowback and low[1] == "default":112                    low[1] = lowback113                v.extend(low)114                if self.high and i in self.high:115                    v.append(None)116                    high: list[str | None] = list(self.high[i])117                    if highback and high[1] == "default":118                        high[1] = highback119                    v.extend(high)120                elif highback and self.low[i][1] == "default":121                    high = [None, low[0], highback]122                    v.extend(high)123                lst.append(tuple(v))124        return lst125 126 127def gen_gradient(palette, cols):128    for i in range(100):129        palette["gradient_%02d" % i] = (cols[i * len(cols) // 100], "default")130 131 132def gen_rgb_gradient(palette, cols):133    parts = len(cols) - 1134    for i in range(100):135        p = i / 100136        idx = int(p * parts)137        t0 = cols[idx]138        t1 = cols[idx + 1]139        pp = p * parts % 1140        t = (141            round(t0[0] + (t1[0] - t0[0]) * pp),142            round(t0[1] + (t1[1] - t0[1]) * pp),143            round(t0[2] + (t1[2] - t0[2]) * pp),144        )145        palette["gradient_%02d" % i] = ("#%x%x%x" % t, "default")146 147 148class LowDark(Palette):149    """150    Low-color dark background151    """152 153    low = dict(154        background=("white", "black"),155        title=("white,bold", "default"),156        # Status bar & heading157        heading=("white", "dark blue"),158        heading_key=("light cyan", "dark blue"),159        heading_inactive=("dark gray", "light gray"),160        # Help161        key=("light cyan", "default"),162        head=("white,bold", "default"),163        text=("light gray", "default"),164        # Options165        option_selected=("black", "light gray"),166        option_selected_key=("light cyan", "light gray"),167        option_active=("light red", "default"),168        option_active_selected=("light red", "light gray"),169        # List and Connections170        method_get=("light green", "default"),171        method_post=("brown", "default"),172        method_delete=("light red", "default"),173        method_head=("dark cyan", "default"),174        method_put=("dark red", "default"),175        method_other=("dark magenta", "default"),176        method_http2_push=("dark gray", "default"),177        scheme_http=("dark cyan", "default"),178        scheme_https=("dark green", "default"),179        scheme_ws=("brown", "default"),180        scheme_wss=("dark magenta", "default"),181        scheme_tcp=("dark magenta", "default"),182        scheme_udp=("dark magenta", "default"),183        scheme_dns=("dark blue", "default"),184        scheme_quic=("brown", "default"),185        scheme_other=("dark magenta", "default"),186        url_punctuation=("light gray", "default"),187        url_domain=("white", "default"),188        url_filename=("dark cyan", "default"),189        url_extension=("light gray", "default"),190        url_query_key=("white", "default"),191        url_query_value=("light gray", "default"),192        content_none=("dark gray", "default"),193        content_text=("light gray", "default"),194        content_script=("dark green", "default"),195        content_media=("light blue", "default"),196        content_data=("brown", "default"),197        content_raw=("dark red", "default"),198        content_other=("dark magenta", "default"),199        focus=("yellow", "default"),200        code_200=("dark green", "default"),201        code_300=("light blue", "default"),202        code_400=("light red", "default"),203        code_500=("light red", "default"),204        code_other=("dark red", "default"),205        alert=("light magenta", "default"),206        warn=("brown", "default"),207        error=("light red", "default"),208        header=("dark cyan", "default"),209        highlight=("white,bold", "default"),210        intercept=("brown", "default"),211        replay=("light green", "default"),212        mark=("light red", "default"),213        # Contentview Syntax Highlighting214        name=("dark green", "default"),215        string=("dark blue", "default"),216        number=("light magenta", "default"),217        boolean=("dark magenta", "default"),218        comment=("dark gray", "default"),219        # TCP flow details220        from_client=("light blue", "default"),221        to_client=("light red", "default"),222        # Grid Editor223        focusfield=("black", "light gray"),224        focusfield_error=("dark red", "light gray"),225        field_error=("dark red", "default"),226        editfield=("white", "default"),227        commander_command=("white,bold", "default"),228        commander_invalid=("light red", "default"),229        commander_hint=("dark gray", "default"),230    )231    gen_gradient(232        low,233        ["light red", "yellow", "light green", "dark green", "dark cyan", "dark blue"],234    )235 236 237class Dark(LowDark):238    high = dict(239        heading_inactive=("g58", "g11"),240        intercept=("#f60", "default"),241        option_selected=("g85", "g45"),242        option_selected_key=("light cyan", "g50"),243        option_active_selected=("light red", "g50"),244    )245 246 247class LowLight(Palette):248    """249    Low-color light background250    """251 252    low = dict(253        background=("black", "white"),254        title=("dark magenta", "default"),255        # Status bar & heading256        heading=("white", "black"),257        heading_key=("dark blue", "black"),258        heading_inactive=("black", "light gray"),259        # Help260        key=("dark blue", "default"),261        head=("black", "default"),262        text=("dark gray", "default"),263        # Options264        option_selected=("black", "light gray"),265        option_selected_key=("dark blue", "light gray"),266        option_active=("light red", "default"),267        option_active_selected=("light red", "light gray"),268        # List and Connections269        method_get=("dark green", "default"),270        method_post=("brown", "default"),271        method_head=("dark cyan", "default"),272        method_put=("light red", "default"),273        method_delete=("dark red", "default"),274        method_other=("light magenta", "default"),275        method_http2_push=("light gray", "default"),276        scheme_http=("dark cyan", "default"),277        scheme_https=("light green", "default"),278        scheme_ws=("brown", "default"),279        scheme_wss=("light magenta", "default"),280        scheme_tcp=("light magenta", "default"),281        scheme_udp=("light magenta", "default"),282        scheme_dns=("light blue", "default"),283        scheme_quic=("brown", "default"),284        scheme_other=("light magenta", "default"),285        url_punctuation=("dark gray", "default"),286        url_domain=("dark gray", "default"),287        url_filename=("black", "default"),288        url_extension=("dark gray", "default"),289        url_query_key=("light blue", "default"),290        url_query_value=("dark blue", "default"),291        content_none=("black", "default"),292        content_text=("dark gray", "default"),293        content_script=("light green", "default"),294        content_media=("light blue", "default"),295        content_data=("brown", "default"),296        content_raw=("light red", "default"),297        content_other=("light magenta", "default"),298        focus=("black", "default"),299        code_200=("dark green", "default"),300        code_300=("light blue", "default"),301        code_400=("dark red", "default"),302        code_500=("dark red", "default"),303        code_other=("light red", "default"),304        error=("light red", "default"),305        warn=("brown", "default"),306        alert=("light magenta", "default"),307        header=("dark blue", "default"),308        highlight=("black,bold", "default"),309        intercept=("brown", "default"),310        replay=("dark green", "default"),311        mark=("dark red", "default"),312        # Contentview Syntax Highlighting313        name=("dark green", "default"),314        string=("dark blue", "default"),315        number=("light magenta", "default"),316        boolean=("dark magenta", "default"),317        comment=("dark gray", "default"),318        # TCP flow details319        from_client=("dark blue", "default"),320        to_client=("dark red", "default"),321        # Grid Editor322        focusfield=("black", "light gray"),323        focusfield_error=("dark red", "light gray"),324        field_error=("dark red", "black"),325        editfield=("black", "default"),326        commander_command=("dark magenta", "default"),327        commander_invalid=("light red", "default"),328        commander_hint=("light gray", "default"),329    )330    gen_gradient(331        low,332        ["light red", "yellow", "light green", "dark green", "dark cyan", "dark blue"],333    )334 335 336class Light(LowLight):337    high = dict(338        background=("black", "g100"),339        heading=("g99", "#08f"),340        heading_key=("#0ff,bold", "#08f"),341        heading_inactive=("g35", "g85"),342        replay=("#0a0,bold", "default"),343        option_selected=("black", "g85"),344        option_selected_key=("dark blue", "g85"),345        option_active_selected=("light red", "g85"),346    )347 348 349# Solarized palette in Urwid-style terminal high-colour offsets350# See: http://ethanschoonover.com/solarized351sol_base03 = "h234"352sol_base02 = "h235"353sol_base01 = "h240"354sol_base00 = "h241"355sol_base0 = "h244"356sol_base1 = "h245"357sol_base2 = "h254"358sol_base3 = "h230"359sol_yellow = "h136"360sol_orange = "h166"361sol_red = "h160"362sol_magenta = "h125"363sol_violet = "h61"364sol_blue = "h33"365sol_cyan = "h37"366sol_green = "h64"367 368 369class SolarizedLight(LowLight):370    high = dict(371        background=(sol_base00, sol_base3),372        title=(sol_cyan, "default"),373        text=(sol_base00, "default"),374        # Status bar & heading375        heading=(sol_base2, sol_base02),376        heading_key=(sol_blue, sol_base03),377        heading_inactive=(sol_base03, sol_base1),378        # Help379        key=(380            sol_blue,381            "default",382        ),383        head=(sol_base00, "default"),384        # Options385        option_selected=(sol_base03, sol_base2),386        option_selected_key=(sol_blue, sol_base2),387        option_active=(sol_orange, "default"),388        option_active_selected=(sol_orange, sol_base2),389        # List and Connections390        method_get=(sol_green, "default"),391        method_post=(sol_orange, "default"),392        method_head=(sol_cyan, "default"),393        method_put=(sol_red, "default"),394        method_delete=(sol_red, "default"),395        method_other=(sol_magenta, "default"),396        method_http2_push=("light gray", "default"),397        scheme_http=(sol_cyan, "default"),398        scheme_https=("light green", "default"),399        scheme_ws=(sol_orange, "default"),400        scheme_wss=("light magenta", "default"),401        scheme_tcp=("light magenta", "default"),402        scheme_udp=("light magenta", "default"),403        scheme_dns=("light blue", "default"),404        scheme_quic=(sol_orange, "default"),405        scheme_other=("light magenta", "default"),406        url_punctuation=("dark gray", "default"),407        url_domain=("dark gray", "default"),408        url_filename=("black", "default"),409        url_extension=("dark gray", "default"),410        url_query_key=(sol_blue, "default"),411        url_query_value=("dark blue", "default"),412        focus=(sol_base01, "default"),413        code_200=(sol_green, "default"),414        code_300=(sol_blue, "default"),415        code_400=(416            sol_orange,417            "default",418        ),419        code_500=(sol_red, "default"),420        code_other=(sol_magenta, "default"),421        error=(sol_red, "default"),422        warn=(sol_orange, "default"),423        alert=(sol_magenta, "default"),424        header=(sol_blue, "default"),425        highlight=(sol_base01, "default"),426        intercept=(427            sol_red,428            "default",429        ),430        replay=(431            sol_green,432            "default",433        ),434        mark=(sol_base01, "default"),435        # Contentview Syntax Highlighting436        name=(sol_green, "default"),437        string=(sol_cyan, "default"),438        number=(sol_blue, "default"),439        boolean=(sol_magenta, "default"),440        comment=(sol_base1, "default"),441        # TCP flow details442        from_client=(sol_blue, "default"),443        to_client=(sol_red, "default"),444        # Grid Editor445        focusfield=(sol_base00, sol_base2),446        focusfield_error=(sol_red, sol_base2),447        field_error=(sol_red, "default"),448        editfield=(sol_base01, "default"),449        commander_command=(sol_cyan, "default"),450        commander_invalid=(sol_orange, "default"),451        commander_hint=(sol_base1, "default"),452    )453 454 455class SolarizedDark(LowDark):456    high = dict(457        background=(sol_base2, sol_base03),458        title=(sol_blue, "default"),459        text=(sol_base1, "default"),460        # Status bar & heading461        heading=(sol_base2, sol_base01),462        heading_key=(sol_blue + ",bold", sol_base01),463        heading_inactive=(sol_base1, sol_base02),464        # Help465        key=(466            sol_blue,467            "default",468        ),469        head=(sol_base2, "default"),470        # Options471        option_selected=(sol_base03, sol_base00),472        option_selected_key=(sol_blue, sol_base00),473        option_active=(sol_orange, "default"),474        option_active_selected=(sol_orange, sol_base00),475        # List and Connections476        focus=(sol_base1, "default"),477        method_get=(sol_green, "default"),478        method_post=(sol_orange, "default"),479        method_delete=(sol_red, "default"),480        method_head=(sol_cyan, "default"),481        method_put=(sol_red, "default"),482        method_other=(sol_magenta, "default"),483        method_http2_push=(sol_base01, "default"),484        url_punctuation=("h242", "default"),485        url_domain=("h252", "default"),486        url_filename=("h132", "default"),487        url_extension=("h96", "default"),488        url_query_key=("h37", "default"),489        url_query_value=("h30", "default"),490        content_none=(sol_base01, "default"),491        content_text=(sol_base1, "default"),492        content_media=(sol_blue, "default"),493        code_200=(sol_green, "default"),494        code_300=(sol_blue, "default"),495        code_400=(496            sol_orange,497            "default",498        ),499        code_500=(sol_red, "default"),500        code_other=(sol_magenta, "default"),501        error=(sol_red, "default"),502        warn=(sol_orange, "default"),503        alert=(sol_magenta, "default"),504        header=(sol_blue, "default"),505        highlight=(sol_base01, "default"),506        intercept=(507            sol_red,508            "default",509        ),510        replay=(511            sol_green,512            "default",513        ),514        mark=(sol_base01, "default"),515        # Contentview Syntax Highlighting516        name=(sol_green, "default"),517        string=(sol_cyan, "default"),518        number=(sol_blue, "default"),519        boolean=(sol_magenta, "default"),520        comment=(sol_base00, "default"),521        # TCP flow details522        from_client=(sol_blue, "default"),523        to_client=(sol_red, "default"),524        # Grid Editor525        focusfield=(sol_base0, sol_base02),526        focusfield_error=(sol_red, sol_base02),527        field_error=(sol_red, "default"),528        editfield=(sol_base1, "default"),529        commander_command=(sol_blue, "default"),530        commander_invalid=(sol_orange, "default"),531        commander_hint=(sol_base00, "default"),532    )533    gen_rgb_gradient(534        high, [(15, 0, 0), (15, 15, 0), (0, 15, 0), (0, 15, 15), (0, 0, 15)]535    )536 537 538DEFAULT = "dark"539palettes = {540    "lowlight": LowLight(),541    "lowdark": LowDark(),542    "light": Light(),543    "dark": Dark(),544    "solarized_light": SolarizedLight(),545    "solarized_dark": SolarizedDark(),546}547 
codekingpro/portable-devtools · Team Ai