default_styles.py 7.8 KB

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