� ]�gr%���ddlZddlmZmZddlmZmZddlmZm Z de de fd�Z Gd �d e��Z Gd �d e ��Z Gd �de ��ZGd�de��ZGd�de��ZGd�de��Zedk�r�ddlmZe��Ze�d��e�d��e�d��e�d��e�d��e�d��e�d��e�d��e�d��e�d ��e�d!��e�d"��e�d#��e�d$��e�d%��e�d&��e�d'��e�d(��e�d)��ddlZe�ejd*dd+��,��d�-��dSdS).�N)�ABC�abstractmethod)�List�Union�)�Span�Text�regexes�returnc�,�d�|��S)z{Combine a number of regexes in to a single regex. Returns: str: New regex with all regexes ORed together. �|)�join)r s �`/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/rich/highlighter.py�_combine_regexrs�� �8�8�G� � ��c�R�eZdZdZdeeefdefd�Zededdfd���Z dS)� Highlighterz%Abstract base class for highlighters.�textr c���t|t��rt|��}n<t|t��r|���}nt d|�����|�|��|S)a Highlight a str or Text instance. Args: text (Union[str, ~Text]): Text to highlight. Raises: TypeError: If not called with text or str. Returns: Text: A test instance with highlighting applied. z#str or Text instance required, not )� isinstance�strr �copy� TypeError� highlight)�selfr�highlight_texts r�__call__zHighlighter.__call__su�� �d�C� � � L�!�$�Z�Z�N�N� ��d� #� #� L�!�Y�Y�[�[�N�N��J�$�J�J�K�K� K� ���~�&�&�&��rNc��dS)zoApply highlighting in place to text. Args: text (~Text): A text object highlight. N��rrs rrzHighlighter.highlight)����r) �__name__� __module__� __qualname__�__doc__rrr rrrrrrrrss������/�/��U�3��9�-��$�����*� �d� �t� � � ��^� � � rrc�"�eZdZdZdeddfd�ZdS)�NullHighlighterzeA highlighter object that doesn't highlight. May be used to disable highlighting entirely. rr Nc��dS)z Nothing to doNrr s rrzNullHighlighter.highlight9r!r)r"r#r$r%r rrrrr'r'2s@�������� �d��t������rr'c�L�eZdZUdZgZeeed<dZeed<de ddfd�Z dS) �RegexHighlighterz8Applies highlighting from a list of regular expressions.� highlights�� base_stylerr Nc�L�|j}|jD]}|||j����dS)z�Highlight :class:`rich.text.Text` using regular expressions. Args: text (~Text): Text to highlighted. )� style_prefixN)�highlight_regexr+r-)rrr0� re_highlights rrzRegexHighlighter.highlightCsE���.�� �O� H� H�L� �O�L�t�� G� G� G� G� G� H� Hr) r"r#r$r%r+rr�__annotations__r-r rrrrr*r*=sj�������B�B��J��S� �����J����� H�d� H�t� H� H� H� H� H� Hrr*c�L�eZdZdZdZdddedddd d d d d ddddd� � gZdS)�ReprHighlighterzAHighlights the text typically produced from ``__repr__`` methods.zrepr.zN(?P<tag_start><)(?P<tag_name>[-\w.:|]*)(?P<tag_contents>[\w\W]*)(?P<tag_end>>)z:(?P<attrib_name>[\w_]{1,50})=(?P<attrib_value>"?[\w_]+"?)?z(?P<brace>[][{}()])z8(?P<ipv4>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})z4(?P<ipv6>([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})z�(?P<eui64>(?:[0-9A-Fa-f]{1,2}-){7}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{1,2}:){7}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{4}\.){3}[0-9A-Fa-f]{4})z�(?P<eui48>(?:[0-9A-Fa-f]{1,2}-){5}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{1,2}:){5}[0-9A-Fa-f]{1,2}|(?:[0-9A-Fa-f]{4}\.){2}[0-9A-Fa-f]{4})zU(?P<uuid>[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})z(?P<call>[\w.]*?)\(zD\b(?P<bool_true>True)\b|\b(?P<bool_false>False)\b|\b(?P<none>None)\bz(?P<ellipsis>\.\.\.)zk(?P<number_complex>(?<!\w)(?:\-?[0-9]+\.?[0-9]*(?:e[-+]?\d+?)?)(?:[-+](?:[0-9]+\.?[0-9]*(?:e[-+]?\d+)?))?j)zC(?P<number>(?<!\w)\-?[0-9]+\.?[0-9]*(e[-+]?\d+?)?\b|0x[0-9a-fA-F]*)z3(?P<path>\B(/[-\w._+]+)*\/)(?P<filename>[-\w._+]*)?z_(?<![\\\w])(?P<str>b?'''.*?(?<!\\)'''|b?'.*?(?<!\\)'|b?\"\"\".*?(?<!\\)\"\"\"|b?\".*?(?<!\\)\")zD(?P<url>(file|https|http|ws|wss)://[-0-9a-zA-Z$_+!`(),.?/;:&=%#~@]*)N)r"r#r$r%r-rr+rrrr4r4Pse������K�K��J�Y�E���� G� C� R� R� d� "� S� #� z� R� B� n� S� � � �J�J�Jrr4c�Z��eZdZdZdZhd�ZdZeddde��gZde d d f�fd � Z �xZ S) �JSONHighlighterzHighlights JSONz$(?<![\\\w])(?P<str>b?\".*?(?<!\\)\")>� � � � zjson.z(?P<brace>[\{\[\(\)\]\}])zD\b(?P<bool_true>true)\b|\b(?P<bool_false>false)\b|\b(?P<null>null)\bzE(?P<number>(?<!\w)\-?[0-9]+\.?[0-9]*(e[\-\+]?\d+?)?\b|0x[0-9a-fA-F]*)rr Nc�x��t���|��|j}|jj}|j}t j|j|��D]b}|� ��\}}|}|t|��kr4||} |dz }| dkr|t||d����n| |vr�F �cdS)Nr�:zjson.key) �superr�plain�spans�append�JSON_WHITESPACE�re�finditer�JSON_STR�span�lenr) rrr>r@� whitespace�match�start�end�cursor�char� __class__s �rrzJSONHighlighter.highlight{s���� �����$����� ����"���)� ��[����6�6� � �E������J�E�3��F��3�u�:�:�%�%��V�}���!� ���3�;�;��F�4��s�J�7�7�8�8�8�8��Z�'�'���� � r) r"r#r$r%rDrAr-rr+r r� __classcell__)rMs@rr6r6js����������7�H�-�-�-�O��J��� (� S� T� �  � ��J��d��t����������rr6c��eZdZdZdZgd�ZdS)�ISO8601Highlighterz�Highlights the ISO8601 date time strings. Regex reference: https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s07.html ziso8601.) z-^(?P<year>[0-9]{4})-(?P<month>1[0-2]|0[1-9])$zU^(?P<date>(?P<year>[0-9]{4})(?P<month>1[0-2]|0[1-9])(?P<day>3[01]|0[1-9]|[12][0-9]))$z]^(?P<date>(?P<year>[0-9]{4})-?(?P<day>36[0-6]|3[0-5][0-9]|[12][0-9]{2}|0[1-9][0-9]|00[1-9]))$zC^(?P<date>(?P<year>[0-9]{4})-?W(?P<week>5[0-3]|[1-4][0-9]|0[1-9]))$zS^(?P<date>(?P<year>[0-9]{4})-?W(?P<week>5[0-3]|[1-4][0-9]|0[1-9])-?(?P<day>[1-7]))$z>^(?P<time>(?P<hour>2[0-3]|[01][0-9]):?(?P<minute>[0-5][0-9]))$zR^(?P<time>(?P<hour>2[0-3]|[01][0-9])(?P<minute>[0-5][0-9])(?P<second>[0-5][0-9]))$zA^(?P<timezone>(Z|[+-](?:2[0-3]|[01][0-9])(?::?(?:[0-5][0-9]))?))$z�^(?P<time>(?P<hour>2[0-3]|[01][0-9])(?P<minute>[0-5][0-9])(?P<second>[0-5][0-9]))(?P<timezone>Z|[+-](?:2[0-3]|[01][0-9])(?::?(?:[0-5][0-9]))?)$z�^(?P<date>(?P<year>[0-9]{4})(?P<hyphen>-)?(?P<month>1[0-2]|0[1-9])(?(hyphen)-)(?P<day>3[01]|0[1-9]|[12][0-9])) (?P<time>(?P<hour>2[0-3]|[01][0-9])(?(hyphen):)(?P<minute>[0-5][0-9])(?(hyphen):)(?P<second>[0-5][0-9]))$z�^(?P<date>(?P<year>-?(?:[1-9][0-9]*)?[0-9]{4})-(?P<month>1[0-2]|0[1-9])-(?P<day>3[01]|0[1-9]|[12][0-9]))(?P<timezone>Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$z�^(?P<time>(?P<hour>2[0-3]|[01][0-9]):(?P<minute>[0-5][0-9]):(?P<second>[0-5][0-9])(?P<frac>\.[0-9]+)?)(?P<timezone>Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$a^(?P<date>(?P<year>-?(?:[1-9][0-9]*)?[0-9]{4})-(?P<month>1[0-2]|0[1-9])-(?P<day>3[01]|0[1-9]|[12][0-9]))T(?P<time>(?P<hour>2[0-3]|[01][0-9]):(?P<minute>[0-5][0-9]):(?P<second>[0-5][0-9])(?P<ms>\.[0-9]+)?)(?P<timezone>Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$N)r"r#r$r%r-r+rrrrPrP�s0���������J�1�1�1�J�J�JrrP�__main__)�Consolez%[bold green]hello world![/bold green]z''[bold green]hello world![/bold green]'z /fooz/foo/z/foo/barz foo/bar/bazz /foo/bar/baz?foo=bar+egg&egg=bazz /foo/bar/baz/z/foo/bar/baz/eggz/foo/bar/baz/egg.pyz/foo/bar/baz/egg.py wordz /foo/bar/baz/egg.py wordzfoo /foo/bar/baz/egg.py wordz!foo /foo/bar/ba._++z/egg+.py wordz"https://example.org?foo=bar#headergq= W��2Ag�?gF! �@ܡ�zE127.0.1.1 bar 192.168.1.4 2001:0db8:85a3:0000:0000:8a2e:0370:7334 foo�apple)�name�count)�obj)�indent)rB�abcrr�typingrrrrr rrrr'r*r4r6rPr"�consolerR�print�json� print_json�dumpsrrr�<module>r_s]�� � � � �#�#�#�#�#�#�#�#������������������S��S����� � � � � �#� � � �B�����k����H�H�H�H�H�{�H�H�H�&�����&����4"�"�"�"�"�&�"�"�"�J7�7�7�7�7�)�7�7�7�t �z��� � � � � � ��g�i�i�G� �M�M�9�:�:�:� �M�M�;�<�<�<� �M�M�'���� �M�M�'���� �M�M�*���� �M�M�-� � � � �M�M�4�5�5�5� �M�M�/�"�"�"� �M�M�$�%�%�%� �M�M�'�(�(�(� �M�M�,�-�-�-� �M�M�-�.�.�.� �M�M�0�1�1�1� �M�M�5�6�6�6� �M�M�6�7�7�7� �M�M�*���� �M�M�%���� �M�M�#�$�$�$� �M�M�O�����K�K�K� ���z�t�z�w��&C�&C�D�D�D�T��R�R�R�R�R�?�r
Memory