HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //usr/local/lib/python3.9/site-packages/celery/utils/__pycache__/text.cpython-39.pyc
a

X>h��@s�dZddlmZddlZddlZddlmZddlmZddlm	Z	ddl
mZddlm
Z
mZmZd	Zd
��Ze�d�Zdd
d�dd�ZdNdddd�dd�ZdOdddd�dd�ZdPddddd�dd�ZdQd
ddd�dd�ZdRddddd!�d"d#�Zeed�ZdSddd%dd&�d'd(�Zdddd)�d*d+�ZdTddddd,�d-d.�ZdUddddd0�d1d2�ZdVd4dddd5�d6d7�Z dWddddd9dd:�d;d<�Z!dddd=�d>d?�Z"ed@fddAdBdddC�dDdE�Z#ddddF�dGdH�Z$ddddI�dJdK�Z%ej&Z&e&j'Z(e&j)Z*GdLdM�dMe&�Z+dS)XzText formatting utilities.�)�annotationsN)�partial)�pformat)�Match��fill)�Any�Callable�Pattern)�abbr�abbrtask�dedent�dedent_initial�ensure_newlines�
ensure_sep�fill_paragraphs�indent�join�	pluralize�pretty�str_to_list�
simple_format�truncatez�
Unknown format %{0} in string {1!r}.
Possible causes: Did you forget to escape the expand sign (use '%%{0!r}'),
or did you escape and the value was expanded twice? (%%N -> %N -> %hostname)?
z%(\w)�strz	list[str])�s�returncCst|t�r|�d�S|S)zConvert string to list.�,)�
isinstancer�split)r�r�;/usr/local/lib/python3.9/site-packages/celery/utils/text.pyrs

r��int)r�nrcCs$|d|�d|kr ||d�S|S)z+Remove indentation from first line of text.N� r)rr#rrr r#sr�
)r�seprcCs|�dd�|��D��S)zRemove indentation.css|]}t|�VqdS�N)r)�.0�lrrr �	<genexpr>*�zdedent.<locals>.<genexpr>)r�
splitlines)rr&rrr r
(sr
)r�widthr&rcs|��fdd�|�|�D��S)z4Fill paragraphs with newlines (or custom separator).c3s|]}t|��VqdSr'r�r(�p�r-rr r*/r+z"fill_paragraphs.<locals>.<genexpr>�rr)rr-r&rr0r r-sr)r)r&rcCs|�dd�|D��S)zConcatenate list of strings.css|]}|r|VqdSr'r)r(�vrrr r*4r+zjoin.<locals>.<genexpr>)r)r)r&rrr r2sr�)r&rr#rcCs||||�|�S)z%Ensure text s ends in separator sep'.)�count)r&rr#rrr r7sr�...z
str | bool)�S�max�ellipsisrcCsJ|durdSt|�|krFt|t�r:|d|t|��|pD|d|�S|S)zAbbreviate word.N�???)�lenrr)r6r7r8rrr r?s
�
�r)r6r7rcCsP|durdSt|�|krL|�d�\}}}t||t|�dd�}|d|S|S)zAbbreviate task name.Nr9�.�Fz[.])r:�
rpartitionr)r6r7�module�_�clsrrr rIsr)�trr&rcs|��fdd�|�|�D��S)zIndent text.c3s|]}d�|VqdS)r$Nrr.�rrr r*Vr+zindent.<locals>.<genexpr>r1)rArr&rrBr rTsr�)r�maxlen�suffixrcCs0|r,t|�|kr,|d|��dd�d|S|S)z0Truncate text to a maximum number of characters.Nr$�r)r:�rsplit)rrDrErrr rYsrr�float)r#�textrErcCs|dkr||S|S)z*Pluralize term when n is greater than one.rFr)r#rIrErrr r`sr�Pr)�valuer-�nl_widthr&�kwrcKsht|t�r(|�dt|d|�dd���St|t�rPd�|dt|fd|i|���St|fd|i|��SdS)z%Format value for printing to console.r$r!rFNz{}{}{}z    r-)r�dictr�tuple�format)rKr-rLr&rMrrr rgs

�r)r�otherrcCs|��r|��S|��Sr')�isupper�upper�lower)rrQrrr �
match_casetsrUz\1zdict[str, str | Callable]zPattern[str])r�keys�pattern�expandrcs8�r4��dd�ddd����fdd�}|�|��S�S)z0Format string, expanding abbreviations in keys'.�%rz	str | Any)�matchrcsL|���}z�|}Wn"ty8tt�|����Yn0t|�rH|�S|Sr')rX�KeyError�
ValueError�UNKNOWN_SIMPLE_FORMAT_KEYrP�callable)rZ�key�resolver�rXrVrrr �resolves
zsimple_format.<locals>.resolve)�
setdefault�sub)rrVrWrXrbrrar rxs

r)�	task_namerrcCs t|��d�dd}t||�S)z�Given task name, remove repeating module names.

    Example:
        >>> remove_repeating_from_task(
        ...     'tasks.add',
        ...     'tasks.add(2, 2), tasks.mul(3), tasks.div(4)')
        'tasks.add(2, 2), mul(3), div(4)'
    r;r)rr=�remove_repeating)rerr>rrr �remove_repeating_from_task�srg)�substrrrcCsL|�|�}|dkrHd�|d|t|��||t|�d��|d�g�S|S)a�Remove repeating module names from string.

    Arguments:
        task_name (str): Task name (full path including module),
            to use as the basis for removing module names.
        s (str): The string we want to work on.

    Example:

        >>> _shorten_names(
        ...    'x.tasks.add',
        ...    'x.tasks.add(2, 2) | x.tasks.add(4) | x.tasks.mul(8)',
        ... )
        'x.tasks.add(2, 2) | add(4) | mul(8)'
    r�N)�findrr:�replace)rhr�indexrrr rf�s
�rfc@s6eZdZdZdddddd�dd�Zd	d
d�dd
�ZdS)�
WhateverIOz!StringIO that takes bytes or str.Nzbytes | str | Noner�None)r2�arMrcOs.t|t|t�r|��n|g|�Ri|��dSr')�	_SIO_initr�bytes�decode)�selfr2rorMrrr �__init__�szWhateverIO.__init__zbytes | strr")�datarcCst|t|t�r|��n|�Sr')�
_SIO_writerrqrr)rsrurrr �write�s
�
�zWhateverIO.write)N)�__name__�
__module__�__qualname__�__doc__rtrwrrrr rm�s�rm)r!)r%)r%)r%)r3)r5)rr%)rCr5)r)rJrJr%),r{�
__future__r�io�re�	functoolsr�pprintrr�textwrapr�typingrr	r
�__all__�stripr]�compileZ	RE_FORMATrrr
rrrrrrrrrrrUrrgrf�StringIOrwrvrtrprmrrrr �<module>sB



�