codekingpro/portable-devtools
114k
1from typing import Dict2 3from .style import Style4 5DEFAULT_STYLES: Dict[str, Style] = {6 "none": Style.null(),7 "reset": Style(8 color="default",9 bgcolor="default",10 dim=False,11 bold=False,12 italic=False,13 underline=False,14 blink=False,15 blink2=False,16 reverse=False,17 conceal=False,18 strike=False,19 ),20 "dim": Style(dim=True),21 "bright": Style(dim=False),22 "bold": Style(bold=True),23 "strong": Style(bold=True),24 "code": Style(reverse=True, bold=True),25 "italic": Style(italic=True),26 "emphasize": Style(italic=True),27 "underline": Style(underline=True),28 "blink": Style(blink=True),29 "blink2": Style(blink2=True),30 "reverse": Style(reverse=True),31 "strike": Style(strike=True),32 "black": Style(color="black"),33 "red": Style(color="red"),34 "green": Style(color="green"),35 "yellow": Style(color="yellow"),36 "magenta": Style(color="magenta"),37 "cyan": Style(color="cyan"),38 "white": Style(color="white"),39 "inspect.attr": Style(color="yellow", italic=True),40 "inspect.attr.dunder": Style(color="yellow", italic=True, dim=True),41 "inspect.callable": Style(bold=True, color="red"),42 "inspect.async_def": Style(italic=True, color="bright_cyan"),43 "inspect.def": Style(italic=True, color="bright_cyan"),44 "inspect.class": Style(italic=True, color="bright_cyan"),45 "inspect.error": Style(bold=True, color="red"),46 "inspect.equals": Style(),47 "inspect.help": Style(color="cyan"),48 "inspect.doc": Style(dim=True),49 "inspect.value.border": Style(color="green"),50 "live.ellipsis": Style(bold=True, color="red"),51 "layout.tree.row": Style(dim=False, color="red"),52 "layout.tree.column": Style(dim=False, color="blue"),53 "logging.keyword": Style(bold=True, color="yellow"),54 "logging.level.notset": Style(dim=True),55 "logging.level.debug": Style(color="green"),56 "logging.level.info": Style(color="blue"),57 "logging.level.warning": Style(color="yellow"),58 "logging.level.error": Style(color="red", bold=True),59 "logging.level.critical": Style(color="red", bold=True, reverse=True),60 "log.level": Style.null(),61 "log.time": Style(color="cyan", dim=True),62 "log.message": Style.null(),63 "log.path": Style(dim=True),64 "repr.ellipsis": Style(color="yellow"),65 "repr.indent": Style(color="green", dim=True),66 "repr.error": Style(color="red", bold=True),67 "repr.str": Style(color="green", italic=False, bold=False),68 "repr.brace": Style(bold=True),69 "repr.comma": Style(bold=True),70 "repr.ipv4": Style(bold=True, color="bright_green"),71 "repr.ipv6": Style(bold=True, color="bright_green"),72 "repr.eui48": Style(bold=True, color="bright_green"),73 "repr.eui64": Style(bold=True, color="bright_green"),74 "repr.tag_start": Style(bold=True),75 "repr.tag_name": Style(color="bright_magenta", bold=True),76 "repr.tag_contents": Style(color="default"),77 "repr.tag_end": Style(bold=True),78 "repr.attrib_name": Style(color="yellow", italic=False),79 "repr.attrib_equal": Style(bold=True),80 "repr.attrib_value": Style(color="magenta", italic=False),81 "repr.number": Style(color="cyan", bold=True, italic=False),82 "repr.number_complex": Style(color="cyan", bold=True, italic=False), # same83 "repr.bool_true": Style(color="bright_green", italic=True),84 "repr.bool_false": Style(color="bright_red", italic=True),85 "repr.none": Style(color="magenta", italic=True),86 "repr.url": Style(underline=True, color="bright_blue", italic=False, bold=False),87 "repr.uuid": Style(color="bright_yellow", bold=False),88 "repr.call": Style(color="magenta", bold=True),89 "repr.path": Style(color="magenta"),90 "repr.filename": Style(color="bright_magenta"),91 "rule.line": Style(color="bright_green"),92 "rule.text": Style.null(),93 "json.brace": Style(bold=True),94 "json.bool_true": Style(color="bright_green", italic=True),95 "json.bool_false": Style(color="bright_red", italic=True),96 "json.null": Style(color="magenta", italic=True),97 "json.number": Style(color="cyan", bold=True, italic=False),98 "json.str": Style(color="green", italic=False, bold=False),99 "json.key": Style(color="blue", bold=True),100 "prompt": Style.null(),101 "prompt.choices": Style(color="magenta", bold=True),102 "prompt.default": Style(color="cyan", bold=True),103 "prompt.invalid": Style(color="red"),104 "prompt.invalid.choice": Style(color="red"),105 "pretty": Style.null(),106 "scope.border": Style(color="blue"),107 "scope.key": Style(color="yellow", italic=True),108 "scope.key.special": Style(color="yellow", italic=True, dim=True),109 "scope.equals": Style(color="red"),110 "table.header": Style(bold=True),111 "table.footer": Style(bold=True),112 "table.cell": Style.null(),113 "table.title": Style(italic=True),114 "table.caption": Style(italic=True, dim=True),115 "traceback.error": Style(color="red", italic=True),116 "traceback.border.syntax_error": Style(color="bright_red"),117 "traceback.border": Style(color="red"),118 "traceback.text": Style.null(),119 "traceback.title": Style(color="red", bold=True),120 "traceback.exc_type": Style(color="bright_red", bold=True),121 "traceback.exc_value": Style.null(),122 "traceback.offset": Style(color="bright_red", bold=True),123 "traceback.error_range": Style(underline=True, bold=True),124 "traceback.note": Style(color="green", bold=True),125 "traceback.group.border": Style(color="magenta"),126 "bar.back": Style(color="grey23"),127 "bar.complete": Style(color="rgb(249,38,114)"),128 "bar.finished": Style(color="rgb(114,156,31)"),129 "bar.pulse": Style(color="rgb(249,38,114)"),130 "progress.description": Style.null(),131 "progress.filesize": Style(color="green"),132 "progress.filesize.total": Style(color="green"),133 "progress.download": Style(color="green"),134 "progress.elapsed": Style(color="yellow"),135 "progress.percentage": Style(color="magenta"),136 "progress.remaining": Style(color="cyan"),137 "progress.data.speed": Style(color="red"),138 "progress.spinner": Style(color="green"),139 "status.spinner": Style(color="green"),140 "tree": Style(),141 "tree.line": Style(),142 "markdown.paragraph": Style(),143 "markdown.text": Style(),144 "markdown.em": Style(italic=True),145 "markdown.emph": Style(italic=True), # For commonmark backwards compatibility146 "markdown.strong": Style(bold=True),147 "markdown.code": Style(bold=True, color="cyan", bgcolor="black"),148 "markdown.code_block": Style(color="cyan", bgcolor="black"),149 "markdown.block_quote": Style(color="magenta"),150 "markdown.list": Style(color="cyan"),151 "markdown.item": Style(),152 "markdown.item.bullet": Style(bold=True),153 "markdown.item.number": Style(color="cyan"),154 "markdown.hr": Style(dim=True),155 "markdown.h1.border": Style(),156 "markdown.h1": Style(bold=True, underline=True),157 "markdown.h2": Style(color="magenta", underline=True),158 "markdown.h3": Style(color="magenta", bold=True),159 "markdown.h4": Style(color="magenta", italic=True),160 "markdown.h5": Style(italic=True),161 "markdown.h6": Style(dim=True),162 "markdown.h7": Style(italic=True, dim=True),163 "markdown.link": Style(color="bright_blue"),164 "markdown.link_url": Style(color="blue", underline=True),165 "markdown.s": Style(strike=True),166 "markdown.table.border": Style(color="cyan"),167 "markdown.table.header": Style(color="cyan", bold=False),168 "markdown.kbd": Style(bold=True, color="bright_yellow"),169 "iso8601.date": Style(color="blue"),170 "iso8601.time": Style(color="magenta"),171 "iso8601.timezone": Style(color="yellow"),172}173 174 175if __name__ == "__main__": # pragma: no cover176 import argparse177 import io178 179 from rich.console import Console180 from rich.table import Table181 from rich.text import Text182 183 parser = argparse.ArgumentParser()184 parser.add_argument("--html", action="store_true", help="Export as HTML table")185 args = parser.parse_args()186 html: bool = args.html187 console = Console(record=True, width=70, file=io.StringIO()) if html else Console()188 189 table = Table("Name", "Styling")190 191 for style_name, style in DEFAULT_STYLES.items():192 table.add_row(Text(style_name, style=style), str(style))193 194 console.print(table)195 if html:196 print(console.export_html(inline_styles=True))197 